From 4edfbad25ffc95595bed635d6d145aeafb8a2a66 Mon Sep 17 00:00:00 2001 From: Tas Date: Thu, 13 Feb 2025 17:08:34 -0800 Subject: [PATCH 001/106] Freshen up content --- public/content/enterprise/index.md | 52 +++++++++++++++--------------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/public/content/enterprise/index.md b/public/content/enterprise/index.md index 5203cfecb8b..b04cdf02805 100644 --- a/public/content/enterprise/index.md +++ b/public/content/enterprise/index.md @@ -36,12 +36,20 @@ Some collaborative efforts to make Ethereum enterprise friendly have been made b ## Enterprise developer resources {#enterprise-developer-resources} -### Products and services {#products-and-services} +### Scalability solutions {#scalability-solutions} + +Most new blockchain applications are being built on [Layer 2](/layer-2) chains. Layer 2 is a set of technologies or systems that run on top of Ethereum (Layer 1), inherit security properties from Layer 1, and provide greater transaction processing capacity (throughput), lower transaction fees (operating cost), and faster transaction confirmations than Layer 1. Layer 2 scaling solutions are secured by Layer 1, but they enable blockchain applications to handle many more users or actions or data than Layer 1 could accommodate. Many of them leverage recent advances in cryptography and zero-knowledge (ZK) proofs to maximize performance and security, and some offer an additional level of privacy. + +[L2 Beat](https://l2beat.com/scaling/summary) maintains an up to date list of Layer 2 networks and key metrics. + +### Products, services, and tools {#products-and-services} - [4EVERLAND](https://www.4everland.org/) - _provides APIs, RPC services and tools for hosting decentralized applications and enabling decentralized storage on Ethereum_ - [Alchemy](https://www.alchemy.com/) - _provides API services and tools for building and monitoring applications on Ethereum_ +- [Baseline Project](https://www.baseline-protocol.org/) - _a set of tools and libraries that helps enterprises coordinate complex, multi-party business processes and workflows with privacy while keeping data in respective systems of record. The standard enables two or more state machines to achieve and maintain data consistency and workflow continuity by using a network as a common frame of reference._ - [Blast](https://blastapi.io/) - _an API platform that provides RPC/WSS APIs for Ethereum Archive Mainnet and Testnets._ - [Blockapps](https://blockapps.net/) - _implementation of the Enterprise Ethereum protocol, tooling and APIs that form the STRATO platform_ +- [Chainlens](https://www.chainlens.com/) - _SaaS and on-prem blockchain data and analytics platform from Web3 Labs_ - [Chainstack](https://chainstack.com/) - _mainnet and testnet Ethereum infrastructure hosted in public & isolated customer clouds_ - [ConsenSys](https://consensys.io/) - _provides a range of products and tools for building on Ethereum, as well as consulting and custom development services_ - [Crossmint](http://crossmint.com/) _Enterprise-grade web3 development platform to deploy smart contracts, enable credit-card and cross chain payments, and use APIs to create, distribute, sell, store, and edit NFTs._ @@ -50,32 +58,21 @@ Some collaborative efforts to make Ethereum enterprise friendly have been made b - [Hyperledger Besu](https://www.hyperledger.org/use/besu) - _an enterprise focused open-source Ethereum client developed under the Apache 2.0 license and written in Java_ - [Infura](https://infura.io/) - _scalable API access to the Ethereum and IPFS networks_ - [Kaleido](https://kaleido.io/) - _an enterprise-focused development platform that offers simplified blockchain and digital asset applications_ -- [NodeReal](https://nodereal.io/) - _provides scalable blockchain infrastructure and API services provider for the Web3 ecosystem_ - [Moralis](http://moralis.io/) - _enterprise grade APIs and Nodes with a SOC2 type 2 certification_ -- [Provide](https://provide.services/) - _enterprise zero-knowledge middleware_ +- [Nightfall](https://github.com/EYBlockchain/nightfall_3) - _an application for transferring ERC20, ERC721 and ERC1155 applications under Zero Knowledge, using an Optimistic Rollup, from Ernst & Young_ +- [NodeReal](https://nodereal.io/) - _provides scalable blockchain infrastructure and API services provider for the Web3 ecosystem_ - [QuickNode](https://www.quicknode.com/) - _provides reliable and fast nodes with high-level APIs like NFT API, Token API, etc., while delivering a unified product suite and enterprise-grade solutions_ - [Tenderly](https://tenderly.co) - _a Web3 development platform that provides debugging, observability, and infrastructure building blocks for developing, testing, monitoring, and operating smart contracts_ - [Unibright](https://unibright.io/) - _a team of blockchain specialists, architects, developers and consultants with 20+ years of experience in business processes and integration_ - [Zeeve](https://www.zeeve.io/) - _provides a range of products and tools for building on Ethereum, also infrastructure and APIs for Enterprise Web3 applications._ -### Tooling and libraries {#tooling-and-libraries} - -- [Baseline Project](https://www.baseline-protocol.org/) - _The Baseline Protocol is a set of tools and libraries that helps enterprises coordinate complex, multi-party business processes and workflows with privacy while keeping data in respective systems of record. The standard enables two or more state machines to achieve and maintain data consistency and workflow continuity by using a network as a common frame of reference._ -- [Chainlens](https://www.chainlens.com/) - _SaaS and on-prem blockchain data and analytics platform from Web3 Labs_ -- [Ernst & Young's 'Nightfall'](https://github.com/EYBlockchain/nightfall_3) - _an application for transferring ERC20, ERC721 and ERC1155 applications under Zero Knowledge, using an Optimistic Rollup_ - -### Scalability solutions {#scalability-solutions} - -Most new blockchain applications are being built on [Layer 2](/layer-2) chains. Layer 2 is a set of technologies or systems that run on top of Ethereum (Layer 1), inherit security properties from Layer 1, and provide greater transaction processing capacity (throughput), lower transaction fees (operating cost), and faster transaction confirmations than Layer 1. Layer 2 scaling solutions are secured by Layer 1, but they enable blockchain applications to handle many more users or actions or data than Layer 1 could accommodate. Many of them leverage recent advances in cryptography and zero-knowledge (ZK) proofs to maximize performance and security, and some offer an additional level of privacy. - -## Enterprise applications live on Ethereum Mainnet {#enterprise-live-on-mainnet} +## Enterprise applications built on Ethereum {#enterprise-applications-on-ethereum} Here are some of the enterprise applications that have been built on top of the public Ethereum Mainnet and L2s by and for traditional, non-blockchain based companies. ### Payments {#payments} - [Brave Browser](https://basicattentiontoken.org/) - _pays users for their attention to advertisements and users can pay publishers to support them, via the Basic Attention Token_ -- [City of Lugano, Switzerland](https://bitcoinsuisse.com/news/city-of-lugano-accepts-crypto-payments) - _payment of taxes and other municipal services_ - [EthereumAds](https://ethereumads.com/) - _lets web site operators sell advertising space and get paid via Ethereum_ - [hCaptcha](https://www.hcaptcha.com/) - _Bot prevention CAPTCHA system which pays web site operators for the work done by users to label data for machine learning. Now deployed by Cloudflare_ - [Opera MiniPay](https://www.opera.com/products/minipay) - _makes mobile payments more accessible and secure for people in Africa with a non-custodial wallet and leverages phone numbers for easy transactions_ @@ -87,13 +84,14 @@ Here are some of the enterprise applications that have been built on top of the ### Finance {#finance} - [ABN AMRO](https://tokeny.com/tokeny-fuels-abn-amro-bank-in-tokenizing-green-bonds-on-polygon/) - _with Tokeny, tokenized green bonds_ -- [Crowdz](https://crowdz.io/) - _invoice/receivables financing and factoring platform_ +- [Anvil](https://anvil.xyz/) - _a system of Ethereum-based smart contracts that manages collateral and issues fully secured credit_ - [Mata Capital](https://consensys.io/blockchain-use-cases/finance/mata-capital) - _real estate investment tokenization_ -- [Obligate](https://www.obligate.com/) - _regulated and KYC'd onchain bonds and commercial paper_ -- [Siemens](https://press.siemens.com/global/en/pressrelease/siemens-issues-first-digital-bond-blockchain ) - _bond issuance_ +- [Obligate](https://www.obligate.com/) - _regulated and KYC'd on-chain bonds and commercial paper_ +- [Siemens](https://press.siemens.com/global/en/pressrelease/siemens-remains-pioneer-another-digital-bond-successfully-issued-blockchain) - _bond issuance_ - [Sila](https://silamoney.com/) - _banking and ACH payments infrastructure-as-a-service, using a stablecoin_ - [Societe Generale FORGE](https://www.sgforge.com/product/bonds/) - _bond issuance_ - [Taurus](https://www.taurushq.com/) - _issues tokenized securities_ +- [Visa Tokenized Asset Plaform](https://developer.visa.com/capabilities/visa-tokenized-asset-platform) - _provides the tools and infrastructure for banks to tokenize fiat currencies on blockchain networks_ ### Asset tokenization {#tokenization} @@ -104,8 +102,6 @@ Here are some of the enterprise applications that have been built on top of the - [Clearmatics](https://www.clearmatics.com) - _builds decentralised network platforms for the p2p exchange of tokenised value_ - [dClimate](https://www.dclimate.net/) - _decentralized climate information ecosystem_ - [Fabrica](https://www.fabrica.land/) - _a platform for digitizing real estate assets, enabling DeFi borrowing and property trading_ -- [Fasset](https://www.fasset.com/) - _a platform for supporting sustainable infrastructure_ -- [Nori](https://nori.com/) - _open source market infrastructure to allow for carbon removal projects to measure and monetize their activity_ - [Propy](https://propy.com/) - _a platform to automate residential real estate transactions with smart contracts_ - [RealT](https://realt.co/) - _investors around the globe can buy into the US real estate market through fully-compliant, fractional, tokenized ownership_ - [Rubey](https://www.rubey.be/) - _a platform that tokenizes high-end art to make it accessible to retail investors_ @@ -116,25 +112,26 @@ Here are some of the enterprise applications that have been built on top of the ### Notarization of data {#notarization-of-data} - [ANSA](https://www.ansa.it/english/news/science_tecnology/2020/04/06/ansa-using-blockchain-to-help-readers_af820b4f-0947-439b-843e-52e114f53318.html) - _Italian news agency fights fake news and enables readers to verify the origin of news stories by recording them on Mainnet_ -- [Breitling](https://www.coindesk.com/breitling-arianee-all-new-watches-ethereum) - _records provenance and repair history of watches on Ethereum_ +- [Breitling](https://www.breitling.com/us-en/about/digital-passport/) - _records provenance and repair history of watches on Ethereum_ - [BRØK](https://www.xn--brk-1na.no/) - _a cap tables platform for unlisted companies on the public, provided by The Norwegian Government_ - [Certifaction](https://certifaction.com/) - _legally valid eSignatures with by privacy-by-design_ - [EthSign](https://ethsign.xyz/) - _records signed electronic documents on the Ethereum blockchain_ - [Stacktical](https://stacktical.com/) - _enables the software development, digital issuance and digital signature of Service Level Agreements (SLA) with native escrowing capabilities_ -- [Verizon](https://decrypt.co/46745/verizon-news-press-releases-ethereum-full-transparency) - _logs press releases on Ethereum to ensure corporate accountability and trust_ +- [Verizon Full Transparency](https://www.verizon.com/about/news/transparency-technology) - _logs press releases to ensure corporate accountability and trust_ +- [Verify](https://www.verifymedia.com/) - _by Fox Corporation stores hashes of media content on a Layer 2 to facilitate content licensing and combating deepfakes_ - [WolfTown](https://www.mef.net/edge-view-blog/automated-secure-timely-sla-reporting-is-finally-a-reality/) - _by MEF and Sage Management automates Service Level Agreement reporting between telecom carriers_ ### Supply chain {#supply-chain} -- [Birra Peroni](https://www.ey.com/en_gl/news/2021/05/birra-peroni-is-the-first-industrial-organization-to-mint-unique-non-fungible-tokens-using-ey-opschain-traceability) _mints NFTs for each new batch of beer, enabling greater visibility and efficiency across its supply chain_ - [CargoX](https://cargox.io/) - _electronic bill of lading and document transfer provider for shipping_ - [Circularize](https://www.circularise.com/) - _an end-to-end traceability solution for raw materials made into products_ -- [EY OpsChain Contract Manager](https://blockchain.ey.com/products/contract-manager) - _enables companies to engage in a procurement workflow by issuing RFQ’s, contracts, purchase orders, and invoices across a network of business partners_ +- [EY OpsChain Contract Manager](https://blockchain.ey.com/) - _enables companies to engage in a procurement workflow by issuing RFQ’s, contracts, purchase orders, and invoices across a network of business partners_ +- [Global Battery Passport project](https://dlt.mobi/gbp-mvp/) _uses DIDs anchored on Ethereum through MOBI's Integrated Trust Network to track EV batteries, for compliance with EU regulations_ - [Minespider](https://www.minespider.com/) - _supply chain tracking and provenance, and CO2 emissions tracking_ - [Morpheus.network](https://morpheus.network/) - _supply chain automation platform_ - [StaTwig](https://statwig.com/) - _supply chain operations_ - [TradeTrust](https://www.tradetrust.io/) - _verifies electronic Bills of Lading (eBLs) for international shipping_ -- [Transmute](https://transmute.industries/) - _data exchange platform for global trade; supports Transactions with Decentralized Identity on Ethereum_ +- [Tradeverifyd](https://tradeverifyd.com/) - _data exchange platform for global trade; supports Transactions with Decentralized Identity on Ethereum_ ### Insurance {#insurance} @@ -145,17 +142,20 @@ Here are some of the enterprise applications that have been built on top of the ### Identity, credentials and certifications {#credentials} - [BCdiploma](https://www.bcdiploma.com/) - _digitizes and verifies diplomas, certificates, and micro-credentials_ +- [Bhutan National Digital Identity](https://www.bhutanndi.com/) - _a foundation for Bhutan’s digital economy, facilitating trusted interactions between individuals and organizations - [Hyland Credentials](https://www.hylandcredentials.com) - _digital diplomas and other education credentials, licenses, and certificates_ - [Palau Digital Residency Program](https://rns.id/) - _offers global citizens the ability to have a legal Palau government-issued ID_ +- [QuarkID](https://quarkid.org/) _is a self-soverign identity protocol for managing essential personal documents such as birth and marriage certificates, academic credentials, and proof of income, developed by the government of Buenos Aires for use in Argentia and other South American countries_ - [Spherity](https://www.spherity.com/) - _offers digital identity management solutions to establish digital trust in ecosystems, focusing on decentralized identities and verifiable credentials_ - [Zug Digital ID](https://ezug.ch/en/) - _is a blockchain-based identity system in Switzerland, offering residents digital access to government services and supporting functionalities like e-bike borrowing and municipal voting_ ### Entertainment, NFTs, and Loyalty -- [Adidas Virtual Gear](https://www.adidas.com/metaverse) - _a virtual gear NFT collection_ - [The British Museum's Sandbox](https://decrypt.co/150405/british-museum-enter-metaverse-via-sandbox) - _an NFT collection_ - [Fruitlab](https://fruitlab.com/) - _a platform for gamers to earn from watching, sharing and playing online games_ +- [Lamborghini](https://venturebeat.com/games/lamborghini-and-animocas-motorverse-tap-base-blockchain-for-in-game-assets/) - _creates in-game assets for Animoca’s Web3 racing game Motorverse_ - [Nike Swoosh](https://www.swoosh.nike/) - _an NFT platform_ - [Sothbebys Metaverse](https://metaverse.sothebys.com/) - _a digital art NFT marketplace by Sothebys_ +- [Soneium](https://soneium.org/) - _a Layer 2 by Sony to support Web3 games and NFTs If you would like to add to this list, please see [instructions for contributing](/contributing/). From 207a750080ddc6019b44b35df09a35abc8d0ebe7 Mon Sep 17 00:00:00 2001 From: JoeChenJ Date: Tue, 11 Mar 2025 22:00:38 +0800 Subject: [PATCH 002/106] feat: revamp find-wallet header --- src/components/DataTable/index.tsx | 2 +- .../FindWalletsNoResults.tsx | 2 +- .../hooks/useWalletColumns.tsx | 34 +---- .../FindWalletProductTable/index.tsx | 17 +++ src/components/ProductTable/Filters.tsx | 2 +- src/components/ProductTable/MobileFilters.tsx | 116 +++++++++--------- src/components/ProductTable/PresetFilters.tsx | 43 +++---- src/components/ProductTable/index.tsx | 3 + src/components/ui/table.tsx | 2 +- src/intl/en/page-wallets-find-wallet.json | 4 +- src/pages/[locale]/wallets/find-wallet.tsx | 45 ++----- 11 files changed, 120 insertions(+), 150 deletions(-) diff --git a/src/components/DataTable/index.tsx b/src/components/DataTable/index.tsx index f29f2abe87f..cc9c420c3c0 100644 --- a/src/components/DataTable/index.tsx +++ b/src/components/DataTable/index.tsx @@ -115,7 +115,7 @@ const DataTable = ({ return (
-
+
{table.getHeaderGroups().map((headerGroup) => ( diff --git a/src/components/FindWalletProductTable/FindWalletsNoResults.tsx b/src/components/FindWalletProductTable/FindWalletsNoResults.tsx index 8ee9dfbba83..1296c1d6e57 100644 --- a/src/components/FindWalletProductTable/FindWalletsNoResults.tsx +++ b/src/components/FindWalletProductTable/FindWalletsNoResults.tsx @@ -24,7 +24,7 @@ const FindWalletsNoResults = ({ resetFilters }) => { } return ( -
+

{t("page-find-wallet-empty-results-title")} diff --git a/src/components/FindWalletProductTable/hooks/useWalletColumns.tsx b/src/components/FindWalletProductTable/hooks/useWalletColumns.tsx index e1dac26a2ac..3d3ee47c856 100644 --- a/src/components/FindWalletProductTable/hooks/useWalletColumns.tsx +++ b/src/components/FindWalletProductTable/hooks/useWalletColumns.tsx @@ -6,11 +6,8 @@ import { Wallet } from "@/lib/types" import type { TableMeta } from "@/components/DataTable" import WalletInfo from "@/components/FindWalletProductTable/WalletInfo" -import { Button } from "@/components/ui/buttons/Button" import { TableCell } from "@/components/ui/table" -import { trackCustomEvent } from "@/lib/utils/matomo" - export const useWalletColumns: ColumnDef[] = [ { id: "walletInfo", @@ -19,33 +16,10 @@ export const useWalletColumns: ColumnDef[] = [ return (
- - {meta.dataLength === meta.allDataLength ? ( -

- Showing all wallets ({meta.dataLength}) -

- ) : ( -

- Showing{" "} - - {meta.dataLength}/{meta.allDataLength} - {" "} - wallets -

- )} +

+ Showing all wallets{" "} + ({meta.dataLength}) +

) }, diff --git a/src/components/FindWalletProductTable/index.tsx b/src/components/FindWalletProductTable/index.tsx index b386d7b9aa9..2342396e28c 100644 --- a/src/components/FindWalletProductTable/index.tsx +++ b/src/components/FindWalletProductTable/index.tsx @@ -75,6 +75,22 @@ const FindWalletProductTable = ({ wallets }: { wallets: Wallet[] }) => { }) }, [wallets, filters, activeFilterKeys]) + const personasWalletCounts = useMemo(() => { + if (!Array.isArray(wallets)) return [] + + return walletPersonas.map((persona) => { + const trueKeys = Object.keys(persona.presetFilters).filter( + (key) => persona.presetFilters[key] === true + ) + + return wallets.reduce( + (count, wallet) => + count + (trueKeys.every((key) => wallet[key]) ? 1 : 0), + 0 + ) + }) + }, [wallets, walletPersonas]) + // Reset filters const resetFilters = () => { setFilters(walletFilterOptions) @@ -101,6 +117,7 @@ const FindWalletProductTable = ({ wallets }: { wallets: Wallet[] }) => { matomoEventCategory="find-wallet" filters={filters} presetFilters={walletPersonas} + presetFiltersCounts={personasWalletCounts} resetFilters={resetFilters} setFilters={setFilters} subComponent={(wallet, listIdx) => ( diff --git a/src/components/ProductTable/Filters.tsx b/src/components/ProductTable/Filters.tsx index 94cd46797e2..f965372c3df 100644 --- a/src/components/ProductTable/Filters.tsx +++ b/src/components/ProductTable/Filters.tsx @@ -76,7 +76,7 @@ const Filters = ({ return (
-
+

{t("table-filters")} ({activeFiltersCount})

diff --git a/src/components/ProductTable/MobileFilters.tsx b/src/components/ProductTable/MobileFilters.tsx index 3fed00f4bdc..dc2d556aced 100644 --- a/src/components/ProductTable/MobileFilters.tsx +++ b/src/components/ProductTable/MobileFilters.tsx @@ -51,64 +51,70 @@ const MobileFilters = ({ const { t } = useTranslation("table") return ( - { - setMobileFiltersOpen(open) - trackCustomEvent({ - eventCategory: "MobileFilterToggle", - eventAction: "Tap MobileFilterToggle", - eventName: `show mobile filters ${open}`, - }) - }} - > - - - - -
- - - -
-
- - -
- -
-
- +
+ { + setMobileFiltersOpen(open) + trackCustomEvent({ + eventCategory: "MobileFilterToggle", + eventAction: "Tap MobileFilterToggle", + eventName: `show mobile filters ${open}`, + }) + }} + > + + + + + + +
+ +
- -
-
+
+ + +
+ +
+
+ +
+ + + +
+
+ + +
) } diff --git a/src/components/ProductTable/PresetFilters.tsx b/src/components/ProductTable/PresetFilters.tsx index f8251967003..6c6e8048110 100644 --- a/src/components/ProductTable/PresetFilters.tsx +++ b/src/components/ProductTable/PresetFilters.tsx @@ -2,13 +2,12 @@ import type { TPresetFilters } from "@/lib/types" import { cn } from "@/lib/utils/cn" -import { useTranslation } from "@/hooks/useTranslation" - export interface PresetFiltersProps { presets: TPresetFilters activePresets: number[] handleSelectPreset: (index: number) => void showMobileSidebar?: boolean + presetFilterCounts?: number[] } const PresetFilters = ({ @@ -16,22 +15,21 @@ const PresetFilters = ({ activePresets, handleSelectPreset, showMobileSidebar = false, + presetFilterCounts, }: PresetFiltersProps) => { - const { t } = useTranslation("table") + const colors = ["primary", "accent-b", "accent-c", "accent-a", "[#BEBF3B]"] return (
-

- {t("table-what-are-you-looking-for")} -

{presets.map((preset, idx) => { + const color = colors[idx] return (

diff --git a/src/components/ProductTable/index.tsx b/src/components/ProductTable/index.tsx index 1c69dbd0e2c..9bfde7c6780 100644 --- a/src/components/ProductTable/index.tsx +++ b/src/components/ProductTable/index.tsx @@ -269,7 +269,7 @@ const ProductTable = ({ presets={presetFilters} activePresets={activePresets} handleSelectPreset={handleSelectPreset} - presetFilterCounts={presetFiltersCounts} + presetFiltersCounts={presetFiltersCounts} /> ) : ( <> @@ -281,6 +281,7 @@ const ProductTable = ({ filters={filters} setFilters={setFilters} presets={presetFilters} + presetFiltersCounts={presetFiltersCounts} activePresets={activePresets} handleSelectPreset={handleSelectPreset} dataCount={data.length} diff --git a/src/lib/utils/wallets.ts b/src/lib/utils/wallets.ts index 0d63f5b6b43..edde435fb83 100644 --- a/src/lib/utils/wallets.ts +++ b/src/lib/utils/wallets.ts @@ -195,3 +195,13 @@ export const getLanguageCountWalletsData = (locale: string) => { languageCountWalletsData.sort((a, b) => a.name.localeCompare(b.name)) return languageCountWalletsData } + +export const getFilteredWalletsCount = (filters: WalletFilter) => { + return walletsData.filter((wallet) => { + const activeFilters = Object.entries(filters).filter( + ([_, value]) => value === true + ) + + return activeFilters.every(([feature]) => wallet[feature] === true) + }).length +} From ef1e39da1d266b3d1e1c1904c38afe3184c99995 Mon Sep 17 00:00:00 2001 From: JoeChenJ Date: Wed, 12 Mar 2025 23:32:08 +0800 Subject: [PATCH 005/106] chore: improve counter logic --- src/components/FindWalletProductTable/index.tsx | 7 +++++-- src/lib/utils/wallets.ts | 7 +++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/components/FindWalletProductTable/index.tsx b/src/components/FindWalletProductTable/index.tsx index c58d4c4d533..f75658e884f 100644 --- a/src/components/FindWalletProductTable/index.tsx +++ b/src/components/FindWalletProductTable/index.tsx @@ -84,9 +84,12 @@ const FindWalletProductTable = ({ wallets }: { wallets: Wallet[] }) => { const personasWalletCounts = useMemo(() => { return walletPersonas.map((persona) => - getFilteredWalletsCount(persona.presetFilters as WalletFilter) + getFilteredWalletsCount( + filteredData, + persona.presetFilters as WalletFilter + ) ) - }, [walletPersonas]) + }, [filteredData, walletPersonas]) // Reset filters const resetFilters = () => { diff --git a/src/lib/utils/wallets.ts b/src/lib/utils/wallets.ts index edde435fb83..d3234827d39 100644 --- a/src/lib/utils/wallets.ts +++ b/src/lib/utils/wallets.ts @@ -196,8 +196,11 @@ export const getLanguageCountWalletsData = (locale: string) => { return languageCountWalletsData } -export const getFilteredWalletsCount = (filters: WalletFilter) => { - return walletsData.filter((wallet) => { +export const getFilteredWalletsCount = ( + wallets: WalletData[], + filters: WalletFilter +) => { + return wallets.filter((wallet) => { const activeFilters = Object.entries(filters).filter( ([_, value]) => value === true ) From ead25a9dae431ec5b1196dc76dcd4ec8385ba833 Mon Sep 17 00:00:00 2001 From: JoeChenJ Date: Thu, 13 Mar 2025 17:03:32 +0800 Subject: [PATCH 006/106] tweak personas padding on mobile --- src/components/ProductTable/PresetFilters.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/ProductTable/PresetFilters.tsx b/src/components/ProductTable/PresetFilters.tsx index e3429821915..0a97e01f84a 100644 --- a/src/components/ProductTable/PresetFilters.tsx +++ b/src/components/ProductTable/PresetFilters.tsx @@ -59,7 +59,7 @@ const PresetFilters = ({ >
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Réimse fócais + + Ainm +
+ Bordáil criptea-airgeadais + + The Reown Pulse 2024: Meon Tomhaltóra Criptea & Úsáid +
+ Bordáil criptea-airgeadais + + CRADL: UX i Criptea-airgeadra +
+ Bordáil criptea-airgeadais + + CRADL: Bordáil i gCriptea-airgeadra +
+ Bordáil criptea-airgeadais + + Tuarascáil Bitcoin UX +
+ Bordáil criptea-airgeadais + + ConSensys: Staid an dearcadh Web3 ar fud an domhain 2023 +
+ Bordáil criptea-airgeadais + + NEAR: Ag luasghéarú ar an turas i dtreo glacadh +
+ Geallchur + + OpenUX: Oibreoir Nód Linn Roicéid UX +
+ Geallchur + + Geallchur: Príomhthreochtaí, tátail, agus tuar - Eth Staker +
+ Geallchur + + Geallchur Il-Aip +
+ DAO + + Nuashonrú Taighde 2022 DAO: Cad atá de Dhíth ar Thógálaithe DAO? +
+ DeFi + + Linnte clúdaigh +
+ DeFi + + ConSensys: Tuarascáil Taighde Úsáideoir DeFi 2022 +
+ Meiteachruinne + + Meiteachruinne: Tuarascáil Taighde Úsáideoir +
+ Meiteachruinne + + Ag dul ar Safari: Ag déanamh Taighde ar Úsáideoirí sa Meiteachruinne (físeán, 27 nóim) +
+ Staitisticí UX Ethereum.org + + Painéal suirbhé inúsáidteachta agus sástacht úsáideoirí - Ethereum.org +
+ +## Dearadh do web3 {#design-for-web3} + +- [Lámhleabhar Dearaidh Web3 UX](https://web3ux.design/) - Treoir phraiticiúil chun aipeanna Web3 a dhearadh +- [Prionsabail Dearaidh Web3](https://medium.com/@lyricalpolymath/web3-design-principles-f21db2f240c1) - Creat de rialacha UX le haghaidh dapps bunaithe ar bhlocshlabhra +- [Prionsabail Dearaidh Blocshlabhra](https://medium.com/design-ibm/blockchain-design-principles-599c5c067b6e) - Ceachtanna foghlamtha ag foireann deartha blocshlabhra ag IBM +- [Neueux.com](https://neueux.com/apps) - sreabhann leabharlann Chomhéadain úsáideora le roghanna scagtha éagsúla +- [Géarchéim Inúsáidteachta Web3: Rudaí a Chaithfidh Atá A Dhíth A Fhios Agat!](https://www.youtube.com/watch?v=oBSXT_6YDzg) - Plé phainéil ar na contúirtí a bhaineann le tógáil tionscadal atá dírithe ar an bhforbróir (físeán, 34 nóim) + +## Ag Tosú {#getting-started} + +- [Heorastaic le haghaidh Web3](/developers/docs/design-and-ux/heuristics-for-web3/) - 7 heorastaic le haghaidh dearadh comhéadain Web3 +- [Dea-Chleachtais Dearaidh DEX](/developers/docs/design-and-ux/dex-design-best-practice/) - Treoir chun Malartuithe Díláraithe a dhearadh + +## Staidéar ar Chásanna Dearaidh Web3 {#design-case-studies} + +- [Stiúideo Deep Work](https://deepwork.studio/case-studies/) +- [NFT a dhíol ar OpenSea](https://builtformars.com/case-studies/opensea) +- [Scrúdaigh Wallet UX conas is gá na sparán a athrú](https://www.youtube.com/watch?v=oTpuxYj8JWI&ab_channel=ETHDenver) (físeán, 20 nóim) + +## Deolchairí Dearaidh {#bounties} + +- [Dework](https://app.dework.xyz/bounties) +- [Haiceatón Buildbox](https://app.buidlbox.io/) +- [Haiceatón ETHGlobal](https://ethglobal.com/) + +## Dearadh DAO(anna) agus pobail {#design-daos-and-communities} + +Glac páirt in eagraíochtaí gairmiúla pobal-tiomáinte nó bí páirteach i ngrúpaí dearaidh chun ábhair agus treochtaí a bhaineann le dearadh agus taighde a phlé le baill eile. + +- [Vectordao.com](https://vectordao.com/) +- [Deepwork.studio](https://www.deepwork.studio/) +- [We3.co](https://we3.co/) +- [Openux.xyz](https://openux.xyz/) +- [Foinse Oscailte Web3Design](https://www.web3designers.org/) + +## Córais Dearaidh agus acmhainní dearaidh eile {#design-systems-and-resources} + +- [Dearadh Dóchais](https://www.figma.com/@optimism) (Figma) +- [Córas deartha Ethereum.org](https://www.figma.com/@ethdotorg) (Figma) +- [Finity, córas deartha de réir Polygon](https://www.figma.com/community/file/1073921725197233598/finity-design-system) (Figma) +- [Córas Dearaidh Kleros](https://www.figma.com/community/file/999852250110186964/kleros-design-system) (Figma) +- [Córas Dearaidh Sábháilte](https://www.figma.com/community/file/1337417127407098506/safe-design-system) (Figma) +- [ENS Córas deartha](https://thorin.ens.domains/) +- [Córas Dearaidh Scátháin](https://degen-xyz.vercel.app/) + +**Ní formhuinithe oifigiúla iad na hailt agus na tionscadail atá liostaithe ar an leathanach seo**, agus soláthraítear iad chun críocha faisnéise amháin. Cuirimid naisc leis an leathanach seo bunaithe ar chritéir inár [bpolasaí liostála](/contributing/design/adding-design-resources). Más mian leat go gcuirfimid tionscadal/alt leis, cuir an leathanach seo in eagar ar [GitHub](https://github.com/ethereum/ethereum-org-website/blob/dev/public/content/developers/docs/design-and-ux/index.md). diff --git a/public/content/translations/ga/developers/docs/mev/index.md b/public/content/translations/ga/developers/docs/mev/index.md new file mode 100644 index 00000000000..41a84874377 --- /dev/null +++ b/public/content/translations/ga/developers/docs/mev/index.md @@ -0,0 +1,221 @@ +--- +title: Uasluach inbhainte (MEV) +description: Réamheolas ar an uasluach inbhainte (MEV) +lang: ga +--- + +Tagraíonn uasluach inbhainte (MEV) don luach uasta is féidir a bhaint as táirgeadh bloc de bhreis ar an luach saothair caighdeánach bloc agus táillí gáis trí ordú na n-idirbheart i mbloc a áireamh, a eisiamh agus a athrú. + +## Uasluach inbhainte {#maximal-extractable-value} + +Cuireadh uasluach inbhainte i bhfeidhm ar dtús i gcomhthéacs [cruthúnas-oibre](/developers/docs/consensus-mechanisms/pow/), agus tagraíodh dó ar dtús mar "luach in-eastósctha mianadóra". Tá sé seo amhlaidh toisc go rialaíonn mianadóirí cuimsiú, eisiamh agus ordú idirbheart i cruthúnas-oibre. Ó tharla an t-aistriú go cruthú–geallta tríd [An Cumasc](/roadmap/merge) tá bailíochtóirí freagrach as na róil seo, áfach, agus níl an mhianadóireacht mar chuid de phrótacal Ethereum a thuilleadh. Tá na modhanna eastósctha luacha ann fós, áfach, mar sin úsáidtear an téarma "Uasluach inbhainte" anois ina ionad. + +## Réamhriachtanais {#prerequisites} + +Bí cinnte go bhfuil tú eolach ar [idirbhearta](/developers/docs/transactions/), [bhloic](/developers/docs/blocks/), [cruthúnas-geallta](/developers/docs/consensus-mechanisms/pos) agus [gás](/developers/docs/gas/). Tá cur amach ar [dapps](/dapps/) agus [DeFi](/defi/) cabhrach freisin. + +## Eastóscadh MEV {#mev-extraction} + +Go teoiriciúil fabhraíonn MEV go hiomlán do bhailíochtóirí toisc gurb iad an t-aon pháirtí atá in ann a ráthú go gcuirfear deis bhrabúsach MEV i gcrích. Go praiticiúil, áfach, is rannpháirtithe neamhspleácha líonra dá ngairtear "cuardaitheoirí" cuid mhór de MEV. Reáchtálann cuardaitheoirí algartaim chasta ar shonraí blocshlabhra chun deiseanna brabúsacha MEV a bhrath agus tá róbónna acu chun na hidirbhearta brabúsacha sin a chur isteach sa líonra go huathoibríoch. + +Faigheann bailíochtóirí cuid den MEV iomlán mar sin féin toisc go bhfuil cuardaitheoirí sásta táillí arda gáis a íoc (a théann chuig an bhailíochtóir) mar mhalairt ar an dóchúlacht níos airde go n-áireofar a n-idirbheart brabúsach i mbloc. Ag glacadh leis go bhfuil na cuardaitheoirí réasúnach ó thaobh na heacnamaíochta de, beidh an táille gháis a bheidh an cuardaitheoir sásta a íoc suas le 100% de MEV an chuardaitheora (mar dá mbeadh an táille gháis níos airde, chaillfeadh an cuardaitheoir airgead). + +Leis sin, i gcás roinnt deiseanna MEV atá thar a bheith iomaíoch, mar [arbatráiste DEX](#mev-examples-dex-arbitrage), d’fhéadfadh go mbeadh ar chuardaitheoirí 90% nó fiú níos mó dá n-ioncam MEV iomlán i dtáillí gáis a íoc leis an bhailíochtóirr toisc go bhfuil an oiread sin daoine ag iarraidh an trádáil arbatráiste brabúsach chéanna a reáchtáil. Is é an fáth atá leis seo ná gurb é an t-aon bhealach chun a chinntiú go ritheann a n-idirbheart arbatráiste ná má chuireann siad isteach an t-idirbheart a bhfuil an praghas gáis is airde aige. + +### Gailf gáis {#mev-extraction-gas-golfing} + +D’fhág an dinimic seo go bhfuil cumas i “ngailfáil gháis” — idirbhearta ríomhchláraithe ionas go n-úsáideann siad an méid is lú gáis — ina bhuntáiste iomaíoch, toisc go gceadaíonn sé do chuardaitheoirí praghas gáis níos airde a shocrú agus a dtáillí gáis iomlán a choinneáil seasmhach (ó tháillí gáis = praghas gáis \* gás a úsáidtear). + +I measc na dteicnící aitheanta galfála gáis tá: seoltaí a úsáid a thosaíonn le teaghrán fada nialas (m.sh. [0x0000000000C521824EaFf97Eac7B73B084ef9306](https://etherscan.io/address/0x0000000000c521824eaff97eac7b73b084ef9306)) ós rud é go nglacann siad níos lú spáis (agus dá bhrí sin gás) lena stóráil; agus iarmhéideanna beaga [ERC-20](/developers/docs/standards/tokens/erc-20/) a fhágáil i gconarthaí, ós rud é go gcosnaíonn sé níos mó gáis chun sliotán stórais a thúsú (más é 0 an t-iarmhéid) ná chun sliotán stórais a nuashonrú. Tá taighde á dhéanamh go gníomhach ag lucht cuardaigh le tuilleadh teicníochtaí a aimsiú chun úsáid gáis a laghdú. + +### Reathaithe tosaigh ginearálaithe {#mev-extraction-generalized-frontrunners} + +Seachas algartaim chasta a ríomhchlárú chun deiseanna brabúsacha MEV a bhrath, reáchtálann roinnt cuardaitheoirí reathaithe tosaigh ginearálaithe. Is róbónna iad reathaithe tosaigh ginearálaithe a bhreathnaíonn ar an mempool chun idirbhearta brabúsacha a bhrath. Déanfaidh an reathaí tosaigh cód an idirbhirt a d'fhéadfadh a bheith brabúsach a chóipeáil, cuirfidh seoladh an reathaí tosaigh in ionad seoltaí, agus reáchtálfaidh sé an t-idirbheart go háitiúil chun a sheiceáil faoi dhó go bhfuil brabús mar thoradh ar an idirbheart modhnaithe chuig seoladh an reathaí tosaigh. Má tá an t-idirbheart brabúsach go deimhin, cuirfidh an reathaí tosaigh isteach an t-idirbheart modhnaithe leis an seoladh athsholáthraithe agus praghas gáis níos airde, "ag rith chun tosaigh" leis an idirbheart bunaidh agus ag fáil MEV an chuardaitheora bunaidh. + +### Flashbots {#mev-extraction-flashbots} + +Is tionscadal neamhspleách é Flashbots a leathnaíonn cliaint reatha le seirbhís a ligeann do chuardaitheoirí idirbhearta MEV a chur faoi bhráid bhailitheoirí gan iad a nochtadh don mempool poiblí. Cuireann sé seo cosc ​​ar rith tosaigh ar idirbhearta ag reathaithe tosaigh ginearálaithe. + +## Samplaí MEV {#mev-examples} + +Tagann MEV chun cinn ar an blocshlabhra ar chúpla bealach. + +### Arbatráiste DEX {#mev-examples-dex-arbitrage} + +Is í an arbatráiste [Malartú díláraithe](/glossary/#dex) (DEX) an deis MEV is simplí agus is cáiliúla. Mar thoradh air sin, is é an ceann is iomaíche é freisin. + +Feidhmíonn sé mar seo: má tá dhá DEX ag tairiscint chomhartha ar dhá phraghas dhifriúla, is féidir le duine an comhartha a cheannach ar an DEX ar phraghas níos ísle agus é a dhíol ar an DEX ar phraghas níos airde in aon idirbheart adamhach amháin. A bhuí le meicnic an blocshlabhra, is arbatráiste fíor, gan riosca é seo. + +[Seo sampla](https://etherscan.io/tx/0x5e1657ef0e9be9bc72efefe59a2528d0d730d478cfc9e6cdd09af9f997bb3ef4) d’idirbheart brabúsach arbatráiste nuair a d’iompaigh cuardaitheoir 1,000 ETH go 1,045 ETH trí leas a bhaint as praghsáil dhifriúil ar an bpéire ETH/DAI ar Uniswap vs Sushiswap. + +### Leachtuithe {#mev-examples-liquidations} + +Tugann leachtuithe prótacail iasachtaithe deis MEV aitheanta eile. + +Éilíonn prótacail iasachta cosúil le Maker agus Aave ar úsáideoirí roinnt comhthaobhachta a thaisceadh (m.sh. ETH). Úsáidtear an chomhthaobhacht taiscthe seo ansin chun iasachtaí a thabhairt d'úsáideoirí eile. + +Is féidir le húsáideoirí sócmhainní agus comharthaí a fháil ar iasacht ó dhaoine eile ansin ag brath ar a bhfuil de dhíth orthu (m.sh. d’fhéadfá MKR a fháil ar iasacht más mian leat vótáil i dtogra rialachais MakerDAO) suas go céatadán áirithe dá gcomhthaobhacht taiscthe. Mar shampla, más é uasmhéid na hiasachta 30%, féadfaidh úsáideoir a thaisceann 100 DAI sa phrótacal suas le 30 DAI de shócmhainn eile a fháil ar iasacht. Cinneann an prótacal an céatadán cumhachta iasachtaithe beacht. + +De réir mar a athraíonn luach comhthaobhachta iasachtaí, is amhlaidh a athraíonn a chumhacht iasachtaithe freisin. Más rud é, de bharr luaineachtaí sa mhargadh, go sáraíonn luach na sócmhainní a fuarthas ar iasacht, abair, 30% de luach a gcomhthaobhachta (arís, is é an prótacal a chinneann an céatadán beacht), ceadaíonn an prótacal de ghnáth d’aon duine an chomhthaobhacht a leachtú, ag íoc na n-iasachtóirí ar an toirt (tá sé seo cosúil leis an gcaoi a n-oibríonn [glaonna ar éarlais](https://www.investopedia.com/terms/m/margincall.asp) san airgeadas traidisiúnta). Má dhéantar é a leachtú, is gnách go mbíonn ar an iasachtaí táille mhór leachtaithe a íoc, agus téann cuid de chuig an leachtaitheoir - agus is é sin an áit a dtagann an deis MEV isteach. + +Bíonn cuardaitheoirí in iomaíocht le sonraí blocshlabhra a pharsáil chomh tapa agus is féidir chun a chinneadh cé na hiasachtaithe is féidir a leachtú agus a bheith ar an gcéad duine a chuirfidh idirbheart leachtaithe isteach agus an táille leachtaithe a bhailiú dóibh féin. + +### Trádála ceapaire {#mev-examples-sandwich-trading} + +Is modh coitianta eile d'eastóscadh MEV é trádála ceapaire. + +Le ceapaire a dhéanamh, beidh cuardaitheoir ag faire ar an mempool do thrádálacha móra DEX. Mar shampla, is dócha go bhfuil duine ag iarraidh 10,000 UNI a cheannach le DAI ar Uniswap. Beidh tionchar bríoch ag trádáil den mhéid seo ar an bpéire UNI/DAI, agus d’fhéadfadh go n-ardódh sé go mór praghas an UNI i gcomparáid le DAI. + +Is féidir le cuardaitheoir éifeacht praghais na trádála móire seo ar an bpéire UNI/DAI a ríomh agus ordú ceannaigh optamach a rith láithreach _ roimh_ an trádáil mhór, ag ceannach UNI go saor, ansin ordú díola a rith láithreach _tar éis_ na trádála móire, é a dhíol ar an bpraghas níos airde s thiomsaigh an t-ordú mór. + +Tá baol níos mó ag baint le ceapaire, áfach, toisc nach bhfuil sé adamhach (murab ionann agus arbatráiste DEX, mar a thuairiscítear thuas) agus go bhfuil seans maith ann go ndéanfar[ionsaí salmonella](https://github.com/Defi-Cartel/salmonella). + +### NFT MEV {#mev-examples-nfts} + +Is feiniméan atá ag teacht chun cinn é MEV sa spás NFT, agus ní gá go mbeadh sé brabúsach. + +Mar sin féin, ós rud é go dtarlaíonn idirbhearta NFT ar an blocshlabhra céanna arna roinnt ag gach idirbheart Ethereum eile, is féidir le cuardaitheoirí teicnící comhchosúla a úsáid agus iad siúd a úsáidtear i ndeiseanna traidisiúnta MEV sa mhargadh NFT freisin. + +Mar shampla, má thiteann NFT coitianta agus má tá NFTanna ag teastáil ó chuardaitheoir nó sraith NFTanna áirithe, is féidir leis idirbheart a ríomhchlárú ionas gurb iad féin an chéad duine a cheannaíonn an NFT, nó is féidir leis an tsraith iomlán NFTanna a cheannach in aon idirbheart amháin. Nó má liostaítear NFT ar phraghas íseal de thaisme [, féadfaidh cuardaitheoir dul chun tosaigh ar cheannaitheoirí eile agus é a ghabháil ar phraghas saor](https://www.theblockcrypto.com/post/113546/mistake-sees-69000-cryptopunk-sold-for-less-than-a-cent). + +Tharla sampla suntasach amháin de NFT MEV nuair a chaith cuardaitheoir $7 milliún ar [gach Cryptopunk a cheannach ](https://etherscan.io/address/0x650dCdEB6ecF05aE3CAF30A70966E2F395d5E9E5)ar an bpraghas ba ísle. Mhínigh taighdeoir blocshlabhra [ar Twitter](https://twitter.com/IvanBogatyy/status/1422232184493121538) conas a d’oibrigh an ceannaitheoir le soláthraí MEV chun a gceannach a choinneáil faoi rún. + +### An t-eireaball fada {#mev-examples-long-tail} + +Deiseanna MEV an-aitheanta is ea arbatráiste DEX, leachtuithe agus trádáil ceapairí agus ní dócha go mbeidh siad brabúsach do chuardaitheoirí nua. Mar sin féin, tá eireaball fada deiseanna MEV nach bhfuil mórán aithne orthu (d'fhéadfaí a mhaíomh gur deis amháin den sórt sin é NFT MEV). + +Seans go mbeidh cuardaitheoirí atá díreach ag tosú amach in ann níos mó ratha a fháil ach cuardach a dhéanamh ar MEV san eireaball níos faide seo. Liostaíonn [clár poist MEV](https://github.com/flashbots/mev-job-board) de chuid Flashbot roinnt deiseanna atá ag teacht chun cinn. + +## Éifeachtaí MEV {#effects-of-mev} + +Níl MEV olc ar fad - tá iarmhairtí dearfacha agus diúltacha ag MEV ar Ethereum. + +### An mhaith {#effects-of-mev-the-good} + +Bíonn go leor tionscadal DeFi ag brath ar ghníomhaithe atá réasúnach go heacnamaíoch chun úsáideacht agus cobhsaíocht a bprótacal a chinntiú. Mar shampla, cinntíonn arbatráiste DEX go bhfaigheann úsáideoirí na praghsanna is fearr agus is cirte dá gcuid comharthaí, agus bíonn prótacail iasachtaithe ag brath ar leachtuithe gasta nuair a thiteann iasachtaithe faoi na cóimheasa comhthaobhachta chun a chinntiú go n-íoctar iasachtóirí ar ais. + +Gan cuardaitheoirí réasúnacha atá ag lorg agus ag socrú neamhéifeachtachtaí eacnamaíocha agus ag baint leasa as dreasachtaí eacnamaíocha na bprótacal, d'fhéadfadh sé nach mbeadh prótacail DeFi agus dapps i gcoitinne chomh láidir agus atá siad inniu. + +### An t-olc {#effects-of-mev-the-bad} + +Ag an gciseal feidhmchlár, bíonn taithí níos measa ag úsáideoirí ar chineálacha áirithe MEV, cosúil le trádálacha ceapaire. Bíonn níos mó sciorrtha ar úsáideoirí atá faoi cheangal agus rith níos measa ar a dtrádáil. + +Ag an gciseal líonra, is minic a bhíonn brú tráchta líonra agus praghsanna arda gáis mar thoradh ar reathaithe tosaigh ginearálaithe agus na ceantanna praghsanna gáis a mbíonn siad ag gabháil dóibh (nuair a bhíonn beirt reathaí tosaigh nó níos mó in iomaíocht lena n-idirbheart a áireamh sa chéad bhloc eile trí phraghas gáis a n-idirbheart féin a ardú de réir a chéile). + +Thar a bhfuil ag tarlú _laistigh_ de bhlocanna, is féidir le MEV éifeachtaí díobhálacha a bheith aige _idir_ bloic. Má sháraíonn an MEV atá ar fáil i mbloc go suntasach an luach saothair caighdeánach bloc, féadfar bailíochtóirí a dhreasú chun bloic a atheagrú agus an MEV a ghabháil dóibh féin, rud a fhágann atheagrú blocshlabhra agus éagobhsaíocht chomhdhearcaidh. + +Rinneadh iniúchadh ar an bhféidearthacht seo maidir le hatheagrú blocshlabhra [roimhe seo ar an Bitcoin blocshlabhra](https://dl.acm.org/doi/10.1145/2976749.2978408). Ós rud é go bhfuil leath luach saothair Bitcoin agus táillí idirbhirt mar chuid níos mó agus níos mó den luach saothair bloc, tagann cásanna chun cinn nuair a bhíonn sé réasúnach go heacnamaíoch do mhianadóirí luach saothair an chéad bhloic eile a thabhairt suas agus ina ionad sin bloic a chur i gcuimhne le táillí níos airde. Le fás MEV, d'fhéadfadh an cineál céanna cásanna tarlú i Ethereum, ag bagairt sláine an blocshlabhra. + +## Staid MEV {#state-of-mev} + +Tháinig borradh faoin eastóscadh MEV go luath in 2021, rud a d’fhág go raibh praghsanna gáis thar a bheith ard sa chéad chúpla mí den bhliain. Mar gheall ar theacht chun cinn sealaíochta MEV Flashbots tá laghdú tagtha ar éifeachtacht na reathaithe tosaigh ginearálaithe agus tá ceantanna praghais gáis tógtha as slabhra, ag ísliú praghsanna gáis do ghnáthúsáideoirí. + +Cé go bhfuil go leor cuardaitheoirí fós ag déanamh airgid mhaith as MEV, de réir mar a aithnítear níos mó deiseanna agus go mbíonn níos mó cuardaitheoirí in iomaíocht le haghaidh an deis chéanna, gheobhaidh bailíochtóirí ioncam iomlán MEV níos mó agus níos mó (toisc go dtarlaíonn an cineál céanna ceantanna gáis mar a luadh thuas in Flashbots freisin, cé gur go príobháideach iad, agus gabhfaidh bailíochtóirí an t-ioncam gáis dá bharr). Níl MEV uathúil do Ethereum freisin, agus de réir mar a bhíonn níos mó iomaíocht deiseanna ar Ethereum, tá cuardaitheoirí ag bogadh go blocshlabhraí malartacha cosúil le Binance Smart Chain, áit a bhfuil deiseanna MEV cosúil leo siúd ar Ethereum le níos lú iomaíochta. + +Ar an láimh eile, athraíonn an t-aistriú ó chruthúnas-oibre go cruthúnas-geallta agus an iarracht leanúnach chun scála Ethereum ag baint úsáide as rolladh suas uile an tírdhreach MEV ar bhealaí atá fós beagán doiléir. Ní fios go forleathan fós conas a athraítear dinimic an eastósctha MEV i gcomparáid leis an tsamhail dóchúlachta i gcruthúnas-oibre nó conas a chuirfear isteach air seo nuair a fheidhmítear [toghchán ceannaire rúnda amháin](https://ethresear.ch/t/secret-non-single-leader-election/11789) agus[teicneolaíocht bhailíochtaithe dáilte](/staking/dvt/). Mar an gcéanna, tá sé fós le feiceáil cad iad na deiseanna MEV atá ann nuair a dhéantar an chuid is mó de ghníomhaíocht úsáideoirí a aistriú ó Ethereum agus ar a rolladh suas agus a sceardanna ciseal 2. + +## MEV i gCruthúnas-geallta (PoS) Ethereum {#mev-in-ethereum-proof-of-stake} + +Mar atá mínithe, tá impleachtaí diúltacha ag MEV ar thaithí iomlán an úsáideora agus ar shlándáil ciseal comhthoil. Ach d’fhéadfadh rioscaí nua a bhaineann le MEV eascairt as aistriú Ethereum go comhdhearcadh cruthúnas-geallta (ar a dtugtar “An Cumasc”): + +### Lárú bailíochtóirí {#validator-centralization} + +In Ethereum iar-Cumaisc, tagann bailíochtóirí (tar éis taiscí slándála 32 ETH a dhéanamh) ar chomhdhearcadh maidir le bailíocht na mbloc a chuirtear leis an Slabhra Beacon. Ós rud é go bhféadfadh 32 ETH a bheith thar acmhainn ag go leor, d'fhéadfadh sé gur rogha níos indéanta é [dul isteach i linn gheallchuir](/staking/pools/). Mar sin féin, tá dáileadh sláintiúil [geallta aonair](/staking/solo/) oiriúnach, toisc go maolaíonn sé lárú na mbailíochtóirí agus go bhfeabhsaítear slándáil Ethereum. + +Mar sin féin, creidtear go bhfuil eastóscadh MEV in ann lárú bailíochtóirí a luathú. Tá sé seo amhlaidh i bpáirt toisc, mar de réir mar a thuillleann bailíochtórí [níos lú ar bhlocanna molta](/roadmap/merge/issuance/#how-the-merge-impacts-ETH-supply) ná mar a rinne mianadóirí roimhe seo, go bhfuil tionchar mór ag eastóscadh MEV [ar thuillimh bhailíochtóra](https://github.com/flashbots/eth2-research/blob/main/notebooks/mev-in-eth2/eth2-mev-calc.ipynb) ó tharla[An Cumasc](/roadmap/merge/). + +Is dócha go mbeidh níos mó acmhainní ag linnte geallchuir chun infheistíocht a dhéanamh san optamú a bheadh riachtanach chun deiseanna MEV a ghabháil. Dá mhéad MEV a bhaintear as na linnte seo, is ea is mó acmhainní a bheidh acu chun a gcumas MEV-eastósctha a fheabhsú (agus ioncam iomlán a mhéadú), go bunúsach ag cruthú [eacnamaíochtaí scála](https://www.investopedia.com/terms/e/economiesofscale.asp#). + +Agus níos lú acmhainní ar fáil dóibh, d’fhéadfadh sé nach mbeadh geallsealbhóirí aonair in ann brabús a bhaint as deiseanna MEV. D’fhéadfadh sé seo cur leis an mbrú ar bhailíochtóirí neamhspleácha dul isteach i linnte gealltchuir chumhachtacha chun a dtuilleamh a mhéadú, rud a laghdódh dílárú in Ethereum. + +### Mempools ceadaithe {#permissioned-mempools} + +Mar fhreagra ar ionsaithe ceapaire agus tosaigh, féadfaidh trádálaithe tosú ar mhargaí as slabhra a dhéanamh le bailíochtóirí ar mhaithe le phríobháideachas idirbhirt. In ionad idirbheart féideartha MEV a sheoladh chuig an mempool poiblí, cuireann an trádálaí é go díreach chuig an mbailíochtóir, a chuimsíonn é i bloc agus a scoilteann brabúis leis an trádálaí. + +Leagan níos mó den socrú seo is ea “linnte dorcha” agus feidhmíonn siad mar mempools nó linnte cheadaithe, rochtain-amháin atá oscailte d'úsáideoirí atá sásta táillí áirithe a íoc. Laghdódh an treocht seo neamhcheadaitheacht agus easpa muiníne Ethereum agus d’fhéadfadh sé an blocshlabhra a athrú go meicníocht “íoc le himirt” atá i bhfabhar an tairgeora is airde. + +Chuirfeadh mempools ceadaithe dlús leis na rioscaí láraithe a bhfuil cur síos orthu sa roinn roimhe seo. Is dócha go mbainfidh linnte móra a bhfuil bailíochtóirí iolracha acu leas as príobháideacht idirbheart a thairiscint do thrádálaithe agus úsáideoirí, rud a mhéadóidh a n-ioncam MEV. + +Is croíréimse taighde é dul i ngleic leis na fadhbanna seo a bhaineann le MEV in Ethereum iar-Chumaisc. Go dtí seo, is iad an dá réiteach atá molta chun tionchar diúltach MEV ar dhílárú agus slándáil Ethereum a laghdú tar éis an Chomhcheangail ná [**Deighilt Togra-Tógálaí (PBS)**](/roadmap/pbs/) agus an[**API Tógálaí**](https://github.com/ethereum/builder-specs). + +### Scaradh Togra-Tógálaí {#proposer-builder-separation} + +Sa dá cruthúnas-oibre agus cruthúnas-de-geallta, molann nód a thógann bloc é le cur leis an slabhra le nóid eile atá rannpháirteach sa chomhdhearcadh. Déantar cuid den slabhra canónach as bloc nua tar éis do mhianadóir eile tógáil ar a bharr (in PoW) nó faigheann sé fianuithe ó thromlach na mbailíochtóirí (in PoS). + +Is é an meascán de róil táirgeoirí bloc agus moltóirí bloc a chruthaíonn an chuid is mó de na fadhbanna a bhaineann le MEV a thuairiscítear roimhe seo. Mar shampla, spreagtar nóid chomhdhearcaidh chun atheagrú slabhra a spreagadh in [ionsaithe meirleach ama](https://www.mev.wiki/attack-examples/time-bandit-attack) chun tuilleamh MEV a uasmhéadú. + +[Tá Scaradh Togra-Tógálaí](https://ethresear.ch/t/proposer-block-builder-separation-friendly-fee-market-designs/9725) (PBS) deartha chun tionchar MEV a mhaolú, go háirithe ag an sraith comhdhearcaidh. Is é príomhghné PBS ná rialacha maidir le táirgeoirí bloc agus tairgeoirí bloc a scaradh. Tá bailíochtóirí fós freagrach as bloic a mholadh agus as vótáil, ach tá sé de chúram ar aicme nua sain-aonáin, ar a dtugtar **tógálaithe bloc**, idirbhearta agus bloic thógála a ordú. + +Faoi PBS, cruthaíonn tógálaí bloic beart idirbhirt agus cuireann sé tairiscint chun é a áireamh i mbloc Slabhra Rabhcháin (mar an “pálasta reatha”). Seiceálann an bailíochtóir a roghnaíodh chun an chéad bhloc eile a mholadh na tairiscintí éagsúla agus roghnaíonn sé an beart leis an táille is airde. Go bunúsach cruthaíonn PBS margadh ceant, áit a ndéanann tógálaithe idirbheartaíocht le bailíochtóirí a dhíolann blocspás. + +Úsáideann dearaí reatha PBS scéim [feidhmigh-nocht scéim](https://gitcoin.co/blog/commit-reveal-scheme-on-ethereum/) ina bhfoilsíonn tógálaithe gealltanas cripteagrafach d’inneachar an bhloic (ceanntásc bloc) mar aon lena dtairiscintí. Tar éis dó glacadh leis an tairiscint bhuaiteach, cruthaíonn an moltóir togra bloc sínithe a chuimsíonn an ceanntásc bloc. Táthar ag súil go bhfoilseoidh tógálaí na mbloc corp iomlán an bhloic tar éis dó an moladh bloc sínithe a fheiceáil, agus caithfidh sé go leor [fianuithe](/glossary/#attestation) a fháil ó bhailíochtórí freisin sula dtabharfar chun críche é. + +#### Conas a mhaolaíonn scaradh idir mholtóirí agus tógálaí tionchar MEV? {#how-does-pbs-curb-mev-impact} + +Laghdaíonn scaradh tairgeoir-tógálaí in-phrótacal éifeacht MEV ar chomhdhearcadh trí eastóscadh MEV a bhaint ó chuspóirí bailíochtóirí. Ina áit sin, gabhfaidh tógálaithe bloc a ritheann crua-earraí speisialaithe deiseanna MEV amach anseo. + +Ní fhágann sé seo bailíochtóirí go hiomlán as an ioncam a bhaineann le MEV, áfach, toisc go gcaithfidh tógálaithe tairiscint ard a dhéanamh chun go nglacfaidh bailíochtóirí lena gcuid bloc. Mar sin féin, toisc nach bhfuil na bailíochtóirí dírithe go díreach ar ioncam MEV a bharrfheabhsú, laghdaítear bagairt na n-ionsaithe ropairí ama. + +Laghdaítear rioscaí láraithe MEV freisin le scaradh idir mholtóirí agus tógálaí. Mar shampla, má úsáidtear scéim choitianta um nochtadh gealltanais, ní gá go mbeadh muinín ag tógálaithe as bailíochtóirí gan an deis MEV a ghoid nó gan é a nochtadh do thógálaithe eile. Íslíonn sé seo an bac atá ar gheallsealbhóirí aonair leas a bhaint as MEV, murach sin, bheadh ​​treocht ag tógálaithe i bhfabhar linnte móra a bhfuil iomrá as slabhra orthu agus ag déanamh margaí as slabhra leo. + +Ar an gcaoi chéanna, ní gá do bhailíochtóirí muinín a bheith acu as tógálaithe gan bloc-chomhlachtaí a choinneáil siar nó bloic neamhbhailí a fhoilsiú toisc go bhfuil íocaíocht neamhchoinníollach. Próiseálann táille an bhailíochtóra fós fiú mura bhfuil an bloc molta ar fáil nó má dhearbhaíonn bailíochtóirí eile é a bheith neamhbhailí. Sa chás deiridh sin, caitear an bloc i leataobh go simplí, rud a chuireann iallach ar an tógálaí bloc gach táille idirbhirt agus ioncam MEV a chailleadh. + +### Tógálaí API {#builder-api} + +Cé go ngeallann scaradh idir moltóirí agus tógálaí go laghdófar éifeachtaí eastóscadh MEV, chun é a chur i bhfeidhm éilíonn sé athruithe ar an bprótacal comhdhearcaidh. Go sonrach, ba ghá an riail [rogha foirc](/developers/docs/consensus-mechanisms/pos/#fork-choice) ar an Slabhra Rabhcháin a nuashonrú. Is réiteach sealadach é an [ API Tógálaí](https://github.com/ethereum/builder-specs) atá dírithe ar fheidhmiú oibre deighilte idir moltóirí agus tógálaí a sholáthar, cé go bhfuil boinn tuisceana níos airde ag baint leis. + +Is leagan modhnaithe é an Builder API den [Inneall API](https://github.com/ethereum/execution-apis/blob/main/src/engine/common.md) a úsáideann cliaint chiseal comhdhearcaidh chun ualaí reatha a iarraidh ó chliaint na sraithe reatha. Mar atá leagtha amach sa [sonraíocht bhailíochtóra macánta](https://github.com/ethereum/consensus-specs/blob/dev/specs/bellatrix/validator.md), iarrann bailíochtóirí a roghnaítear le haghaidh bloc a bheartaíonn dualgais beart idirbheart ó chliant reatha nasctha, a áiríonn siad sa bhloc Beacon Slabhra molta. + +Feidhmíonn an Tógálaí API freisin mar earraí lár idir bailíochtóirí agus cliaint ciseal reatha; ach tá sé difriúil toisc go gceadaíonn sé do bhailíochtóirí ar an Slabhra Beacon bloic a fhoinsiú ó aonáin sheachtracha (in ionad bloc a thógáil go háitiúil ag baint úsáide as cliant reatha). + +Seo thíos forbhreathnú ar conas a oibríonn an API Tógálaí: + +1. Ceanglaíonn API Tógálaí an bailíochtóir le líonra de thógálaithe bloc a ritheann cliaint ciseal reatha. Cosúil le PBS, is páirtithe speisialaithe iad tógálaithe a infheistíonn i blocthógáil atá dian ar acmhainní agus a úsáideann straitéisí éagsúla chun ioncam a thuilltear ó leideanna tosaíochta MEV + a uasmhéadú. + +2. Iarrann bailíochtóir (a ritheann cliant sraithe comhdhearcaidh) ualaí reatha mar aon le tairiscintí ón líonra tógálaithe. Áireofar i dtairiscintí ó thógálaithe an ceanntásc pálasta reatha—tiomantas cripteagrafach maidir le hinneachar an phálasta —agus táille le híoc leis an mbailíochtóir. + +3. Déanann an bailíochtóir athbhreithniú ar na tairiscintí isteach agus roghnaíonn sé an pálasta reatha leis an táille is airde. Ag baint úsáide as an Tógálaí API, cruthaíonn an bailíochtóir togra bloc Beacon "dallta" nach n-áirítear ach a shíniú agus an ceanntásc pálasta reatha agus cuireann sé chuig an tógálaí é. + +4. Táthar ag súil go bhfreagróidh an tógálaí atá ag rith an Tógálaí API leis an ualach iomlán reatha nuair a fheiceann sé an togra bloc dall. Ligeann sé seo don bhailíochtóir bloc Beacon "sínithe" a chruthú, a iomadaíonn siad ar fud an líonra. + +5. Táthar ag súil fós go dtógfaidh bailíochtóir a úsáideann an Tógálaí API bloc go háitiúil ar eagla go dteipeann ar an tógálaí bloc freagra a thabhairt go pras, ionas nach gcaillfidh siad luach saothair bloc-togra. Mar sin féin, ní féidir leis an mbailíochtóir bloc eile a chruthú ag baint úsáide as na hidirbhearta atá nochta anois nó as sraith eile, mar gurb ionann é agus _coibhneas_ (ag síniú dhá bhloc laistigh den sliotán céanna), atá ina chion slaisitheach. + +Sampla de chur i bhfeidhm API Tógálaí is ea [MEV Boost](https://github.com/flashbots/mev-boost), feabhsú ar an [ meicníocht ceant Flashbots](https://docs.flashbots.net/Flashbots-auction/overview/) atá deartha chun srian a chur le seachtrachtaí diúltacha MEV. Ligeann ceant Flashbots do bhailíochtóirí atá i mbun cruthúnais ar obair thógála bloic bhrabúsacha a sheachfhoinsiú chuig páirtithe speisialaithe ar a dtugtar **cuardaitheoirí**. ![Léaráid a thaispeánann an sreabhadh MEV go mion](./mev.png) + +Bíonn cuardaitheoirí ag faire amach do dheiseanna brabúsacha MEV agus seolann siad cuacha idirbheart chun bac a chur ar mholtóirí mar aon le [tairiscint phraghas séalaithe](https://en.wikipedia.org/wiki/First-price_sealed-bid_auction) le cur san áireamh sa bhloc. Ní gá don bhailíochtóir atá ag rith mev-geth, ach leagan foirc den chliant go-ethereum (Geth) ach an beart leis an mbrabús is mó a roghnú agus é a áireamh mar chuid den bhloc nua. Chun bloc-thogróirí (bailíochtóirí) a chosaint ó thurscar agus ó idirbhearta neamhbhailí, téann beartáin idirbheart trí **athsheoltóirí** le haghaidh bailíochtaithe sula dtagann siad chuig an moltóir. + +Coinníonn MEV Boost na hoibreacha céanna leis an gcéad cheant Flashbots, cé go bhfuil gnéithe nua deartha le haghaidh aistriú Ethereum go cruthúnas-geallta. Aimsíonn cuardaitheoirí idirbhearta brabúsacha MEV fós le cur san áireamh i mbloic, ach tá aicme nua sain-pháirtithe, ar a dtugtar **tógálaithe**, freagrach as idirbhearta agus cuacha a chomhiomlánú ina mbloic. Glacann tógálaí le tairiscintí ar phraghas séalaithe ó chuardaitheoirí agus reáchtálann sé optamuithe chun an t-ordú is brabúsaí a fháil. + +Tá an t-athsheoltóir fós freagrach as cuacha idirbhirt a bhailíochtú sula gcuirtear ar aghaidh chuig an moltóir iad. Mar sin féin, tugann MEV Boost isteach **eascró** atá freagrach as [infhaighteacht sonraí](/developers/docs/data-availability/) a sholáthar trí bhloc-chomhlachtaí arna seoladh ag tógálaithe agus ceanntásca bloc arna seoladh ag bailíochtóirí a stóráil. Anseo, iarrann bailíochtóir atá ceangailte le sealaíochta na hualaí pálasta reatha atá ar fáil agus úsáideann sé algartam ordaithe MEV Boost chun an ceanntásc pálasta a roghnú leis an tairiscint is airde + leideanna MEV. + +#### Conas a mhaolaíonn an Builder API tionchar MEV? {#how-does-builder-api-curb-mev-impact} + +Is é an buntáiste lárnach a bhaineann leis an API Tógálaí ná an cumas atá aige rochtain ar dheiseanna MEV a dhaonlathú. Trí úsáid a bhaint as scéimeanna gealltanais, cuirtear deireadh le boinn tuisceana iontaobhais agus laghdaítear bacainní iontrála do bhailíochtóirí atá ag iarraidh leas a bhaint as MEV. Ba cheart go laghdódh sé seo an brú ar lucht geallchuir aonair comhtháthú le linnte geallchuir mhóra d’fhonn brabús MEV a mhéadú. + +Spreagfaidh cur i bhfeidhm forleathan an API Tógálaí iomaíocht níos mó i measc tógálaithe bloc, rud a mhéadaíonn friotaíocht na cinsireachta. De réir mar a dhéanann bailíochtóirí athbhreithniú ar thairiscintí ó thógálaithe iolracha, caithfidh tógálaí a bhfuil sé ar intinn aige cinsireacht a dhéanamh ar idirbheart úsáideora amháin nó níos mó chun cosc ​​a chur ar gach tógálaí neamhchinsireachta eile chun a bheith rathúil. Méadaíonn sé seo go mór an costas a bhaineann le cinsireacht a dhéanamh ar úsáideoirí agus cuireann sé in aghaidh an chleachtais. + +Úsáideann roinnt tionscadal, mar MEV Boost, an API Tógálaí mar chuid de struchtúr foriomlán atá deartha chun príobháideacht idirbheart a sholáthar do pháirtithe áirithe, mar thrádálaithe atá ag iarraidh ionsaithe tosaigh/ceapairí a sheachaint. Baintear é seo amach trí chainéal cumarsáide príobháideach a sholáthar idir úsáideoirí agus tógálaithe bloc. Murab ionann agus na mempools ceadaithe a thuairiscítear níos luaithe, tá an cur chuige seo tairbheach ar na cúiseanna seo a leanas: + +1. Toisc go bhfuil il-thógálaithe ar an margadh níl sé praiticiúil an chinsireacht a dhéanamh, rud a théann chun sochair d'úsáideoirí. I gcodarsnacht leis sin, dá mbeadh linnte dorcha láraithe agus bunaithe ar iontaobhas ann, bhaileofaí cumhacht i lámha beagán tógálaithe bloc agus mhéadódh sé an fhéidearthacht cinsireachta. + +2. Is foinse oscailte é bogearraí API Tógálaí, a ligeann do dhuine ar bith seirbhísí bloc-thógálaí a thairiscint. Ciallaíonn sé seo nach gcuirtear iallach ar úsáideoirí aon tógálaí bloc ar leith a úsáid agus feabhsaíonn sé neodracht agus neamhcheadaitheacht Ethereum. Ina theannta sin, ní chuirfidh trádálaithe atá ag lorg MEV leis an lárú trí úsáid a bhaint as bealaí idirbhearta príobháideacha. + +## Acmhainní gaolmhara {#related-resources} + +- [Doiciméid Flashbots](https://docs.flashbots.net/) +- [Flashbots GitHub](https://github.com/flashbots/pm) +- [MEV-Explore](https://explore.flashbots.net/) - _Deais agus taiscéalaí idirbheart beo le haghaidh idirbhearta MEV_ +- [mevboost.org](https://www.mevboost.org/) - _Rianaire le staidreamh fíor-ama le haghaidh athsheachadáin MEV-Boost agus blocthógálaithe_ + +## Tuilleadh léitheoireachta {#further-reading} + +- [Cad is Luach Inbhainte Mianóra (MEV) ann?](https://blog.chain.link/what-is-miner-extractable-value-mev/) +- [MEV agus Mise](https://www.paradigm.xyz/2021/02/mev-and-me) +- [Is Foraois Dhorcha é Ethereum](https://www.paradigm.xyz/2020/08/ethereum-is-a-dark-forest/) +- [Éalú ó bhForaois Dhorcha](https://samczsun.com/escaping-the-dark-forest/) +- [Flashbots: Ag tabhairt aghaidh ar an nGéarchéim MEV](https://medium.com/flashbots/frontrunning-the-mev-crisis-40629a613752) +- [Snáitheanna MEV @bertcmiller](https://twitter.com/bertcmiller/status/1402665992422047747) +- [MEV-Boost: Ailtireacht Flashbots Cumasc-réidh](https://ethresear.ch/t/mev-boost-merge-ready-flashbots-architecture/11177) +- [Cad é MEV Boost](https://www.alchemy.com/overviews/mev-boost) +- [Cén fáth mev-boost a reáchtáil?](https://writings.flashbots.net/writings/why-run-mevboost/) +- [Treoir an tSíobaire don Ethereum](https://members.delphidigital.io/reports/the-hitchhikers-guide-to-ethereum) diff --git a/public/content/translations/ga/developers/docs/oracles/index.md b/public/content/translations/ga/developers/docs/oracles/index.md new file mode 100644 index 00000000000..edf925fca66 --- /dev/null +++ b/public/content/translations/ga/developers/docs/oracles/index.md @@ -0,0 +1,435 @@ +--- +title: Oracail +description: Soláthraíonn Oracail conarthaí cliste Ethereum le rochtain ar shonraí an domhain fíor, ag díghlasáil níos mó cásanna úsáide agus luach níos mó d'úsáideoirí. +lang: ga +--- + +Is feidhmchláir iad Oracail a tháirgeann fothaí sonraí a chuireann foinsí sonraí as slabhra ar fáil don blocshlabhra le haghaidh conarthaí cliste. Tá sé seo riachtanach toisc nach féidir le conarthaí cliste bunaithe ar Ethereum, de réir réamhshocraithe, rochtain a fháil ar fhaisnéis atá stóráilte lasmuigh den líonra blocshlabhra. + +Tríd an gcumas conarthaí cliste a fhorghníomhú ag baint úsáide as sonraí as slabhra, leathnaítear fóntais agus luach na n-iarratas díláraithe. Mar shampla, bíonn margaí tuartha ar slabhra ag brath ar oracail chun faisnéis a sholáthar faoi thorthaí a úsáideann siad chun tuar na n-úsáideoirí a bhailíochtú. Cuir geall Alice 20 ETH ar cé a bheidh mar an chéad Uachtarán eile ar SAM. Sa chás sin, tá oracal ag teastáil ón dapp tuar-mhargaidh chun torthaí toghcháin a dhearbhú agus a chinneadh an bhfuil Alice incháilithe le haghaidh íocaíochta. + +## Réamhriachtanais {#prerequisites} + +Glacann an leathanach seo leis go bhfuil an léitheoir eolach ar bhunghnéithe Ethereum, lena n-áirítear [nóid](/developers/docs/nodes-and-clients/), [meicníochtaí comhdhearcadh](/developers/docs/consensus-mechanisms/), agus na [EVM](/developers/docs/evm/). Ba cheart go mbeadh tuiscint mhaith agat freisin ar [chonarthaí cliste](/developers/docs/smart-contracts/) agus [anatamaíocht chonarthaí cliste](/developers/docs/smart-contracts/anatomy/), go háirithe [imeachtaí](/glossary/#events). + +## Cad is oracal blocshlabhra ann? {#what-is-a-blockchain-oracle} + +Is feidhmchláir iad Oracail a fhoinsíonn, a fhíoraíonn agus a tharchuireann faisnéis sheachtrach (i.e. faisnéis a stóráiltear as slabhra) chuig conarthaí cliste a ritheann ar an mblocshlabhra. Chomh maith le sonraí a "tharraingt" as slabhra agus é a chraoladh ar Ethereum, is féidir le horacail faisnéis a “bhrú” ón mBlocshlabhra chuig córais sheachtracha, m.sh. glas cliste a dhíghlasáil a luaithe a sheolann an t-úsáideoir táille trí idirbheart Ethereum. + +Gan oracal, bheadh ​​conradh cliste teoranta go hiomlán do shonraí ar slabhra. + +Tá difríocht idir Oracail atá bunaithe ar fhoinse na sonraí (foinse amháin nó iolrach), samhlacha muiníne (láraithe nó díláraithe), agus ailtireacht chórais (léite láithreach, foilsigh-liostáil, agus freagra iarratais). Is féidir linn idirdhealú a dhéanamh freisin idir oracail atá bunaithe ar cibé acu a dhéanann siad sonraí seachtracha a aisghabháil lena n-úsáid ag conarthaí ar slabhra (oracail ionchuir), faisnéis a sheoladh ón mblocshlabhra chuig na hiarratais as slabhra (oracail aschuir), nó an ndéanann siad tascanna ríomhaireachtúla as slabhra (oracail ríomhaireachta). + +## Cén fáth a bhfuil oracail ag teastáil ó chonarthaí cliste? {#why-do-smart-contracts-need-oracles} + +Feiceann go leor forbróirí conarthaí cliste mar chód a ritheann ag seoltaí sonracha ar an blocshlabhra. Mar sin féin, [dar le dearcadh ginearálta ar chonarthaí cliste](/smart-contracts/) is gur cláir bhogearraí féin-reatha iad atá in ann comhaontuithe idir páirtithe a fhorghníomhú a luaithe a chomhlíontar coinníollacha sonracha - is é sin bunús an téarma “conarthaí cliste.” + +Ach níl sé simplí conarthaí cliste a úsáid chun comhaontuithe idir daoine a fhorfheidhmiú, ós rud é go bhfuil Ethereum cinntitheach. Is córas é [córas cinntitheach](https://en.wikipedia.org/wiki/Deterministic_algorithm) a thairgeann na torthaí céanna i gcónaí nuair a thugtar staid thosaigh agus ionchur ar leith, rud a chiallaíonn nach bhfuil aon randamacht nó éagsúlacht sa phróiseas ríomh aschuir ó ionchuir. + +Chun forghníomhú cinntitheach a bhaint amach, teorannaíonn blocshlabhra nóid le teacht ar chomhdhearcadh ar cheisteanna simplí dénártha (fíor/bréagach) ag baint úsáide as sonraí _amháin_ atá stóráilte ar an blocshlabhra féin. I measc samplaí de cheisteanna den sórt sin tá: + +- “Ar shínigh úinéir an chuntais (arna sainaithint le heochair phoiblí) an t-idirbheart seo leis an eochair phríobháideach péireáilte?" +- “An bhfuil go leor cistí ag an gcuntas seo chun an t-idirbheart a chlúdach?” +- “An bhfuil an t-idirbheart seo bailí i gcomhthéacs an chonartha chliste seo?”, etc. + +Dá bhfaigheadh ​​blocshlabhra faisnéis ó fhoinsí seachtracha (i.e. ón bhfíorshaol), bheadh ​​sé dodhéanta cinntitheacht a bhaint amach, rud a chuirfeadh cosc ​​ar nóid aontú ar bhailíocht athruithe ar staid na blocshlabhra. Tóg mar shampla conradh cliste a ritheann idirbheart bunaithe ar an ráta malairte ETH-USD reatha a fhaightear ó API praghais traidisiúnta. Is dócha go n-athróidh an figiúr seo go minic (gan trácht ar go bhféadfaí an API a dhímholadh nó a haiceáil), rud a chiallaíonn go dtiocfadh torthaí éagsúla ar nóid a fhorghníomhaíonn an cód conartha céanna. + +I gcás blocshlabhra poiblí cosúil le Ethereum, ina bhfuil na mílte nód ar fud an domhain ag próiseáil idirbhearta, tá cinntitheacht ríthábhachtach. Gan aon údarás lárnach ag feidhmiú mar fhoinse na fírinne, tá meicníochtaí ag teastáil ó nóid chun teacht ar an staid chéanna tar éis na hidirbhearta céanna a chur i bhfeidhm. Má ritheann nód A cód conartha cliste agus go bhfaigheann sé “3” mar thoradh air sin, cé go bhfaigheann nód B “7” tar éis an t-idirbheart céanna a rith, bheadh ​​comhaontú ann chun luach Ethereum a bhriseadh síos mar ardán ríomhaireachta díláraithe agus é a dhíchur. + +Leagann an cás seo béim freisin ar an bhfadhb maidir le blocshlabhraí a dhearadh chun faisnéis a tharraingt ó fhoinsí seachtracha. Réitíonn Oracail, áfach, an fhadhb seo trí fhaisnéis a ghlacadh ó fhoinsí lasmuigh den slabhra agus é a stóráil ar an mblocshlabhra chun conarthaí cliste a ídiú. Ós rud é go bhfuil an fhaisnéis atá stóráilte ar slabhra do-athraithe agus ar fáil go poiblí, is féidir le nóid Ethereum úsáid a bhaint as sonraí oracal allmhairithe lasmuigh den slabhra chun athruithe staide a ríomh gan comhaontú a bhriseadh. + +Chun seo a dhéanamh, is gnách go mbíonn oracal comhdhéanta de chonradh cliste a ritheann ar slabhra agus roinnt comhpháirteanna as slabhra. Faigheann an conradh ar slabhra iarratais ar shonraí ó chonarthaí cliste eile, a aistrítear chuig an gcomhpháirt lasmuigh den slabhra (ar a dtugtar nód oracal). Is féidir leis an nód oracail seo foinsí sonraí a cheistiú - ag baint úsáide as comhéadain ríomhchláraithe feidhmchlár (APIanna), mar shampla - agus idirbhearta a sheoladh chun na sonraí iarrtha a stóráil i stóráil an chonartha chliste. + +Go bunúsach, déanann oracal blocshlabhra an bhearna faisnéise idir an blocshlabhra agus an timpeallacht sheachtrach a líonadh, rud a chruthaíonn “conarthaí cliste hibrideacha”. Is éard atá i gconradh cliste hibrideach ná ceann a fheidhmíonn bunaithe ar mheascán de chód conartha ar slabhra agus bonneagar as slabhra. Is sampla iontach de chonarthaí cliste hibrideacha iad margaí tuar díláraithe. I measc na samplaí eile a d’fhéadfadh a bheith ann tá conarthaí cliste um árachas barr a íocann nuair a chinneann sraith oracal gur tharla feiniméin aimsire áirithe. + +## Cad é an fhadhb oracal? {#the-oracle-problem} + +Réitíonn oracail fadhb thábhachtach, ach tugann siad roinnt deacrachtaí isteach freisin, m.sh.: + +- Conas a dheimhnímid gur baineadh an fhaisnéis a fuarthas ón bhfoinse cheart nó nár cuireadh isteach uirthi? + +- Conas a chinntímid go mbíonn na sonraí seo ar fáil i gcónaí agus go ndéantar iad a nuashonrú go rialta? + +Léiríonn an “fhadhb oracal” mar a thugtar air na saincheisteanna a bhaineann le húsáid oracal blocshlabhra chun ionchuir a sheoladh chuig conarthaí cliste. Ní mór sonraí ó oracal a bheith ceart chun conradh cliste a rith i gceart. Ina theannta sin, baintear an bonn den ghné 'neamhiontaofa' de chonarthaí cliste nuair a chuirtear 'muinín' in oibreoirí oracal faisnéis chruinn a sholáthar. + +Tairgeann oracail éagsúla réitigh éagsúla ar fhadhb na n-oracal, a ndéanaimid iniúchadh orthu níos déanaí. De ghnáth déantar measúnú ar Oracail de réir chomh maith agus is féidir leo na dúshláin seo a leanas a láimhseáil: + +1. **Cruinneas**: Níor cheart go gcuirfeadh oracal faoi deara go spreagfadh conarthaí cliste athruithe staide bunaithe ar shonraí neamhbhailí as slabhra. Caithfidh oracal _barántúlacht_ agus _sláine_ na sonraí a ráthú. Ciallaíonn barántúlacht go bhfuarthas na sonraí ón bhfoinse cheart, agus ciallaíonn sláine gur fhan na sonraí slán (i.e. níor athraíodh iad) sular seoladh iad ar slabhra. + +2. **Infhaighteacht**: Níor cheart go gcuirfeadh oracal moill nó cosc ​​ar chonarthaí cliste ó ghníomhartha a dhéanamh agus athruithe staide a chur i bhfeidhm. Ciallaíonn sé seo go gcaithfidh sonraí ó oracal a bheith _ar fáil ach iad a iarraidh_ gan aon bhriseadh. + +3. **Comhoiriúnacht Dreasachta**: Ba cheart go spreagfadh oracail soláthraithe sonraí as slabhra chun faisnéis cheart a chur isteach i gconarthaí cliste. Is éard atá i gceist le comhoiriúnacht dreasachta ná _inchurthacht_ agus _cuntasacht_. Ceadaíonn inchurthacht píosa faisnéise seachtraí a nascadh lena sholáthraí, agus ceanglaionn bannaí cuntasachta soláthraithe sonraí leis an bhfaisnéis a thugann siad, ionas gur féidir luach saothair a thabhairt dóibh nó pionós a ghearradh orthu bunaithe ar cháilíocht na faisnéise a chuirtear ar fáil. + +## Conas a oibríonn seirbhís blocshlabhra oracal? {#how-does-a-blockchain-oracle-service-work} + +### Úsáideoirí {#users} + +Is aonáin iad úsáideoirí (i.e., conarthaí cliste) a dteastaíonn faisnéis lasmuigh den blocshlabhra uathu chun gníomhartha sonracha a chur i gcrích. Tosaíonn sreabhadh oibre bunúsach seirbhís oracal nuair a chuireann an t-úsáideoir iarratas sonraí chuig an gconradh oracal. De ghnáth freagróidh iarratais ar shonraí cuid de na ceisteanna seo a leanas nó iad uile: + +1. Cad iad na foinsí ar féidir le nóid as slabhra dul i gcomhairle leo le haghaidh na faisnéise iarrtha? + +2. Conas a phróiseálann tuairisceoirí faisnéis ó fhoinsí sonraí agus conas a bhaintear amach pointí sonraí úsáideacha? + +3. Cé mhéad nóid oracal is féidir a bheith rannpháirteach in aisghabháil na sonraí? + +4. Conas is ceart neamhréireachtaí i dtuairiscí oracal a bhainistiú? + +5. Cén modh ba chóir a chur i bhfeidhm chun aighneachtaí a scagadh agus tuarascálacha a chomhiomlánú ina luach aonair? + +### Conradh oracal {#oracle-contract} + +Is é an conradh oracal an chomhpháirt ar slabhra don tseirbhís oracal. Éisteann sé le hiarratais ar shonraí ó chonarthaí eile, athsheoltar fiosrúcháin sonraí chuig nóid oracal, agus craolann sé sonraí a chuirtear ar ais chuig conarthaí cliant. Féadfaidh an conradh seo roinnt ríomh a dhéanamh freisin ar na pointí sonraí aischurtha chun luach comhiomlán a sholáthar le cur chuig an gconradh iarrthach. + +Nochtann an conradh oracal roinnt feidhmeanna a mbíonn gá ag conarthaí cliant leo agus iarratas sonraí á dhéanamh. Ar cheist nua a fháil, taispeánfaidh an conradh cliste [imeacht logála](/developers/docs/smart-contracts/anatomy/#events-and-logs) le sonraí faoin iarratas ar shonraí. Tugann sé seo fógra do nóid as slabhra atá suibscríofa don loga (go hiondúil ag baint úsáide as rud éigin cosúil leis an ordú JSON-RPC `eth_subscribe`), a leanann ar aghaidh ag aisghabháil na sonraí a shainítear san imeacht loga. + +Seo thíos [mar shampla conradh oracal](https://medium.com/@pedrodc/implementing-a-blockchain-oracle-on-ethereum-cedc7e26b49e) le Pedro Costa. Is seirbhís simplí oracal é seo ar féidir APIanna as-slabhra a fhiosrú arna iarraidh sin ag conarthaí cliste eile agus an fhaisnéis iarrtha a stóráil ar an blocshlabhra: + +```solidity +pragma solidity >=0.4.21 <0.6.0; + +contract Oracle { + Request[] requests; //list of requests made to the contract + uint currentId = 0; //increasing request id + uint minQuorum = 2; //minimum number of responses to receive before declaring final result + uint totalOracleCount = 3; // Hardcoded oracle count + + // defines a general api request + struct Request { + uint id; //request id + string urlToQuery; //API url + string attributeToFetch; //json attribute (key) to retrieve in the response + string agreedValue; //value from key + mapping(uint => string) answers; //answers provided by the oracles + mapping(address => uint) quorum; //oracles which will query the answer (1=oracle hasn't voted, 2=oracle has voted) + } + + //event that triggers oracle outside of the blockchain + event NewRequest ( + uint id, + string urlToQuery, + string attributeToFetch + ); + + //triggered when there's a consensus on the final result + event UpdatedRequest ( + uint id, + string urlToQuery, + string attributeToFetch, + string agreedValue + ); + + function createRequest ( + string memory _urlToQuery, + string memory _attributeToFetch + ) + public + { + uint length = requests.push(Request(currentId, _urlToQuery, _attributeToFetch, "")); + Request storage r = requests[length-1]; + + // Hardcoded oracles address + r.quorum[address(0x6c2339b46F41a06f09CA0051ddAD54D1e582bA77)] = 1; + r.quorum[address(0xb5346CF224c02186606e5f89EACC21eC25398077)] = 1; + r.quorum[address(0xa2997F1CA363D11a0a35bB1Ac0Ff7849bc13e914)] = 1; + + // launch an event to be detected by oracle outside of blockchain + emit NewRequest ( + currentId, + _urlToQuery, + _attributeToFetch + ); + + // increase request id + currentId++; + } + + //called by the oracle to record its answer + function updateRequest ( + uint _id, + string memory _valueRetrieved + ) public { + + Request storage currRequest = requests[_id]; + + //check if oracle is in the list of trusted oracles + //and if the oracle hasn't voted yet + if(currRequest.quorum[address(msg.sender)] == 1){ + + //marking that this address has voted + currRequest.quorum[msg.sender] = 2; + + //iterate through "array" of answers until a position if free and save the retrieved value + uint tmpI = 0; + bool found = false; + while(!found) { + //find first empty slot + if(bytes(currRequest.answers[tmpI]).length == 0){ + found = true; + currRequest.answers[tmpI] = _valueRetrieved; + } + tmpI++; + } + + uint currentQuorum = 0; + + //iterate through oracle list and check if enough oracles(minimum quorum) + //have voted the same answer as the current one + for(uint i = 0; i < totalOracleCount; i++){ + bytes memory a = bytes(currRequest.answers[i]); + bytes memory b = bytes(_valueRetrieved); + + if(keccak256(a) == keccak256(b)){ + currentQuorum++; + if(currentQuorum >= minQuorum){ + currRequest.agreedValue = _valueRetrieved; + emit UpdatedRequest ( + currRequest.id, + currRequest.urlToQuery, + currRequest.attributeToFetch, + currRequest.agreedValue + ); + } + } + } + } + } +} +``` + +### Nóid oracal {#oracle-nodes} + +Is é an nód oracal an chomhpháirt as slabhra den tseirbhís oracal. Baineann sé faisnéis as foinsí seachtracha, ar nós APIanna arna óstáil ar fhreastalaithe tríú páirtí, agus cuireann sé ar shlabhra í lena tomhaltas ag conarthaí cliste. Éisteann nóid oracal le haghaidh imeachtaí ón gconradh oracal ar slabhra agus téigh ar aghaidh chun an tasc a thuairiscítear sa logáil a chríochnú. + +Tasc coiteann do nóid oracal is ea iarratas [HTTP GET](https://www.w3schools.com/tags/ref_httpmethods.asp) a sheoladh chuig seirbhís API, an freagra a pharsáil chun sonraí ábhartha a bhaint, formáidiú isteach in aschur inléite blocshlabhra, agus é a sheoladh ar slabhra trína áireamh in idirbheart chuig an gconradh oracal. D’fhéadfadh go mbeadh gá leis an nód oracal freisin chun bailíocht agus sláine na faisnéise a cuireadh isteach a fhianú trí úsáid a bhaint as “cruthúnais bharántúlachta”, a ndéanaimid iniúchadh orthu níos déanaí. + +Bíonn oracail ríomhaireachtúla ag brath freisin ar nóid as slabhra chun tascanna ríomhaireachtúla a dhéanamh a bheadh ​​neamhphraiticiúil a rith ar slabhra, i bhfianaise na gcostas gáis agus na srianta ar mhéid na mbloc. Mar shampla, is féidir go gcuirfí de chúram ar an nód oracal figiúr infhíoraithe randamach a ghiniúint (m.sh., le haghaidh cluichí bunaithe ar blocshlabhra). + +## Patrúin dearadh oracal {#oracle-design-patterns} + +Tagann oracail i gcineálacha éagsúla, lena n-áirítear _léamh láithreach_, _foilsigh-liostáil_, agus _iarratas-freagra_, agus an dá cheann deiridh ar na cinn is mó tóir i measc conarthaí cliste Ethereum. Anseo tugaimid cur síos achomair ar na samhlacha foilsigh-liostáil agus iarratas-freagra. + +### Oracail a fhoilsiú-liostáil {#publish-subscribe-oracles} + +Nochtann an cineál seo oracal “fotha sonraí” ar féidir le conarthaí eile a léamh go rialta mar eolas. Táthar ag súil go n-athróidh na sonraí sa chás seo go minic, mar sin ní mór do chonarthaí cliant éisteacht le haghaidh nuashonruithe ar na sonraí i stóráil an oracal. Is sampla é oracal a sholáthraíonn an fhaisnéis phraghais ETH-USD is déanaí d'úsáideoirí. + +### Oracail Iarratas-freagra {#request-response-oracles} + +Ligeann socrú iarratais-freagra don chonradh cliant sonraí treallacha a iarraidh seachas na sonraí a sholáthraíonn oracal foilsigh-síntiúis. Tá oracail freagra iarratais iontach nuair a bhíonn an tacar sonraí ró-mhór le stóráil i stóras conartha cliste, agus/nó nach mbíonn ach cuid bheag de na sonraí ag teastáil ó úsáideoirí ag aon am. + +Cé go bhfuil sé níos casta ná samhaltáin foilsigh-síntiús, is iad oracail iarratas-freagra go bunúsach an rud a bhfuil cur síos déanta againn air roimhe seo. Beidh comhpháirt ar slabhra ag an oracal a fhaigheann iarratas ar shonraí agus a chuirfidh ar aghaidh chuig nód as slabhra é lena phróiseáil. + +Ní mór d’úsáideoirí a thionscnaíonn fiosrúcháin sonraí an costas a bhaineann le faisnéis a aisghabháil ón bhfoinse as slabhra a chlúdach. Ní mór don chonradh cliant cistí a sholáthar freisin chun costais gháis arna dtabhú ag an gconradh oracail a chlúdach chun an freagra a thabhairt ar ais tríd an bhfeidhm aisghlao a shonraítear san iarraidh a chlúdach. + +## Oracail láraithe vs díláraithe {#types-of-oracles} + +### Oracail láraithe {#centralized-oracles} + +Tá oracal láraithe á rialú ag aonán amháin atá freagrach as faisnéis as slabhra a chomhiomlánú agus sonraí an chonartha oracail a nuashonrú de réir mar a iarrtar. Tá oracail láraithe éifeachtach ós rud é go mbraitheann siad ar fhoinse amháin fírinne. Féadfaidh siad feidhmiú níos fearr i gcásanna ina bhfoilsíonn an t-úinéir tacair sonraí dílseánaigh go díreach le síniú a nglactar leis go forleathan. Mar sin féin, gabhann míbhuntáistí leo freisin: + +#### Ráthaíochtaí íseal cruinnis {#low-correctness-guarantees} + +Le oracail láraithe, níl aon bhealach ann le dearbhú an bhfuil an fhaisnéis a tugadh ceart nó nach bhfuil. Is féidir le soláthraithe “cáiliúla” fiú dul fiáin nó a bheith haiceáilte. Má éiríonn an t-oracal truaillithe, rithfear conarthaí cliste bunaithe ar dhrochshonraí. + +#### Infhaighteacht lag {#poor-availability} + +Ní ráthaítear go gcuirfidh oracail láraithe sonraí as slabhra ar fáil do chonarthaí cliste eile i gcónaí. Má chinneann an soláthraí an tseirbhís a mhúchadh nó má dhéanann haiceálaí comhpháirt as slabhra an oracail a fhuadach, tá do chonradh cliste i mbaol ionsaí séanadh seirbhíse (DoS). + +#### Comhoiriúnacht dreasachta lag {#poor-incentive-compatibility} + +Is minic a bhíonn droch-dhearadh ag oracail láraithe nó ní bhíonn dreasachtaí ann don soláthraí sonraí chun faisnéis chruinn/neamhathraithe a sheoladh. Ní ráthaítear macántacht má íoctar oracal as cruinneas. Éiríonn an fhadhb seo níos mó de réir mar a mhéadaíonn an luach a rialaítear le conarthaí cliste. + +### Oracail dhíláraithe {#decentralized-oracles} + +Tá oracail dhíláraithe deartha chun teorainneacha oracal láraithe a shárú trí dheireadh a chur le pointí aonair teip. Cuimsíonn seirbhís díláraithe oracal rannpháirtithe iolracha i líonra piaraí le piaraí a thagann ar chomhdhearcadh maidir le sonraí as slabhra sula gcuirtear chuig conradh cliste é. + +Ba cheart go mbeadh oracal díláraithe (go hidéalach) gan chead, gan iontaoibh, agus saor ó riarachán ag páirtí lárnach; i ndáiríre, tá dílárú i measc oracal ar speictream. Tá líonraí oracal leath-dhíláraithe ann inar féidir le haon duine a bheith rannpháirteach iontu, ach le “úinéir” a fhormheasann agus a bhaintear nóid bunaithe ar fheidhmíocht stairiúil. Tá líonraí oracal lán-díláraithe ann freisin: is gnách go ritheann siad seo mar bhlocshlabhraí neamhspleácha agus tá meicníochtaí comhaontaithe sainithe acu chun nóid a chomhordú agus chun mí-iompraíocht a phionósú. + +Tagann na buntáistí seo a leanas le húsáid oracal díláraithe: + +### Ráthaíochtaí cruinnis ard {#high-correctness-guarantees} + +Déanann oracail dhíláraithe iarracht cruinneas sonraí a bhaint amach trí úsáid a bhaint as cineálacha cur chuige éagsúla. Áirítear leis sin úsáid a bhaint as cruthúnais a dheimhníonn barántúlacht agus sláine na faisnéise aischurtha agus a éilíonn ar aonáin iolracha aontú faoi bhailíocht na sonraí as slabhra. + +#### Cruthúnas barántúlachta {#authenticity-proofs} + +Is meicníochtaí cripteagrafaíocha iad cruthúnais bharántúlachta a chumasaíonn fíorú neamhspleách faisnéise a fhaightear ó fhoinsí seachtracha. Is féidir leis na cruthúnais seo foinse na faisnéise a bhailíochtú agus athruithe féideartha ar na sonraí a bhrath tar éis iad a fháil. + +I measc samplaí de chruthúnais bharántúlachta tá: + +**Cruthúnais Slándála Sraithe Iompair (TLS)**: Is minic a dhéanann nóid Oracle sonraí a aisghabháil ó fhoinsí seachtracha trí úsáid a bhaint as nasc slán HTTP bunaithe ar phrótacal Slándáil Sraithe Iompair(TLS). Úsáideann roinnt oracal díláraithe cruthúnais barántúlachta chun seisiúin TLS a fhíorú (i.e. malartú faisnéise idir nód agus freastalaí ar leith a dhearbhú) agus chun a dhearbhú nár athraíodh a bhfuil sa seisiún. + +**Timpeallacht Fhianaithe Iontaofa Reatha (TEE)**: Is timpeallacht ríomhbhosca gainimh é [timpeallacht reatha iontaofa](https://en.wikipedia.org/wiki/Trusted_execution_environment) (TEE) atá scoite amach ó phróisis oibriúcháin a chórais óstaigh. Cinntíonn TEEanna go gcoimeádtar sláine, rúndacht agus neamh-inaistritheacht cibé cód feidhmchláir nó sonraí a stóráiltear/a úsáidtear sa timpeallacht ríomha. Is féidir le húsáideoirí fianú a ghiniúint freisin chun a chruthú go bhfuil ásc feidhmchláir ag rith laistigh den timpeallacht reatha iontaofa. + +Éilíonn aicmí áirithe oracal díláraithe ar oibritheoirí nód oracal fianuithe TEE a sholáthar. Deimhníonn sé seo d'úsáideoir go bhfuil an t-oibreoir nód ag rith cliant oracal i dtimpeallacht reatha iontaofa. Cuireann TEEanna cosc ​​ar phróisis sheachtracha cód agus sonraí feidhmchláir a athrú nó a léamh, mar sin, cruthaíonn na fianuithe sin gur choinnigh an nód oracal an fhaisnéis slán agus faoi rún. + +#### Bailíochtú faisnéise bunaithe ar chomhdhearcadh {#consensus-based-validation-of-information} + +Bíonn oracail láraithe ag brath ar fhoinse amháin fírinne agus iad ag soláthar sonraí do chonarthaí cliste, rud a thugann isteach an fhéidearthacht faisnéis mhíchruinn a fhoilsiú. Réitíonn oracail dhíláraithe an fhadhb seo trí bheith ag brath ar nóid oracail iolracha chun faisnéis slabhra a cheistiú. Trí shonraí ó fhoinsí iolracha a chur i gcomparáid, laghdaíonn oracail dhíláraithe an baol go dtabharfar faisnéis neamhbhailí chuig conarthaí slabhra. + +Caithfidh oracail dhíláraithe, áfach, déileáil le neamhréireachtaí san fhaisnéis a fhaightear ó fhoinsí iomadúla as slabhra. Chun difríochtaí faisnéise a íoslaghdú agus a chinntiú go léiríonn na sonraí a chuirtear ar aghaidh chuig an gconradh oracal an tuairim chomhchoiteann ar nóid oracal, úsáideann oracail dhíláraithe na meicníochtaí seo a leanas: + +##### Vótáil/geallchurr chruinneas na sonraí + +Éilíonn roinnt líonraí oracal díláraithe ar rannpháirtithe vótáil nó geall a dhéanamh ar chruinneas na bhfreagraí ar cheisteanna sonraí (m.sh., "Cé a bhuaigh toghchán SAM 2020?") ag baint úsáide as comhartha dúchais an líonra. Déanann prótacal comhiomlánaithe na vótaí agus na geallta a chomhiomlánú ansin agus glacann sé leis an bhfreagra le tacú ón tromlach mar an freagra bailí. + +Gearrtar pionós ar nóid a imíonn a bhfreagraí ó fhreagra an tromlaigh nuair a dháiltear a gcuid comharthaí ar dhaoine eile a sholáthraíonn luachanna níos cruinne. Má chuirtear iallach ar nóid banna a sholáthar sula gcuirtear sonraí ar fáil spreagtar freagairtí macánta ós rud é go nglactar leis gur gníomhaithe eacnamaíocha réasúnacha iad a bhfuil sé de rún acu torthaí a uasmhéadú. + +Cosnaíonn geallchur/vótáil oracail dhíláraithe freisin ó [ionsaithe Scoil](/glossary/#sybil-attack) nuair a chruthaíonn gníomhaithe mailíseacha féiniúlachtaí iolracha chun cluiche a dhéanamh ar an gcóras comhthoil. Mar sin féin, ní féidir le geallála “diúgaireacht” a chosc (nóid oracal ag cóipeáil faisnéise ó dhaoine eile) agus “bailíochtú leisciúil” (nóid oracal ag leanúint an tromlaigh gan an fhaisnéis a fhíorú iad féin). + +##### Meicníochtaí pointe Schelling + +[Is coincheap teoirice cluiche é Pointe Schelling](https://en.wikipedia.org/wiki/Focal_point_(game_theory)) a ghlacann leis go mbeidh aonáin iolracha réamhshocraithe i gcónaí ar réiteach coiteann ar fhadhb in éagmais aon chumarsáide. Is minic a úsáidtear meicníochtaí pointe sceidealaithe i líonraí oracal díláraithe chun a chur ar chumas nóid teacht ar chomhdhearcadh maidir le freagraí ar iarratais ar shonraí. + +Smaoineamh luath chuige seo ab ea [SchellingCoin](https://blog.ethereum.org/2014/03/28/schellingcoin-a-minimal-trust-universal-data-feed/), fotha sonraí atá beartaithe ina gcuireann rannpháirtithe freagraí isteach ar cheisteanna “scálacha” (ceisteanna a bhfuil cur síos ar a gcuid freagraí de réir méide, m.sh., "cad é praghas ETH?"), chomh maith le héarlais. Tugtar luach saothair d'úsáideoirí a sholáthraíonn luachanna idir an 25ú agus an 75ú [peircintíl](https://en.wikipedia.org/wiki/Percentile), agus gearrtar pionós orthu siúd a bhfuil a gcuid luachanna den chuid is mó ag imeacht ón luach airmheánach. + +Cé nach bhfuil SchellingCoin ann níos mó, tá roinnt oracal díláraithe - go háirithe [Prótacal Déantóra Oracal](https://docs.makerdao.com/smart-contract-modules/oracle-module) - ag baint úsáide as meicníocht na n-oracal schelling chun cruinneas na sonraí oracal a fheabhsú. Is éard atá i ngach Déantóir Oracle líonra nóid P2P lasmuigh ("athsheoltóirí" agus "fothaí") a chuireann isteach praghsanna margaidh do shócmhainní comhthaobhachta agus conradh “Medianizer” ar slabhra a ríomhann airmheán gach luach a sholáthraítear. Nuair a bheidh an tréimhse moille shonraithe thart, is é an luach airmheánach seo an praghas tagartha nua don tsócmhainn ghaolmhar. + +I measc na samplaí eile d'oracail a úsáideann meicníochtaí pointe Schelling tá [Tuairisciú As Slabhra Chainlink](https://docs.chain.link/docs/offchain-reporting/) agus [Witnet](https://witnet.io/). Sa dá chóras, déantar freagairtí ó nóid oracail sa líonra piara-le-piara a chomhiomlánú i luach comhiomlán amháin, amhail meán nó airmheán. Tugtar luach saothair nó pionós do nóid de réir a mhéid a ailíníonn a bhfreagraí leis an luach comhiomlán nó a chlaonann siad uaidh. + +Tá meicníochtaí pointe Schelling tarraingteach toisc go n-íoslaghdaíonn siad lorg ar slabhra (ní gá ach idirbheart amháin a sheoladh) agus dílárú á ráthú acu. Is féidir an dara ceann a dhéanamh toisc go gcaithfidh nóid síniú a chur leis an liosta freagraí a cuireadh isteach sula gcuirtear san áireamh é san algartam a tháirgeann an meánluach/an luach airmheánach. + +### Infhaighteacht {#availability} + +Cinntíonn seirbhísí díláraithe oracal infhaighteacht ard sonraí as slabhra ar chonarthaí cliste. Baintear é seo amach tríd an bhfoinse faisnéise as slabhra agus na nóid atá freagrach as an fhaisnéis a aistriú ar an slabhra a dhílárú. + +Cinntíonn sé seo lamháltas lochtanna toisc gur féidir leis an gconradh oracal a bheith ag brath ar nóid iolracha (a bhíonn ag brath ar fhoinsí iomadúla sonraí freisin) chun fiosrúcháin ó chonarthaí eile a rith. Tá dílárú ag leibhéal na n-oibreoir nód foinse _agus_ ríthábhachtach - rithfidh líonra de nóid oracal a fhreastalaíonn ar fhaisnéis arna haisghabháil ón bhfoinse chéanna san fhadhb chéanna le oracal láraithe. + +Is féidir freisin d'oracail geall-bhunaithe oibreoirí nód nach dtugann freagra tapa ar iarratais ar shonraí a íoslaghdú. Spreagann sé seo nóid oracal go mór le hinfheistíocht a dhéanamh i mbonneagar a fhulaingíonn lochtanna agus sonraí a sholáthar go tráthúil. + +### Comhoiriúnacht dreasachta maith {#good-incentive-compatibility} + +Cuireann oracail dhíláraithe dearaí dreasachta éagsúla i bhfeidhm chun iompar [Byzantine](https://en.wikipedia.org/wiki/Byzantine_fault) a chosc i measc nóid oracal. Go sonrach, sroicheann siad _ inchurthacht_ agus _cuntasacht_: + +1. Is minic go mbíonn gá le nóid oracal díláraithe chun na sonraí a sholáthraíonn siad a shíniú mar fhreagra ar iarratais ar shonraí. Cuidíonn an fhaisnéis seo le feidhmíocht stairiúil na nóid oracal a mheas, ionas gur féidir le húsáideoirí nóid oracal neamhiontaofa a scagadh agus iad ag déanamh iarratais ar shonraí. Sampla is ea [Córas Clú Algartam](https://docs.witnet.io/intro/about/architecture#algorithmic-reputation-system) de chuid Witnet. + +2. D'fhéadfadh go n-éileodh oracail dhíláraithe - mar a míníodh níos luaithe - nóid geall a chur ar a muinín i bhfírinne na sonraí a chuireann siad isteach. Má sheasann an t-éileamh, is féidir an geall seo a thabhairt ar ais mar aon le luaíochtaí as seirbhís macánta. Ach is féidir é a laghdú freisin i gcás go bhfuil an fhaisnéis mícheart, rud a thugann tomhas áirithe cuntasachta. + +## Feidhmchláir oracail i gconarthaí cliste {#applications-of-oracles-in-smart-contracts} + +Is cásanna úsáide coitianta iad seo a leanas le haghaidh oracail in Ethereum: + +### Sonraí airgeadais a aisghabháil {#retrieving-financial-data} + +Ceadaíonn feidhmchláir [airgeadais dhíláraithe](/defi/) (DeFi) iasachtú piara le piara, iasachtaíocht agus trádáil sócmhainní. Éilíonn sé seo go minic faisnéis airgeadais dhifriúil a fháil, lena n-áirítear sonraí ráta malairte (chun luach fiat criptea-airgeadraí a ríomh nó chun praghsanna comharthaíochta a chur i gcomparáid) agus sonraí margaí caipitil (chun luach sócmhainní comharthaithe a ríomh, amhail ór nó dollar SAM). + +Ní mór do phrótacal iasachta DeFi, mar shampla, praghsanna reatha an mhargaidh do shócmhainní (m.sh., ETH) a thaisceadh mar chomhthaobhacht a cheistiú. Ligeann sé seo don chonradh luach na sócmhainní comhthaobhachta a chinneadh agus a chinneadh cé mhéad is féidir leis a fháil ar iasacht ón gcóras. + +I measc na “n-oracal praghais” coitianta (mar a thugtar orthu go minic) i DeFi tá Fothaí Praghas Chainlink, [Fotha Praghas Oscailte](https://compound.finance/docs/prices), [ Meánphraghsanna Am-ualaithe (TWAPanna)](https://docs.uniswap.org/contracts/v2/concepts/core-concepts/oracles), agus [Maker Oracles](https://docs.makerdao.com/smart-contract-modules/oracle-module). + +Ba cheart go dtuigfeadh tógálaithe na fainicí a thagann leis na horacail praghais seo sula ndéantar iad a chomhtháthú ina dtionscadal. Soláthraíonn an [t-airteagal](https://blog.openzeppelin.com/secure-smart-contract-guidelines-the-dangers-of-price-oracles/) anailís mhionsonraithe ar cad ba cheart a chur san áireamh nuair a bhíonn sé beartaithe aon cheann de na horacail phraghais luaite a úsáid. + +Seo thíos sampla de conas is féidir leat an praghas ETH is déanaí a fháil ar ais i do chonradh cliste ag baint úsáide as fotha praghsanna Chainlink: + +```solidity +pragma solidity ^0.6.7; + +import "@chainlink/contracts/src/v0.6/interfaces/AggregatorV3Interface.sol"; + +contract PriceConsumerV3 { + + AggregatorV3Interface internal priceFeed; + + /** + * Network: Kovan + * Aggregator: ETH/USD + * Address: 0x9326BFA02ADD2366b30bacB125260Af641031331 + */ + constructor() public { + priceFeed = AggregatorV3Interface(0x9326BFA02ADD2366b30bacB125260Af641031331); + } + + /** + * Returns the latest price + */ + function getLatestPrice() public view returns (int) { + ( + uint80 roundID, + int price, + uint startedAt, + uint timeStamp, + uint80 answeredInRound + ) = priceFeed.latestRoundData(); + return price; + } +} +``` + +### Randamacht infhíoraithe a ghiniúint {#generating-verifiable-randomness} + +Éilíonn iarratais blocshlabhra áirithe, mar shampla cluichí bunaithe ar blocshlabhra nó scéimeanna crannchuir, ardleibhéal dothuartha agus randamacht chun oibriú go héifeachtach. Mar sin féin, cuireann rith cinntitheach blocshlabhraí deireadh le randamacht. + +Ba é an cur chuige bunaidh ná feidhmeanna cripteagrafacha bréige a úsáid, mar `blockhash`, ach d'fhéadfadh gur[láimhsithe ag mianadóirí](https://ethereum.stackexchange.com/questions/3140/risk-of-using-blockhash-other-miners-preventing-attack#:~:text=So%20while%20the%20miners%20can,to%20one%20of%20the%20players.) ag réiteach an algartam cruthúnais-oibre. Chomh maith leis sin, ciallaíonn [athrú go cruthúnas i ngeall ar Ethereum](/roadmap/merge/) nach féidir le forbróirí brath ar `blockhash` a thuilleadh le haghaidh randamacht ar slabhra. Soláthraíonn [meicníocht RANDAO](https://eth2book.info/altair/part2/building_blocks/randomness) an Slabhra Beacon foinse eile randamachta ina ionad sin. + +Is féidir an luach randamach as slabhra a ghiniúint agus é a sheoladh ar slabhra, ach cuireann sé sin ceanglais arda muiníne ar úsáideoirí. Caithfidh siad a chreidiúint gur gineadh an luach go fírinneach trí mheicníochtaí nach féidir a thuar agus nár athraíodh é faoi bhealach. + +Réitíonn oracail atá deartha le haghaidh ríomh as slabhra an fhadhb seo trí thorthaí randamacha a ghiniúint go slán as slabhra a chraolann siad ar slabhra mar aon le cruthúnais cripteagrafacha a dhearbhaíonn nach féidir an próiseas a thuar. Sampla is ea [Chainlink VRF](https://docs.chain.link/docs/chainlink-vrf/) (Feidhm Randamach Infhíoraithe), ar gineadóir uimhreacha randamacha infhíoraithe é atá cothrom agus nach féidir a chur isteach (RNG) úsáideach chun conarthaí cliste iontaofa a thógáil le haghaidh feidhmchláir a bhraitheann ar thorthaí nach féidir a thuar. Sampla eile is ea [API3 QRNG](https://docs.api3.org/explore/qrng/) a fhreastalaíonn ar ghiniúint uimhreacha randamacha Quantum (QRNG) ná modh poiblí Web3 RNG bunaithe ar fheiniméin chandamach, arna sheirbheáil le caoinchead ó Ollscoil Náisiúnta na hAstráile (ANU). + +### Torthaí a fháil le haghaidh imeachtaí {#getting-outcomes-for-events} + +Le horacail, tá sé éasca conarthaí cliste a chruthú a fhreagraíonn d'imeachtaí an domhain fíor. Is féidir é seo a dhéanamh le seirbhísí oracal trí chonarthaí a cheadú chun nascadh le APIanna seachtracha trí chomhpháirteanna as slabhra agus faisnéis a ithe ó na foinsí sonraí sin. Mar shampla, féadfaidh an dapp tuar a luadh níos luaithe a iarraidh ar oracal torthaí toghcháin a thabhairt ar ais ó fhoinse iontaofa as slabhra (m.sh., Associated Press). + +Trí oracal a úsáid chun sonraí a aisghabháil bunaithe ar thorthaí an fhíorshaoil ​​is féidir cásanna úsáide núíosacha eile a úsáid; mar shampla, teastaíonn faisnéis chruinn faoin aimsir, faoi thubaistí, srl. ó tháirge árachais díláraithe chun oibriú go héifeachtach. + +### Conarthaí cliste a uathoibriú {#automating-smart-contracts} + +Ní ritheann conarthaí cliste go huathoibríoch; ina áit sin, ní mór do chuntas faoi úinéireacht sheachtrach (EOA), nó cuntas conartha eile, na feidhmeanna cearta a spreagadh chun cód an chonartha a rith. I bhformhór na gcásanna, is feidhmeanna poiblí an chuid is mó d’fheidhmeanna an chonartha agus is féidir le EOAnna agus conarthaí eile iad a agairt. + +Ach tá _feidhmeanna príobháideacha_ laistigh de chonradh freisin nach bhfuil rochtain ag daoine eile orthu;, ach atá ríthábhachtach d’fheidhmiúlacht iomlán dapp. I measc na samplaí tá feidhm `mintERC721Token()` a bhualann NFTanna nua d’úsáideoirí go tréimhsiúil, feidhm chun íocaíochtaí a dhámhachtain i margadh réamh-mheastacháin, nó feidhm chun comharthaí geallta a dhíghlasáil i DEX. + +Beidh ar fhorbróirí feidhmeanna den sórt sin a spreagadh ag eatraimh chun an feidhmchlár a choinneáil ag rith go réidh. Mar sin féin, d'fhéadfadh sé mar gheall air seo go gcaillfí níos mó uaireanta an chloig ar thascanna leamha d'fhorbróirí, agus is é sin an fáth go bhfuil sé tarraingteach rith conarthaí cliste a uathoibriú. + +Tairgeann roinnt líonraí oracal díláraithe seirbhísí uathoibrithe, a ligeann do nóid oracal lasmuigh den slabhra feidhmeanna conartha cliste a spreagadh de réir pharaiméadair arna sainiú ag an úsáideoir. De ghnáth, éilíonn sé seo “clárú” an chonartha sprice leis an tseirbhís oracal, cistí a sholáthar chun an t-oibreoir oracal a íoc, agus na coinníollacha nó na hamanna a shonrú chun an conradh a chur i bhfeidhm. + +Soláthraíonn [Keeper Network](https://chain.link/keepers) roghanna le haghaidh conarthaí cliste chun tascanna cothabhála rialta a sheachfhoinsiú ar bhealach muiníne íoslaghdaithe agus díláraithe. Léigh [doiciméid an Choimeádta](https://docs.chain.link/docs/chainlink-keepers/introduction/) chun faisnéis a fháil faoi do chonradh a dhéanamh comhoiriúnach do Choimeádaí agus an tseirbhís Upkeep a úsáid. + +## Conas oracail bhlocshlabhraí a úsáid {#use-blockchain-oracles} + +Tá iliomad feidhmchlár oracal ann ar féidir leat a chomhtháthú isteach i do dapp Ethereum: + +**[Chainlink](https://chain.link/)** - _Soláthraíonn líonraí oracal díláraithe Chainlink ionchuir, aschuir agus ríomhanna nach bhfuil aon chur isteach orthu chun tacú le hardchonarthaí cliste ar aon bhlocshlabhra._ + +**[RedStone Oracles](https://redstone.finance/)** - _Is oracal modúlach díláraithe é RedStone a sholáthraíonn fothaí sonraí optamaithe gás. Is sainfheidhm aige fothaí praghais a thairiscint do shócmhainní atá ag teacht chun cinn, mar chomharthaí coinneála leachta (LSTanna), comharthaí ath-ghill leachta (LRTanna), agus díorthaigh ngeallta Bitcoin._ + +**[Croinic](https://chroniclelabs.org/)** - _ Sáraíonn Croinic na teorainneacha reatha maidir le sonraí a aistriú ar slabhra trí oracail inscálaithe, cost-éifeachtach, díláraithe agus infhíoraithe a fhorbairt._ + +**[Witnet](https://witnet.io/)** - _ Oracal gan chead, díláraithe agus frithchinsireachta atá frithsheasmhach in aghaidh na cinsireachta a chabhraíonn le conarthaí cliste freagairt d'imeachtaí an domhain le ráthaíochtaí láidre cripte-eacnamaíochta._ + +**[UMA Oracle](https://uma.xyz)** - _ Ligeann oracal dóchasach UMA le conarthaí cliste sonraí de chineál ar bith d’fheidhmchláir éagsúla a fháil go tapa agus a fháil, lena n-áirítear árachas, díorthaigh airgeadais, agus margaí tuar._ + +**[Tellor](https://tellor.io/)** - _Is prótacal oracal trédhearcach agus gan cead é Tellor le haghaidh do chonradh cliste chun aon sonraí a fháil go héasca aon uair is gá é._ + +**[Prótacal Banna](https://bandprotocol.com/)** - _Is ardán oracail sonraí tras-slabhra é an Prótacal Banna a chomhbhailíonn agus a nascann sonraí ón bhfíorshaol agus APIanna le conarthaí cliste._ + +**[Paralink](https://paralink.network/)** - _ Soláthraíonn Paralink ardán oracal foinse oscailte agus díláraithe le haghaidh conarthaí cliste a ritheann ar Ethereum agus blocshlabhraí tóir eile._ + +**[Pyth Network](https://pyth.network/)** - _Is líonra oracal airgeadais céadpháirtí é an líonra Pyth atá deartha chun sonraí leanúnacha ón saol fíor a fhoilsiú ar shlabhra i dtimpeallacht dhíláraithe, dhíláraithe, agus féin-inbhuanaithe._ + +**[API3 DAO](https://www.api3.org/)** - _Tá API3 DAO ag seachadadh réitigh oracle céadpháirtí a sheachadann trédhearcacht, slándáil agus inscálaitheacht foinse níos fearr i réiteach díláraithe le haghaidh conarthaí cliste_ + +**[Supra](https://supra.com/)** - Foireann uirlisí atá comhtháite go hingearach de réitigh thras-slabhra a nascann gach blocshlabhra, poiblí (L1anna agus L2) nó príobháideach (fiontair), ag soláthar fothaí díláraithe praghais oracal is féidir a úsáid le haghaidh cásanna úsáide slabhra agus as slabhra. + +## Tuilleadh léitheoireachta {#further-reading} + +**Ailt** + +- [Cad is Oracal Blocshlabhra ann?](https://chain.link/education/blockchain-oracles) — _Chainlink_ +- [Cad is Oracal Blocshlabhra ann?](https://betterprogramming.pub/what-is-a-blockchain-oracle-f5ccab8dbd72) - _Patrick Collins_ +- [Oracail Dhíláraithe: forbhreathnú cuimsitheach](https://medium.com/fabric-ventures/decentralised-oracles-a-comprehensive-overview-d3168b9a8841) — _Julien Thevenard_ +- [Oracal Blocshlabhra a chur i bhfeidhm ar Ethereum](https://medium.com/@pedrodc/implementing-a-blockchain-oracle-on-ethereum-cedc7e26b49e) - _Pedro Costa_ +- [Cén fáth nach féidir le conarthaí cliste glaonna API a dhéanamh?](https://ethereum.stackexchange.com/questions/301/why-cant-contracts-make-api-calls) — _StackExchange_ +- [Cén fáth a dteastaíonn oracail dhíláraithe uainn](https://newsletter.banklesshq.com/p/why-we-need-decentralized-oracles) — _Bankless_ +- [Mar sin ba mhaith leat oracle praghais a úsáid](https://samczsun.com/so-you-want-to-use-a-price-oracle/) — _samczsun_ + +**Físeáin** + +- [Oracail agus Fairsingiú Saoráid Blocshlabhra](https://youtu.be/BVUZpWa8vpw) — _Real Vision Finance_ +- [Na difríochtaí idir oracail an chéad pháirtí agus oracail tríú páirtí](https://blockchainoraclesummit.io/first-party-vs-third-party-oracles/) - _Cruinniú Mullaigh Oracal Blocshlabhra_ + +**Ranganna Teagaisc** + +- [Conas Praghas Reatha Ethereum i Solidity a Fháil](https://blog.chain.link/fetch-current-crypto-price-data-solidity/) - _Chainlink_ +- [Sonraí Oracal á n-ídiú](https://docs.chroniclelabs.org/Developers/tutorials/Remix) — _Chronicle_ + +**Tionscadail shamplacha** + +- [tionscadal tosaithe iomlán Chainlink le haghaidh Ethereum i Solidity](https://github.com/hackbg/chainlink-fullstack) — _HackBG_ diff --git a/public/content/translations/ga/developers/docs/smart-contracts/anatomy/index.md b/public/content/translations/ga/developers/docs/smart-contracts/anatomy/index.md new file mode 100644 index 00000000000..ea73e14450e --- /dev/null +++ b/public/content/translations/ga/developers/docs/smart-contracts/anatomy/index.md @@ -0,0 +1,658 @@ +--- +title: Anatamaíocht na gconarthaí cliste +description: Súil ghrinn ar anatamaíocht teagmhála cliste – na feidhmeanna, na sonraí, agus na hathróga. +lang: ga +--- + +Is clár é conradh cliste a ritheann ag seoladh ar Ethereum. Tá siad comhdhéanta de shonraí agus feidhmeanna is féidir a fhorghníomhú tar éis idirbheart a fháil. Seo forbhreathnú ar cad is conradh cliste ann. + +## Réamhriachtanais {#prerequisites} + +Bí cinnte gur léigh tú faoi [conarthaí cliste](/developers/docs/smart-contracts/) ar dtús. Glacann an doiciméad seo leis go bhfuil cur amach agat ar theangacha ríomhchlárúcháin mar JavaScript nó Python cheana féin. + +## Sonraí {#data} + +Ní mór sonraí conartha ar bith a shannadh chuig láthair: chuig `stóráil` nó `cuimhne`. Tá sé costasach an stóráil a mhodhnú i gconradh cliste agus mar sin ní mór duit smaoineamh ar an áit ar cheart do shonraí a choinneáil. + +### Stóráil {#storage} + +Tagraítear do shonraí marthanacha mar stóráil agus léirítear iad le hathróga stáit. Stóráiltear na luachanna seo go buan ar an blocshlabhra. Ní mór duit an cineál a dhearbhú ionas gur féidir leis an gconradh súil a choinneáil ar cé mhéad stórála ar an blocshlabhra a theastaíonn nuair a thiomsaíonn sé. + +```solidity +// Solidity example +contract SimpleStorage { + uint storedData; // State variable + // ... +} +``` + +```python +# Vyper example +storedData: int128 +``` + +Má tá teangacha réad-dhírithe ríomhchláraithe agat cheana féin, is dócha go mbeidh cur amach agat ar fhormhór na gcineálacha. Ach ba cheart go mbeadh `seoladh` nua duit más rud é go bhfuil tú nua i bhforbairt Ethereum. + +Is féidir le cineál `seoladh` seoladh Ethereum a bheith aige arb ionann é agus 20 beart nó 160 giotán. Filleann sé i nodaireacht heicsidheachúil le 0x tosaigh. + +I measc na gcineálacha eile tá: + +- boole +- slánuimhir +- uimhreacha pointí seasta +- eagair beart de mhéid seasta +- eagair beart dinimiciúil-mhéid +- Litriúla réasúnacha agus slánuimhir +- Litriúla teaghráin +- Litriúla heicsidheachúlacha +- Enums + +Le haghaidh tuilleadh mínithe, féach ar na doiciméid: + +- [Féach cineálacha Vyper](https://vyper.readthedocs.io/en/v0.1.0-beta.6/types.html#value-types) +- [Féach cineálacha Solidity](https://solidity.readthedocs.io/en/latest/types.html#value-types) + +### Cuimhne {#memory} + +Athróga cuimhne a thugtar ar luachanna nach stóráiltear ach ar feadh shaolré fhorghníomhú feidhme an chonartha. Ós rud é nach stóráiltear iad seo go buan ar an mblocshlabhra, tá siad i bhfad níos saoire le húsáid. + +Foghlaim tuilleadh faoin gcaoi a stórálann an EVM sonraí (Stóráil, Cuimhne, agus an Cruach) sa [Doiciméid Solidity](https://solidity.readthedocs.io/en/latest/introduction-to-smart-contracts.html?highlight=memory#storage-memory-and-the-stack). + +### Athróga timpeallachta {#environment-variables} + +Chomh maith leis na hathróga a shainíonn tú ar do chonradh, tá roinnt athróg domhanda speisialta ann. Úsáidtear iad go príomha chun faisnéis a sholáthar faoin blocshlabhra nó faoin idirbheart reatha. + +Samplaí: + +| **Prop** | **Athróg staide** | **Tuairisc** | +| ----------------- | ----------------- | ----------------------------------------- | +| `block.timestamp` | uint256 | Stampa ama aga reatha na mbloc | +| `msg.sender` | seoladh | Seoltóir na teachtaireachta (glao reatha) | + +## Feidhmeanna {#functions} + +Lena rá go simplí, is féidir le feidhmeanna faisnéis a fháil nó faisnéis a shocrú mar fhreagra ar idirbhearta ag teacht isteach. + +Tá dhá chineál glaonna feidhme ann: + +- `internal` – ní chruthaíonn siad seo glao EVM + - Ní féidir rochtain a fháil ar fheidhmeanna inmheánacha agus ar athróga staide ach go hinmheánach (i.e. ón taobh istigh den chonradh reatha nó de na conarthaí a eascraíonn as) +- `seachtrach` –cruthaíonn siad seo glao EVM + - Is cuid den chomhéadan conartha iad feidhmeanna seachtracha, rud a chiallaíonn gur féidir iad a ghlaoch ó chonarthaí eile agus trí idirbhearta. Ní féidir glaoch inmheánach a chur ar fheidhm sheachtrach `f` (i.e. ní oibríonn `f()`, ach oibríonn `this.f()`). + +Is féidir leo a bheith `poiblí` nó `príobháideach` freisin + +- Is féidir feidhmeanna `poiblí` a ghlaoch go hinmheánach laistigh den chonradh nó go seachtrach trí theachtaireachtaí +- Níl feidhmeanna `private` le feiceáil ach amháin don chonradh ina bhfuil siad sainithe agus ní i gconarthaí díorthaithe + +Is féidir feidhm agus athróg stáit araon a dhéanamh poiblí nó príobháideach + +Seo feidhm chun athróg stáit ar chonradh a nuashonrú: + +```solidity +// Solidity example +function update_name(string value) public { + dapp_name = value; +} +``` + +- Cuirtear an paraiméadar `value` den chineál `string` isteach san fheidhm: `update_name` +- Tá sé fógartha `public`, rud a chiallaíonn gur féidir le haon duine rochtain a fháil air +- Níl sé dearbhaithe `view`, mar sin is féidir leis staid an chonartha a mhodhnú + +### Amharc ar fheidhmeanna {#view-functions} + +Geallann na feidhmeanna seo nach modhnófar staid shonraí an chonartha. Samplaí coitianta is ea feidhmeanna "getter" - d'fhéadfá é seo a úsáid chun iarmhéid úsáideora a fháil mar shampla. + +```solidity +// Solidity example +function balanceOf(address _owner) public view returns (uint256 _balance) { + return ownerPizzaCount[_owner]; +} +``` + +```python +dappName: public(string) + +@view +@public +def readName() -> string: + return dappName +``` + +Cad a mheastar a stát modhnaithe: + +1. Ag scríobh chuig athróga luaigh. +2. [Astú imeachtaí](https://solidity.readthedocs.io/en/v0.7.0/contracts.html#events). +3. [Conarthaí eile a chruthú](https://solidity.readthedocs.io/en/v0.7.0/control-structures.html#creating-contracts). +4. Ag úsáid `selfdestruct`. +5. Éitear a sheoladh trí ghlaonna. +6. Ag glaoch ar fheidhm ar bith nach bhfuil marcáilte `view` nó `pure`. +7. Ag baint úsáide as glaonna ar leibhéal íseal. +8. Ag baint úsáide as cóimeáil inlíne ina bhfuil opcodes áirithe. + +### Feidhmeanna tógálaí {#constructor-functions} + +Ní dhéantar feidhmeanna `constructor` a fhorghníomhú ach uair amháin nuair a chuirtear an conradh i bhfeidhm ar dtús. Cosúil le `constructor` i go leor teangacha ríomhchláraithe rangbhunaithe, is minic a chuireann na feidhmeanna seo tús le hathróga stáit chuig a luachanna sonraithe. + +```solidity +// Solidity example +// Initializes the contract's data, setting the `owner` +// to the address of the contract creator. +constructor() public { + // All smart contracts rely on external transactions to trigger its functions. + // `msg` is a global variable that includes relevant data on the given transaction, + // such as the address of the sender and the ETH value included in the transaction. + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/units-and-global-variables.html#block-and-transaction-properties + owner = msg.sender; +} +``` + +```python +# Vyper example + +@external +def __init__(_beneficiary: address, _bidding_time: uint256): + self.beneficiary = _beneficiary + self.auctionStart = block.timestamp + self.auctionEnd = self.auctionStart + _bidding_time +``` + +### Feidhmeanna insuite {#built-in-functions} + +Chomh maith leis na hathróga agus na feidhmeanna a shainíonn tú ar do chonradh, tá roinnt feidhmeanna ionsuite speisialta ann. Is é an sampla is soiléire: + +- `address.send()` – Solidity +- `send(address)` – Vyper + +Ligeann siad seo conarthaí chun ETH a sheoladh chuig cuntais eile. + +## Feidhmeanna scríbhneoireachta {#writing-functions} + +Do chuid riachtanais feidhme: + +- athróg agus cineál paraiméadar (má ghlacann sé le paraiméadair) +- dearbhú inmheánach/seachtrach +- dearbhú íon/amharc/iníoctha +- cineál tuairisceáin (má aisfhilleann sé luach) + +```solidity +pragma solidity >=0.4.0 <=0.6.0; + +contract ExampleDapp { + string dapp_name; // state variable + + // Called when the contract is deployed and initializes the value + constructor() public { + dapp_name = "My Example dapp"; + } + + // Get Function + function read_name() public view returns(string) { + return dapp_name; + } + + // Set Function + function update_name(string value) public { + dapp_name = value; + } +} +``` + +Seans go mbeadh cumar mar seo ar chonradh iomlán. Anseo soláthraíonn an fheidhm `tógálaí` luach tosaigh don athróg `dapp_name`. + +## Imeachtaí agus logaí {#events-and-logs} + +Cumasaíonn imeachtaí do chonradh cliste cumarsáid a dhéanamh le d’éadan tosaigh nó le feidhmchláir shíntiúis eile. Nuair a dhéantar idirbheart a bhailíochtú agus a chur le bloc, is féidir le conarthaí cliste imeachtaí agus faisnéis logála a astú, ar féidir leis an éadan tosaigh a phróiseáil agus a úsáid ansin. + +## Samplaí anótáilte {#annotated-examples} + +Seo roinnt samplaí atá scríofa i Solidity. Más mian leat imirt leis an gcód, is féidir leat idirghníomhú leo i [Remix](http://remix.ethereum.org). + +### Beannacht don domhan {#hello-world} + +```solidity +// Specifies the version of Solidity, using semantic versioning. +// Learn more: https://solidity.readthedocs.io/en/v0.5.10/layout-of-source-files.html#pragma +pragma solidity ^0.5.10; + +// Defines a contract named `HelloWorld`. +// A contract is a collection of functions and data (its state). +// Once deployed, a contract resides at a specific address on the Ethereum blockchain. +// Learn more: https://solidity.readthedocs.io/en/v0.5.10/structure-of-a-contract.html +contract HelloWorld { + + // Declares a state variable `message` of type `string`. + // State variables are variables whose values are permanently stored in contract storage. + // The keyword `public` makes variables accessible from outside a contract + // and creates a function that other contracts or clients can call to access the value. + string public message; + + // Similar to many class-based object-oriented languages, a constructor is + // a special function that is only executed upon contract creation. + // Constructors are used to initialize the contract's data. + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#constructors + constructor(string memory initMessage) public { + // Accepts a string argument `initMessage` and sets the value + // into the contract's `message` storage variable). + message = initMessage; + } + + // A public function that accepts a string argument + // and updates the `message` storage variable. + function update(string memory newMessage) public { + message = newMessage; + } +} +``` + +### Comhartha {#token} + +```solidity +pragma solidity ^0.5.10; + +contract Token { + // An `address` is comparable to an email address - it's used to identify an account on Ethereum. + // Addresses can represent a smart contract or an external (user) accounts. + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/types.html#address + address public owner; + + // A `mapping` is essentially a hash table data structure. + // This `mapping` assigns an unsigned integer (the token balance) to an address (the token holder). + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/types.html#mapping-types + mapping (address => uint) public balances; + + // Events allow for logging of activity on the blockchain. + // Ethereum clients can listen for events in order to react to contract state changes. + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#events + event Transfer(address from, address to, uint amount); + + // Initializes the contract's data, setting the `owner` + // to the address of the contract creator. + constructor() public { + // All smart contracts rely on external transactions to trigger its functions. + // `msg` is a global variable that includes relevant data on the given transaction, + // such as the address of the sender and the ETH value included in the transaction. + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/units-and-global-variables.html#block-and-transaction-properties + owner = msg.sender; + } + + // Creates an amount of new tokens and sends them to an address. + function mint(address receiver, uint amount) public { + // `require` is a control structure used to enforce certain conditions. + // If a `require` statement evaluates to `false`, an exception is triggered, + // which reverts all changes made to the state during the current call. + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/control-structures.html#error-handling-assert-require-revert-and-exceptions + + // Only the contract owner can call this function + require(msg.sender == owner, "You are not the owner."); + + // Enforces a maximum amount of tokens + require(amount < 1e60, "Maximum issuance exceeded"); + + // Increases the balance of `receiver` by `amount` + balances[receiver] += amount; + } + + // Sends an amount of existing tokens from any caller to an address. + function transfer(address receiver, uint amount) public { + // The sender must have enough tokens to send + require(amount <= balances[msg.sender], "Insufficient balance."); + + // Adjusts token balances of the two addresses + balances[msg.sender] -= amount; + balances[receiver] += amount; + + // Emits the event defined earlier + emit Transfer(msg.sender, receiver, amount); + } +} +``` + +### Sócmhainn dhigiteach uathúil {#unique-digital-asset} + +```solidity +pragma solidity ^0.5.10; + +// Imports symbols from other files into the current contract. +// In this case, a series of helper contracts from OpenZeppelin. +// Learn more: https://solidity.readthedocs.io/en/v0.5.10/layout-of-source-files.html#importing-other-source-files + +import "../node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol"; +import "../node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol"; +import "../node_modules/@openzeppelin/contracts/introspection/ERC165.sol"; +import "../node_modules/@openzeppelin/contracts/math/SafeMath.sol"; + +// The `is` keyword is used to inherit functions and keywords from external contracts. +// In this case, `CryptoPizza` inherits from the `IERC721` and `ERC165` contracts. +// Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#inheritance +contract CryptoPizza is IERC721, ERC165 { + // Uses OpenZeppelin's SafeMath library to perform arithmetic operations safely. + // Learn more: https://docs.openzeppelin.com/contracts/2.x/api/math#SafeMath + using SafeMath for uint256; + + // Constant state variables in Solidity are similar to other languages + // but you must assign from an expression which is constant at compile time. + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#constant-state-variables + uint256 constant dnaDigits = 10; + uint256 constant dnaModulus = 10 ** dnaDigits; + bytes4 private constant _ERC721_RECEIVED = 0x150b7a02; + + // Struct types let you define your own type + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/types.html#structs + struct Pizza { + string name; + uint256 dna; + } + + // Creates an empty array of Pizza structs + Pizza[] public pizzas; + + // Mapping from pizza ID to its owner's address + mapping(uint256 => address) public pizzaToOwner; + + // Mapping from owner's address to number of owned token + mapping(address => uint256) public ownerPizzaCount; + + // Mapping from token ID to approved address + mapping(uint256 => address) pizzaApprovals; + + // You can nest mappings, this example maps owner to operator approvals + mapping(address => mapping(address => bool)) private operatorApprovals; + + // Internal function to create a random Pizza from string (name) and DNA + function _createPizza(string memory _name, uint256 _dna) + // The `internal` keyword means this function is only visible + // within this contract and contracts that derive this contract + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#visibility-and-getters + internal + // `isUnique` is a function modifier that checks if the pizza already exists + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/structure-of-a-contract.html#function-modifiers + isUnique(_name, _dna) + { + // Adds Pizza to array of Pizzas and get id + uint256 id = SafeMath.sub(pizzas.push(Pizza(_name, _dna)), 1); + + // Checks that Pizza owner is the same as current user + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/control-structures.html#error-handling-assert-require-revert-and-exceptions + + // note that address(0) is the zero address, + // indicating that pizza[id] is not yet allocated to a particular user. + + assert(pizzaToOwner[id] == address(0)); + + // Maps the Pizza to the owner + pizzaToOwner[id] = msg.sender; + ownerPizzaCount[msg.sender] = SafeMath.add( + ownerPizzaCount[msg.sender], + 1 + ); + } + + // Creates a random Pizza from string (name) + function createRandomPizza(string memory _name) public { + uint256 randDna = generateRandomDna(_name, msg.sender); + _createPizza(_name, randDna); + } + + // Generates random DNA from string (name) and address of the owner (creator) + function generateRandomDna(string memory _str, address _owner) + public + // Functions marked as `pure` promise not to read from or modify the state + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#pure-functions + pure + returns (uint256) + { + // Generates random uint from string (name) + address (owner) + uint256 rand = uint256(keccak256(abi.encodePacked(_str))) + + uint256(_owner); + rand = rand % dnaModulus; + return rand; + } + + // Returns array of Pizzas found by owner + function getPizzasByOwner(address _owner) + public + // Functions marked as `view` promise not to modify state + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#view-functions + view + returns (uint256[] memory) + { + // Uses the `memory` storage location to store values only for the + // lifecycle of this function call. + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/introduction-to-smart-contracts.html#storage-memory-and-the-stack + uint256[] memory result = new uint256[](ownerPizzaCount[_owner]); + uint256 counter = 0; + for (uint256 i = 0; i < pizzas.length; i++) { + if (pizzaToOwner[i] == _owner) { + result[counter] = i; + counter++; + } + } + return result; + } + + // Transfers Pizza and ownership to other address + function transferFrom(address _from, address _to, uint256 _pizzaId) public { + require(_from != address(0) && _to != address(0), "Invalid address."); + require(_exists(_pizzaId), "Pizza does not exist."); + require(_from != _to, "Cannot transfer to the same address."); + require(_isApprovedOrOwner(msg.sender, _pizzaId), "Address is not approved."); + + ownerPizzaCount[_to] = SafeMath.add(ownerPizzaCount[_to], 1); + ownerPizzaCount[_from] = SafeMath.sub(ownerPizzaCount[_from], 1); + pizzaToOwner[_pizzaId] = _to; + + // Emits event defined in the imported IERC721 contract + emit Transfer(_from, _to, _pizzaId); + _clearApproval(_to, _pizzaId); + } + + /** + * Safely transfers the ownership of a given token ID to another address + * If the target address is a contract, it must implement `onERC721Received`, + * which is called upon a safe transfer, and return the magic value + * `bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))`; + * otherwise, the transfer is reverted. + */ + function safeTransferFrom(address from, address to, uint256 pizzaId) + public + { + // solium-disable-next-line arg-overflow + this.safeTransferFrom(from, to, pizzaId, ""); + } + + /** + * Safely transfers the ownership of a given token ID to another address + * If the target address is a contract, it must implement `onERC721Received`, + * which is called upon a safe transfer, and return the magic value + * `bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))`; + * otherwise, the transfer is reverted. + */ + function safeTransferFrom( + address from, + address to, + uint256 pizzaId, + bytes memory _data + ) public { + this.transferFrom(from, to, pizzaId); + require(_checkOnERC721Received(from, to, pizzaId, _data), "Must implement onERC721Received."); + } + + /** + * Internal function to invoke `onERC721Received` on a target address + * The call is not executed if the target address is not a contract + */ + function _checkOnERC721Received( + address from, + address to, + uint256 pizzaId, + bytes memory _data + ) internal returns (bool) { + if (!isContract(to)) { + return true; + } + + bytes4 retval = IERC721Receiver(to).onERC721Received( + msg.sender, + from, + pizzaId, + _data + ); + return (retval == _ERC721_RECEIVED); + } + + // Burns a Pizza - destroys Token completely + // The `external` function modifier means this function is + // part of the contract interface and other contracts can call it + function burn(uint256 _pizzaId) external { + require(msg.sender != address(0), "Invalid address."); + require(_exists(_pizzaId), "Pizza does not exist."); + require(_isApprovedOrOwner(msg.sender, _pizzaId), "Address is not approved."); + + ownerPizzaCount[msg.sender] = SafeMath.sub( + ownerPizzaCount[msg.sender], + 1 + ); + pizzaToOwner[_pizzaId] = address(0); + } + + // Returns count of Pizzas by address + function balanceOf(address _owner) public view returns (uint256 _balance) { + return ownerPizzaCount[_owner]; + } + + // Returns owner of the Pizza found by id + function ownerOf(uint256 _pizzaId) public view returns (address _owner) { + address owner = pizzaToOwner[_pizzaId]; + require(owner != address(0), "Invalid Pizza ID."); + return owner; + } + + // Approves other address to transfer ownership of Pizza + function approve(address _to, uint256 _pizzaId) public { + require(msg.sender == pizzaToOwner[_pizzaId], "Must be the Pizza owner."); + pizzaApprovals[_pizzaId] = _to; + emit Approval(msg.sender, _to, _pizzaId); + } + + // Returns approved address for specific Pizza + function getApproved(uint256 _pizzaId) + public + view + returns (address operator) + { + require(_exists(_pizzaId), "Pizza does not exist."); + return pizzaApprovals[_pizzaId]; + } + + /** + * Private function to clear current approval of a given token ID + * Reverts if the given address is not indeed the owner of the token + */ + function _clearApproval(address owner, uint256 _pizzaId) private { + require(pizzaToOwner[_pizzaId] == owner, "Must be pizza owner."); + require(_exists(_pizzaId), "Pizza does not exist."); + if (pizzaApprovals[_pizzaId] != address(0)) { + pizzaApprovals[_pizzaId] = address(0); + } + } + + /* + * Sets or unsets the approval of a given operator + * An operator is allowed to transfer all tokens of the sender on their behalf + */ + function setApprovalForAll(address to, bool approved) public { + require(to != msg.sender, "Cannot approve own address"); + operatorApprovals[msg.sender][to] = approved; + emit ApprovalForAll(msg.sender, to, approved); + } + + // Tells whether an operator is approved by a given owner + function isApprovedForAll(address owner, address operator) + public + view + returns (bool) + { + return operatorApprovals[owner][operator]; + } + + // Takes ownership of Pizza - only for approved users + function takeOwnership(uint256 _pizzaId) public { + require(_isApprovedOrOwner(msg.sender, _pizzaId), "Address is not approved."); + address owner = this.ownerOf(_pizzaId); + this.transferFrom(owner, msg.sender, _pizzaId); + } + + // Checks if Pizza exists + function _exists(uint256 pizzaId) internal view returns (bool) { + address owner = pizzaToOwner[pizzaId]; + return owner != address(0); + } + + // Checks if address is owner or is approved to transfer Pizza + function _isApprovedOrOwner(address spender, uint256 pizzaId) + internal + view + returns (bool) + { + address owner = pizzaToOwner[pizzaId]; + // Disable solium check because of + // https://github.com/duaraghav8/Solium/issues/175 + // solium-disable-next-line operator-whitespace + return (spender == owner || + this.getApproved(pizzaId) == spender || + this.isApprovedForAll(owner, spender)); + } + + // Check if Pizza is unique and doesn't exist yet + modifier isUnique(string memory _name, uint256 _dna) { + bool result = true; + for (uint256 i = 0; i < pizzas.length; i++) { + if ( + keccak256(abi.encodePacked(pizzas[i].name)) == + keccak256(abi.encodePacked(_name)) && + pizzas[i].dna == _dna + ) { + result = false; + } + } + require(result, "Pizza with such name already exists."); + _; + } + + // Returns whether the target address is a contract + function isContract(address account) internal view returns (bool) { + uint256 size; + // Currently there is no better way to check if there is a contract in an address + // than to check the size of the code at that address. + // See https://ethereum.stackexchange.com/a/14016/36603 + // for more details about how this works. + // TODO Check this again before the Serenity release, because all addresses will be + // contracts then. + // solium-disable-next-line security/no-inline-assembly + assembly { + size := extcodesize(account) + } + return size > 0; + } +} +``` + +## Tuilleadh léitheoireachta {#further-reading} + +Breathnaigh ar dhoiciméadú Solidity agus Vyper le haghaidh forbhreathnú níos iomláine ar chonarthaí cliste: + +- [Solidity](https://solidity.readthedocs.io/) +- [Vyper](https://vyper.readthedocs.io/) + +## Ábhair ghaolmhara {#related-topics} + +- [Conarthaí cliste](/developers/docs/smart-contracts/) +- [Meaisín fíorúil Ethereum](/developers/docs/evm/) + +## Ranganna teagaisc a bhaineann leo {#related-tutorials} + +- [Íoslaghdú conarthaí chun teorainn mhéide an chonartha a chomhrac](/developers/tutorials/downsizing-contracts-to-fight-the-contract-size-limit/) _ – Roinnt leideanna praiticiúla chun méid do chonartha cliste a laghdú._ +- [Sonraí a logáil ó chonarthaí cliste le himeachtaí](/developers/tutorials/logging-events-smart-contracts/) _- Réamhrá ar imeachtaí conartha cliste agus conas is féidir leat iad a úsáid chun sonraí a logáil._ +- [Idirghníomhaíocht le conarthaí eile ó Solidity](/developers/tutorials/interact-with-other-contracts-from-solidity/) _- Conas conradh cliste a imscaradh ó chonradh atá ann cheana féin agus idirghníomhú leis._ diff --git a/public/content/translations/ga/developers/docs/smart-contracts/compiling/index.md b/public/content/translations/ga/developers/docs/smart-contracts/compiling/index.md new file mode 100644 index 00000000000..cad8d560a44 --- /dev/null +++ b/public/content/translations/ga/developers/docs/smart-contracts/compiling/index.md @@ -0,0 +1,282 @@ +--- +title: Conarthaí cliste a thiomsú +description: Míniú ar cén fáth ar gá duit conarthaí cliste a thiomsú agus cad a dhéanann tiomsú i ndáiríre. +lang: ga +incomplete: true +--- + +Ní mór duit do chonradh a thiomsú ionas gur féidir le d'aip ghréasáin agus le meaisín fíorúil Ethereum (EVM) é a thuiscint. + +## Réamhriachtanais {#prerequisites} + +B’fhéidir go mbeadh sé ina chuidiú agat ár n-intro a léamh maidir le [conarthaí cliste](/developers/docs/smart-contracts/) agus an [meaisín fíorúil Ethereum ](/developers/docs/evm/) sula léann tú faoin tiomsú. + +## An EVM {#the-evm} + +Le go mbeidh an [EVM](/developers/docs/evm/) in ann do chonradh a rith ní mór é a bheith i **mbeartchód**. Déanann an tiomsú é seo: + +```solidity +pragma solidity 0.4.24; + +contract Greeter { + + function greet() public constant returns (string) { + return "Hello"; + } + +} +``` + +**de seo** + +``` +PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH29 0x100000000000000000000000000000000000000000000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP1 PUSH4 0xCFAE3217 EQ PUSH2 0x46 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x52 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5B PUSH2 0xD6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x9B JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x80 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0xC8 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x40 DUP1 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x48656C6C6F000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP1 POP SWAP1 JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 SLT 0xec 0xe 0xf5 0xf8 SLT 0xc7 0x2d STATICCALL ADDRESS SHR 0xdb COINBASE 0xb1 BALANCE 0xe8 0xf8 DUP14 0xda 0xad DUP13 LOG1 0x4c 0xb4 0x26 0xc2 DELEGATECALL PUSH7 0x8994D3E002900 +``` + +Tugtar **opcodes** orthu seo. Is iad opcodes EVM na treoracha íseal-leibhéil is féidir leis an Meaisín Fíorúil Ethereum (EVM) a fhorghníomhú. Léiríonn gach opcode oibríocht shonrach, mar shampla oibríochtaí uimhríochta, oibríochtaí loighciúla, ionramháil sonraí, sreabhadh rialaithe, etc. + +[Tuilleadh faoi opcodes](/developers/docs/evm/opcodes/) + +## Feidhmchláir Ghréasáin {#web-applications} + +Táirgfidh an tiomsaitheoir an **Comhéadan Dénártha Feidhmchláir (ABI)** freisin a bheidh de dhíth ort le go mbeidh d’iarratas in ann an conradh a thuiscint agus feidhmeanna an chonartha a ghlaoch. + +Is comhad JSON é an ABI a chuireann síos ar an gconradh imscartha agus ar a fheidhmeanna conartha cliste. Cuidíonn sé seo leis an mbearna idir web2 agus web3 a líonadh + +Léifidh [leabharlann cliant JavaScript](/developers/docs/apis/javascript/) an **ABI** chun glaoch ar do chonradh cliste i gcomhéadan d'aip gréasáin. + +Seo thíos an ABI don chonradh dearbhán ERC-20. Is comhartha é ERC-20 ar féidir leat a thrádáil ar Ethereum. + +```json +[ + { + "constant": true, + "inputs": [], + "name": "name", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_spender", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_from", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "decimals", + "outputs": [ + { + "name": "", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "name": "balance", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "symbol", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_to", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_owner", + "type": "address" + }, + { + "name": "_spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "payable": true, + "stateMutability": "payable", + "type": "fallback" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "from", + "type": "address" + }, + { + "indexed": true, + "name": "to", + "type": "address" + }, + { + "indexed": false, + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + } +] +``` + +## Tuilleadh léitheoireachta {#further-reading} + +- [sonra ABI](https://solidity.readthedocs.io/en/v0.7.0/abi-spec.html) _– Solidity_ + +## Ábhair ghaolmhara {#related-topics} + +- [Leabharlanna cliant javascript](/developers/docs/apis/javascript/) +- [Meaisín fíorúil Ethereum](/developers/docs/evm/) diff --git a/public/content/translations/ga/developers/docs/smart-contracts/composability/index.md b/public/content/translations/ga/developers/docs/smart-contracts/composability/index.md new file mode 100644 index 00000000000..7f5c8285856 --- /dev/null +++ b/public/content/translations/ga/developers/docs/smart-contracts/composability/index.md @@ -0,0 +1,76 @@ +--- +title: In-chumthacht Conartha Cliste +description: +lang: ga +incomplete: true +--- + +## Réamhrá gearr {#a-brief-introduction} + +Tá conarthaí cliste poiblí ar Ethereum agus is féidir smaoineamh orthu mar API oscailte. Ní gá duit do chonradh cliste féin a scríobh le bheith i d'fhorbróir dapp, ní gá duit ach fios a bheith agat conas idirghníomhú leo. Mar shampla, is féidir leat conarthaí cliste reatha [Uniswap](https://uniswap.exchange/swap), malartú díláraithe, a úsáid chun an loighic babhtála comharthaí ar fad i d’aip a láimhseáil – ní gá tosú ón tús. Féach ar chuid dá [v2](https://github.com/Uniswap/uniswap-v2-core/tree/master/contracts) agus [v3](https://github.com/Uniswap/uniswap-v3-core/tree/main/contracts) gconarthaí. + +## Cad is In-chumthacht ann? {#what-is-composability} + +Is éard is in-chumthacht ann ná comhpháirteanna ar leith a chur le chéile chun córais nua nó aschuir nua a chruthú. Agus bogearraí á bhforbairt, ciallaíonn in-chumthacht gur féidir le forbróirí comhpháirteanna bogearraí atá ann cheana a athúsáid chun feidhmchláir nua a thógáil. Bealach maith le hin-chumthacht a thuiscint is ea smaoineamh ar ghnéithe in-chumtha mar bhloic Lego. Is féidir gach bríce Lego a chomhcheangal le ceann eile, rud a ligeann duit struchtúir chasta a thógáil trí bhrící Lego éagsúla a chomhcheangal. + +In Ethereum, is Lego de shaghas éigin é gach conradh cliste - is féidir leat conarthaí cliste ó thionscadail eile a úsáid mar bhloic thógála do do thionscadal. Ciallaíonn sé seo nach gá duit am a chaitheamh ag athchruthú an rotha nó ag tógáil ón tús. + +## Conas a oibríonn in-chumthacht? {#how-does-composability-work} + +Tá conarthaí cliste Ethereum cosúil le API poiblí, ionas gur féidir le duine ar bith idirghníomhú leis an gconradh nó iad a chomhtháthú i dapps le haghaidh feidhmiúlacht bhreise. Go ginearálta oibríonn in-chumthacht conartha cliste as trí phrionsabal: modúlacht, neamhspleáchas, agus infhaighteacht: + +**1. Modúlacht**: Seo cumas na gcomhpháirteanna aonair tasc ar leith a dhéanamh. In Ethereum, tá cás úsáide ar leith ag gach conradh cliste (mar a léirítear i sampla Uniswap). + +**2. Neamhspleáchas**: Ní mór go mbeadh comhpháirteanna in-chomhdhéanta in ann oibriú go neamhspleách. Tá gach conradh cliste in Ethereum féin-fhorghníomhaithe agus is féidir feidhmiú gan a bheith ag brath ar chodanna eile den chóras. + +**3. Infhaighteacht**: Ní féidir le forbróirí glaoch ar chonarthaí seachtracha nó leabharlanna bogearraí a chomhtháthú le feidhmchláir mura bhfuil na cinn ar fáil go poiblí. Trí dhearadh, is foinse oscailte iad conarthaí cliste; is féidir le duine ar bith conradh cliste a ghlaoch nó forc bunachar cód a dhéanamh. + +## Buntáistí in-chumthachta {#benefits-of-composability} + +### Timthriall forbartha níos giorra {#shorter-development-cycle} + +Laghdaíonn in-chumthacht an obair atá le déanamh ag forbróirí agus [dapps](/dapps/#what-are-dapps) á gcruthú. [Mar a deir Naval Ravikant:](https://twitter.com/naval/status/1444366754650656770) "Ciallaíonn foinse oscailte go gcaithfear gach fadhb a réiteach uair amháin." + +Má tá conradh cliste ann a réitíonn fadhb amháin, is féidir le forbróirí eile é a athúsáid, ionas nach mbeidh orthu an fhadhb chéanna a réiteach. Ar an mbealach seo, is féidir le forbróirí leabharlanna bogearraí atá ann cheana féin a ghlacadh agus feidhmiúlacht bhreise a chur leis chun dapps nua a chruthú. + +### Nuálaíocht níos mó {#greater-innovation} + +Spreagann in-chumasacht nuálaíocht agus turgnamh toisc go bhfuil cead ag forbróirí cód foinse oscailte a athúsáid, a mhodhnú, a dhúbailt nó a chomhtháthú chun torthaí inmhianaithe a chruthú. Mar thoradh air sin, caitheann foirne forbartha níos lú ama ar fheidhmiúlacht bhunúsach agus is féidir leo níos mó ama a thabhairt do thástáil gnéithe nua. + +### Taithí úsáideora níos fearr {#better-user-experience} + +Feabhsaíonn idir-inoibritheacht idir comhpháirteanna den éiceachóras Ethereum taithí an úsáideora. Is féidir le húsáideoirí rochtain a fháil ar fheidhmiúlacht níos fearr nuair a chomhtháthaíonn dapps conarthaí cliste seachtracha ná mar atá in éiceachóras ilroinnte nach féidir le feidhmchláir cumarsáid a dhéanamh ann. + +Úsáidfimid sampla ó thrádáil arbatráiste chun buntáistí idir-inoibritheachta a léiriú: + +Má tá comhartha ag trádáil níos airde ar `mhalartán A` ná ar`mhalartán B`, is féidir leat leas a bhaint as an difríocht praghais chun brabús a dhéanamh. Ní féidir leat é sin a dhéanamh, áfach, ach amháin má tá go leor caipitil agat chun an t-idirbheart a mhaoiniú (i.e. an chomhartha a cheannach ó `mhalartán B` agus é a dhíol ar `mhalartán A`). + +I gcás nach bhfuil go leor airgid agat chun an trádáil a chlúdach, d'fhéadfadh iasacht splaince a bheith oiriúnach. Tá [Iasachtaí splaince](/defi/#flash-loans) thar a bheith teicniúil, ach is é an bun-smaoineamh gur féidir leat sócmhainní a fháil ar iasacht (gan comhthaobhacht) agus iad a thabhairt ar ais laistigh de _idirbheart amháin_. + +Ag dul ar ais chuig ár sampla tosaigh, is féidir le trádálaí arbatráiste iasacht mhór splaince a thógáil amach, comharthaí a cheannach ó `mhalartán B`, iad a dhíol ar `mhalartán A`, an caipiteal + ús a íoc ar ais, agus an brabús a choinneáil, laistigh den idirbheart céanna. Éilíonn an loighic chasta seo glaonna a chomhcheangal le conarthaí iolracha, rud nach bhféadfaí a dhéanamh dá mbeadh easpa idir-inoibritheachta i gconarthaí cliste. + +## Samplaí den in-chumascacht in Ethereum {#composability-in-ethereum} + +### Babhtálacha comharthaí {#token-swaps} + +Má chruthaíonn tú dapp a éilíonn go n-íocfar idirbhearta in ETH, is féidir leat ligean d'úsáideoirí íoc i gcomharthaí ERC-20 eile trí loighic babhtála comharthaí a chomhtháthú. Tiontóidh an cód comhartha an úsáideora go ETH go huathoibríoch sula ndéanfaidh an conradh an fheidhm a dtugtar air a fhorghníomhú. + +### Rialachas {#governance} + +Is féidir leis a bheith costasach agus am-íditheach córais rialachais shaincheaptha a thógáil le haghaidh [DAO](/dao/). Ina áit sin, d'fhéadfá foireann uirlisí rialachais foinse oscailte a úsáid, mar [Aragon Client](https://client.aragon.org/), chun do DAO a bhrú chun creat rialachais a chruthú go tapa. + +### Bainistíocht aitheantais {#identity-management} + +In ionad córas fíordheimhnithe saincheaptha a thógáil nó a bheith ag brath ar sholáthraithe láraithe, is féidir leat uirlisí aitheantais díláraithe (DID) a chomhtháthú chun fíordheimhniú a bhainistiú d'úsáideoirí. Sampla is ea [SpruceID](https://www.spruceid.com/), foireann uirlisí foinse oscailte a thairgeann feidhmiúlacht "Sínigh isteach le Ethereum" a ligeann d'úsáideoirí féiniúlachtaí a fhíordheimhniú le sparán Ethereum. + +## Ranganna teagaisc a bhaineann leo {#related-tutorials} + +- [Cuir tús le forbairt d’éadanas dapp le create-eth-app](/developers/tutorials/kickstart-your-dapp-frontend-development-with-create-eth-app/) _- Forbhreathnú ar conas create-eth-app a úsáid chun aipeanna a chruthú a bhfuil conarthaí cliste móréilimh orthu amach sa bhosca._ + +## Tuilleadh léitheoireachta {#further-reading} + +_Ar eolas agat ar acmhainn pobail a chabhraigh leat? Cuir an leathanach seo in eagar agus cuir leis!_ + +- [Is ionann in-chumascacht agus Nuálaíocht](https://future.a16z.com/how-composability-unlocks-crypto-and-everything-else/) +- [Cén fáth a bhfuil In-chumascacht tábhachtach Do Web3](https://hackernoon.com/why-composability-matters-for-web3) +- [Cad is In-chumascacht ann?](https://blog.aragon.org/what-is-composability/#:~:text=Aragon,connect%20to%20every%20other%20piece.) diff --git a/public/content/translations/ga/developers/docs/smart-contracts/deploying/index.md b/public/content/translations/ga/developers/docs/smart-contracts/deploying/index.md new file mode 100644 index 00000000000..5ab9c74a979 --- /dev/null +++ b/public/content/translations/ga/developers/docs/smart-contracts/deploying/index.md @@ -0,0 +1,81 @@ +--- +title: Conarthaí cliste a imscaradh +description: +lang: ga +--- + +Ní mór duit do chonradh cliste a imscaradh le go mbeidh sé ar fáil d’úsáideoirí líonra Ethereum. + +Chun conradh cliste a imscaradh, ní sheolann tú ach idirbheart Ethereum ina bhfuil cód tiomsaithe an chonartha cliste gan aon fhaighteoir a shonrú. + +## Réamhriachtanais {#prerequisites} + +Ba cheart go dtuigfeá [Líonraí Ethereum](/developers/docs/networks/), [idirbhearta](/developers/docs/transactions/) agus na [ conarthaí anatamaíochta cliste](/developers/docs/smart-contracts/anatomy/) sula n-imscarfar conarthaí cliste. + +Cosnaíonn imscaradh conartha éitear (ETH) freisin ós rud é go bhfuil siad stóráilte ar an blocshlabhra, mar sin ba chóir duit a bheith eolach ar [gás agus táillí](/developers/docs/gas/) ar Ethereum. + +Ar deireadh, beidh ort do chonradh a thiomsú sula n-imscarfar é, mar sin bí cinnte go bhfuil tú tar éis léamh faoi [conarthaí cliste a thiomsú](/developers/docs/smart-contracts/compiling/). + +## Conas conradh cliste a imscaradh {#how-to-deploy-a-smart-contract} + +### Cad a bheidh uait {#what-youll-need} + +- Beartchód do chonartha – gintear é seo trí [tiomsú](/developers/docs/smart-contracts/compiling/) +- ETH don ghás – socróidh tú do theorainn gháis cosúil le hidirbhearta eile agus mar sin bí ar an eolas go bhfuil i bhfad níos mó gáis ag teastáil ó imscaradh conartha ná aistriú simplí ETH +- script imscartha nó breiseán +- rochtain ar [nóid Ethereum](/developers/docs/nodes-and-clients/), trí do cheann féin a rith, trí nascadh le nód poiblí, nó trí eochair API ag baint úsáid as [seirbhís nód](/developers/docs/nodes-and-clients/nodes-as-a-service/) + +### Céimeanna chun conradh cliste a imscaradh {#steps-to-deploy} + +Braithfidh na céimeanna sonracha ar an gcreat forbartha atá i gceist. Mar shampla, is féidir leat [doiciméid Hardhat a sheiceáil maidir le do chonarthaí a imscaradh](https://hardhat.org/guides/deploying.html) nó [Doiciméid an Teilgcheárta maidir le conradh cliste a imscaradh agus a fhíorú](https://book.getfoundry.sh/forge/deploying). Nuair a bheidh do chonradh imlonnaithe, beidh seoladh Ethereum cosúil le [cuntais eile](/developers/docs/accounts/) ar do chonradh agus is féidir é a fhíorú trí úsáid a bhaint as [uirlisí fíoraithe cód foinse](/developers/docs/smart-contracts/verifying/#source-code-verification-tools). + +## Uirlisí gaolmhara {#related-tools} + +**Remix - _ Ceadaíonn Remix IDE conarthaí cliste a fhorbairt, a imscaradh agus a riar le haghaidh Ethereum cosúil le blocshlabhra_** + +- [Remix](https://remix.ethereum.org) + +**Tenderly - _ardán forbartha Web3 a sholáthraíonn dífhabhtaithe, inbhraiteacht, agus bloic thógála bonneagair chun tástáil agus monatóireacht a dhéanamh ar chonarthaí cliste agus iad a oibriú_** + +- [tenderly.co](https://tenderly.co/) +- [Doiciméid](https://docs.tenderly.co/) +- [GitHub](https://github.com/Tenderly) +- [Discord](https://discord.gg/eCWjuvt) + +**Hardhat - _Timpeallacht forbartha chun do bhogearraí Ethereum a thiomsú, a imscaradh, a thástáil agus a dhífhabhtú_** + +- [hardhat.org](https://hardhat.org/getting-started/) +- [Doiciméid maidir le do chonarthaí a imscaradh](https://hardhat.org/guides/deploying.html) +- [GitHub](https://github.com/nomiclabs/hardhat) +- [Discord](https://discord.com/invite/TETZs2KK4k) + +**thirdweb - _aon chonradh a Imscaradh go héasca chuig aon slabhra atá comhoiriúnach le EVM, ag baint úsáide as ordú amháin_** + +- [Doiciméadúchán](https://portal.thirdweb.com/deploy/) + +**Crossmint - _ardán forbartha web3 de ghrád fiontair chun conarthaí cliste a imscaradh, íocaíochtaí cárta creidmheasa agus tras-slabhra a chumasú, agus APIanna a úsáid chun NFTanna a chruthú, a dháileadh, a dhíol, a stóráil agus a chur in eagar._** + +- [crossmint.com](https://www.crossmint.com) +- [Doiciméadúchán](https://docs.crossmint.com) +- [Discord](https://discord.com/invite/crossmint) +- [Blag](https://blog.crossmint.com) + +## Ranganna teagaisc a bhaineann leo {#related-tutorials} + +- [Do chéad chonradh cliste a imscaradh](/developers/tutorials/deploying-your-first-smart-contract/) _- Réamheolas ar imscaradh do chéad chonradh cliste ar líonra tástála Ethereum._ +- [Hello World | teagaisc conartha cliste](/developers/tutorials/hello-world-smart-contract/) _– Teagaisc éasca le leanúint chun & conradh cliste bunúsach a imscaradh ar Ethereum._ +- [Idirghníomhaíocht le conarthaí eile ó Solidity](/developers/tutorials/interact-with-other-contracts-from-solidity/) _- Conas conradh cliste a imscaradh ó chonradh atá ann cheana féin agus idirghníomhú leis._ +- [Conas méid do chonartha a laghdú](/developers/tutorials/downsizing-contracts-to-fight-the-contract-size-limit/) _- Conas méid do chonartha a laghdú chun é a choinneáil faoin teorainn agus gás a choigilt_ + +## Tuilleadh léitheoireachta {#further-reading} + +- [https://docs.openzeppelin.com/learn/deploying-and-interacting](https://docs.openzeppelin.com/learn/deploying-and-interacting) - _OpenZeppelin_ +- [Do chonarthaí a imscaradh le Hardhat](https://hardhat.org/guides/deploying.html) - _Nomic Labs_ + +_Ar eolas agat ar acmhainn pobail a chabhraigh leat? Cuir an leathanach seo in eagar agus cuir leis!_ + +## Ábhair ghaolmhara {#related-topics} + +- [Creataí forbartha](/developers/docs/frameworks/) +- [Rith nód Ethereum](/developers/docs/nodes-and-clients/run-a-node/) +- [Nóid-mar-sheirbhís](/developers/docs/nodes-and-clients/nodes-as-a-service) diff --git a/public/content/translations/ga/developers/docs/smart-contracts/formal-verification/index.md b/public/content/translations/ga/developers/docs/smart-contracts/formal-verification/index.md new file mode 100644 index 00000000000..254b9b063ee --- /dev/null +++ b/public/content/translations/ga/developers/docs/smart-contracts/formal-verification/index.md @@ -0,0 +1,283 @@ +--- +title: Fíorú foirmiúil conarthaí cliste +description: Forbhreathnú ar fhíorú fhoirmiúil do chonarthaí cliste Ethereum +lang: ga +--- + +Is féidir le [Conarthaí cliste](/developers/docs/smart-contracts/) feidhmchláir dhíláraithe, iontaofa agus láidre a chruthú a thugann isteach cásanna úsáide nua agus a dhíghlasálann luach d’úsáideoirí. Toisc go láimhseálann conarthaí cliste méideanna móra luacha, tá an tslándáil ríthábhachtach d'fhorbróirí. + +Tá fíorú foirmiúil ar cheann de na teicníochtaí molta chun [slándáil conarthaí cliste](/developers/docs/smart-contracts/security/) a fheabhsú. Fíorú foirmiúil, a úsáideann [modhanna foirmiúla](https://www.brookings.edu/techstream/formal-methods-as-a-path-toward-better-cybersecurity/) chun ríomhchláir a shonrú, a dhearadh, agus a fhíorú, á n-úsáid le blianta fada chun cruinneas na gcóras crua-earraí agus bogearraí criticiúla a chinntiú. + +Nuair a chuirtear i bhfeidhm é i gconarthaí cliste, féadann fíorú foirmiúil a chruthú go gcomhlíonann loighic ghnó an chonartha sonraíocht réamhshainithe. I gcomparáid le modhanna eile chun cruinneas an chóid conartha a mheas, mar shampla tástáil, tugann fíorú foirmiúil ráthaíochtaí níos láidre go bhfuil conradh cliste ceart go feidhmiúil. + +## Cad is fíorú foirmiúil ann? {#what-is-formal-verification} + +Tagraíonn fíorú foirmiúil don phróiseas chun cruinneas an chórais a mheas maidir le sonraíocht fhoirmiúil. I dtéarmaí níos simplí, cuireann fíorú foirmiúil ar ár gcumas seiceáil an sásaíonn iompar córais roinnt riachtanas (i.e. déanann sé an méid a theastaíonn uainn). + +Déantar cur síos ar iompraíochtaí ionchasacha an chórais (conradh cliste sa chás seo) trí úsáid a bhaint as samhaltú foirmiúil, agus cuireann teangacha sonraíochta ar chumas airíonna foirmiúla a chruthú. Is féidir le teicníochtaí fíoraithe foirmiúla a fhíorú ansin go gcomhlíonann feidhmiú an chonartha a shonraíocht agus go bhfaightear cruthúnas matamaitice maidir le cruinneas an chonartha. Nuair a shásaíonn conradh a shonraíocht, déantar cur síos air mar “ceart ó thaobh feidhme”, “ceart de réir dearadh”, nó “ceart trí thógáil”. + +### Cad is samhail fhoirmiúil ann? {#what-is-a-formal-model} + +Sa ríomheolaíocht, is cur síos matamaiticiúil ar phróiseas ríomhaireachtúil é [samhail fhoirmiúil](https://en.wikipedia.org/wiki/Model_of_computation). Déantar cláir a achoimriú i bhfeidhmeanna matamaitice (cothromóidí), agus déanann an tsamhail cur síos ar an gcaoi a ríomhtar aschuir i bhfeidhmeanna nuair a thugtar ionchur. + +Soláthraíonn samhlacha foirmiúla leibhéal asbhainte lenar féidir anailís a dhéanamh ar iompraíocht cláir. Toisc samhlacha foirmiúla a bheith ann is féidir _sonraíocht fhoirmiúil_ a chruthú, a chuireann síos ar airíonna inmhianaithe na samhla atá i gceist. + +Úsáidtear teicnící éagsúla chun conarthaí cliste a shamhaltú le haghaidh fíorú foirmiúil. Mar shampla, úsáidtear roinnt samhlacha chun réasúnaíocht a dhéanamh faoi iompar ardleibhéil conradh cliste. Cuireann na teicníochtaí samhaltaithe seo dearcadh bosca dubh i bhfeidhm ar chonarthaí cliste, ag féachaint orthu mar chórais a ghlacann le hionchuir agus a dhéanann ríomh bunaithe ar na hionchuir sin. + +Díríonn samhlacha ardleibhéil ar an gcaidreamh idir conarthaí cliste agus gníomhairí seachtracha, amhail cuntais faoi úinéireacht eachtrach (EOAanna), cuntais chonarthaí, agus an timpeallacht bhlocshlabhra. Tá samhlacha den sórt sin úsáideach chun airíonna a shainiú a shonraíonn conas ba cheart conradh a iompar mar fhreagra ar idirghníomhaíochtaí áirithe úsáideoirí. + +Os a choinne sin, díríonn samhlacha foirmiúla eile ar iompar íseal-leibhéil conradh cliste. Cé gur féidir le samhlacha ardleibhéil cuidiú le réasúnú faoi fheidhmiúlacht conartha, d'fhéadfadh go dteipfidh orthu sonraí a fháil faoi oibriú inmheánach an fheidhmithe. Cuireann samhlacha íseal-leibhéil amharc bosca bán i bhfeidhm ar anailís ríomhchlár agus braitheann siad ar léirithe ar leibhéal níos ísle d’fheidhmchláir chliste chonarthaí, amhail rianta clár agus [>sreabhghraif rialaithe](https://en.wikipedia.org/wiki/Control-flow_graph), le réasún a thabhairt faoi na hairíonna a bhaineann le conradh a chur i gcrích. + +Meastar samhlacha íseal-leibhéil a bheith oiriúnach ós rud é gurb ionann iad agus forghníomhú iarbhír conartha cliste i dtimpeallacht forghníomhaithe Ethereum (i.e. an [EVM](/developers/docs/evm/)). Tá teicnící samhaltaithe íseal-leibhéil thar a bheith úsáideach chun airíonna criticiúla sábháilteachta a bhunú i gconarthaí cliste agus chun leochaileachtaí féideartha a bhrath. + +### Cad is sonraíocht fhoirmiúil ann? {#what-is-a-formal-specification} + +Níl i sonraíocht ach ceanglas teicniúil nach mór do chóras áirithe a shásamh. Sa ríomhchlárú, léiríonn sonraíochtaí smaointe ginearálta faoi fheidhmiú cláir (i.e. cad ba cheart don chlár a dhéanamh). + +I gcomhthéacs conarthaí cliste, tagraíonn sonraíochtaí foirmiúla do _airíonna_ — tuairiscí foirmiúla ar na ceanglais nach mór do chonradh a chomhlíonadh. Déantar cur síos ar réadmhaoin dá leithéid mar “athraithigh” agus is ionann iad agus dearbhuithe loighciúla faoi fhorghníomhú conartha nach mór a bheith fíor faoi gach imthosca féideartha, gan aon eisceachtaí. + +Mar sin, is féidir linn smaoineamh ar shonraíocht fhoirmiúil mar bhailiúchán ráiteas scríofa i dteanga fhoirmiúil a chuireann síos ar an rith atá beartaithe do chonradh cliste. Clúdaíonn sonraíochtaí airíonna an chonartha agus sainíonn siad conas ba cheart don chonradh oibriú i gcúinsí éagsúla. Is é cuspóir an fhíoraithe fhoirmiúil ná a chinneadh an bhfuil na hairíonna seo (do-athraitheacha) ag conradh cliste agus nach sáraítear na hairíonna sin le linn a fhorghníomhaithe. + +Tá sonraíochtaí foirmiúla ríthábhachtach chun conarthaí cliste a chur i bhfeidhm go slán. Is féidir go sárófaí airíonna i gconarthaí a dteipeann orthu athróga a chur i bhfeidhm le linn iad a rith, d’fhéadfaí dochar a dhéanamh dá bhfeidhmiúlacht a bheadh ina gcúis le dúshaothrú mailíseach. + +## Cineálacha sonraíochtaí foirmiúla le haghaidh conarthaí cliste {#formal-specifications-for-smart-contracts} + +Cumasaíonn sonraíochtaí foirmiúla réasúnú matamaitice maidir le cirte rith an chláir. Mar is amhlaidh le samhlacha foirmiúla, is féidir le sonraíochtaí foirmiúla tréithe ardleibhéil nó iompraíocht íseal-leibhéil cur chun feidhme conartha a ghabháil. + +Díorthaítear sonraíochtaí foirmiúla trí úsáid a bhaint as gnéithe de [loighic an chláir](https://en.wikipedia.org/wiki/Logic_programming), a cheadaíonn réasúnú foirmiúil faoi airíonna cláir. Tá rialacha foirmiúla ag loighic chláir a chuireann in iúl (i dteanga mhatamaiticiúil) an t-iompraíocht a bhfuiltear ag súil leis i gclár. Baintear úsáid as loighic éagsúla ríomhchlár chun sonraíochtaí foirmiúla a chruthú, lena n-áirítear [loighic inrochtaineachta](https://en.wikipedia.org/wiki/Reachability_problem), [loighic ama](https://en.wikipedia.org/wiki/Temporal_logic), agus [loighic Hoare ](https://en.wikipedia.org/wiki/Hoare_logic). + +Is féidir sonraíochtaí foirmiúla do chonarthaí cliste a rangú go ginearálta mar shonraíochtaí **ardleibhéil** nó **leibhéal íseal**. Is cuma cén catagóir lena mbaineann sonraíocht, ní mór di cur síos leordhóthanach gan athbhrí a dhéanamh ar airí an chórais atá faoi anailís. + +### Sonraíochtaí ardleibhéil {#high-level-specifications} + +Mar a thugann an t-ainm le tuiscint, cuireann sonraíocht ardleibhéil (ar a dtugtar "sonraíocht mhúnla-dhírithe") síos ar iompar ardleibhéil clár. Múnlaíonn sonraíochtaí ardleibhéil conradh cliste mar [meaisín stáit chríochnaithe](https://en.wikipedia.org/wiki/Finite-state_machine) (FSM), ar féidir leis aistriú idir staid trí fheidhmiú oibríochtaí, le loighic ama a úsáidtear chun airíonna foirmiúla a shainiú don tsamhail FSM. + +Is "rialacha iad [loighic ama](https://en.wikipedia.org/wiki/Temporal_logic) chun réasúnú a dhéanamh faoi thairiscintí atá cáilithe i dtéarmaí ama (m.sh., "Bíonn _ocras orm_ i gcónaí" nó "Beidh _ocras orm faoi dheireadh")."_. Nuair a chuirtear i bhfeidhm é ar an bhfíorú fhoirmiúil, úsáidtear loighic ama chun dearbhuithe a lua faoi iompar ceart na gcóras atá múnlaithe mar mheaisíní staide. Go sonrach, déanann loighic ama cur síos ar na staideanna inar féidir conradh cliste a bheith sa todhchaí agus conas a aistríonn sé idir staideanna. + +De ghnáth bíonn dhá airí ríthábhachtacha ama ag baint le conarthaí cliste: **sábháilteacht** agus **beocht**. Léiríonn airíonna sábháilteachta an smaoineamh “nach dtarlaíonn aon rud dona riamh” agus de ghnáth cuireann siad inathraitheacht in iúl. Féadfaidh maoin sábháilteachta ceanglais ghinearálta bogearraí a shainiú, amhail saoirse ó [leamhsháinn](https://www.techtarget.com/whatis/definition/deadlock), nó airíonna sainráite fearainn le haghaidh conarthaí ( m.sh., malairtí ar rialú rochtana ar fheidhmeanna, luachanna inghlactha na n-athróg staide, nó coinníollacha maidir le haistrithe comharthaí). + +Tóg mar shampla an ceanglas sábháilteachta seo a chlúdaíonn na coinníollacha chun an `aistrigh()` nó an `aistrighÓ()` a úsáid i gconarthaí comharthaí ERC-20: _ “Ní bhíonn iarmhéid an tseoltóra riamh níos ísle ná an méid éarlaisí atá le seoladh.”_. Is féidir an cur síos teanga nádúrtha seo ar dho-athraitheacht chonartha a aistriú go sonraíocht fhoirmiúil (matamaiticiúil), ar féidir a sheiceáil go docht le haghaidh bailíochta. + +Dearbhaíonn airíonna beochta go dtarlaíonn “rud éigin go maith sa deireadh” agus baineann siad le cumas conartha dul ar aghaidh trí staideanna éagsúla. Sampla den airí beocht is ea “leachtacht”, a thagraíonn do chumas conartha a chuid iarmhéideanna a aistriú chuig úsáideoirí ar iarratas. Má sháraítear an t-airí seo, ní bheadh ​​úsáideoirí in ann sócmhainní atá stóráilte sa chonradh a aistarraingt, mar a tharla leis an [Teagmhas sparán paireacht](https://www.cnbc.com/2017/11/08/accidental-bug-may-have-frozen-280-worth-of-ether-on-parity-wallet.html). + +### Sonraíochtaí íseal-leibhéil {#low-level-specifications} + +Glacann sonraíochtaí ardleibhéil mar phointe tosaigh samhail chríochta de chonradh agus sainíonn siad airíonna inmhianaithe an tsamhail seo. I gcodarsnacht leis sin, is minic a léiríonn sonraíochtaí íseal-leibhéil (ar a dtugtar "sonraíochtaí atá dírithe ar airí") cláir (conarthaí cliste) mar chórais a chuimsíonn bailiúchán feidhmeanna matamaitice agus a chuireann síos ar iompar ceart na gcóras sin. + +I dtéarmaí níos simplí, déanann sonraíochtaí íseal-leibhéil anailís ar _rianta cláir_ agus déanann siad iarracht airíonna conartha cliste a shainiú thar na rianta seo. Tagraíonn rianta do sheichimh rith feidhme a athraíonn staid conartha cliste; mar sin, cuidíonn sonraíochtaí íseal-leibhéil le ceanglais a shonrú maidir le forghníomhú inmheánach conartha. + +Is féidir sonraíochtaí foirmiúla íseal-leibhéil a thabhairt mar airíonna de stíl Hoare nó mar athróga ar chosáin reatha. + +### Airíonna i stíl Hoare {#hoare-style-properties} + +Soláthraíonn [Loighic Hoare](https://en.wikipedia.org/wiki/Hoare_logic) sraith rialacha foirmiúla chun réasúnú a dhéanamh maidir le cruinneas clár, lena n-áirítear conarthaí cliste. Tá airí i stíl Hoare léirithe ag triar Hoare {_P_}_c_{_Q_}, áit a bhfuil _c_ ina chlár agus _P_ agus _Q_ ina réamhchoinníollacha agus iarchoinníollacha ar staid an _c_ (i.e., an clár), ar a tugtar go foirmiúil _réamhchoinníollacha_ agus _iarchoinníollacha_, faoi seach. + +Is réamhchoinníoll é preideacáid a chuireann síos ar na coinníollacha a theastaíonn chun feidhm a rith i gceart; ní mór d'úsáideoirí a ghlaonn isteach sa chonradh an ceanglas seo a chomhlíonadh. Is éard is iarchoinníoll ann ná preideacáid a chuireann síos ar an gcoinníoll a bhunaíonn feidhm má dhéantar é a rith i gceart; is féidir le húsáideoirí a bheith ag súil go mbeidh an coinníoll seo fíor tar éis dóibh glaoch isteach sa bhfeidhm. Is preideacáid í _athróg_ i loighic Hoare a chaomhnaítear trí fheidhm a rith (i.e. ní athraíonn sé). + +Is féidir le sonraíochtaí i stíl hoare ráthaíocht a thabhairt do _páirtchruinneas_ nó _cruinneas iomlán_. Tá cur i bhfeidhm feidhm chonartha "ceart go páirteach" má bhíonn an réamhchoinníoll fíor sula gcuirtear an fheidhm i gcrích, agus má chuirtear deireadh leis an rith, tá an iarchoinníoll fíor freisin. Faightear cruthúnas ar chruinneas iomlán má bhíonn réamhchoinníoll fíor sula ritear an fheidhm, ráthaítear go dtiocfaidh deireadh leis an rith agus nuair a dhéantar amhlaidh, beidh an t-iarchoinníoll fíor. + +Tá sé deacair cruthúnas ar chruinneas iomlán a fháil mar go bhféadfaí moill a chur ar roinnt reatha sula bhfoirceanntar iad, nó nach gcríochnóidh siad ar chor ar bith. É sin ráite, is ceist inphléite é an bhfuil rith críochnaithe ós rud é go gcuireann meicníocht gáis Ethereum cosc ​​ar lúbanna cláir éigríochta (cuirtear deireadh leis an rith go rathúil nó críochnaíonn sé mar gheall ar earráid ‘as-ghás’). + +Beidh réamhchoinníollacha, iarchoinníollacha, agus malairtí sainithe ag sonraíochtaí conartha cliste a chruthófar le loighic Hoare chun feidhmeanna agus lúbanna i gconradh a rith. Áiríonn réamhchoinníollacha go minic go bhféadfaí ionchuir earráideacha a dhéanamh ar fheidhm, agus déanann iarchoinníollacha cur síos ar an bhfreagairt ionchasach ar ionchuir den sórt sin (m.sh. eisceacht shonrach a chaitheamh). Ar an gcaoi seo tá airíonna i stíl Hoare éifeachtach chun a chinntiú go bhfuil cur i bhfeidhm conartha i gceart. + +Úsáideann go leor creataí foirmiúla fíoraithe sonraíochtaí ar stíl Hoare chun cruinneas séimeantach fheidhmeanna a chruthú. Is féidir freisin airíonna ar stíl Hoare (mar dhearbhuithe) a chur go díreach le cód conartha trí úsáid a bhaint as na ráitis `require` agus `assert` i Solidity. + +Cuireann ráitis `require` réamhchoinníoll nó malairtí in iúl agus is minic a úsáidtear iad chun ionchuir úsáideora a bhailíochtú, agus gabhann `dearbh ` coinníoll poist atá riachtanach ar mhaithe le sábháilteacht. Mar shampla, is féidir rialú rochtana cuí ar fheidhmeanna (sampla d’airíonna sábháilteachta) a bhaint amach trí úsáid a bhaint as `require` mar sheiceáil réamhchoinníoll ar chéannacht an chuntais ghlaoigh. Mar an gcéanna, is féidir malairtí ar luachanna incheadaithe na n-athróg stáit i gconradh (m.sh., líon iomlán na ndearbhuithe atá i gcúrsaíocht) a chosaint ó shárú trí úsáid a bhaint as `dearbhú` chun staid an chonartha tar éis rith feidhme a dhearbhú. + +### Airíonna rian-leibhéil {#trace-level-properties} + +Déanann sonraíochtaí rian-bhunaithe cur síos ar oibríochtaí a aistríonn conradh idir staideanna éagsúla agus na gaolmhaireachtaí idir na hoibríochtaí sin. Mar a míníodh níos luaithe, is éard atá i rianta ná seichimh oibríochtaí a athraíonn staid chonartha ar bhealach ar leith. + +Braitheann an cur chuige seo ar shamhail de chonarthaí cliste mar chórais aistrithe stáit le roinnt stát réamhshainithe (arna gcur síos ag athróga stáit) mar aon le sraith aistrithe réamhshainithe (arna gcur síos ag feidhmeanna conartha). Ina theannta sin, tá [sreabhghraf rialaithe](https://www.geeksforgeeks.org/software-engineering-control-flow-graph-cfg/) (CFG), ar léiriú grafach é ar a sreabhadh forghníomhaithe an chláir, in úsáid go minic chun cur síos a dhéanamh ar shéimeantaic oibriúcháin conartha. Anseo, léirítear gach rian mar chonair ar an sreabhghraf rialaithe. + +Go príomha, úsáidtear sonraíochtaí rianleibhéil chun réasúnú a dhéanamh ar phatrúin reatha inmheánach i gconarthaí cliste. Trí shonraíochtaí rianleibhéil a chruthú, dearbhaímid na cosáin reatha inghlactha (i.e. aistrithe staide) le haghaidh conradh cliste. Trí úsáid a bhaint as teicníochtaí, mar rith siombalach, is féidir linn a fhíorú go foirmiúil nach leanann an rith cosán nach bhfuil sainithe sa tsamhail fhoirmiúil. + +Úsáidimis sampla de chonradh [DAO](/dao/) a bhfuil roinnt feidhmeanna inrochtana ag an bpobal aige chun cur síos a dhéanamh ar airíonna rianleibhéil. Anseo, glacaimid leis go gceadaíonn an conradh DAO d'úsáideoirí na hoibríochtaí seo a leanas a dhéanamh: + +- Cistí a thaisceadh + +- Vóta ar thogra tar éis cistí a thaisceadh + +- Aisíocaíocht a éileamh mura vótálann siad ar thogra + +Mar shampla, bheadh _"ní féidir le húsáideoirí nach dtaisceann cistí vótáil ar thogra"_ nó _"Ba cheart go mbeadh úsáideoirí nach vótálann ar mholadh in ann aisíocaíocht a éileamh i gcónaí” ina n-airíonna rianleibhéil._. Dearbhaíonn an dá airí na sraitheanna feidhmithe roghnaithe (ní féidir vótáil _roimh_ chistí a thaisceadh agus aisíocaíocht a éileamh _tar éis vótáil_ ar thogra). + +## Teicnící chun conarthaí cliste a fhíorú go foirmiúil {#formal-verification-techniques} + +### Seiceáil samhlacha {#model-checking} + +Teicníc fíoraithe foirmiúil is ea seiceáil samhaltån ina seiceálann algartam múnla foirmiúil de chonradh cliste i gcomparáid lena sonraíocht. I seiceáil samhlacha is minic a léirítear conarthaí cliste mar chórais aistrithe staide, agus sainítear airíonna ar staid chonarthacha incheadaithe ag baint úsáide as loighic ama. + +Éilíonn seiceáil samhaltån léiriú teibí matamaitice de chóras a chruthú (i.e., conradh) agus airíonna an chórais seo a chur in iúl le foirmlí atá fréamhaithe i [loighic thairisceana](https://www.baeldung.com/cs/propositional-logic). Simplíonn sé seo tasc an algartam seiceála samhaltån, is é sin a chruthú go sásaíonn samhaltán matamaiticiúil foirmle loighciúil ar leith. + +Úsáidtear seiceáil samhla i bhfíorú foirmiúil go príomha chun airíonna ama a mheas a chuireann síos ar iompar conartha le himeacht ama. I measc na n-airíonna sealadacha do chonarthaí cliste tá _sábháilteacht_ agus _beocht_, a mhínigh muid níos luaithe. + +Mar shampla, airí slándála a bhaineann le rialú rochtana (m.sh., _Ní féidir ach le húinéir an chonartha glaoch ar `féinscrios`_) a scríobh i loighic fhoirmiúil. Ina dhiaidh sin, is féidir leis an algartam seiceála samhaltån a fhíorú an sásaíonn an conradh an tsonraíocht fhoirmiúil seo. + +Baineann seiceáil samhlacha úsáid as taiscéalaíocht staid spáis, mar a thógtar gach staid ionchasach de chonradh cliste agus iarracht á dhéanamh teacht ar stáit insroichte as a dtagann sáruithe airíonna. Mar sin féin, is féidir líon éigríochta staideanna a bheith mar thoradh air seo (ar a dtugtar an "fadhb pléascadh staideanna"), dá bhrí sin bíonn seiceálaithe samhaltån ag brath ar theicnící astarraingthe chun anailís éifeachtach a dhéanamh ar chonarthaí cliste. + +### Promhadh Teoirim {#theorem-proving} + +Is modh é cruthú teoirim chun réasúnaíocht mhatamaiticiúil a dhéanamh maidir le cruinneas clár, lena n-áirítear conarthaí cliste. Baineann sé le samhaltán chóras conartha agus a shonraíochtaí a athrú go foirmlí matamaitice (ráitis loighce). + +Is é an cuspóir atá le teoirim a phromhadh ná coibhéis loighciúil idir na ráitis seo a fhíorú. Is ionann “coibhéis loighciúil” (ar a dtugtar “dé-impleachtaí loighciúla” freisin) agus cineál coibhneasa idir dhá ráiteas sa chaoi is go bhfuil an chéad ráiteas fíor _má tá_ an dara ráiteas fíor, agus sa chás sin amháin. + +Tá an gaol riachtanach (coibhéis loighciúil) idir ráitis faoi shamhail an chonartha agus a chuid airíonna ceaptha mar ráiteas inchruthaithe (ar a dtugtar teoirim). Trí úsáid a bhaint as córas foirmiúil tátail, is féidir le promhadóir uathoibrithe na teoirime bailíocht na teoirime a fhíorú. I bhfocail eile, is féidir le promhadóir teoirim a chruthú go cinntitheach go dtagann samhail conartha cliste go beacht lena sonraíochtaí. + +Cé go ndéanann samhlacha seiceála samhaltán conarthaí mar chórais aistrithe le staideanna críochta, is féidir le cruthú teoirim anailís ar chórais staid éigríochta a láimhseáil. Mar sin féin, ciallaíonn sé seo nach féidir le promhadóir uathoibrithe teoirim a fhios i gcónaí an bhfuil fadhb loighce "inchinnte" nó nach bhfuil. + +Mar thoradh air sin, is minic a bhíonn cúnamh daonna ag teastáil chun an cruthaitheoir teoirim a threorú chun cruthúnais cruinnis a fháil. Mar gheall ar iarracht dhaonna i bpromhadh teoirim tá sé níos costasaí é a úsáid ná seiceáil múnla, atá uathoibrithe go hiomlán. + +### Forghníomhú siombalach {#symbolic-execution} + +Is modh é rith siombalach chun conradh cliste a anailísiú trí fheidhmeanna a rith ag úsáid _luachanna siombalacha_ (m.sh., `x > 5`) in ionad _luachanna nithiúla_ (m.sh., `x == 5`). Mar theicníc fhíoraithe fhoirmiúil, baintear úsáid as rith siombalach chun réasúnaíocht fhoirmiúil a dhéanamh faoi airíonna rianleibhéil i gcód conartha. + +Léiríonn rith siombalach rian reatha mar fhoirmle mhatamaitice thar luachanna ionchuir siombalacha, ar a dtugtar _cosán preideacáide_ chomh maith. Úsáidtear [réiteoir SMT](https://en.wikipedia.org/wiki/Satisfiability_modulo_theories) chun seiceáil an bhfuil preideacáid chonaire "sásúil" (i.e., tá luach ann a shásaíonn an foirmle). Má tá cosán leochaileach insásaithe, ginfidh an réiteoir SMT luach nithiúil a spreagfaidh rith stiúrtha i dtreo an chosáin sin. + +Abair go nglacann feidhm conartha chliste mar ionchur luach `uint` (`x`) agus go bhfilleann sé nuair a bhíonn `x` níos mó ná `5` agus níos lú ná `10` freisin. Chun luach a aimsiú le haghaidh `x` a spreagann an earráid trí úsáid a bhaint as gnáthnós imeachta tástála, bheadh ​​gá le dul tríd na mórán cásanna tástála (nó níos mó) gan dearbhú a fháil go bhfuarthas ionchur chun earráidí a spreagadh. + +Os a choinne sin, dhéanfadh uirlis shiombail reatha an fheidhm leis an luach siombalach: `X > 5 ∧ X < 10` (i.e., tá `x` níos mó ná 5 AGUS tá `x` níos lú ná 10). Thabharfaí an preideacáid conaire comhfhreagrach `x = X > 5 ∧ X < 10` ansin do réiteoir SMT lena réiteach. Má shásaíonn luach ar leith an fhoirmle `x = X > 5 ∧ X < 10`, ríomhfaidh an réiteoir SMT é—mar shampla, d’fhéadfadh an réiteoir `7` a tháirgeadh mar luach ar `x`. + +Toisc go mbraitheann rith siombalach ar ionchuir i gclár, agus go bhféadfadh an tsraith ionchuir chun gach staid insroichte a iniúchadh a bheith éigríochta, is cineál tástála é fós. Mar a léirítear sa sampla, áfach, tá rith siombalach níos éifeachtaí ná tástáil rialta chun ionchuir a aimsiú a spreagann sáruithe airí. + +Ina theannta sin, is lú deimhneacht bhréagacha a tháirgeann rith siombalach ná teicnící eile atá bunaithe ar airí (m.sh. doiléiriú) a ghineann ionchuir chuig feidhm go randamach. Má spreagtar staid earráide le linn reatha siombalach, is féidir luach nithiúil a ghiniúint a spreagann an earráid agus an fhadhb a atáirgeadh. + +Is féidir le rith siombalach roinnt cruthúnas matamaitice ar chruinneas a sholáthar freisin. Smaoinigh ar an sampla seo a leanas d’fheidhm chonartha le cosaint róshreafa: + +``` +function safe_add(uint x, uint y) returns(uint z){ + + z = x + y; + require(z>=x); + require(z>=y); + + return z; +``` + +Ba ghá do rian reatha a mbíonn ró-shreabhadh slánuimhir mar thoradh air chun an fhoirmle a shásamh: `z = x + y AND (z >= x) AND (z=>y) AND (z < x OR z < y)` Ní dócha go réiteofar a leithéid de fhoirmle, mar sin is cruthúnas matamaitice é nach dtéann an fheidhm `safe_add` róshreabhadh. + +### Cén fáth fíorú foirmiúil a úsáid le haghaidh conarthaí cliste? {#benefits-of-formal-verification} + +#### Gá le hiontaofacht {#need-for-reliability} + +Baintear úsáid as fíorú foirmiúil chun cruinneas na gcóras atá ríthábhachtach ó thaobh sábháilteachta de a mheas a mbeadh iarmhairtí mhillteach ann dá dteipfeadh orthu, amhail bás, gortú nó scrios airgeadais. Is feidhmchláir ardluacha iad conarthaí cliste a rialaíonn méideanna ollmhóra luacha, agus d’fhéadfadh[ caillteanais do-aisghabhála a bheith mar thoradh ar earráidí simplí sa dearadh.](https://www.freecodecamp.org/news/a-hacker-stole-31m-of-ether-how-it-happened-and-what-it-means-for-ethereum-9e5dc29e33ce/amp/). Má dhéantar conradh a fhíorú go foirmiúil roimh imscaradh, áfach, is féidir ráthaíochtaí a mhéadú go gcomhlíonfaidh sé mar a bhíothas ag súil leis nuair a bheidh sé ag rith ar an mblocshlabhra. + +Is cáilíocht an-inmhianaithe í an iontaofacht in aon chonradh cliste, go háirithe toisc go mbíonn cód a imscartar i Meaisín Fíorúil Ethereum (EVM) do-athraithe go hiondúil. Toisc nach bhfuil uasghráduithe iar-seolta inrochtana go héasca, is gá fíorú foirmiúil a dhéanamh le hiontaofacht na gconarthaí a ráthú. Is féidir le fíorú foirmiúil saincheisteanna deacra a bhrath, amhail foshreafaí slánuimhreacha agus ró-shreabhadh, athiontráil, agus droch-uasmhéadú gáis, rud a d'fhéadfadh sleamhnú ó iniúchóirí agus tástálaithe anuas. + +#### Cruthaigh cruinneas feidhme {#prove-functional-correctness} + +Is é tástáil cláir an modh is coitianta chun a chruthú go sásaíonn conradh cliste roinnt riachtanas. Is éard atá i gceist leis seo conradh a rith le sampla de na sonraí a bhfuiltear ag súil lena láimhseáil agus a iompraíocht a anailísiú. Má thugann an conradh na torthaí a bhfuiltear ag súil leo ar na sonraí samplacha ar ais, ansin beidh cruthúnas oibiachtúil ag na forbróirí ar a chruinneas. + +Ní féidir leis an gcur chuige seo, áfach, rith ceart a chruthú do luachanna ionchuir nach cuid den sampla iad. Mar sin, d’fhéadfadh go gcabhródh tástáil conartha le fabhtanna a aimsiú (i.e. má theipeann ar roinnt cosán cóid na torthaí inmhianaithe a thabhairt ar ais le linn an reatha), ach **ní féidir leis an easpa fabhtanna** a chruthú go cinntitheach. + +Os a choinne sin, is féidir le fíorú foirmiúil a chruthú go foirmiúil go sásaíonn conradh cliste ceanglais maidir le raon éigríochta reatha _gan_ an conradh a rith ar chor ar bith. Éilíonn sé seo sonraíocht fhoirmiúil a chruthú a dhéanann cur síos beacht ar iompraíochtaí conartha cearta agus samhail fhoirmiúil (matamaiticiúil) de chóras an chonartha a fhorbairt. Ansin is féidir linn nós imeachta promhála foirmiúil a leanúint chun comhsheasmhacht idir samhail an chonartha agus a shonraíocht a sheiceáil. + +Le fíorú foirmiúil, is tairiscint mhatamaiticiúil í an cheist maidir le fíorú an sásaíonn loighic ghnó an chonartha na ceanglais is féidir a chruthú nó a bhréagnú. Trí thairiscint a chruthú go foirmiúil, is féidir linn líon éigríochta de chásanna tástála a fhíorú le líon críochta céimeanna. Ar an mbealach seo tá ionchais níos fearr ag fíorú foirmiúil chun a chruthú go bhfuil conradh ceart ó thaobh feidhme maidir le sonraíocht. + +#### Spriocanna fíoraithe idéalacha {#ideal-verification-targets} + +Déanann sprioc fíoraithe cur síos ar an gcóras atá le fíorú go foirmiúil. Is fearr fíorú foirmiúil a úsáid i “gcórais leabaithe” (píosaí beaga simplí bogearraí atá mar chuid de chóras níos mó). Tá siad oiriúnach freisin d'fhearainn speisialaithe ar bheagán rialacha, mar go mbíonn sé níos éasca leis seo uirlisí a mhodhnú chun airíonna a bhaineann go sonrach leis an bhfearann ​​​​a fhíorú. + +Comhlíonann conarthaí cliste - go pointe áirithe ar a laghad - an dá riachtanas. Mar shampla, de bharr méid beag conarthaí Ethereum is féidir iad a fhíorú go foirmiúil. Ar an gcaoi chéanna, leanann an EVM rialacha simplí, rud a fhágann go bhfuil sé níos éasca airíonna shéimeantacha a shonrú agus a fhíorú do chláir a ritheann san EVM. + +### Timthriall forbartha níos tapúla {#faster-development-cycle} + +Go ginearálta bíonn teicnící fíoraithe foirmiúla, amhail seiceáil sábháilte agus rith siombalach, níos éifeachtaí ná anailís rialta ar chód conartha cliste (a dhéantar le linn tástála nó iniúchta). Tá sé seo amhlaidh toisc go mbraitheann fíorú foirmiúil ar luachanna siombalacha chun dearbhuithe a thástáil ("Cad a tharlóidh má dhéanann úsáideoir iarracht éitear _n_ a tharraingt siar?") murab ionann agus tástáil ina n-úsáidtear luachanna nithiúla ("Cad a tharlóidh má dhéanann úsáideoir iarracht 5 éitear a tharraingt siar?"). + +Is féidir le hathróga ionchuir siombalacha aicmí iolracha de luachanna nithiúla a chumhdach, agus mar sin geallann cineálacha cur chuige fíoraithe foirmiúla breis clúdach cóid laistigh d’fhráma ama níos giorra. Nuair a úsáidtear é go héifeachtach, is féidir le fíorú foirmiúil an timthriall forbartha d'fhorbróirí a luathú. + +Feabhsaíonn fíorú foirmiúil freisin an próiseas chun iarratais dhíláraithe (dapps) a thógáil trí earráidí costasacha deartha a laghdú. Chun conarthaí a uasghrádú (nuair is féidir) chun leochaileachtaí a réiteach, tá gá le hathscríobh forleathan ar bhunachair chóid agus ní mór iarracht bhreise a dhéanamh ar fhorbairt. Is féidir le fíorú foirmiúil go leor earráidí a bhrath i bhfeidhmiú conartha a d’fhéadfadh sleamhnú thar thástálaithe agus iniúchóirí agus a thugann neart deiseanna chun na saincheisteanna sin a réiteach sula n-imscartar conradh. + +## Míbhuntáistí a bhaineann le fíorú foirmiúil {#drawbacks-of-formal-verification} + +### Costas saothair láimhe {#cost-of-manual-labor} + +Teastaíonn obair láimhe nach beag de dhíth ar fhíorú foirmiúil, go háirithe fíorú leath-uathoibríoch ina dtreoraíonn duine an promhadóir chun cruthúnais cruinnis a fháil. Ina theannta sin, is gníomhaíocht chasta é sonraíocht fhoirmiúil a chruthú a éilíonn ardscileanna. + +Mar gheall ar na fachtóirí seo (iarracht agus scil) tá fíorú foirmiúil níos éilithí agus níos costasaí i gcomparáid leis na gnáth-mhodhanna chun cruinneas conarthaí a mheas, mar thástáil agus iniúchtaí. Mar sin féin, tá sé praiticiúil an costas a bhaineann le hiniúchadh fíoraithe iomlán a íoc, i bhfianaise chostas na n-earráidí i gcur i bhfeidhm conarthaí cliste. + +### Bréagdhiúltaigh {#false-negatives} + +Ní féidir le fíorú foirmiúil ach a sheiceáil an bhfuil rith an chonartha cliste ag teacht leis an tsonraíocht fhoirmiúil. Mar sin, tá sé tábhachtach a chinntiú go gcuireann an tsonraíocht síos i gceart ar na hiompraíochtaí a bhfuiltear ag súil leo i gconradh cliste. + +Mura scríobhtar sonraíochtaí go dona, ní féidir leis an iniúchadh foirmiúil fíoraithe sáruithe ar airíonna — a léiríonn rith leochaileach - a bhraith. Sa chás seo, d’fhéadfadh forbróir glacadh leis go hearráideach go bhfuil an conradh saor ó fhabht. + +### Saincheisteanna feidhmíochta {#performance-issues} + +Baineann saincheisteanna feidhmíochta áirithe le fíorú foirmiúil. Mar shampla, is féidir le fadhbanna pléasctha staide agus cosáin a thagann chun cinn le linn seiceáil samhaltán agus seiceáil siombalach, faoi seach, tionchar a imirt ar nósanna imeachta fíoraithe. Chomh maith leis sin, is minic a úsáideann uirlisí fíoraithe foirmiúla réitigh SMT agus réiteoirí srianta eile ina mbunchiseal, agus bíonn na réiteoirí seo ag brath ar nósanna imeachta dianríomhaireachta. + +Chomh maith leis sin, ní bhíonn sé indéanta i gcónaí d’fhíoraitheoirí cláir a chinneadh an féidir nó nach féidir airí (a gcuirtear síos air mar fhoirmle loighciúil) a shásamh (an "[ fhadhb inchinntitheachta](https://en.wikipedia.org/wiki/Decision_problem)") toisc go mb'fhéidir nach dtiocfaidh deireadh le ríomhchlár choíche. Mar sin, d'fhéadfadh sé a bheith dodhéanta roinnt airíonna a chruthú do chonradh fiú má tá sé sainithe go maith. + +## Uirlisí fíoraithe foirmiúla le haghaidh conarthaí cliste Ethereum {#formal-verification-tools} + +### Teangacha sonraíochta chun sonraíochtaí foirmiúla a chruthú {#specification-languages} + +**Act**: _*Ceadaíonn Act sonrú nuashonruithe stórála, coinníollacha réamhphoist/postála agus do-athraithigh chonartha. Tá cúil phrofála ag a suite uirlisí freisin atá in ann go leor airíonna a chruthú trí Coq, réiteoirí SMT, nó hevm.** + +- [GitHub](https://github.com/ethereum/act) +- [Doiciméadúchán](https://ethereum.github.io/act/) + +**Scribble** - _* Athraíonn Scribble nótaí cód sa teanga sonraíochta Scribble go dearbhuithe nithiúla a sheiceálann an tsonraíocht.** + +- [Doiciméadúchán](https://docs.scribble.codes/) + +**Dafny** - _*Is teanga ríomhchlárúcháin atá réidh le haghaidh fíorú í Dafny a bhraitheann ar ardleibhéal nótaí le réasúnú a dhéanamh agus cruinneas an chóid a chruthú.** + +- [GitHub](https://github.com/dafny-lang/dafny) + +### Fíoraitheoirí clár chun cruinneas a sheiceáil {#program-verifiers} + +**Certora Prover** - _Uirlis fíoraithe fhoirmiúil uathoibríoch é Certora Prover chun cruinneas cóid a sheiceáil i gconarthaí cliste. Scríobhtar na sonraíochtaí i CVL (Teanga Fhíoraithe Certora), agus braitear sáruithe maoine trí úsáid a bhaint as anailís statach agus réiteach srianta._ + +- [Suíomh Gréasáin](https://www.certora.com/) +- [Doiciméadúchán](https://docs.certora.com/en/latest/index.html) + +**Solidity SMTChecker** - _*Is seiceálaí SMTC Solidity é seiceálaí samhlaltán ionsuite bunaithe ar SMT ( Satisfiability Modulo Teoiricí) agus réiteach Corn. Deimhníonn sé má mheaitseálann cód foinse an chonartha na sonraíochtaí le linn tiomsaithe agus seiceálann sé go statach an bhfuil sáruithe le haghaidh airíonna sábháilteachta.** + +- [GitHub](https://github.com/ethereum/solidity) + +**solc-verify** - _*Is leagan leathnaithe é solc-verify den tiomsaitheoir Solidity atá in ann fíorú foirmiúil uathoibrithe a dhéanamh ar chód Solidity trí úsáid a bhaint as nótaí agus fíorú clár modúlach.** + +- [GitHub](https://github.com/SRI-CSL/solidity) + +**KEVM** - _*Is séimeantaic fhoirmiúil é KEVM den Mheaisín Fíorúil Ethereum (EVM) scríofa i gcreat K. Tá KEVM inrite agus is féidir leis dearbhuithe áirithe a bhaineann le hairí a chruthú trí úsáid a bhaint as loighic inrochtaineachta.** + +- [GitHub](https://github.com/runtimeverification/evm-semantics) +- [Doiciméadúchán](https://jellopaper.org/) + +### Creataí loighciúla chun teoirim a phromhadh {#theorem-provers} + +**Isabelle** - _Is cúntóir cruthúnais é Isabelle/HOL a cheadaíonn foirmlí matamaitice a chur in iúl i dteanga fhoirmiúil agus a sholáthraíonn uirlisí chun iad sin a chruthú foirmlí. Is í an phríomhfheidhm cruthúnais mhatamaiticiúla agus go háirithe fíorú foirmiúil, lena n-áirítear cruinneas crua-earraí nó bogearraí ríomhaireachta a chruthú agus airíonna teangacha agus prótacail ríomhaireachta a chruthú._ + +- [GitHub](https://github.com/isabelle-prover) +- [Doiciméadúchán](https://isabelle.in.tum.de/documentation.html) + +**Coq** - _ Is promhadóir teoirim idirghníomhach é Coq a ligeann duit ríomhchláir a shainiú trí úsáid a bhaint as teoirimí agus cruthúnais cruinis meaisín-seiceáilte a ghiniúint go hidirghníomhach._ + +- [GitHub](https://github.com/coq/coq) +- [Doiciméadúchán](https://coq.github.io/doc/v8.13/refman/index.html) + +### Uirlisí reatha siombalacha chun patrúin leochaileacha i gconarthaí cliste a bhrath {#symbolic-execution-tools} + +**Manticore** - _*Uirlis chun anailís a dhéanamh ar bheartchód EVM bunaithe ar fheidhmiú siombalach*.* + +- [GitHub](https://github.com/trailofbits/manticore) +- [Doiciméadúchán](https://github.com/trailofbits/manticore/wiki) + +**hevm** - _* Is inneall reatha siombalach é hevm agus seiceálaí coibhéise le haghaidh beartchód EVM.** + +- [GitHub](https://github.com/dapphub/dapptools/tree/master/src/hevm) + +**Mythril** - _Uirlis shiombalach chun leochaileachtaí i gconarthaí cliste Ethereum a bhrath_ + +- [GitHub](https://github.com/ConsenSys/mythril-classic) +- [Doiciméadúchán](https://mythril-classic.readthedocs.io/en/develop/) + +## Tuilleadh léitheoireachta {#further-reading} + +- [Conas a Oibríonn Fíorú Foirmiúil Conarthaí Cliste](https://runtimeverification.com/blog/how-formal-verification-of-smart-contracts-works/) +- [Conas is féidir le Fíorú Foirmiúil Conarthaí Cliste Gan Cháim a Chinntiú](https://media.consensys.net/how-formal-verification-can-ensure-flawless-smart-contracts-cbda8ad99bd1) +- [Forbhreathnú ar Thionscadail Fíoraithe Foirmiúla san Éiceachóras Ethereum](https://github.com/leonardoalt/ethereum_formal_verification_overview) +- [Fíorú Foirmiúil Deireadh le Deireadh ar Chonradh Cliste Taisce Ethereum 2.0](https://runtimeverification.com/blog/end-to-end-formal-verification-of-ethereum-2-0-deposit-smart-contract/) +- [An Conradh Cliste is Coitianta ar Domhan a Fhíorú go foirmiúil](https://www.zellic.io/blog/formal-verification-weth) +- [Seiceálaí SMT agus Fíorú Foirmiúil](https://docs.soliditylang.org/en/v0.8.15/smtchecker.html) diff --git a/public/content/translations/ga/developers/docs/smart-contracts/index.md b/public/content/translations/ga/developers/docs/smart-contracts/index.md new file mode 100644 index 00000000000..bd2bbfca979 --- /dev/null +++ b/public/content/translations/ga/developers/docs/smart-contracts/index.md @@ -0,0 +1,112 @@ +--- +title: Cur i láthair maidir le conarthaí cliste +description: Forbhreathnú ar chonarthaí cliste, ag díriú ar a saintréithe agus a dteorainneacha uathúla. +lang: ga +--- + +## Cad is conradh cliste ann? {#what-is-a-smart-contract} + +Is ionann "conradh cliste" agus clár a ritheann ar blocshlabhra Ethereum. Is bailiúchán de chód (a fheidhmeanna) agus sonraí (a staid) atá lonnaithe ag seoladh ar leith ar an blocshlabhra Ethereum. + +Is cineál [cuntais Ethereum](/developers/docs/accounts/) iad conarthaí cliste. Ciallaíonn sé seo go bhfuil iarmhéid acu agus gur féidir iad a úsáid mar sprioc -idirbheart. Níl siad á rialú ag úsáideoir, áfach, ina ionad sin déantar iad a imscaradh chuig an líonra agus a rith mar atá cláraithe. Is féidir le cuntais úsáideora idirghníomhú ansin le conradh cliste trí idirbhearta a chur isteach a fhorghníomhaíonn feidhm atá sainithe ar an gconradh cliste. Is féidir le conarthaí cliste rialacha a shainiú, amhail conradh rialta, agus iad a fhorfheidhmiú go huathoibríoch tríd an gcód. Ní féidir conarthaí cliste a scriosadh de réir réamhshocraithe, agus tá idirghníomhaíochtaí leo do-aisiompaithe. + +## Réamhriachtanais {#prerequisites} + +Má tá tú díreach ag tosú amach nó ag lorg réamhrá nach bhfuil chomh teicniúil, molaimid ár [réamhrá ar chonarthaí cliste](/smart-contracts/). + +Bí cinnte go mbíonn staidéar déanta agat ar [cuntais](/developers/docs/accounts/), [idirbhearta](/developers/docs/transactions/) agus na [meaisín fíorúil Ethereum](/developers/docs/evm/) roimh léim isteach i saol na gconarthaí cliste. + +## Meaisín díola digiteach {#a-digital-vending-machine} + +B’fhéidir gurb é an meafar is fearr le haghaidh conradh cliste ná meaisín díola, mar a thuairiscíonn [Nick Szabo](https://unenumerated.blogspot.com/). Leis na hionchuir chearta, ráthaítear aschur áirithe. + +Sneaiceanna a fháil ó mheaisín díola: + +``` +money + snack selection = snack dispensed +``` + +Tá an loighic seo ríomhchláraithe isteach sa mheaisín díola. + +Tá loighic ríomhchláraithe isteach i gconradh cliste, cosúil le meaisín díola. Seo sampla simplí den chuma a bheadh ​​ar an meaisín díola seo dá mba chonradh cliste é a scríobhadh i Solidity: + +```solidity +pragma solidity 0.8.7; + +contract VendingMachine { + + // Declare state variables of the contract + address public owner; + mapping (address => uint) public cupcakeBalances; + + // When 'VendingMachine' contract is deployed: + // 1. set the deploying address as the owner of the contract + // 2. set the deployed smart contract's cupcake balance to 100 + constructor() { + owner = msg.sender; + cupcakeBalances[address(this)] = 100; + } + + // Allow the owner to increase the smart contract's cupcake balance + function refill(uint amount) public { + require(msg.sender == owner, "Only the owner can refill."); + cupcakeBalances[address(this)] += amount; + } + + // Allow anyone to purchase cupcakes + function purchase(uint amount) public payable { + require(msg.value >= amount * 1 ether, "You must pay at least 1 ETH per cupcake"); + require(cupcakeBalances[address(this)] >= amount, "Not enough cupcakes in stock to complete this purchase"); + cupcakeBalances[address(this)] -= amount; + cupcakeBalances[msg.sender] += amount; + } +} +``` + +Mar a chuireann meaisín díola deireadh leis an ngá atá le fostaí díoltóra, is féidir le conarthaí cliste áit idirghabhálaithe a ghlacadh i go leor tionscail. + +## Gan chead {#permissionless} + +Is féidir le duine ar bith conradh cliste a scríobh agus é a imscaradh chuig an líonra. Ní gá duit ach foghlaim conas códú i [dteanga conartha chliste](/developers/docs/smart-contracts/languages/), agus go leor ETH a bheith agat chun do chonradh a imscaradh. Is idirbheart teicniúil é conradh cliste a imscaradh, mar sin ní mór duit [gas](/developers/docs/gas/) a íoc ar an mbealach céanna is gá duit gás a íoc as aistriú simplí ETH. Mar sin féin, tá costais gháis le haghaidh imscaradh conartha i bhfad níos airde. + +Tá teangacha atá áisiúil don fhorbróir ag Ethereum chun conarthaí cliste a scríobh: + +- Solidity +- Vyper + +[Tuilleadh faoi theangacha](/developers/docs/smart-contracts/languages/) + +Mar sin féin, ní mór iad a thiomsú sular féidir iad a imscaradh ionas gur féidir le meaisín fíorúil Ethereum an conradh a léirmhíniú agus a stóráil. [Tuilleadh faoin tiomsú](/developers/docs/smart-contracts/compiling/) + +## In-chumthacht {#composability} + +Tá conarthaí cliste poiblí ar Ethereum agus is féidir smaoineamh orthu mar API oscailte. Ciallaíonn sé seo gur féidir leat conarthaí cliste eile a ghlaoch i do chonradh cliste féin chun an méid atá indéanta a leathnú go mór. Is féidir le conarthaí fiú conarthaí eile a imscaradh. + +Foghlaim tuilleadh faoi [inchumthacht conartha cliste](/developers/docs/smart-contracts/composability/). + +## Teorainneacha {#limitations} + +Ní féidir le conarthaí cliste leo féin faisnéis a fháil faoi imeachtaí “dáiríre” toisc nach féidir leo sonraí a aisghabháil ó fhoinsí seachshlabhra. Ciallaíonn sé seo nach féidir leo freagairt d'imeachtaí sa saol fíor. Is d'aon ghnó atá sé seo amhlaidh. D’fhéadfaí comhdhearcadh a chur i mbaol, rud atá tábhachtach don tslándáil agus don dílárú, trí bheith ag brath ar fhaisnéis sheachtrach. + +Mar sin féin, tá sé tábhachtach go mbeadh feidhmchláir bhlocshlabhra in ann sonraí as slabhra a úsáid. Is é an réiteach ná [oracail](/developers/docs/oracles/), uirlisí a ionchorpraíonn sonraí as slabhra agus a chuireann ar fáil do chonarthaí cliste iad. + +Teorainn eile ar chonarthaí cliste ná uasmhéid an chonartha. Is féidir le conradh cliste a bheith d'uasmhéid 24KB nó rithfidh sé as gás. Is féidir dul timpeall air seo trí úsáid a bhaint as [An Patrún Diamond](https://eips.ethereum.org/EIPS/eip-2535). + +## Conarthaí multisig {#multisig} + +Is éard atá i gconarthaí multisig (sínithe iolracha) cuntais chonarthaí cliste a éilíonn sínithe bailí iolracha chun idirbheart a dhéanamh. Tá sé seo an-úsáideach chun pointí aonair teipe a sheachaint i gcás conarthaí a bhfuil méideanna suntasacha éitear nó comharthaí eile acu. Roinneann Multisigs freisin an fhreagracht as forghníomhú conartha agus an phríomhbhainistíocht idir ilpháirtithe agus cuireann siad cosc ​​ar chailliúint eochair phríobháideach aonair as a dtiocfaidh caillteanas do-aisiompaithe cistí. Ar na cúiseanna sin, is féidir conarthaí multisig a úsáid le haghaidh rialachas simplí DAO. Éilíonn multisigs N sínithe as M sínithe inghlactha féideartha (nuair a bhíonn N ≤ M, agus M > 1) chun é a rith. Úsáidtear `N = 3, M = 5` agus `N = 4, M = 7` go coitianta. Éilíonn multisig 4/7 ceithre as seacht síniú bailí féideartha. Ciallaíonn sé seo go bhfuil na cistí fós in-aisghabhála fiú má chailltear trí shíniú. Sa chás seo, ciallaíonn sé freisin go gcaithfidh formhór na sealbhóirí eochracha aontú agus síniú chun an conradh a fhorghníomhú. + +## Acmhainní conartha cliste {#smart-contract-resources} + +**Conarthaí OpenZeppelin -** **_Leabharlann le haghaidh forbairt conartha cliste slán._** + +- [openzeppelin.com/contracts/](https://openzeppelin.com/contracts/) +- [GitHub](https://github.com/OpenZeppelin/openzeppelin-contracts) +- [Fóram Pobail](https://forum.openzeppelin.com/c/general/16) + +## Tuilleadh léitheoireachta {#further-reading} + +- [Coinbase: Cad is conradh cliste ann?](https://www.coinbase.com/learn/crypto-basics/what-is-a-smart-contract) +- [Chainlink: Cad is conradh cliste ann?](https://chain.link/education/smart-contracts) +- [Físeán: Mínithe Go Simplí - Conarthaí Cliste](https://youtu.be/ZE2HxTmxfrI) +- [Cyfrin Updraft: ardán foghlama agus iniúchta Web3](https://updraft.cyfrin.io) diff --git a/public/content/translations/ga/developers/docs/smart-contracts/languages/index.md b/public/content/translations/ga/developers/docs/smart-contracts/languages/index.md new file mode 100644 index 00000000000..93ace79f22c --- /dev/null +++ b/public/content/translations/ga/developers/docs/smart-contracts/languages/index.md @@ -0,0 +1,326 @@ +--- +title: Teangacha conartha cliste +description: Forbhreathnú agus comparáid idir an dá phríomhtheanga conartha cliste - Solidity agus Vyper. +lang: ga +--- + +Is gné iontach de Ethereum é gur féidir conarthaí cliste a ríomhchlárú le teangacha atá sách éasca do na forbróirí. Má tá taithí agat ar Python nó ar aon [teanga "curly bracket"](https://wikipedia.org/wiki/List_of_programming_languages_by_type#Curly-bracket_languages), is féidir leat teacht ar theanga le comhréir aithnidiúil. + +Is iad seo an dá theanga is gníomhaí agus is mó cothabhála: + +- Solidity +- Vyper + +Soláthraíonn Remix IDE timpeallacht chuimsitheach forbartha chun conarthaí a chruthú agus a thástáil i Solidity agus Vyper araon. [Bain triail as an IDE Remix sa bhrabhsálaí](https://remix.ethereum.org) chun an códú a thosú. + +Seans gur mhaith le forbróirí a bhfuil níos mó taithí acu Yul a úsáid freisin, teanga idirmheánach don [Ethereum Virtual Machine](/developers/docs/evm/), nó Yul+, síneadh ar Yul. + +Má tá tú fiosrach agus fonn ort cabhrú le tástáil a dhéanamh ar theangacha nua atá fós á bhforbairt go mór, is féidir leat triail a bhaint as Fe, teanga chonarthach cliste atá ag teacht chun cinn agus atá fós ina thús. + +## Réamhriachtanais {#prerequisites} + +Is féidir le heolas atá agat cheana ar theangacha ríomhchlárúcháin, go háirithe ar JavaScript nó Python, cabhrú leat tuiscint a fháil ar dhifríochtaí i dteangacha conartha cliste. Molaimid duit freisin tuiscint a fháil ar choincheap na gconarthaí cliste roimh thochailt go ró-dhomhain isteach sna comparáidí teanga. [Réamhrá ar chonarthaí cliste](/developers/docs/smart-contracts/). + +## Solidity {#solidity} + +- Teanga ardleibhéil atá dírithe ar oibiachtaí chun conarthaí cliste a chur i bhfeidhm. +- Teanga "curly-bracket" atá go mór faoi thionchar C++. +- Scríofa go statach (tá an cineál athróige ar eolas ag am tiomsaithe). +- Tacaíochtaí: + - Oidhreacht (is féidir leat síneadh a chur le conarthaí eile). + - Leabharlanna (is féidir leat cód ath-inúsáidte a chruthú ar féidir leat glaoch air ó chonarthaí éagsúla - cosúil le feidhmeanna statacha i rang statach i dteangacha ríomhchláraithe eile atá dírithe ar oibiachtaí). + - Cineálacha casta atá sainithe ag an úsáideoir. + +### Naisc thábhachtacha {#important-links} + +- [Doiciméadúchán](https://docs.soliditylang.org/en/latest/) +- [Tairseach Teanga Solidity](https://soliditylang.org/) +- [Solidity trí Shampla](https://docs.soliditylang.org/en/latest/solidity-by-example.html) +- [GitHub](https://github.com/ethereum/solidity/) +- Idir [Solidity Gitter Seomra comhrá](https://gitter.im/ethereum/solidity) go [ Solidity Matrix Seomra comhrá](https://matrix.to/#/#ethereum_solidity:gitter.im) +- [Bileog leideanna](https://reference.auditless.com/cheatsheet) +- [Blag Solidity](https://blog.soliditylang.org/) +- [Solidity ar Twitter](https://twitter.com/solidity_lang) + +### Conradh samplach {#example-contract} + +```solidity +// SPDX-License-Identifier: GPL-3.0 +pragma solidity >= 0.7.0; + +contract Coin { + // The keyword "public" makes variables + // accessible from other contracts + address public minter; + mapping (address => uint) public balances; + + // Events allow clients to react to specific + // contract changes you declare + event Sent(address from, address to, uint amount); + + // Constructor code is only run when the contract + // is created + constructor() { + minter = msg.sender; + } + + // Sends an amount of newly created coins to an address + // Can only be called by the contract creator + function mint(address receiver, uint amount) public { + require(msg.sender == minter); + require(amount < 1e60); + balances[receiver] += amount; + } + + // Sends an amount of existing coins + // from any caller to an address + function send(address receiver, uint amount) public { + require(amount <= balances[msg.sender], "Insufficient balance."); + balances[msg.sender] -= amount; + balances[receiver] += amount; + emit Sent(msg.sender, receiver, amount); + } +} +``` + +Ba chóir go dtabharfadh an sampla seo tuiscint duit ar chomhréir an chonartha Solidity. Tá tuairisc níos mionsonraithe a fháil ar na feidhmeanna agus na hathróga, [sna doiciméid](https://docs.soliditylang.org/en/latest/contracts.html). + +## Vyper {#vyper} + +- Teanga ríomhchlárúcháin Pythonic +- Clóscríobh láidir +- Cód tiomsaitheora beag agus intuigthe +- Giniúint éifeachtach beartchóid +- Tá níos lú gnéithe aige d’aon ghnó ná Solidity agus é d'aidhm aige conarthaí a dhéanamh níos sláine agus níos éasca le hiniúchadh. Ní thacaíonn Vyper le: + - Mionathraitheoirí + - Oidhreacht + - Tionól inlíne + - Ró-ualú feidhme + - Ró-ualú oibritheora + - Glaonna athfhillteacha + - Lúba fad gan teorainn + - Pointí seasta dénártha + +Le haghaidh tuilleadh faisnéise, [léigh réasúnaíocht Vyper](https://vyper.readthedocs.io/en/latest/index.html). + +### Naisc thábhachtacha {#important-links-1} + +- [Doiciméadúchán](https://vyper.readthedocs.io) +- [Vyper le Sampla](https://vyper.readthedocs.io/en/latest/vyper-by-example.html) +- [Níos mó Vyper de réir Sampla](https://vyper-by-example.org/) +- [GitHub](https://github.com/vyperlang/vyper) +- [Vyper comhrá pobail Discord](https://discord.gg/SdvKC79cJk) +- [Bileog leideanna](https://reference.auditless.com/cheatsheet) +- [Creataí agus uirlisí forbartha conartha cliste do Vyper](/developers/docs/programming-languages/python/) +- [VyperPunk - foghlaim conas conarthaí cliste Vyper a dhaingniú agus a haiceáil](https://github.com/SupremacyTeam/VyperPunk) +- [VyperExamples - samplaí leochaileachta Vyper](https://www.vyperexamples.com/reentrancy) +- [Mol forbartha Vyper](https://github.com/zcor/vyper-dev) +- [Samplaí de chonarthaí cliste vyper](https://github.com/pynchmeister/vyper-greatest-hits/tree/main/contracts) +- [Acmhainní coimeádta iontacha Vyper](https://github.com/spadebuilders/awesome-vyper) + +### Sampla {#example} + +```python +# Open Auction + +# Auction params +# Beneficiary receives money from the highest bidder +beneficiary: public(address) +auctionStart: public(uint256) +auctionEnd: public(uint256) + +# Current state of auction +highestBidder: public(address) +highestBid: public(uint256) + +# Set to true at the end, disallows any change +ended: public(bool) + +# Keep track of refunded bids so we can follow the withdraw pattern +pendingReturns: public(HashMap[address, uint256]) + +# Create a simple auction with `_bidding_time` +# seconds bidding time on behalf of the +# beneficiary address `_beneficiary`. +@external +def __init__(_beneficiary: address, _bidding_time: uint256): + self.beneficiary = _beneficiary + self.auctionStart = block.timestamp + self.auctionEnd = self.auctionStart + _bidding_time + +# Bid on the auction with the value sent +# together with this transaction. +# The value will only be refunded if the +# auction is not won. +@external +@payable +def bid(): + # Check if bidding period is over. + assert block.timestamp < self.auctionEnd + # Check if bid is high enough + assert msg.value > self.highestBid + # Track the refund for the previous high bidder + self.pendingReturns[self.highestBidder] += self.highestBid + # Track new high bid + self.highestBidder = msg.sender + self.highestBid = msg.value + +# Withdraw a previously refunded bid. The withdraw pattern is +# used here to avoid a security issue. If refunds were directly +# sent as part of bid(), a malicious bidding contract could block +# those refunds and thus block new higher bids from coming in. +@external +def withdraw(): + pending_amount: uint256 = self.pendingReturns[msg.sender] + self.pendingReturns[msg.sender] = 0 + send(msg.sender, pending_amount) + +# End the auction and send the highest bid +# to the beneficiary. +@external +def endAuction(): + # It is a good guideline to structure functions that interact + # with other contracts (i.e. they call functions or send ether) + # into three phases: + # 1. checking conditions + # 2. performing actions (potentially changing conditions) + # 3. interacting with other contracts + # If these phases are mixed up, the other contract could call + # back into the current contract and modify the state or cause + # effects (ether payout) to be performed multiple times. + # If functions called internally include interaction with external + # contracts, they also have to be considered interaction with + # external contracts. + + # 1. Conditions + # Check if auction endtime has been reached + assert block.timestamp >= self.auctionEnd + # Check if this function has already been called + assert not self.ended + + # 2. Effects + self.ended = True + + # 3. Interaction + send(self.beneficiary, self.highestBid) +``` + +Ba cheart go dtabharfadh an sampla seo tuiscint duit ar chomhréir chonartha Vyper. Le cur síos níos mionsonraithe a fháil ar na feidhmeanna agus na hathróga, [féach na doiciméid](https://vyper.readthedocs.io/en/latest/vyper-by-example.html#simple-open-auction). + +## Yul agus Yul+ {#yul} + +Mura bhfuil taithí agat ar Ethereum agus mura bhfuil aon chódú déanta agat le teangacha conartha cliste go fóill, molaimid duit tosú le Solidity nó Vyper. Ná breathnaigh ar Yul nó Yul+ go dtí go mbíonn tú eolach ar na cleachtais is fearr maidir le slándáil conarthaí cliste agus na sonraí a bhaineann le bheith ag obair leis an EVM. + +**Yul** + +- Teanga idirmheánach le haghaidh Ethereum. +- Tacaíonn sé le [EVM](/developers/docs/evm) agus [Ewasm](https://github.com/ewasm), WebAssembly ar a bhfuil blas Ethereum, agus tá sé deartha le bheith ina comhainmneoir inúsáidte ar an dá ardán. +- Sprioc mhaith le haghaidh céimeanna optamaithe ardleibhéil ar féidir leo leas a dhéanamh do ardáin EVM agus Ewasm araon. + +**Yul+** + +- Síneadh íseal-leibhéil, ard-éifeachtach ar Yul. +- Dearadh é ar dtús do chonradh [rolladh dóchasach](/developers/docs/scaling/optimistic-rollups/). +- Is féidir breathnú ar Yul+ mar thogra uasghrádaithe turgnamhach do Yul, ag cur gnéithe nua leis. + +### Naisc thábhachtacha {#important-links-2} + +- [Doiciméadúchán Yul](https://docs.soliditylang.org/en/latest/yul.html) +- [Doiciméadúchán Yul+](https://github.com/fuellabs/yulp) +- [Clós Súgartha Yul+](https://yulp.fuel.sh/) +- [Yul+ Réamhphost](https://medium.com/@fuellabs/introducing-yul-a-new-low-level-language-for-ethereum-aa64ce89512f) + +### Conradh samplach {#example-contract-2} + +Cuireann an sampla simplí seo a leanas feidhm chumhachta i ngníomh. Is féidir é a thiomsú le `solc --strict-assembly --bin input.yul`. Ba chóir an sampla a stóráil sa chomhad input.yul. + +``` +{ + function power(base, exponent) -> result + { + switch exponent + case 0 { result := 1 } + case 1 { result := base } + default + { + result := power(mul(base, base), div(exponent, 2)) + if mod(exponent, 2) { result := mul(base, result) } + } + } + let res := power(calldataload(0), calldataload(32)) + mstore(0, res) + return(0, 32) +} +``` + +Má tá taithí mhaith agat cheana féin ar chonarthaí cliste, is féidir feidhmiú iomlán ERC20 in Yul a fháil [anseo ](https://solidity.readthedocs.io/en/latest/yul.html#complete-erc20-example). + +## Fe {#fe} + +- Teanga chlóscríofa go statach do Mheaisín Fíorúil Ethereum (EVM). +- Spreagtha ag Python agus Rust. +- Tá sé mar aidhm leis a bheith éasca le foghlaim - fiú d'fhorbróirí nach bhfuil taithí acu ar éiceachóras Ethereum. +- Tá Fe i dtús forbartha fós, eisíodh alfa don teanga i mí Eanáir 2021. + +### Naisc thábhachtacha {#important-links-3} + +- [GitHub](https://github.com/ethereum/fe) +- [Fógra Fe](https://snakecharmers.ethereum.org/fe-a-new-language-for-the-ethereum-ecosystem/) +- [Treochlár Fe 2021](https://notes.ethereum.org/LVhaTF30SJOpkbG1iVw1jg) +- [Comhrá Discord Fe](https://discord.com/invite/ywpkAXFjZH) +- [Fe ar Twitter](https://twitter.com/official_fe) + +### Conradh samplach {#example-contract-3} + +Seo a leanas conradh simplí a cuireadh i bhfeidhm in Fe. + +``` +type BookMsg = bytes[100] + +contract GuestBook: + pub guest_book: map + + event Signed: + book_msg: BookMsg + + pub def sign(book_msg: BookMsg): + self.guest_book[msg.sender] = book_msg + + emit Signed(book_msg=book_msg) + + pub def get_msg(addr: address) -> BookMsg: + return self.guest_book[addr].to_mem() + +``` + +## Conas rogha a dhéanamh {#how-to-choose} + +Ar nós aon teanga ríomhchlárúcháin eile, baineann sé den chuid is mó leis an uirlis cheart a roghnú don phost ceart chomh maith le roghanna pearsanta. + +Seo roinnt rudaí le cur san áireamh mura bhfuil triail bainte agat as aon cheann de na teangacha go fóill: + +### Cad atá iontach faoi Solidity? {#solidity-advantages} + +- Más tosaitheoir thú, tá go leor ranganna teagaisc agus uirlisí foghlama ar fáil. Féach tuilleadh faoi sin sa rannán [Foghlaim trí Chódú](/developers/learning-tools/). +- Tá uirlisí maithe forbróra ar fáil. +- Tá pobal mór forbróirí ag Solidity, rud a chiallaíonn go bhfaighidh tú freagraí ar do cheisteanna tapa go leor. + +### Cad atá iontach faoi Vyper? {#vyper-advatages} + +- Bealach iontach le haghaidh forbróirí Python atá ag iarraidh conarthaí cliste a scríobh. +- Tá líon níos lú gnéithe ag Vyper, rud a fhágann go bhfuil sé iontach chun smaointe a fhréamhshamhlú go tapa. +- Tá sé mar aidhm ag Vyper a bheith éasca le hiniúchadh agus an-inléite don duine. + +### Cad atá iontach faoi Yul agus Yul+? {#yul-advantages} + +- Teanga ísealleibhéil atá simplí agus feidhmiúil. +- Ligeann sé duit dul i bhfad níos gaire do EVM amh, a chuideoidh le húsáid gáis do chonarthaí a bharrfheabhsú. + +## Comparáidí teanga {#language-comparisons} + +Chun comparáid a dhéanamh idir an chomhréir bhunúsach, saolré an chonartha, comhéadain, oibreoirí, struchtúir sonraí, feidhmeanna, sreabhadh rialaithe, agus tuilleadh seiceáil an [bileog leideanna Auditless](https://reference.auditless.com/cheatsheet/) + +## Tuilleadh léitheoireachta {#further-reading} + +- [Leabharlann Conarthaí Solidity le OpenZeppelin](https://docs.openzeppelin.com/contracts) +- [Solidity trí Shampla](https://solidity-by-example.org) diff --git a/public/content/translations/ga/developers/docs/smart-contracts/libraries/index.md b/public/content/translations/ga/developers/docs/smart-contracts/libraries/index.md new file mode 100644 index 00000000000..d84a9e5c592 --- /dev/null +++ b/public/content/translations/ga/developers/docs/smart-contracts/libraries/index.md @@ -0,0 +1,117 @@ +--- +title: Leabharlanna conarthaí cliste +description: +lang: ga +--- + +Ní gá duit gach conradh cliste i do thionscadal a scríobh ón tús. Tá go leor leabharlanna conartha cliste foinse oscailte ar fáil a sholáthraíonn bloic thógála ath-inúsáidte do do thionscadal ar féidir leo tú a shábháil ón roth a athchruthú. + +## Réamhriachtanais {#prerequisites} + +Sula léimeann tú isteach i leabharlanna conartha cliste, is fiú tuiscint mhaith a bheith agat ar struchtúr conartha cliste. Téigh chuig [anatamaíocht chonartha cliste](/developers/docs/smart-contracts/anatomy/) mura bhfuil sé sin déanta agat go fóill. + +## Cad atá i leabharlann {#whats-in-a-library} + +Is gnách go bhfaighidh tú dhá chineál bloic thógála i leabharlanna conarthaí cliste: iompraíocht ath-inúsáidte is féidir leat a chur le do chonarthaí, agus cur i bhfeidhm chaighdeáin éagsúla. + +### Iompraíochtaí {#behaviors} + +Agus conarthaí cliste á scríobh agat, tá seans maith ann go mbeidh tú ag scríobh patrúin den chineál céanna arís agus arís eile, mar shampla seoladh _admin_ a shannadh chun oibríochtaí cosanta a dhéanamh i gconradh, nó cnaipe éigeandála _sos_ a chur leis i gcás ceiste gan choinne. + +Is gnách go soláthraíonn leabharlanna conartha cliste feidhmiúcháin ath-inúsáidte de na hiompraíochtaí seo mar [leabharlanna](https://solidity.readthedocs.io/en/v0.7.2/contracts.html#libraries) nó trí <[oidhreacht](https://solidity.readthedocs.io/en/v0.7.2/contracts.html#inheritance) i Solidity. + +Mar shampla, seo a leanas leagan simplithe den chonradh [`Ownable`](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v3.2.0/contracts/access/Ownable.sol) ón [Leabharlann Conarthaí OpenZeppelin](https://github.com/OpenZeppelin/openzeppelin-contracts), a ainmníonn seoladh mar úinéir conartha, agus a sholáthraíonn modhnóir chun rochtain ar mhodh a shrianadh chuig an úinéir amháin. + +```solidity +contract Ownable { + address public owner; + + constructor() internal { + owner = msg.sender; + } + + modifier onlyOwner() { + require(owner == msg.sender, "Ownable: caller is not the owner"); + _; + } +} +``` + +Chun bloc tógála mar seo a úsáid i do chonradh, bheadh ​​ort é a allmhairiú ar dtús, agus ansin síneadh uaidh i do chonarthaí féin. Ligeann sé seo duit úsáid a bhaint as an modhnóir a sholáthraíonn an bunchonradh `Ownable` chun do chuid feidhmeanna féin a dhéanamh slán. + +```solidity +import ".../Ownable.sol"; // Path to the imported library + +contract MyContract is Ownable { + // The following function can only be called by the owner + function secured() onlyOwner public { + msg.sender.transfer(1 ether); + } +} +``` + +Sampla coitianta eile is ea [SafeMath](https://docs.openzeppelin.com/contracts/3.x/utilities#math) nó [DsMath](https://dappsys.readthedocs.io/en/latest/ds_math.html). Is leabharlanna iad seo (seachas bunchonarthaí) a sholáthraíonn feidhmeanna uimhríochta le seiceálacha forshreafaí, nach soláthraíonn an teanga. Is dea-chleachtas é ceachtar de na leabharlanna seo a úsáid in ionad oibríochtaí uimhríochta dúchais chun do chonradh a chosaint ar ró-shreabhadh, rud a bhféadfadh iarmhairtí tubaisteacha a bheith aige! + +### Caighdeáin {#standards} + +Chun [cumthacht agus idir-inoibritheacht](/developers/docs/smart-contracts/composability/) a éascú, tá roinnt caighdeán sainmhínithe ag pobal Ethereum i bhfoirm **ERCs **. Is féidir leat tuilleadh a léamh fúthu sa rannán [caighdeáin](/developers/docs/standards/). + +Agus ERC san áireamh mar chuid de do chonarthaí, is smaoineamh maith é feidhmiú caighdeánach a lorg seachas iarracht a dhéanamh do chuid féin a rolladh amach. Áirítear le go leor leabharlanna conartha cliste feidhmiúcháin do na ERCanna is mó ráchairt. Mar shampla, tá an [caighdeán comharthaí idirmhalartacha ERC20](/developers/tutorials/understand-the-erc-20-token-smart-contract/) uileláithreach le fáil in [HQ20](https://github.com/HQ20/contracts/blob/master/contracts/token/README.md), [DappSys](https://github.com/dapphub/ds-token/) agus [OpenZeppelin ](https://docs.openzeppelin.com/contracts/3.x/erc20). Ina theannta sin, cuireann roinnt ERCanna feidhmiúcháin chanónacha ar fáil mar chuid den ERC féin. + +Is fiú a lua nach bhfuil roinnt ERCanna neamhspleách, ach gur breisithe iad le ERCanna eile. Mar shampla, cuireann [ERC2612](https://eips.ethereum.org/EIPS/eip-2612) síneadh le ERC20 chun a inúsáidteacht a fheabhsú. + +## Conas leabharlann a chur leis {#how-to} + +Déan tagairt i gcónaí do dhoiciméadú na leabharlainne atá á cur agat le haghaidh treoracha sonracha maidir le conas é a áireamh i do thionscadal. Déantar roinnt leabharlann conarthaí Solidity a phacáistiú trí úsáid a bhaint as `npm`, mar sin ní féidir leat ach `suiteáil npm ` a dhéanamh orthu. Breathnóidh formhór na n-uirlisí chun [conarthaí a thiomsú](/developers/docs/smart-contracts/compiling/) ar do `node_modules` le haghaidh leabharlanna conartha cliste, ionas gur féidir leat na rudaí seo a leanas a dhéanamh: + +```solidity +// This will load the @openzeppelin/contracts library from your node_modules +import "@openzeppelin/contracts/token/ERC721/ERC721.sol"; + +contract MyNFT is ERC721 { + constructor() ERC721("MyNFT", "MNFT") public { } +} +``` + +Is cuma cén modh a úsáideann tú, agus leabharlann san áireamh, coinnigh súil i gcónaí ar an leagan [teanga](/developers/docs/smart-contracts/languages/). Mar shampla, ní féidir leat leabharlann a úsáid le haghaidh Solidity 0.6 má tá do chonarthaí á scríobh agat i Solidity 0.5. + +## Cathain a úsáid {#when-to-use} + +Tá buntáistí éagsúla ag baint le leabharlann chliste chonartha a úsáid le haghaidh do thionscadal. Ar an gcéad dul síos, sábhálann sé am duit trí bhloic thógála réidh le húsáid a sholáthar duit is féidir leat a chur san áireamh i do chóras, seachas a bheith ag iarraidh iad a chódú duit féin. + +Is buntáiste mór é slándáil freisin. Is minic freisin go ndéantar dianscrúdú ar leabharlanna conarthaí cliste foinse oscailte. Ós rud é go mbraitheann go leor tionscadal orthu, tá spreagadh láidir ag an bpobal iad a choinneáil faoi athbhreithniú leanúnach. Tá sé i bhfad níos coitianta earráidí a aimsiú sa chód feidhme ná i leabharlanna conartha in-athúsáidte. Déantar [iniúchtaí seachtracha](https://github.com/OpenZeppelin/openzeppelin-contracts/tree/master/audits) ar roinnt leabharlann freisin le haghaidh slándála breise. + +Mar sin féin, tá an baol ann go n-áireofaí cód nach bhfuil tú eolach air i do thionscadal agus leabharlanna conartha cliste á n-úsáid agat. Bheadh fonn ort conradh a iompórtáil agus é a áireamh go díreach isteach i do thionscadal, ach gan tuiscint mhaith ar cad a dhéanann an conradh sin, d'fhéadfá fadhb a thabhairt isteach i do chóras gan chuimhneamh mar gheall ar iompar gan choinne. Bí cinnte i gcónaí doiciméadú an chóid atá á iompórtáil agat a léamh, agus ansin déan athbhreithniú ar an gcód féin sula ndéanann tú cuid de do thionscadal de! + +Ar deireadh, agus cinneadh á dhéanamh ar cheart leabharlann a chur san áireamh, déan machnamh ar a húsáid iomlán. Baineann buntáistí le leabharlann a bhfuil glacadh ag pobal forleathan leis le níos mó súile ag faire amach d'fhadhbanna. Ba chóir go mbeadh slándáil mar phríomhfhócas agat agus tú ag tógáil le conarthaí cliste! + +## Uirlisí gaolmhara {#related-tools} + +**Conarthaí OpenZeppelin -** **_An leabharlann is mó a bhfuil tóir uirthi le haghaidh forbairt conartha cliste slán._ ** + +- [Doiciméadúchán](https://docs.openzeppelin.com/contracts/) +- [GitHub](https://github.com/OpenZeppelin/openzeppelin-contracts) +- [Fóram Pobail](https://forum.openzeppelin.com/c/general/16) + +**DappSys -** **_Bloic thógála atá sábháilte, simplí agus solúbtha le haghaidh conarthaí cliste._** + +- [Doiciméadúchán](https://dappsys.readthedocs.io/) +- [GitHub](https://github.com/dapphub/dappsys) + +**HQ20 -** **_Tionscadal Solidity le conarthaí, leabharlanna agus samplaí chun cabhrú leat feidhmchláir dáilte lánfheidhme a thógáil don domhan fíor._** + +- [GitHub](https://github.com/HQ20/contracts) + +**thirdweb Solidity SDK -** **_Soláthraíonn sé na huirlisí is gá chun conarthaí saincheaptha cliste a thógáil go héifeachtach_** + +- [Doiciméadúchán](https://portal.thirdweb.com/solidity/) +- [GitHub](https://github.com/thirdweb-dev/contracts) + +## Ranganna teagaisc a bhaineann leo {#related-tutorials} + +- [Breithnithe slándála d'fhorbróirí Ethereum](/developers/docs/smart-contracts/security/) _- Teagaisc ar chúrsaí slándála agus conarthaí cliste á dtógáil, lena n-áirítear leabharlann úsáid._ +- [Tuig an conradh cliste comharthaí ERC-20](/developers/tutorials/understand-the-erc-20-token-smart-contract/) _-Teagasc ar an gcaighdeán ERC20, arna sholáthar ag iliomad leabharlanna._ + +## Tuilleadh léitheoireachta {#further-reading} + +_Ar eolas agat ar acmhainn pobail a chabhraigh leat? Cuir an leathanach seo in eagar agus cuir leis!_ diff --git a/public/content/translations/ga/developers/docs/smart-contracts/security/index.md b/public/content/translations/ga/developers/docs/smart-contracts/security/index.md new file mode 100644 index 00000000000..a331983d31c --- /dev/null +++ b/public/content/translations/ga/developers/docs/smart-contracts/security/index.md @@ -0,0 +1,580 @@ +--- +title: Slándáil chonartha cliste +description: Forbhreathnú ar threoirlínte chun conarthaí cliste Ethereum a thógáil +lang: ga +--- + +Tá conarthaí cliste thar a bheith solúbtha, agus tá siad in ann méideanna móra luacha agus sonraí a rialú, agus an loighic do-athraithe a reáchtáil bunaithe ar chód a imscartar ar an blocshlabhra. Chruthaigh sé seo éiceachóras bríomhar d’fheidhmchláir dhíláraithe gan iontaoibh a sholáthraíonn go leor buntáistí thar chórais oidhreachta. Léiríonn siad freisin deiseanna d’ionsaitheoirí atá ag iarraidh brabús a dhéanamh trí leas a bhaint as leochaileachtaí i gconarthaí cliste. + +Déanann blocshlabhraí poiblí, cosúil le Ethereum, an cheist maidir le conarthaí cliste a dhaingniú níos casta fós. Ní féidir cód conartha imlonnaithe _go hiondúil_ a athrú le lochtanna slándála a phaisteáil, agus bíonn sé fíordheacair sócmhainní a ghoidtear ó chonarthaí cliste a rianú agus de ghnáth ní féidir iad a aisghabháil mar gheall ar dho- athraitheacht. + +Cé go n-athraíonn figiúirí, meastar go bhfuil an méid iomlán luach a goideadh nó a cailleadh de bharr lochtanna slándála i gconarthaí cliste níos mó go mór ná $1 billiún. Áirítear leis seo teagmhais ardphróifíle, mar an [hack DAO](https://hackingdistributed.com/2016/06/18/analysis-of-the-dao-exploit/) (3.6M ETH goidte, luach os cionn $1B i bpraghsanna an lae inniu), [Haic sparán il-sig Parity](https://www.coindesk.com/30-million-ether-reported-stolen-parity-wallet-breach) ($30M caillte ag hackers), agus an [Parity eisiúint sparán reoite](https://www.theguardian.com/technology/2017/nov/08/cryptocurrency-300m-dollars-stolen-bug-ether) (os cionn $300M in ETH faoi ghlas go deo). + +De bharr na saincheisteanna thuasluaite tá sé ríthábhachtach d’fhorbróirí iarracht a dhéanamh chun conarthaí cliste atá slán, láidir agus athléimneach a thógáil. Is gnó tromchúiseach é slándáil conartha chliste, agus ní mór do gach forbróir é a fhoghlaim. Clúdóidh an treoir seo breithnithe slándála d’fhorbróirí Ethereum agus scrúdóidh sé acmhainní chun slándáil conarthaí cliste a fheabhsú. + +## Réamhriachtanais {#prerequisites} + +Cinntigh go bhfuil tú eolach ar na [bunphrionsabail fhorbartha conartha cliste](/developers/docs/smart-contracts/) sula dtéann tú i ngleic leis an tslándáil. + +## Treoirlínte maidir le conarthaí cliste Ethereum a thógáil {#smart-contract-security-guidelines} + +### 1. Dear rialuithe cearta rochtana {#design-proper-access-controls} + +I gconarthaí cliste, is féidir le feidhmeanna atá marcáilte `poiblí` nó `seachtrach` a ghlaoch ó aon chuntais faoi úinéireacht sheachtrach (EOAanna) nó cuntais chonartha. Is gá infheictheacht phoiblí d’fheidhmeanna a shonrú más mian leat go n-idirghníomhaíonn daoine eile le do chonradh. Ní féidir feidhmeanna atá marcáilte `príobháideach` a ghlaoch, áfach, ach amháin ag feidhmeanna laistigh den chonradh cliste, agus ní cuntais sheachtracha. Má thugtar rochtain do gach rannpháirtí líonra ar fheidhmeanna conartha is féidir fadhbanna a chruthú, go háirithe má chiallaíonn sé gur féidir le haon duine oibríochtaí íogaire a dhéanamh (m.sh. comharthaí nua a bhualadh). + +Chun úsáid neamhúdaraithe feidhmeanna conartha cliste a chosc, is gá rialuithe rochtana slána a chur i bhfeidhm. Cuireann meicníochtaí rialaithe rochtana srian ar an gcumas feidhmeanna áirithe i gconradh cliste a úsáid d’eintitis fhormheasta, amhail cuntais atá freagrach as an gconradh a bhainistiú. Is dhá phatrún úsáideach iad an **patrún inúinéireachta** agus an **rialú bunaithe ar ról** chun rialú rochtana a chur i bhfeidhm i gconarthaí cliste: + +#### Patrún inúinéireachta {#ownable-pattern} + +Sa phatrún Inúinéireachta, socraítear seoladh mar “úinéir” an chonartha le linn phróiseas cruthaithe an chonartha. Sanntar modhnóir `OnlyOwner` d’fheidhmeanna cosanta, rud a chinntíonn go bhfíordheimhníonn an conradh céannacht an tseolta glaonna sula gcuirtear an fheidhm i gcrích. Filleann glaonna chuig feidhmeanna cosanta ó sheoltaí eile seachas úinéir an chonartha i gcónaí, rud a chuireann cosc ​​ar rochtain nach dteastaíonn. + +#### Rialú rochtana ról-bhunaithe {#role-based-access-control} + +Má chláraítear seoladh aonair mar `Úinéir` i gconradh cliste, tugtar isteach riosca lárúcháin agus is pointe aonair teipe é. Má sháraítear eochracha cuntais an úinéara, is féidir le hionsaitheoirí ionsaí a dhéanamh ar an gconradh faoi úinéireacht. Sin é an fáth go bhféadfadh sé gur rogha níos fearr patrún rialaithe rochtana ról-bhunaithe a úsáid le cuntais riaracháin iolracha. + +I rialú rochtana ról-bhunaithe, déantar rochtain ar fheidhmeanna íogaire a dháileadh idir sraith rannpháirtithe iontaofa. Mar shampla, d’fhéadfadh cuntas amháin a bheith freagrach as comharthaí a mhionú, agus déanann cuntas eile uasghrádú nó sos don chonradh. Má dhéantar rialú rochtana a dhílárú ar an mbealach seo, cuirtear deireadh le pointí aonair teipe agus laghdaítear boinn tuisceana iontaobhais d’úsáideoirí. + +##### Ag baint úsáide as sparán le sínithe iolracha + +Cur chuige eile chun rialú rochtana slána a chur i bhfeidhm is ea [chuntas le sínithe iolracha](/developers/docs/smart-contracts/#multisig) a úsáid chun conradh a bhainistiú. Murab ionann agus EOA rialta, tá cuntais le sínithe iolracha faoi úinéireacht aonáin iolracha agus éilíonn siad sínithe ó líon íosta cuntas - abair 3-de-5 - chun idirbhearta a chur i gcrích. + +Trí multisig a úsáid le haghaidh rialú rochtana tugtar isteach sraith bhreise slándála ós rud é go dteastaíonn toiliú ó pháirtithe iolracha le gníomhartha ar an spriocchonradh. Tá sé seo úsáideach go háirithe má tá gá leis an bpatrún Inúinéireachta a úsáid, toisc go mbíonn sé níos deacra d’ionsaitheoir nó do chos istigh bradacha feidhmeanna conartha íogaire a ionramháil ar son críocha mailíseacha. + +### 2. Úsáid ráitis require(), assert(), agus revert() chun oibríochtaí conartha a chosaint {#use-require-assert-revert} + +Mar atá luaite, is féidir le duine ar bith feidhmeanna poiblí a ghlaoch i do chonradh cliste nuair a bheidh sé imscaradh ar an blocshlabhra. Ós rud é nach bhfuil a fhios agat roimh ré conas a idirghníomhóidh cuntais sheachtracha le conradh, is fearr cosaintí inmheánacha a chur i bhfeidhm in aghaidh oibríochtaí fadhbacha roimh imscaradh. Is féidir leat iompar ceart a chur i bhfeidhm i gconarthaí cliste trí úsáid a bhaint as na ráitis `require()`, `assert()`, agus `revert()` chun eisceachtaí a spreagadh agus dul ar ais athruithe staide a chealú má theipeann ar fhorghníomhú ceanglais áirithe a shásamh. + +**`require()`**: sainmhínítear `require` ag tús na bhfeidhmeanna agus cinntíonn sé go gcomhlíontar coinníollacha réamhshainithe sula ritear an fheidhm ghlaoite. Is féidir ráiteas `require` a úsáid chun ionchuir úsáideora a bhailíochtú, athróga staide a sheiceáil, nó chun aitheantas an chuntais ghlao a fhíordheimhniú sula dtéann tú ar aghaidh le feidhm. + +**`assert()`**: úsáidtear `assert()` chun earráidí inmheánacha a bhrath agus chun sáruithe ar “do-athraithigh” a sheiceáil i do chód. Is dearbhú loighciúil é do-athraitheach faoi staid an chonartha agus ba cheart go mbeadh sé fíor i gcás gach feidhme a ritear. Sampla ide dho-athraitheach is ea an t-uas-soláthar iomlán nó iarmhéid conartha dearbháin. Trí úsáid a bhaint as `assert()` cinntíonn sé nach sroicheann do chonradh staid leochaileach choíche, agus má dhéanann sé, déantar gach athrú ar athróga staide a rolladh siar. + +**`revert()`**: Is féidir `revert()` a úsáid i ráiteas eile a spreagann eisceacht mura mbíonn an coinníoll riachtanach sásta. Úsáideann an conradh samplach thíos `revert()` chun comhlíonadh feidhmeanna a chosaint: + +``` +pragma solidity ^0.8.4; + +contract VendingMachine { + address owner; + error Unauthorized(); + function buy(uint amount) public payable { + if (amount > msg.value / 2 ether) + revert("Not enough Ether provided."); + // Perform the purchase. + } + function withdraw() public { + if (msg.sender != owner) + revert Unauthorized(); + + payable(msg.sender).transfer(address(this).balance); + } +} +``` + +### 3. Conarthaí cliste a thástáil agus cruinneas an chóid a fhíorú {#test-smart-contracts-and-verify-code-correctness} + +Ciallaíonn do-athraitheacht an chóid a fheidhmíonn i [Meaisín Fíorúil Ethereum](/developers/docs/evm/) go n-éilíonn conarthaí cliste leibhéal measúnaithe cáilíochta níos airde le linn na céime forbartha. Feabhsófar an tslándáil go mó má dhéantar tástáil fhairsing ar do chonradh agus é a bhreathnú le haghaidh aon torthaí gan choinne, agus cosnóidh sé d’úsáideoirí san fhadtréimhse. + +Is é an gnáth-mhodh tástálacha aonaid bheaga a scríobh le sonraí bréige a den chineál a mbeadh súil leo ó úsáideoirí an chonartha. Tá [Tástáil aonaid](/developers/docs/smart-contracts/testing/#unit-testing) go maith chun feidhmiúlacht fheidhmeanna áirithe a thástáil agus chun a chinntiú go n-oibríonn conradh cliste mar a bhíothas ag súil leis. + +Ar an drochuair, níl an tástáil aonaid chomh héifeachtach agus is féidir chun slándáil conartha cliste a fheabhsú nuair a úsáidtear iad ina n-aonar. D’fhéadfadh tástáil aonaid a chruthú go bhfeidhmíonn feidhm i gceart le haghaidh sonraí bréige, ach níl tástálacha aonaid ach chomh héifeachtach leis na tástálacha atá scríofa. Is deacair cásanna imill caillte agus leochaileachtaí a bhrath a d'fhéadfadh sábháilteacht do chonartha cliste a bhriseadh. + +Is fearr mar chur chuige tástáil aonaid a chomhcheangal le tástáil bunaithe ar mhaoin a dhéantar trí úsáid a bhaint as [anailís statach agus dinimiciúil](/developers/docs/smart-contracts/testing/#static-dynamic-analysis). Braitheann anailís statach ar léirithe íseal-leibhéil, mar [sreabhghraif rialaithe](https://en.wikipedia.org/wiki/Control-flow_graph) agus [crainn chomhréire teibí](https://deepsource.io/glossary/ast/) chun anailís a dhéanamh ar ríomhstaid insroichte agus ar chonairí feidhmithe. Idir an dá linn, déanann teicnící anailíse dinimiciúla, mar [beachtú conarthaí cliste](https://www.cyfrin.io/blog/smart-contract-fuzzing-and-invariants-testing-foundry), conradh cóid a rith le luachanna ionchuir randamacha chun oibríochtaí a sháraíonn airíonna slándála a bhrath. + +Teicníc eile is ea [Fíorú foirmiúil](/developers/docs/smart-contracts/formal-verification) chun airíonna slándála i gconarthaí cliste a fhíorú. Murab ionann agus tástáil rialta, is féidir le fíorú foirmiúil easpa earráidí a chruthú go cinntitheach i gconradh cliste. Baintear é seo amach trí shonraíocht fhoirmiúil a chruthú a chuimsíonn na hairíonna slándála inmhianaithe agus a chruthaíonn go gcloíonn samhail fhoirmiúil de na conarthaí leis an tsonraíocht seo. + +### 4. Iarr athbhreithniú neamhspleách ar do chód {#get-independent-code-reviews} + +Tar éis do chonradh a thástáil, is maith an rud é iarraidh ar dhaoine eile an cód foinse a sheiceáil le haghaidh aon saincheisteanna slándála. Ní nochtfaidh an tástáil gach locht i gconradh cliste, ach má fhaightear athbhreithniú neamhspleách méadaítear an fhéidearthacht go bhfeicfidh tú leochaileachtaí. + +#### Iniúchtaí {#audits} + +Bealach amháin chun athbhreithniú neamhspleách ar an gcód a dhéanamh is ea iniúchadh conartha cliste a choimisiúnú. Tá ról tábhachtach ag iniúchóirí lena chinntiú go bhfuil conarthaí cliste slán agus saor ó lochtanna cáilíochta agus earráidí dearaidh. + +Mar sin féin, ba cheart duit iniúchtaí a sheachaint mar réiteach draíochta. Ní fheicfidh iniúchtaí cliste conartha gach fabht agus tá siad deartha den chuid is mó chun babhta breise athbhreithnithe a sholáthar, ar féidir leo cabhrú le saincheisteanna a bhrath a chaill forbróirí le linn na forbartha agus na tástála tosaigh. Ba cheart duit na cleachtais is fearr a leanúint freisin maidir le bheith ag obair le hiniúchóirí, mar chód a dhoiciméadú i gceart agus tuairimí inlíne a chur leis, chun an leas is fearr a bhaint as iniúchadh conartha cliste. + +- [ Leideanna iniúchta conartha cliste & cleasanna](https://twitter.com/tinchoabbate/status/1400170232904400897) - _@tinchoabbate_ +- [Bain an tairbhe is mó as d’iniúchadh](https://inference.ag/blog/2023-08-14-tips/) - _Tátail_ + +#### Deolchairí fabht {#bug-bounties} + +Is cur chuige eile é clár deolchairí fabht a bhunú chun athbhreithnithe cód seachtracha a chur i bhfeidhm. Is luach saothair airgeadais é deolchairí fabht a thugtar do dhaoine aonair (go hiondúil Haiceálaithe bána) a aimsíonn leochaileachtaí in iarratas. + +Nuair a úsáidtear i gceart iad, tugann deolchairí fabhtanna dreasacht do bhaill an phobail haiceála chun do chód a iniúchadh le haghaidh lochtanna criticiúla. Sampla ón bhfíorshaol is ea an “fabht airgid gan teorainn” a ligfeadh d’ionsaitheoir méid neamhtheoranta éitear a chruthú ar [Soirbhíochas](https://www.optimism.io/), prótacal [Ciseal 2](/layer-2/) a ritheann ar Ethereum. Ar ámharaí an tsaoil, d’aimsigh haiceálaí bán [an locht](https://www.saurik.com/optimism.html) agus chuir sé in iúl don fhoireann é, [agus thuill sé íocaíocht mhór ar a shon](https://cryptoslate.com/critical-bug-in-ethereum-l2-optimism-2m-bounty-paid/). + +Straitéis úsáideach is ea íocaíocht amach clár deolchaire fabhtanna a shocrú i gcomhréir le méid na gcistí atá i gceist. Déantar cur síos air mar “[deolchaire fabht scálaithe](https://medium.com/immunefi/a-defi-security-standard-the-scaling-bug-bounty-9b83dfdc1ba7) dreasachtaí airgeadais do dhaoine aonair chun leochaileachtaí a nochtadh go freagrach in ionad iad a shaothrú. + +### 5. Lean na cleachtais is fearr le linn forbairt conarthaí cliste {#follow-smart-contract-development-best-practices} + +Ní fhágann iniúchtaí agus deolchairí fabhtanna nach gá duit cód ardcháilíochta a scríobh. Cuirtear bonn le dea-shlándáil conartha cliste leis na próisis chuí deartha agus forbartha seo a leanas: + +- Stóráil gach cód i gcóras rialaithe leagan, mar shampla git + +- Déan gach modhnú cód trí iarratais ar tharraingt + +- Cinntigh go mbíonn athbhreithneoir neamhspleách amháin ar a laghad ag iarratais tarraingthe - má tá tú ag obair leat féin ar thionscadal, smaoinigh ar fhorbróirí eile a aimsiú agus athbhreithnithe ar chóid trádála + +- Úsáid [timpeallacht forbartha](/developers/docs/frameworks/) chun conarthaí cliste a thástáil, a thiomsú agus a imscaradh + +- Rith do chód trí bhunuirlisí anailíse cóid, mar, [Cyfrin Aderyn](https://github.com/Cyfrin/aderyn), Mythril agus Slither. Go hidéalach, ba chóir duit é seo a dhéanamh sula ndéantar gach iarratas ar tharraingt a chumasc agus difríochtaí san aschur a chur i gcomparáid + +- Cinntigh go dtiomsaíonn do chód gan earráidí, agus nach scaoileann an tiomsaitheoir Solidity aon rabhaidh + +- Déan do chód a dhoiciméadú i gceart (ag baint úsáide as [NatSpec](https://solidity.readthedocs.io/en/develop/natspec-format.html)) agus déan cur síos i dteanga shothuigthe ar shonraí ailtireachta an chonartha. Déanfaidh sé seo níos fusa do dhaoine eile do chód a iniúchadh agus a athbhreithniú. + +### 6. Pleananna láidre athshlánaithe ó thubaiste a chur i bhfeidhm {#implement-disaster-recovery-plans} + +Má dhéantar rialuithe slána rochtana a dhearadh, modhnóirí feidhme a chur i bhfeidhm, agus moltaí eile is féidir feabhas a chur ar shlándáil chonarthaí cliste, ach ní féidir leo an seans go ndéanfar bradaíl mhailíseach as an áireamh. Chun conarthaí cliste slána a thógáil ní mór “ullmhú don teip” agus plean tacachumais a bheith ann chun freagairt go héifeachtach d’ionsaithe. Cuimseoidh plean ceart athshlánaithe tubaiste cuid de na comhpháirteanna seo a leanas nó iad uile: + +#### Uasghráduithe conartha {#contract-upgrades} + +Cé go bhfuil conarthaí cliste Ethereum do-athraithe de réir réamhshocraithe, is féidir méid áirithe inathraitheachta a bhaint amach trí úsáid a bhaint as patrúin uasghrádaithe. Is gá conarthaí a uasghrádú i gcásanna nach féidir do sheanchonradh a úsáid mar gheall ar locht criticiúil agus gurb é an rogha is indéanta an loighic nua a úsáid. + +Oibríonn meicníochtaí uasghrádaithe conartha ar bhealach difriúil, ach tá an “patrún seachfhreastalaí” ar cheann de na cineálacha cur chuige is coitianta chun conarthaí cliste a uasghrádú. Roinneann [patrúin seachfhreastalaí](https://www.cyfrin.io/blog/upgradeable-proxy-smart-contract-pattern) staid agus loighic feidhmchláir idir _dhá_ chonradh. Stórálann an chéad chonradh (ar a dtugtar ‘conradh seachfhreastalaí’) athróga staide (m.sh., iarmhéideanna úsáideoirí), agus coimeádann an dara conradh (ar a dtugtar ‘conradh loighce’) an cód chun feidhmeanna conartha a rith. + +Idirghníomhaíonn cuntais leis an gconradh seachfhreastalaí, a sheolann gach glao feidhme chuig an gconradh loighce trí [`delegatecall()`](https://docs.soliditylang.org/en/v0.8.16/introduction-to-smart-contracts.html?highlight=delegatecall#delegatecall-callcode-and-libraries) glao ar leibhéal íseal. Murab ionann agus gnáthghlao teachtaireachta, cinntíonn `delegatecall()` an cód a ritheann ag seoladh an chonartha loighce go gcuirtear i bhfeidhm é i gcomhthéacs an chonartha glaonna. Ciallaíonn sé seo go scríobhfaidh an conradh loighce i gcónaí chuig stóras an tseachfhreastalaí (seachas a stór féin) agus go gcaomhnaítear bunluachanna `msg.sender` agus `msg.value`. + +Chun glaonna a tharmligean chuig an gconradh loighce ní mór a sheoladh a stóráil i stóras an chonartha seachfhreastalaí. Mar sin, níl i gceist le huasghrádú loighic an chonartha ach conradh loighce eile a imscaradh agus an seoladh nua a stóráil sa chonradh seachfhreastalaí. Ós rud é go seoltar glaonna ar an gconradh seachfhreastalaí go huathoibríoch chuig an gconradh loighce nua, bheadh ​​“uasghrádú” déanta agat ar an gconradh gan an cód a mhodhnú i ndáiríre. + +[Tuilleadh faoi chonarthaí a uasghrádú](/developers/docs/smart-contracts/upgrading/). + +#### Stopanna éigeandála {#emergency-stops} + +Mar a luadh, ní féidir le hiniúchadh agus tástáil fhairsing gach fabht a aimsiú i gconradh cliste. Má tá leochaileacht le feiceáil i do chód tar éis imscartha, ní féidir é a phaisteáil toisc nach féidir leat an cód atá ag seoladh an chonartha a athrú. Chomh maith leis sin, d’fhéadfadh go dtógfadh sé am meicníochtaí uasghrádaithe (m.sh. patrúin seachfhreastalaí) a chur i bhfeidhm (is minic a éilíonn siad ceadú ó pháirtithe éagsúla), rud a thugann níos mó ama d’ionsaitheoirí chun níos mó damáiste a dhéanamh. + +Is é an rogha núicléach feidhm “stop éigeandála” a chur i bhfeidhm a bhlocálann glaonna chuig feidhmeanna leochaileacha i gconradh. Is gnách go mbíonn na comhpháirteanna seo a leanas i stopanna éigeandála: + +1. Athróg dhomhanda Boole a thugann le fios an bhfuil an conradh cliste i riocht stoptha nó nach bhfuil. Socraítear an athróg seo mar `false` agus an conradh á shocrú, ach rachaidh sé ar ais go `true` nuair a stopfar an conradh. + +2. Feidhmeanna a thagraíonn don athróg Boole agus iad á gcur i gcrích. Tá feidhmeanna den sórt sin inrochtana nuair nach gcuirtear stop leis an gconradh cliste, agus éiríonn siad dorochtana nuair a spreagtar an ghné stop éigeandála. + +3. Aonán a bhfuil rochtain aige ar an bhfeidhm stad éigeandála, a shocraíonn an athróg Boole mar `true`. Chun gníomhartha mailíseacha a chosc, is féidir glaonna chuig an bhfeidhm seo a theorannú chuig seoladh iontaofa (m.sh., úinéir an chonartha). + +Nuair a ghníomhaíonn an conradh an stad éigeandála, ní bheidh feidhmeanna áirithe inghlaoite. Baintear é seo amach trí fheidhmeanna roghnaithe a thimfhilleadh i modhnóir a dhéanann tagairt don athróg dhomhanda. Seo thíos [sampla](https://github.com/fravoll/solidity-patterns/blob/master/EmergencyStop/EmergencyStop.sol) ag cur síos ar chur i bhfeidhm an phatrúin seo i gconarthaí: + +```solidity +// This code has not been professionally audited and makes no promises about safety or correctness. Use at your own risk. + +contract EmergencyStop { + + bool isStopped = false; + + modifier stoppedInEmergency { + require(!isStopped); + _; + } + + modifier onlyWhenStopped { + require(isStopped); + _; + } + + modifier onlyAuthorized { + // Check for authorization of msg.sender here + _; + } + + function stopContract() public onlyAuthorized { + isStopped = true; + } + + function resumeContract() public onlyAuthorized { + isStopped = false; + } + + function deposit() public payable stoppedInEmergency { + // Deposit logic happening here + } + + function emergencyWithdraw() public onlyWhenStopped { + // Emergency withdraw happening here + } +} +``` + +Léiríonn an sampla seo bunghnéithe stadanna éigeandála: + +- Is Boole é `isStopped` a dhéanann meastóireacht ar `false` ag an tús agus `true` nuair a théann an conradh isteach sa mhód éigeandála. + +- Seiceálann na modhnóirí feidhmeanna `onlyWhenStopped` agus `stopedInEmergency` an athróg `isStopped`. Úsáidtear `stopedInEmergency` chun feidhmeanna a rialú nár cheart a bheith inrochtana nuair a bhíonn an conradh leochaileach (m.sh., `taisce()`). Go simplí, fillfidh glaonna ar na feidhmeanna seo. + +Úsáidtear `onlyWhenStopped` le haghaidh feidhmeanna ba cheart a bheith inghlaoite le linn éigeandála (m.sh., `emergencyWithdraw()`). Is féidir le feidhmeanna den sórt sin cabhrú leis an gcás a réiteach, agus dá bhrí sin fágtar iad as an liosta “feidhmeanna srianta”. + +Trí úsáid a bhaint as feidhmiúlacht stad éigeandála cuirtear bac éifeachtach ar fáil chun déileáil le leochaileachtaí tromchúiseacha i do chonradh cliste. Mar sin féin, méadaíonn sé an gá atá ag úsáideoirí muinín a bheith acu as forbróirí gan é a ghníomhachtú ar chúiseanna leithleacha. Chuige sin, is réitigh fhéideartha iad rialú an stad éigeandála a dhílárú trí mheicníocht vótála ar slabhra, glas ama, nó formheas ó sparán síniú iolrach a chur faoina réir. + +#### Monatóireacht ar imeachtaí {#event-monitoring} + +Ligeann [Imeachtaí](https://docs.soliditylang.org/en/v0.8.15/contracts.html#events) duit glaonna ar fheidhmeanna conartha cliste a rianú agus monatóireacht a dhéanamh ar athruithe ar athróga staide. Is fearr do chonradh cliste a ríomhchlárú chun imeacht a astú aon uair a dhéanann páirtí éigin gníomh atá ríthábhachtach don tsábháilteacht (m.sh. cistí a aistarraingt). + +Soláthraíonn logáil imeachtaí agus monatóireacht orthu as slabhra léargais ar oibríochtaí conartha agus cabhraíonn sé le gníomhartha mailíseacha a aimsiú níos tapúla. Ciallaíonn sé seo gur féidir le d'fhoireann freagairt níos tapúla ar haiceanna agus gníomhú chun tionchar ar úsáideoirí a mhaolú, mar shampla feidhmeanna a chur ar sos nó uasghrádú a dhéanamh. + +Is féidir leat uirlis monatóireachta réamhdhéanta a roghnú freisin a chuireann foláirimh ar aghaidh go huathoibríoch gach uair a idirghníomhaíonn duine le do chonarthaí. Ligfidh na huirlisí seo duit foláirimh saincheaptha a chruthú bunaithe ar thruicir éagsúla, amhail méid an idirbhirt, minicíocht glaonna feidhme, nó na feidhmeanna sonracha atá i gceist. Mar shampla, d’fhéadfá foláireamh a thagann isteach a ríomhchlárú nuair a thrasnaíonn an méid a aistarraingíodh in aon idirbheart amháin tairseach ar leith. + +### 7. Córais rialachais shlána a dhearadh {#design-secure-governance-systems} + +B’fhéidir gur mhaith leat d’iarratas a dhílárú trí smacht a chur ar chroíchonarthaí cliste chuig baill an phobail. Sa chás seo, áireofar sa chóras conartha cliste modúl rialachais — meicníocht a cheadaíonn do bhaill an phobail gníomhartha riaracháin a fhormheas trí chóras rialachais ar slabhra. Mar shampla, féadfaidh sealbhóirí dearbhán vótáil ar thogra chun conradh seachfhreastalaí a uasghrádú go cur chun feidhme nua. + +Is féidir le rialachas díláraithe a bheith tairbheach, go háirithe toisc go ndéanann sé leas na bhforbróirí agus na n-úsáideoirí deiridh a ailíniú. Mar sin féin, féadfaidh sásraí cliste rialachais conarthaí rioscaí nua a thabhairt isteach má chuirtear chun feidhme iad go mícheart. Cás sochreidte is ea má fhaigheann ionsaitheoir cumhacht ollmhór vótála (arna thomhas i líon na n-airíonna atá á sealbhú) trí [iasacht flash](/defi/#flash-loans) a fháil agus má chuireann siad togra mailíseach chun cinn. + +Bealach amháin chun fadhbanna a bhaineann le rialachas ar slabhra a chosc is ea [glas ama a úsáid](https://blog.openzeppelin.com/protect-your-users-with-smart-contract-timelocks/). Cuireann glas ama cosc ​​ar chonradh cliste ó ghníomhartha áirithe a dhéanamh go dtí go n-imíonn méid áirithe ama thart. I measc na straitéisí eile tá “meáchan vótála” a shannadh do gach comhartha bunaithe ar cé chomh fada agus a cuireadh faoi ghlas é, nó cumhacht vótála seolta ag tréimhse stairiúil a thomhas (mar shampla, 2-3 bhloc san am a chuaigh thart) in ionad an bloc reatha. Laghdaíonn an dá mhodh an fhéidearthacht cumhacht vótála a bhailiú go tapa chun vótaí ar slabhra a mhealladh. + +Tuilleadh faoi [córais shlána rialachais a dhearadh](https://blog.openzeppelin.com/smart-contract-security-guidelines-4-strategies-for-safer-governance-systems/), [meicníochtaí éagsúla vótála sna DAOs](https://hackernoon.com/governance-is-the-holy-grail-for-daos), agus [na gnáth-veicteora ionsaithe DAO a ghiaráil DeFi](https://dacian.me/dao-governance-defi-attacks) sna naisc chomhroinnte. + +### 8. Laghdaigh castacht an chóid a oiread is féidir {#reduce-code-complexity} + +Tá aithne ag forbróirí bogearraí traidisiúnta ar an bprionsabal KISS ("coimeád simplí é, a dhúramáin") é, mar a moltar gan castacht neamhriachtanach a thabhairt isteach i ndearadh bogearraí. Leanann sé seo an smaoineamh fadtréimhseach go “dteipeann ar chórais chasta ar bhealaí casta” agus go bhfuil siad níos mó i mbaol ó earráidí costasacha. + +Tá tábhacht ar leith ag baint le rudaí a choinneáil simplí agus conarthaí cliste á scríobh, ós rud é go bhféadfadh conarthaí cliste méideanna móra luacha a rialú. Leid chun simplíocht a bhaint amach agus conarthaí cliste á scríobh ná leabharlanna atá ann cheana a athúsáid, ar nós [Conarthaí OpenZeppelin](https://docs.openzeppelin.com/contracts/4.x/), nuair is féidir. Toisc go ndearna forbróirí iniúchadh agus tástáil fhairsing ar na leabharlanna seo, laghdaítear an seans go dtabharfar isteach fabhtanna trí fheidhmiúlacht nua a scríobh ón tús. + +Comhairle choitianta eile is ea feidhmeanna beaga a scríobh agus conarthaí modúlacha a choinneáil trí loighic ghnó a roinnt thar chonarthaí iolracha. Ní hamháin go laghdaítear an dromchla ionsaí i gconradh cliste nuair a scríobhtar cód níos simplí, déanann sé níos éasca freisin réasúnú a dhéanamh faoi chruinneas an chórais iomláin agus earráidí dearaidh féideartha a bhrath go luath. + +### 9. Cosain in aghaidh leochaileachtaí coitianta i gconarthaí cliste {#mitigate-common-smart-contract-vulnerabilities} + +#### Athiontráil {#reentrancy} + +Ní cheadaíonn an EVM comhrith, rud a chiallaíonn nach féidir le dhá chonradh a bhaineann le glao teachtaireachta oibriú go comhuaineach. Cuireann glao seachtrach feidhmiú agus cuimhne an chonartha glaonna ar sos go dtí go dtagann an glao ar ais, agus ag an bpointe sin is gnách go leantar den fhorghníomhú. Is féidir cur síos foirmiúil a dhéanamh ar an bpróiseas seo mar aistriú [sreabhadh rialaithe](https://www.computerhope.com/jargon/c/contflow.htm) chuig conradh eile. + +Cé go bhfuil sé neamhdhíobhálach don chuid is mó, is féidir fadhbanna a chruthú, mar athiontráil, trí shreabhadh rialaithe a aistriú chuig conarthaí neamhiontaofa. Tarlaíonn ionsaí athiontrála nuair a ghlaonn conradh mailíseach ar ais isteach i gconradh leochaileach sula mbíonn agairt na bunfheidhme críochnaithe. Is fearr an cineál ionsaí seo a mhíniú le sampla. + +Smaoinigh ar chonradh cliste simplí (‘Íospartach’) a ligeann do dhuine ar bith éitear a thaisceadh agus a aistarraingt: + +```solidity +// This contract is vulnerable. Do not use in production + +contract Victim { + mapping (address => uint256) public balances; + + function deposit() external payable { + balances[msg.sender] += msg.value; + } + + function withdraw() external { + uint256 amount = balances[msg.sender]; + (bool success, ) = msg.sender.call.value(amount)(""); + require(success); + balances[msg.sender] = 0; + } +} +``` + +Nochtann an conradh seo feidhm `aistarraing()` chun ligean d’úsáideoirí ETH a bhí i dtaisce sa chonradh roimhe seo a aistarraingt. Nuair a dhéantar aistarraingt a phróiseáil, déanann an conradh na hoibríochtaí seo a leanas: + +1. Seiceálann sé iarmhéid ETH an úsáideora +2. Seolann cistí chuig an seoladh glaonna +3. Athshocraíonn siad a n-iarmhéid go 0, rud a choscann aistarraingtí breise ón úsáideoir + +Leanann an fheidhm `withdraw()` i gconradh `Victim` patrún “seiceálacha-idirghníomhaíochtaí-éifeachtaí”. Déanann sé _seiceáil_ má shásaítear na coinníollacha atá riachtanach don fhorghníomhú (i.e., tá cothromaíocht dhearfach ETH ag an úsáideoir) agus déanann sé an _idirghníomhaíocht_ em> trí ETH a sheoladh chuig seoladh an ghlaoiteora, sula gcuirtear _éifeachtaí_ an idirbhirt i bhfeidhm (i.e. iarmhéid an úsáideora a laghdú). + +Má ghlaoitear `aistarraing()` ó chuntas faoi úinéireacht sheachtrach (EOA), feidhmíonn an fheidhm mar a bhíothas ag súil leis: seolann `msg.sender.call.value()` ETH chuig an nglaoiteoir. Mar sin féin, más cuntas conartha cliste é `msg.sender` glaonna `aistarraing()`, seolfar cistí trí úsáid a bhaint as `msg.sender.call.value()` agus spreagfar cód atá stóráilte ag an seoladh sin a rith. + +Samhlaigh gurb é seo an cód a úsáidtear ag seoladh an chonartha: + +```solidity + contract Attacker { + function beginAttack() external payable { + Victim(victim_address).deposit.value(1 ether)(); + Victim(victim_address).withdraw(); + } + + function() external payable { + if (gasleft() > 40000) { + Victim(victim_address).withdraw(); + } + } +} +``` + +Tá an conradh seo deartha chun trí rud a dhéanamh: + +1. Glacadh le héarlais ó chuntas eile (EOA an ionsaitheora is dócha) +2. Taisce 1 ETH isteach sa chonradh Íospartach +3. Aisarraingt an 1 ETH atá stóráilte sa chonradh cliste + +Níl aon rud mícheart anseo, ach amháin go bhfuil feidhm eile ag `Ionsaitheoir` a ghlaonn `aistarraing()` sa `Victim` arís má bhíonn an gás atá fágtha ón gcód ` msg.sender.call.value` níos mó ná 40,000. Tugann sé seo an cumas do `Ionsaitheoir` `Íospartach` a iontráil arís agus tuilleadh cistí a aistarraingt _roimh_ an chéad agairt `aistarraing` críochnaithe. Breathnaíonn an timthriall mar seo: + +```solidity +- Attacker's EOA calls `Attacker.beginAttack()` with 1 ETH +- `Attacker.beginAttack()` deposits 1 ETH into `Victim` +- `Attacker` calls `withdraw() in `Victim` +- `Victim` checks `Attacker`’s balance (1 ETH) +- `Victim` sends 1 ETH to `Attacker` (which triggers the default function) +- `Attacker` calls `Victim.withdraw()` again (note that `Victim` hasn’t reduced `Attacker`’s balance from the first withdrawal) +- `Victim` checks `Attacker`’s balance (which is still 1 ETH because it hasn’t applied the effects of the first call) +- `Victim` sends 1 ETH to `Attacker` (which triggers the default function and allows `Attacker` to reenter the `withdraw` function) +- The process repeats until `Attacker` runs out of gas, at which point `msg.sender.call.value` returns without triggering additional withdrawals +- `Victim` finally applies the results of the first transaction (and subsequent ones) to its state, so `Attacker`’s balance is set to 0 +``` + +Is é an achoimre ná toisc nach bhfuil iarmhéid an ghlaoiteora socraithe ag 0 go dtí go gcríochnaítear feidhmiú na feidhme, go n-éireoidh le hagairtí ina dhiaidh sin agus go gceadóidh siad don ghlaoiteoir a iarmhéid a aistarraingt go minic. Is féidir ionsaí den chineál seo a úsáid chun a chistí a dhísciú as conradh cliste, mar a tharla sa [haic DAO 2016](https://www.coindesk.com/learn/2016/06/25/understanding-the-dao-attack/). Tá ionsaithe athiontrála fós ina fhadhb mhór do chonarthaí cliste inniu mar a léiríonn [liostaí poiblí de bhradaíl athiontrála](https://github.com/pcaversaccio/reentrancy-attacks). + +##### Conas ionsaithe athiontrála a chosc + +Cur chuige chun déileáil le hathiontráil is ea [seiceálacha-éifeachtaí-idirghníomhaíochtaí patrún](https://docs.soliditylang.org/en/develop/security-considerations.html#use-the-checks-effects-interactions-pattern). Ordaítear leis an bpatrún seo feidhmeanna a rith ar bhealach go ndéanann an cód na seiceálacha riachtanacha roimh dhul ar aghaidh le rith ar dtús, agus ina dhiaidh sin cód a ionramhálann staid chonartha, le cód a idirghníomhaíonn le conarthaí eile nó EOAnna ag an deireadh. + +Úsáidtear an patrún seiceálacha-éifeacht-idirghníomhaíochta i leagan athbhreithnithe den chonradh `Íospartach` a thaispeántar thíos: + +```solidity +contract NoLongerAVictim { + function withdraw() external { + uint256 amount = balances[msg.sender]; + balances[msg.sender] = 0; + (bool success, ) = msg.sender.call.value(amount)(""); + require(success); + } +} +``` + +Déanann an conradh seo _seiceáil_ ar iarmhéid an úsáideora, feidhmíonn sé _éifeachtaí_ an `aistarraing()` (trí iarmhéid an úsáideora a athshocrú go 0), agus leanann sé ar aghaidh chun an _idirghníomhaíocht_ a dhéanamh (ETH a sheoladh chuig seoladh an úsáideora). Cinntíonn sé seo go ndéanann an conradh a stóras a nuashonrú roimh an nglao seachtrach, rud a chuireann deireadh leis an gcoinníoll athiontrála a chumasaigh an chéad ionsaí. D'fhéadfaí an conradh `Ionsaitheoir` a ghlaoch ar ais go `NoLongerAVictim` fós, ach ós rud é go bhfuil `iarmhéideanna[msg.sender]` socraithe go 0, léireoidh aistarraingtí breise earráid. + +Rogha eile is ea glas eisiatachta fhrithpháirtigh a úsáid (ar a dtugtar “mutex” de ghnáth) a ghlasálann cuid de stát conartha go dtí go gcríochnaítear agairt feidhme. Cuirtear é seo i bhfeidhm le hathróg Boole a shocraítear go `true` sula bhfeidhmíonn an fheidhm agus a fhilleann go `false` tar éis an agairt a dhéanamh. Mar atá sa sampla thíos, cosnaíonn úsáid mutex feidhm ar ghlaonna athfhillteacha agus an agairt bhunaidh fós ag próiseáil, rud a chuireann stop le hathiontráil. + +```solidity +pragma solidity ^0.7.0; + +contract MutexPattern { + bool locked = false; + mapping(address => uint256) public balances; + + modifier noReentrancy() { + require(!locked, "Blocked from reentrancy."); + locked = true; + _; + locked = false; + } + // This function is protected by a mutex, so reentrant calls from within `msg.sender.call` cannot call `withdraw` again. + // Déanann an ráiteas `return` luacháil go `true` ach fós déanann sé `locked = false` measúnú ar an ráiteas sa mhodhnóir + function withdraw(uint _amount) public payable noReentrancy returns(bool) { + require(balances[msg.sender] >= _amount, "No balance to withdraw."); + + balances[msg.sender] -= _amount; + (bool success, ) = msg.sender.call{value: _amount}(""); + require(success); + + return true; + } +} +``` + +Is féidir leat córas [tarraingt íocaíochtaí](https://docs.openzeppelin.com/contracts/4.x/api/security#PullPayment) a úsáid freisin a éilíonn ar úsáideoirí cistí a aistarraingt ó na conarthaí cliste, in ionad córas "brú-íocaíochtaí" a sheolann cistí chuig cuntais. Cuireann sé seo deireadh leis an bhféidearthacht cód a spreagadh gan chuimhneamh ag seoltaí anaithnide (agus féadann sé ionsaithe áirithe diúltú seirbhíse a chosc freisin). + +#### Gannsreabhadh agus róshreabhadh slánuimhreacha {#integer-underflows-and-overflows} + +Tarlaíonn róshreabhadh slánuimhir nuair a thiteann torthaí oibríochta uimhríochta lasmuigh den raon luachanna inghlactha, rud a fhágann “rolladh anonn” go dtí an luach inléirithe is ísle. Mar shampla, ní féidir le `uint8` ach luachanna suas go 2^8-1=255 a stóráil. Déanfaidh oibríochtaí uimhríochta a mbíonn luachanna níos airde ná `255` mar thoradh orthu róshreabhadh agus athshocróidh siad `uint` go `0`, mar a athshocraíonn an odaiméadair ar charr go 0 uair amháin sroicheann sé an t-uasmhílteáiste (999999). + +Tarlaíonn foshreafaí slánuimhir ar chúiseanna comhchosúla: titeann torthaí oibríochta uimhríochta faoin raon inghlactha. Abair go ndearna tú iarracht `0` a laghdú i `uint8`, ní bheadh ​​ann ach an toradh a rolladh anonn go dtí an t-uasluach inléirithe (`255`). + +D’fhéadfadh athruithe gan choinne ar athróga stáit an chonartha a bheith mar thoradh ar róshreabhadh agus ar ghannsreabhadh agus is féidir rith neamhphleanáilte a bheith mar thoradh air. Seo thíos sampla a thaispeánann conas is féidir le hionsaitheoir leas a bhaint as róshreabhadh uimhríochta i gconradh cliste chun oibríocht neamhbhailí a dhéanamh: + +``` +pragma solidity ^0.7.6; + +// This contract is designed to act as a time vault. +// User can deposit into this contract but cannot withdraw for at least a week. +// User can also extend the wait time beyond the 1 week waiting period. + +/* +1. Deploy TimeLock +2. Deploy Attack with address of TimeLock +3. Call Attack.attack sending 1 ether. You will immediately be able to + withdraw your ether. + +What happened? +Attack caused the TimeLock.lockTime to overflow and was able to withdraw +before the 1 week waiting period. +*/ + +contract TimeLock { + mapping(address => uint) public balances; + mapping(address => uint) public lockTime; + + function deposit() external payable { + balances[msg.sender] += msg.value; + lockTime[msg.sender] = block.timestamp + 1 weeks; + } + + function increaseLockTime(uint _secondsToIncrease) public { + lockTime[msg.sender] += _secondsToIncrease; + } + + function withdraw() public { + require(balances[msg.sender] > 0, "Insufficient funds"); + require(block.timestamp > lockTime[msg.sender], "Lock time not expired"); + + uint amount = balances[msg.sender]; + balances[msg.sender] = 0; + + (bool sent, ) = msg.sender.call{value: amount}(""); + require(sent, "Failed to send Ether"); + } +} + +contract Attack { + TimeLock timeLock; + + constructor(TimeLock _timeLock) { + timeLock = TimeLock(_timeLock); + } + + fallback() external payable {} + + function attack() public payable { + timeLock.deposit{value: msg.value}(); + /* + if t = current lock time then we need to find x such that + x + t = 2**256 = 0 + so x = -t + 2**256 = type(uint).max + 1 + so x = type(uint).max + 1 - t + */ + timeLock.increaseLockTime( + type(uint).max + 1 - timeLock.lockTime(address(this)) + ); + timeLock.withdraw(); + } +} +``` + +##### Conas gannsreabhadh agus róshreabhadh slánuimhir a chosc + +Ón leagan 0.8.0, diúltaíonn an tiomsaitheoir Solidity cód a mbíonn gannsreafaí agus rósreafaí slánuimhir mar thoradh air. Mar sin féin, ba cheart do chonarthaí arna dtiomsú le leagan tiomsaitheora níos ísle seiceálacha a dhéanamh ar fheidhmeanna a bhaineann le hoibríochtaí uimhríochta nó úsáid a bhaint as leabharlann (m.sh., <[SafeMath](https://docs.openzeppelin.com/contracts/2.x/api/math)) a sheiceálann le haghaidh gannsreabhadh/róshreabhadh. + +#### Ionramháil Oracle {#oracle-manipulation} + +Foinsíonn [Oracail](/developers/docs/oracles/) faisnéis atá as slabhra agus seolann siad ar slabhra í le húsáid ag conarthaí cliste. Le horacail, is féidir leat conarthaí cliste a dhearadh a idirghníomhaíonn le córais as slabhra, mar mhargaí caipitil, ag leathnú a bhfeidhmiú go mór. + +Ach má bhíonn an t-oracal truaillithe agus faisnéis chontráilte á chur aige ar slabhra, rithfear conarthaí cliste bunaithe ar ionchuir earráideacha, rud a d'fhéadfadh fadhbanna a chruthú. Is é seo bunús an “fhadhb oracail”, a bhaineann lena chinntiú go bhfuil faisnéis ó oracal bhlocshlabhra cruinn, cothrom le dáta agus tráthúil. + +Ábhar imní slándála gaolmhar is ea oracal ar slabhra a úsáid, amhail malartán díláraithe, chun spotphraghas sócmhainne a fháil. Is minic a dhéanann ardáin iasachtaithe sa tionscal [airgeadais díláraithe (DeFi)](/defi/) é seo chun luach comhthaobhachta úsáideora a chinneadh chun a fháil amach cé mhéad is féidir leo a fháil ar iasacht. + +Is minic a bhíonn praghsanna DEX cruinn, go príomha mar gheall ar arbatráisteoirí ag athbhunú paireacht sna margaí. Mar sin féin, is féidir iad a ionramháil, go háirithe má ríomhann an t-oracal ar slabhra praghsanna sócmhainní bunaithe ar phatrúin trádála stairiúla (mar a bhíonn de ghnáth). + +Mar shampla, d'fhéadfadh ionsaitheoir spotphraghas sócmhainne a chaidéalú go saorga trí splanc-iasacht a fháil díreach roimh idirghníomhú le do chonradh iasachta. Dá gcuirfí ceist ar an DEX faoi phraghas na sócmhainne, thabharfadh sé luach níos airde ná an gnáthluach (mar gheall ar éileamh mór “ordú ceannaigh” an ionsaitheora ar an tsócmhainn), rud a ligeann dóibh níos mó a fháil ar iasacht ná mar ba chóir. Baineadh úsáid as "ionsaithe splanc iasachta" den sórt sin chun leas a bhaint as brath ar oracail phraghais i measc iarratais DeFi, rud a chosnaíonn na milliúin prótacail i gcistí caillte. + +##### Conas ionramháil oracail a chosc + +Is é an t-íosriachtanas chun [ionramháil oracail a sheachaint](https://www.cyfrin.io/blog/price-oracle-manipultion-attacks-with-examples) ná líonra díláraithe oracail a úsáid a cheistíonn faisnéis ó fhoinsí iolracha chun pointí aonair teipe a sheachaint. I bhformhór na gcásanna, tá dreasachtaí cripteacnamaíocha tógtha ag oracail dhíláraithe chun nóid oracail a spreagadh chun faisnéis cheart a thuairisciú, rud a fhágann go bhfuil siad níos sláine ná oracail láraithe. + +Má tá sé ar intinn agat ceist a chur ar oracal ar slabhra maidir le praghsanna sócmhainne, smaoinigh ar cheann a úsáid a chuireann meicníocht meánphraghais ualaithe ó thaobh ama (TWAP) i bhfeidhm. Ceistíonn [TWAP oracle](https://docs.uniswap.org/contracts/v2/concepts/core-concepts/oracles) praghas sócmhainne ag dhá phointe éagsúla ama (a dhéanann tú is féidir é a mhodhnú) agus ríomhann sé an spotphraghas bunaithe ar an meán a fhaightear. Má roghnaíonn tú tréimhsí ama níos faide, cosnaíonn tú do phrótacal in aghaidh ionramhála praghsanna toisc nach féidir le horduithe móra a rinneadh le déanaí tionchar a imirt ar phraghsanna sócmhainní. + +## Acmhainní slándála conartha cliste d'fhorbróirí {#smart-contract-security-resources-for-developers} + +### Uirlisí chun conarthaí cliste a anailísiú agus chun cruinneas an chóid a fhíorú {#code-analysis-tools} + +- **[Uirlisí tástála agus leabharlanna](/developers/docs/smart-contracts/testing/#testing-tools-and-libraries)** - _Bailiúchán uirlisí agus leabharlann de chaighdeán an tionscail chun tástálacha aonaid a dhéanamh, anailís statach, agus anailís dhinimiciúil ar chonarthaí cliste._ + +- **[Uirlisí fíoraithe foirmiúla](/developers/docs/smart-contracts/formal-verification/#formal-verification-tools)** - _Uirlisí chun cruinneas feidhme i gconarthaí cliste a fhíorú agus chun malairtí a sheiceáil._ + +- **[Seirbhísí cliste iniúchóireachta conartha](/developers/docs/smart-contracts/testing/#smart-contract-auditing-services)** - _Liosta de na heagraíochtaí a sholáthraíonn seirbhísí iniúchta conarthaí cliste do thionscadail forbartha Ethereum._ + +- **[Ardáin deolchaire fabht](/developers/docs/smart-contracts/testing/#bug-bounty-platforms)** - _Ardáin chun deolchairí fabhtanna a chomhordú agus luach saothair a thabhairt do nochtadh freagrach leochaileachtaí ríthábhachtacha i gconarthaí cliste._ + +- **[Seiceálaí Forc](https://forkchecker.hashex.org/)** - _Uirlis in aisce ar líne chun gach faisnéis atá ar fáil maidir le conradh foirc a sheiceáil._ + +- **[Ionchódóir ABI](https://abi.hashex.org/)** - _ Seirbhís saor in aisce ar líne chun feidhmeanna do chonartha Solidity agus argóintí cruthaitheora a ionchódú._ + +- **[Aderyn](https://github.com/Cyfrin/aderyn)** - _Anailíseoir Statach Solidity, ag trasnú na gCrann Comhréire Teibí (AST) chun leochaileachtaí amhrasta a aimsiú agus saincheisteanna a phriontáil amach i bhformáid marcáil síos atá éasca le tomhailt._ + +### Uirlisí chun monatóireacht a dhéanamh ar chonarthaí cliste {#smart-contract-monitoring-tools} + +- **[OpenZeppelin Defender Sentinels](https://docs.openzeppelin.com/defender/v1/sentinel)** - _Uirlis chun monatóireacht a dhéanamh go huathoibríoch ar imeachtaí, feidhmeanna agus paraiméadair idirbheartaíochta ar do chonarthaí cliste agus chun freagairt dóibh._ + +- **[Tenderly Real-Time Alerting](https://tenderly.co/alerting/)** - _Uirlis chun fógraí fíor-ama a fháil nuair a tharlaíonn imeachtaí neamhghnácha nó gan choinne ar do chonarthaí nó ar do sparáin chliste._ + +### Uirlisí le haghaidh riarachán slán chonarthaí cliste {#smart-contract-administration-tools} + +- **[OpenZeppelin Defender Admin](https://docs.openzeppelin.com/defender/v1/admin)** - _Comhéadan chun riarachán cliste conartha a bhainistiú, lena n-áirítear rialuithe rochtana, uasghráduithe agus cur ar sos._ + +- **[Safe](https://safe.global/)** - _ Sparán conartha cliste ag rith ar Ethereum a éilíonn líon íosta daoine chun idirbheart a cheadú sular féidir leis tarlú (M-de-N)._ + +- **[Conarthaí OpenZeppelin](https://docs.openzeppelin.com/contracts/4.x/)** - _Leabharlanna conartha chun gnéithe riaracháin a chur i bhfeidhm, lena n-áirítear úinéireacht conartha, uasghráduithe, rialuithe rochtana, rialachas, sos-ábaltacht, agus go leor eile._ + +### Seirbhísí cliste iniúchta conartha {#smart-contract-auditing-services} + +- **[ConsenSys Diligence](https://consensys.net/diligence/)** - _Conradh cliste seirbhís iniúchta ag cabhrú le tionscadail ar fud an éiceachóras blocshlabhra a chinntiú go bhfuil a gcuid prótacail réidh le seoladh agus tógtha chun úsáideoirí a chosaint._ + +- **[CertiK](https://www.certik.com/)** - _Gnólacht slándála blocshlabhra le ceannródaíocht a dhéanamh ar úsáid na teicneolaíochta Fíorúcháin fhoirmiúil cheannródaíoch ar chonarthaí cliste agus líonraí blocshlabhra._ + +- **[Trail of Bits](https://www.trailofbits.com/)** - _Cuideachta chíbearshlándála a chomhcheanglaíonn taighde slándála le meon ionsaitheora chun riosca a laghdú agus cód a neartú._ + +- **[PeckShield](https://peckshield.com/)** - _Cuideachta slándála Blocshlabhra a thairgeann táirgí agus seirbhísí ar mhaithe le slándáil, príobháideacht agus inúsáidteacht an éiceachóras blocshlabhra ar fad._ + +- **[QuantStamp](https://quantstamp.com/)** - _Seirbhís iniúchta a éascaíonn glacadh príomhshrutha le teicneolaíocht blocshlabhra trí sheirbhísí slándála agus measúnaithe riosca._ + +- **[OpenZeppelin](https://www.openzeppelin.com/security-audits)** - _ Cuideachta conartha cliste slándála a sholáthraíonn iniúchtaí slándála ar chórais dáilte._ + +- **[Fíorú Am Reatha](https://runtimeverification.com/)** - _ Cuideachta slándála a dhéanann sainchúram de shamhaltú foirmiúil agus fíorú conarthaí cliste._ + +- **[Hacken](https://hacken.io)** - _ Iniúchóir cibearshlándála Web3 le cur chuige 360-céim maidir le slándáil blocshlabhra. _ + +- **[Nethermind](https://nethermind.io/smart-contracts-audits)** - _ Seirbhísí iniúchta Solidity agus Cairo, ag cinntiú sláine conarthaí cliste agus sábháilteacht úsáideoirí ar fud Ethereum agus Starknet._ + +- **[HashEx](https://hashex.org/)** - _Díríonn HashEx ar bhlocshlabhra agus iniúchadh conartha cliste chun slándáil criptea-airgeadraí a chinntiú, ag soláthar seirbhísí cosúil le forbairt conarthaí cliste, bréagionsaithe tástála, comhairliúchán blocshlabhra._ + +- **[Code4rena](https://code4rena.com/)** - _Ardán iniúchta iomaíoch a spreagann saineolaithe slándála conartha cliste chun leochaileachtaí a aimsiú agus cabhrú le web3 a dhéanamh níos sláine._ + +- **[CodeHawks](https://codehawks.com/)** - _Ardán iniúchtaí iomaíoch a dhéanann óstáil ar chomórtais iniúchta cliste do thaighdeoirí slándála._ + +- **[Cyfriin](https://cyfrin.io)** - _Lárionad cumhachta slándála Web3, ag goradh criptea-shlándáil trí tháirgí agus seirbhísí iniúchta conarthaí cliste._ + +- **[ImmuneBytes](https://www.immunebytes.com//smart-contract-audit/)** - _Gnólacht slándála Web3 a thairgeann iniúchtaí slándála ar chórais blocshlabhra trí fhoireann iniúchóirí a bhfuil taithí acu agus uirlisí den scoth._ + +- **[Oxorio](https://oxor.io/)** - _Iniúchtaí conartha cliste agus blocshlabhra seirbhísí slándála le saineolas ar EVM, Solidity, ZK, teicneolaíocht tras-shlabhra do ghnólachtaí cripte agus tionscadail DeFi._ + +- **[Inference](https://inference.ag/)** - _Cuideachta iniúchta slándála, le sainchúram in iniúchadh conartha cliste le haghaidh blocshlabhra EVM-bhunaithe. A bhuí lena n-iniúchóirí saineolacha sainaithníonn siad fadhbanna a d’fhéadfadh a bheith ann agus molann siad réitigh inghníomhaithe chun iad a réiteach roimh imscaradh._ + +### Ardáin deolchairí lochtanna {#bug-bounty-platforms} + +- **[Immunefi](https://immunefi.com/)** - _ardán deolchaire fabhtanna le haghaidh conarthaí cliste agus tionscadail DeFi, ina ndéanann taighdeoirí slándála athbhreithniú ar an gcód, le leochaileachtaí a nochtadh, íocaíocht a fháil, agus criptiúchán níos sábháilte a dhéanamh._ + +- **[HackerOne](https://www.hackerone.com/)** - _Comhordú leochaileachta agus ardáin deolchaire fabhtanna a nascann gnólachtaí le tástálaithe bréagionsaithe agus taighdeoirí cibearshlándála._ + +- **[HackenProof](https://hackenproof.com/)** - _Sain-ardáin deilchaire fabhtanna do tionscadail cripte (DeFi, Conarthaí Cliste, Sparán, CEX agus tuilleadh), ina soláthraíonn gairmithe slándála seirbhísí triáise agus ina n-íoctar taighdeoirí as tuarascálacha ábhartha, fíoraithe faoi fhabht._ + +- **[Sherlock](https://www.sherlock.xyz/)** - _Frithgheallaí in Web3 maidir le slándáil conarthaí cliste, le híocaíochtaí d’iniúchóirí arna mbainistiú trí chonarthaí cliste chun a chinntiú go n-íoctar fabhtanna ábhartha go cothrom._ + +- **[CodeHawks](https://www.codehawks.com/)** - _ Ardáin iomaíoch deolchaire fabhtanna ina nglacann iniúchóirí páirt i gcomórtais agus i ndúshláin slándála, agus (go luath) ina n-iniúchtaí príobháideacha féin._ + +### Foilseacháin ar leochaileachtaí agus ar shaothair conartha cliste aitheanta {#common-smart-contract-vulnerabilities-and-exploits} + +- **[ConsenSys: Ionsaithe Aitheanta ar Chonarthaí Cliste](https://consensys.github.io/smart-contract-best-practices/attacks/)** - _Míniú sothuigthe do thosaitheoirí ar na leochaileachtaí conartha is suntasaí, le cód samplach d'fhormhór na gcásanna._ + +- **[Clárlann SWC](https://swcregistry.io/)** - _Liosta coimeádta de Mhíreanna Áirimh Laige Coitianta (CWE) a bhaineann le conarthaí cliste Ethereum._ + +- **[Rekt](https://rekt.news/)** - _Foilseachán a nuashonraítear go rialta de haiceanna agus dúshaothair ardphróifíle cripte, mar aon le tuarascálacha mionsonraithe iarbháis._ + +### Dúshláin maidir le slándáil conartha cliste a fhoghlaim {#challenges-for-learning-smart-contract-security} + +- **[Awesome BlockSec CTF ](https://github.com/blockthreat/blocksec-ctfs)** -_Liosta coimeádta de chluichí cogaidh slándála blocshlabhra, dúshláin, agus comórtais [Gabháil na Brataí](https://www.webopedia.com/definitions/ctf-event/amp/) agus réiteach scríbhinní._ + +- **[Damn Vulnerable DeFi](https://www.damnvulnerabledefi.xyz/)** - _Cluiche cogaidh chun slándáil ionsaitheach conarthaí cliste DeFi a fhoghlaim agus scileanna a fhorbairt i bhfiach fabhtanna agus in iniúchadh slándála._ + +- **[Ethernaut](https://ethernaut.openzeppelin.com/)** - _Cluiche cogaidh bunaithe ar Web3/Solidity mar a bhfuil gach leibhéal ina chonradh cliste nach mór a 'haiceáil'._ + +- **[HackenProof x HackTheBox](https://app.hackthebox.com/tracks/HackenProof-Track)** - _ Dúshlán cliste haiceála conartha, suite in eachtra fantaisíochta. Má chuirtear an dúshlán i gcrích go rathúil tugtar rochtain freisin ar chlár príobháideach deolchaire fabhtanna._ + +### Na cleachtais is fearr chun conarthaí cliste a dhaingniú {#smart-contract-security-best-practices} + +- **[ConsenSys: Dea-Chleachtais Slándála Conarthaí Cliste Ethereum](https://consensys.github.io/smart-contract-best-practices/)** - _Liosta cuimsitheach treoirlínte chun conarthaí cliste Ethereum a dhaingniú._ + +- **[Nascent: Uirlisí Slándála Simplí](https://github.com/nascentxyz/simple-security-toolkit)** - _Bailiúchán de threoracha praiticiúla atá dírithe ar shlándáil agus seicliostaí chun conarthaí cliste a fhorbairt._ + +- **[Patrúin Solidity](https://fravoll.github.io/solidity-patterns/)** - _Tiomsú úsáideach de phatrúin shlána agus de dhea-chleachtais do theanga ríomhchlárúcháin na gconarthaí cliste Solidity._ + +- **[Doiciméid Solidity: Cúrsaí Slándála](https://docs.soliditylang.org/en/v0.8.16/security-considerations.html)** - _Treoirlínte chun conarthaí cliste slána a scríobh le Solidity._ + +- **[Caighdeán Fíoraithe Slándála Conarthaí Cliste](https://github.com/securing/SCSVS)** - _Seicliosta ceithre pháirt déag cruthaithe chun slándáil conarthaí cliste a chaighdeánú d’fhorbróirí, d’ailtirí, d’athbhreithneoirí slándála agus do dhíoltóirí._ + +- **[Foghlaim Slándáil agus Iniúchadh Conarthaí Cliste](https://updraft.cyfrin.io/courses/security)** - _Cúrsa deiridh um shlándáil agus iniúchadh conartha cliste, cruthaithe d'fhorbróirí conarthaí cliste atá ag iarraidh a gcuid cleachtais slándála is fearr a fheabhsú agus a bheith ina dtaighdeoirí slándála._ + +### Teagaisc ar shlándáil conarthaí cliste {#tutorials-on-smart-contract-security} + +- [Conas conarthaí cliste slán a scríobh](/developers/tutorials/secure-development-workflow/) + +- [Conas Slither a úsáid chun fabhtanna conartha cliste a aimsiú](/developers/tutorials/how-to-use-slither-to-find-smart-contract-bugs/) + +- [Conas Manticore a úsáid chun fabhtanna conartha cliste a aimsiú](/developers/tutorials/how-to-use-manticore-to-find-smart-contract-bugs/) + +- [Treoir maidir le slándáil conarthaí cliste](/developers/tutorials/smart-contract-security-guidelines/) + +- [Conas do chonradh dearbhán a chomhtháthú go sábháilte le comharthaí treallacha](/developers/tutorials/token-integration-checklist/) + +- [Cyfrin Updraft - Cúrsa iomlán slándála conarthaí cliste agus iniúchta](https://updraft.cyfrin.io/courses/security) diff --git a/public/content/translations/ga/developers/docs/smart-contracts/testing/index.md b/public/content/translations/ga/developers/docs/smart-contracts/testing/index.md new file mode 100644 index 00000000000..c1df16697b6 --- /dev/null +++ b/public/content/translations/ga/developers/docs/smart-contracts/testing/index.md @@ -0,0 +1,308 @@ +--- +title: Conarthaí cliste a thástáil +description: Forbhreathnú ar theicnící agus breithnithe chun conarthaí cliste Ethereum a thástáil. +lang: ga +--- + +Tá blocshlabhraí poiblí cosúil le Ethereum do-athraithe, rud a fhágann go bhfuil sé deacair cód conarthaí cliste a athrú tar éis imscaradh. Tá [patrúin uasghrádaithe conartha](/developers/docs/smart-contracts/upgrading/) ann chun "uasghráduithe fíorúla" a dhéanamh, ach is deacair iad seo a chur i bhfeidhm agus bíonn comhthoil shóisialta ag teastáil. Ina theannta sin, ní féidir le huasghrádú earráid a shocrú ach _tar éis_ é a fháil - má aimsíonn ionsaitheoir an leochaileacht ar dtús, tá do chonradh cliste i mbaol dúshaothraithe. + +Ar na cúiseanna sin, tá sé ina íoscheanglas le haghaidh [imscaradh](/developers/docs/smart-contracts/deploying/) chuig Mainnet tástáil [slándála](/developers/docs/smart-contracts/security/) a dhéanamh ar chonarthaí cliste. Tá go leor teicnící ann chun conarthaí a thástáil agus chun cruinneas cód a mheas; braitheann an méid a roghnaíonn tú ar do chuid riachtanas. Mar sin féin, tá sraith tástála comhdhéanta d'uirlisí agus cineálacha cur chuige oiriúnacha éagsúla chun teacht ar mhionlochtanna agus ar mhórlochtanna slándála i gcód conartha. + +## Réamhriachtanais {#prerequisites} + +Míníonn an leathanach seo conas conarthaí cliste a thástáil roimh imscaradh ar líonra Ethereum. Glacann sé leis go bhfuil cur amach agat ar [chonarthaí cliste](/developers/docs/smart-contracts/). + +## Cad is tástáil conartha cliste ann? {#what-is-smart-contract-testing} + +Is é tástáil conartha cliste an próiseas chun a fhíorú go n-oibríonn cód conartha cliste mar a bhíothas ag súil leis. Tá tástáil úsáideach chun a sheiceáil an sásaíonn conradh cliste ar leith na ceanglais maidir le hiontaofacht, inúsáidteacht agus slándáil. + +Cé go bhfuil éagsúlacht sa chur chuige, éilíonn an chuid is mó de na modhanna tástála conradh cliste a rith le sampla beag de na sonraí a bhfuiltear ag súil leis a láimhseáil. Má thugann an conradh torthaí cearta do shonraí samplacha, glactar leis go bhfuil sé ag feidhmiú i gceart. Soláthraíonn formhór na n-uirlisí tástála acmhainní chun [cásanna tástála](https://en.m.wikipedia.org/wiki/Test_case) a scríobh agus a chur i gcrích le seiceáil an dtagann rith conartha leis na torthaí ionchais. + +### Cén fáth a bhfuil sé tábhachtach conarthaí cliste a thástáil? {#importance-of-testing-smart-contracts} + +Toisc gur minic a bhainistíonn conarthaí cliste sócmhainní airgeadais ardluacha, is féidir le [caillteanais ollmhóra d’úsáideoirí](https://rekt.news/leaderboard/) a bheith mar thoradh ar mhionearráidí ríomhchlárúcháin. Is féidir le dianthástáil, áfach, cabhrú leat lochtanna agus fadhbanna a aimsiú go luath i gcód an chonartha chliste agus iad a shocrú sula seolfar ar Mainnet iad. + +Cé gur féidir conradh a uasghrádú má aimsítear fabht, tá uasghrádú casta agus is féidir [ earráidí a bheith mar thoradh air](https://blog.trailofbits.com/2018/09/05/contract-upgrade-anti-patterns/) má láimhseáiltear go míchuí iad. Má dhéantar conradh a uasghrádú, déantar prionsabal na do-athraitheachta a dhiúltú tuilleadh agus cuirtear ualach ar úsáideoirí le boinn tuisceana iontaoibhe breise. Os a choinne sin, maolaíonn plean cuimsitheach chun do chonradh a thástáil rioscaí slándála conartha cliste agus laghdaítear an gá atá le huasghráduithe casta loighce a dhéanamh tar éis imscaradh. + +## Modhanna chun conarthaí cliste a thástáil {#methods-for-testing-smart-contracts} + +Tagann modhanna chun conarthaí cliste Ethereum a thástáil faoi dhá chatagóir leathana: **tástáil uathoibrithe** agus **tástáil láimhe**. Cuireann tástáil uathoibrithe agus tástáil láimhe buntáistí uathúla agus roghanna comhréitigh ar fáil, ach is féidir leat an dá cheann a chur le chéile chun plean láidir a chruthú chun do chonarthaí a anailísiú. + +### Tástáil uathoibrithe {#automated-testing} + +Úsáideann tástáil uathoibrithe uirlisí a sheiceálann go huathoibríoch cód conarthaí cliste le haghaidh earráidí i rith. Is é an buntáiste a bhaineann le tástáil uathoibrithe ná [scripteanna](https://www.techtarget.com/whatis/definition/script?amp=1) a úsáid chun meastóireacht ar fheidhmiúlachtaí conartha a threorú. Is féidir tástálacha scripte a rith arís agus arís eile le hidirghabháil íosta daonna, rud a fhágann go mbeidh tástáil uathoibrithe níos éifeachtaí ná cuir chuige láimhe i leith na tástála. + +Tá tástáil uathoibrithe thar a bheith úsáideach nuair a bhíonn tástálacha atriallach agus fadálach; deacair a dhéanamh de láimh; so-ghabhálach i leith earráid dhaonna; nó nuair a bhíonn measúnú á dhéanamh ar fheidhmeanna conartha criticiúla. Ach d’fhéadfadh míbhuntáistí a bheith ag baint le huirlisí tástála uathoibrithe – seans go gcaillfidh siad fabhtanna áirithe agus go gcruthóidh siad go leor [bréagdheimhneach](https://www.contrastsecurity.com/glossary/false-positive). Mar sin, is fearr an tástáil uathoibrithe a chomhcheangal le tástáil láimhe le haghaidh conarthaí cliste. + +### Tástáil láimhe {#manual-testing} + +Tugtar cúnamh daonna don tástáil láimhe agus is éard atá i gceist léi gach cás tástála a dhéanamh i do shraith tástála ceann i ndiaidh a chéile nuair a dhéantar anailís ar chearta conarthaí cliste. Níl sé cosúil le tástáil uathoibrithe áit ar féidir leat tástálacha iolracha leithlisithe a reáchtáil ar chonradh ag an am céanna agus tuarascáil a fháil a thaispeánann gach tástáil a theipeann agus a n-éiríonn leo. + +Is féidir le duine aonair tástáil láimhe a dhéanamh ag leanúint tástála scríofa a chlúdaíonn cásanna tástála éagsúla. D’fhéadfá freisin go mbeadh daoine aonair iolracha nó grúpaí ag idirghníomhú le conradh cliste thar thréimhse shonraithe mar chuid den tástáil láimhe. Déanfaidh tástálaithe iompraíocht iarbhír an chonartha a chur i gcomparáid leis an iompar a bhfuiltear ag súil leis, ag léiriú aon difríocht mar fhabht. + +Teastaíonn acmhainní suntasacha ó thástáil láimhe éifeachtach (scil, am, airgead agus iarracht), agus is féidir - de bharr earráid dhaonna - earráidí áirithe a chailliúint agus tástálacha á ndéanamh. Ach is féidir le tástáil láimhe a bheith tairbheach freisin - mar shampla, féadfaidh tástálaí daonna (m.sh., iniúchóir) iomas a úsáid chun cásanna imeallacha a bhrath a chaillfeadh uirlis tástála uathoibrithe. + +## Tástáil uathoibrithe le haghaidh conarthaí cliste {#automated-testing-for-smart-contracts} + +### Tástáil aonad {#unit-testing-for-smart-contracts} + +Déanann tástáil aonaid feidhmeanna conartha a mheas ar leithligh agus seiceálann sé go n-oibríonn gach comhpháirt i gceart. Ba chóir go mbeadh trialacha maithe aonaid simplí, tapa le rith agus ba cheart nod soiléir a thabhairt faoinar tharla má theipeann ar na tástálacha. + +Tá tástálacha aonaid úsáideach chun a sheiceáil go dtugann feidhmeanna na luachanna ionchais ar ais agus go ndéantar stóras conartha a nuashonrú i gceart tar éis rith na feidhme. Ina theannta sin, trí thástálacha aonaid a rith tar éis athruithe a dhéanamh ar bhunachar cód conarthaí cinntítear nach dtugtar earráidí isteach má chuirtear loighic nua leis. Seo thíos roinnt treoirlínte chun tástálacha aonaid éifeachtacha a rith: + +#### Treoirlínte le haghaidh aonad tástála conarthaí cliste {#unit-testing-guidelines} + +##### 1. Tuiscint a fháil ar do chonarthaí loighic ghnó agus sreabhadh oibre + +Sula scríobhtar tástálacha aonaid, cabhraíonn sé a bheith eolach faoi na feidhmiúlachtaí a thairgeann conradh cliste agus conas a dhéanfaidh úsáideoirí na feidhmeanna sin a rochtain agus a úsáid. Tá sé seo an-úsáideach chun [tástálacha cosán sona](https://en.m.wikipedia.org/wiki/Happy_path) a rith a chinneann an dtugann feidhmeanna i gconradh an t-toradh ceart ar ais ar ionchuir úsáideora bailí. Míneoimid an coincheap seo trí úsáid a bhaint as an sampla (giorraithe) seo de [chonradh ceant](https://docs.soliditylang.org/en/v0.8.17/solidity-by-example.html?highlight=Auction%20contract#simple-open-auction) + +``` +constructor( + uint biddingTime, + address payable beneficiaryAddress + ) { + beneficiary = beneficiaryAddress; + auctionEndTime = block.timestamp + biddingTime; + } + +function bid() external payable { + + if (block.timestamp > auctionEndTime) + revert AuctionAlreadyEnded(); + + if (msg.value <= highestBid) + revert BidNotHighEnough(highestBid); + + if (highestBid != 0) { + pendingReturns[highestBidder] += highestBid; + } + highestBidder = msg.sender; + highestBid = msg.value; + emit HighestBidIncreased(msg.sender, msg.value); + } + + function withdraw() external returns (bool) { + uint amount = pendingReturns[msg.sender]; + if (amount > 0) { + pendingReturns[msg.sender] = 0; + + if (!payable(msg.sender).send(amount)) { + pendingReturns[msg.sender] = amount; + return false; + } + } + return true; + } + +function auctionEnd() external { + if (block.timestamp < auctionEndTime) + revert AuctionNotYetEnded(); + if (ended) + revert AuctionEndAlreadyCalled(); + + ended = true; + emit AuctionEnded(highestBidder, highestBid); + + beneficiary.transfer(highestBid); + } +} +``` + +Is conradh ceant simplí é seo atá deartha chun tairiscintí a fháil le linn na tréimhse tairisceana. Má thagann méadú ar an `TairiscintisAirde`, faigheann an tairgeoir is airde roimhe sin a gcuid airgid; Nuair a bheidh an tréimhse tairisceana thart, cuireann an `tairbhí` an conradh chun a gcuid airgid a fháil. + +Chlúdódh tástálacha aonaid le haghaidh conradh mar seo feidhmeanna éagsúla a d’fhéadfadh úsáideoir a ghlaoch agus é ag idirghníomhú leis an gconradh. Sampla is ea tástáil aonaid a sheiceálann an féidir le húsáideoir tairiscint a chur isteach agus an ceant ar siúl (i.e. go n-éiríonn le glaonna ar `thairiscint()`) nó ceann a sheiceálann an féidir le húsáideoir tairiscint níos airde a chur isteach. ná an `TairiscintisAirde` reatha. + +Cuidíonn tuiscint ar shreabhadh oibre oibríochta conarthaí freisin le tástálacha aonaid a scríobh a sheiceáil an gcomhlíonann an rith na ceanglais. Mar shampla, sonraítear sa chonradh ceant nach féidir le húsáideoirí tairiscintí a chur isteach nuair a bhíonn an ceant críochnaithe (i.e., nuair a bhíonn `AmscoirCeant` níos ísle ná `stampaama.bloic`). Mar sin, d’fhéadfadh forbróir tástáil aonaid a rith a sheiceálann an n-éireoidh nó an dteipfidh ar ghlaonna chuig an bhfeidhm `tairiscint()` nuair a bhíonn an ceant thart (i.e. nuair a bheidh `AmscoirCeant` > `` `stampaama.bloic ``). + +##### 2. Déan measúnú ar na boinn tuisceana go léir a bhaineann le rith conartha + +Tá sé tábhachtach aon toimhde faoi rith conartha a dhoiciméadú agus tástálacha aonaid a scríobh chun bailíocht na mbonn tuisceana sin a fhíorú. Seachas cosaint a thairiscint i gcoinne rith gan choinne, cuireann tástáil dearbhuithe iallach ort smaoineamh ar oibríochtaí a d'fhéadfadh múnla slándála conarthaí cliste a bhriseadh. Leid úsáideach is ea dul níos faide ná “tástálacha úsáideora sásta” agus tástálacha diúltacha a scríobh a sheiceálann má theipeann ar fheidhm do na hionchuir mícheart. + +Ligeann go leor creataí tástála aonad duit dearbhuithe a chruthú—ráitis shimplí a shonraíonn cad is féidir agus nach féidir le conradh a dhéanamh—agus tástálacha a reáchtáil féachaint an bhfuil na dearbhuithe sin á gcur i gcrích. D’fhéadfadh forbróir atá ag obair ar an gconradh ceant réamhráite na dearbhuithe seo a leanas a dhéanamh faoina iompraíocht roimh thástálacha diúltacha a rith: + +- Ní féidir le húsáideoirí tairiscintí a chur isteach nuair a bhíonn an ceant thart nó nuair nach bhfuil sé tosaithe. + +- Filleann an conradh ceant má tá tairiscint faoi bhun na tairsí inghlactha. + +- Cuirtear a gcuid cistí chun sochair na n-úsáideoirí a dteipeann orthu an tairiscint a bhuachan + +**Nóta**: Bealach eile chun toimhdí a thástáil is ea tástálacha a scríobh a spreagann [modhnóirí feidhmeanna](https://docs.soliditylang.org/en/v0.8.16/contracts.html#function-modifiers) i gconradh, go háirithe ráitis `require`, `deimhniú`, agus `má…eilse`. + +##### 3. Tomhais chumhdach an chóid + +Is méadrach tástála é [Cumhdach cóid](https://en.m.wikipedia.org/wiki/Code_coverage) a rianaíonn líon na gcraobhacha, na línte agus na ráiteas i do chód a rinneadh le linn tástálacha. Ba cheart go mbeadh clúdach cód maith ag trialacha chun an riosca a bhaineann le leochaileachtaí neamhthástáilte a íoslaghdú. Gan cumhdach leordhóthanach, d'fhéadfá glacadh leis go bréagach go bhfuil do chonradh slán mar go n-éiríonn leis na tástálacha go léir, cé go bhfuil leochaileachtaí fós i gconair chóid neamhthástáilte. Nuair a dhéantar cumhdach ard chóid a thaifeadadh, áfach, tugtar dearbhú go ndearnadh tástáil leordhóthanach ar gach ráiteas/feidhm i gconradh cliste maidir le cruinneas. + +##### 4. Úsáid creataí tástála dea-fhorbartha + +Tá cáilíocht na n-uirlisí a úsáidtear chun tástálacha aonaid a reáchtáil do chonarthaí cliste ríthábhachtach. Is creat tástála idéalach é creat a chothabháiltear go rialta; soláthraíonn sé gnéithe úsáideacha (m.sh., cumais logáil agus tuairiscithe); agus caithfidh gur bhain forbróirí eile úsáid fhairsing agus grinnfhiosrúcháin as. + +Tá creataí tástála aonaid le haghaidh conarthaí cliste Solidity ar fáil i dteangacha éagsúla (JavaScript, Python, agus Rust den chuid is mó). Féach ar chuid de na treoracha thíos chun faisnéis a fháil faoin gcaoi le tosú ag rith tástálacha aonaid le creataí tástála éagsúla: + +- **[Ag rith tástálacha aonaid le Brownie](https://eth-brownie.readthedocs.io/en/v1.0.0_a/tests.html)** +- **[Ag rith tástálacha aonaid le Foundry](https://book.getfoundry.sh/forge/writing-tests)** +- **[Ag rith tástálacha aonaid le Waffle](https://ethereum-waffle.readthedocs.io/en/latest/getting-started.html#writing-tests)** +- **[Ag rith tástálacha aonad le Remix](https://remix-ide.readthedocs.io/en/latest/unittesting.html#write-tests)** +- **[Ag rith tástálacha aonaid le Ape](https://docs.apeworx.io/ape/stable/userguides/testing.html)** +- **[Ag rith tástálacha aonaid le Hardhat](https://hardhat.org/hardhat-runner/docs/guides/test-contracts)** +- **[Ag rith tástálacha aonaid le Wake](https://ackeeblockchain.com/wake/docs/latest/testing-framework/overview/)** + +### Tástáil chomhtháthaithe {#integration-testing-for-smart-contracts} + +Cé go bhfeidhmíonn an conradh dífhabhtaithe tástála aonaid ina n-aonar, déanann tástálacha comhtháthaithe meastóireacht ar chomhpháirteanna conartha cliste ina n-iomláine. Is féidir le tástáil chomhtháthaithe saincheisteanna a eascraíonn as glaonna traschonartha nó idirghníomhartha idir feidhmeanna éagsúla sa chonradh cliste céanna a bhrath. Mar shampla, is féidir le tástálacha comhtháthaithe cabhrú le seiceáil an n-oibríonn rudaí mar [oidhreacht](https://docs.soliditylang.org/en/v0.8.12/contracts.html#inheritance) agus instealladh spleáchais i gceart. + +Tá tástáil chomhtháthaithe úsáideach má ghlacann do chonradh ailtireacht mhodúlach nó má labhraíonn sé le conarthaí ar slabhra eile le linn reatha. Bealach amháin chun tástálacha comhtháthaithe a rith ná [forc a dhéanamh ar an mblocshlabhra](/glossary/#fork) ag airde ar leith (ag úsáid uirlis mar [Forge](https://book.getfoundry.sh/forge/fork-testing) nó [Hardhat](https://hardhat.org/hardhat-network/docs/guides/forking-other-networks) agus insamhail idirghníomhaíochtaí idir do chonradh agus conarthaí imlonnaithe. + +Oibreoidh an blocshlabhra forcaithe ar nós Mainnet agus beidh cuntais aige le staideanna agus iarmhéideanna gaolmhara. Ach ní fheidhmíonn sé ach mar thimpeallacht forbartha áitiúil bosca gainimh, rud a chiallaíonn nach mbeidh ETH fíor ag teastáil uait le haghaidh idirbhearta, mar shampla, agus nach mbeidh tionchar ag d'athruithe ar phrótacal Ethereum fíor. + +### Tástáil bunaithe ar airíonna {#property-based-testing-for-smart-contracts} + +Is éard atá i gceist le tástáil bunaithe ar mhaoin ná an próiseas chun a sheiceáil go sásaíonn conradh cliste airí áirithe sainithe. Dearbhaíonn airíonna fíricí maidir le hiompar conartha a mheastar a bheidh fíor i gcásanna éagsúla - bheadh “Ní chuireann oibríochtaí uimhríochta sa chonradh thar maoil nó faoi shreabhadh riamh” ina shampla d'airí chonartha cliste. + +Is dhá theicníc choitianta iad **anailís statach** agus **anailís dhinimiciúil** chun tástáil bunaithe ar airí a dhéanamh, agus is féidir leis an dá cheann a fhíorú go sásaíonn an cód le haghaidh clár (conradh cliste sa chás seo) roinnt airíonna réamhshainithe. Tagann roinnt uirlisí tástála atá bunaithe ar airí le rialacha réamhshainithe maidir le hairíonna conartha a bhfuiltear ag súil leo agus seiceálann siad an cód i gcoinne na rialacha sin, agus ceadaíonn cinn eile duit airíonna saincheaptha a chruthú le haghaidh conradh cliste. + +#### Anailís statach {#static-analysis} + +Glacann anailísí statach cód foinseach an chonartha chliste mar ionchur agus aschuireann sé torthaí lena ndearbhaítear an sásaíonn an conradh airí nó nach sásaíonn. Murab ionann agus anailís dhinimiciúil, ní bhaineann anailís statach le conradh a fhorghníomhú chun anailís a dhéanamh air maidir le cruinneas. Ina ionad sin, is cúis le hanailís statach na bealaí uile a d’fhéadfadh conradh cliste a ghabháil le linn é a rith (i.e., trí struchtúr an chóid foinseach a scrúdú chun a chinneadh cad a bheadh ​​i gceist leis d’oibríocht na gconarthaí ag am rite). + +[Linting](https://www.perforce.com/blog/qac/what-lint-code-and-why-linting-important) agus [tástáil statach](https://www.techtarget.com/whatis/definition/static-analysis-static-code-analysis) chun anailís statach ar chonarthaí a rith. Teastaíonn ón dá cheann acu anailís a dhéanamh ar léiriú ísealleibhéil ar rith conartha mar [crainn chomhréire teibí](https://en.m.wikipedia.org/wiki/Abstract_syntax_tree) agus [sreabhghraif rialaithe](https://www.geeksforgeeks.org/software-engineering-control-flow-graph-cfg/amp/) aschur ag an tiomsaitheoir. + +I bhformhór na gcásanna, tá anailís statach úsáideach chun saincheisteanna sábháilteachta a bhrath ar nós úsáid a bhaint as tógálacha neamhshábháilte, earráidí comhréire, nó sáruithe ar chaighdeáin códaithe i gcód conarthaí. Mar sin féin, is eol go bhfuil anailíseoirí statacha neamhfhónta go ginearálta maidir le leochaileachtaí níos doimhne a bhrath, agus d'fhéadfadh go gcruthódh siad ró-dearfach bréagach. + +#### Anailís dhinimiciúil {#dynamic-analysis} + +Gineann anailís dhinimiciúil ionchuir shiombalacha (m.sh., i [forghníomhú siombalach](https://en.m.wikipedia.org/wiki/Symbolic_execution)) nó ionchuir choincréite (m.sh., i [doiléiriú](https://owasp.org/www-community/Fuzzing)) go feidhmeanna conarthaí cliste féachaint an bhfuil aon rith ag sárú rian(eanna) airíonna sonracha. Tá an cineál seo tástála bunaithe ar airí difriúil ó thástálacha aonaid sa mhéid is go gcuimsíonn cásanna tástála cásanna iolracha agus go láimhseálann clár giniúint cásanna tástála. + +Is sampla é [Doiléiriú](https://halborn.com/what-is-fuzz-testing-fuzzing/) de theicníc anailíse dhinimiciúil chun airíonna treallacha i gconarthaí cliste a fhíorú. Déanann doiléiriú feidhmeanna a agairt i gconradh sprice le héagsúlachtaí randamacha nó míchumtha de luach ionchuir sainithe. Má théann an conradh cliste i staid earráide (m.sh., staid ina dteipeann ar dhearbhú), cuirtear an fhadhb in iúl agus déantar ionchuir a thiomáineann an rith i dtreo na conaire leochaileacha a tháirgeadh i dtuarascáil. + +Tá doiléiriú úsáideach chun meicníocht bhailíochtaithe ionchuir conarthaí cliste a mheas ós rud é go bhféadfadh forghníomhú neamhbheartaithe a bheith mar thoradh ar láimhseáil míchuí ionchuir gan choinne agus éifeachtaí contúirteacha a chruthú. Is féidir an cineál seo tástála bunaithe ar mhaoin a bheith oiriúnach ar go leor cúiseanna: + +1. **Tá sé deacair cásanna tástála a scríobh chun go leor cásanna a chlúdach.** Ní éilíonn tástáil airíonna ach iompraíocht agus raon sonraí a shainiú chun an t-iompar a thástáil - gineann an clár cásanna tástála go huathoibríoch atá bunaithe ar an airí sainithe. + +2. **Seans nach gclúdaíonn do shraith tástála gach cosán laistigh den chlár a dhóthain.** Fiú le clúdach 100%, is féidir cásanna imeallacha a fhágáil ar lár. + +3. **Cruthaíonn tástálacha aonaid go bhfeidhmíonn conradh i gceart le haghaidh sonraí samplacha, ach ní fios cé acu an bhfeidhmíonn an conradh i gceart le haghaidh ionchuir lasmuigh den sampla.** Ritheann tástálacha airí conradh sprice le héagsúlachtaí iolracha a luach ionchuir tugtha chun rianta reatha a aimsiú a chruthaíonn teipeanna dearbhaithe. Mar sin, cuireann tástáil airí ráthaíochtaí breise ar fáil go bhfeidhmíonn conradh i gceart maidir le haicme leathan sonraí ionchuir. + +### Treoirlínte maidir le tástáil bunaithe ar airí a rith le haghaidh conarthaí cliste {#running-property-based-tests} + +Is gnách go gcuirtear tús le tástáil bunaithe ar airí le sainiú airí (m.sh., easpa [róshreabhadh slánuimhreach](https://github.com/ConsenSys/mythril/wiki/Integer-Overflow)) nó bailiú airíonna ar mhaith leat a fhíorú i gconradh cliste. Seans go mbeidh ort freisin raon luachanna a shainiú mar ar féidir leis an gclár sonraí a ghiniúint le haghaidh ionchuir idirbhirt agus tástálacha maoine á scríobh. + +Nuair a bheidh sé cumraithe i gceart, déanfaidh an uirlis tástála airí do chuid feidhmeanna conarthaí cliste a fhorghníomhú le hionchuir a ghintear go randamach. Má tá aon sáruithe dearbhaithe, ba cheart duit tuarascáil a fháil le sonraí ionchuir nithiúla a sháraíonn an airí atá á mheasúnú. Féach ar chuid de na treoracha thíos chun tús a chur le tástáil bunaithe ar airí a rith le huirlisí éagsúla: + +- **[Anailís statach ar chonarthaí cliste le Slither](https://github.com/crytic/building-secure-contracts/tree/master/program-analysis/slither#slither)** +- **[Anailís statach ar chonarthaí cliste le Wake](https://ackeeblockchain.com/wake/docs/latest/static-analysis/using-detectors/)** +- **[Tástáil bunaithe ar airí le Brownie](https://eth-brownie.readthedocs.io/en/stable/tests-hypothesis-property.html)** +- **[Conarthaí doiléirithe le Foundry](https://book.getfoundry.sh/forge/fuzz-testing)** +- **[Conarthaí doiléirithe le Echidna](https://github.com/crytic/building-secure-contracts/tree/master/program-analysis/echidna#echidna-tutorial)** +- **[Conarthaí doiléirithe le Wake](https://ackeeblockchain.com/wake/docs/latest/testing-framework/fuzzing/)** +- **[Forghníomhú siombalach conarthaí cliste le Manticore](https://github.com/crytic/building-secure-contracts/tree/master/program-analysis/manticore#manticore-tutorial)** +- **[Rith siombalach conarthaí cliste le Mythril](https://mythril-classic.readthedocs.io/en/master/tutorial.html)** + +## Tástáil láimhe le haghaidh conarthaí cliste {#manual-testing-for-smart-contracts} + +Is minic a thagann tástáil láimhe ar chonarthaí cliste níos déanaí sa timthriall forbartha tar éis tástálacha uathoibrithe a reáchtáil. Déanann an cineál tástála seo measúnú ar an gconradh cliste mar tháirge lán-chomhtháite amháin féachaint an bhfeidhmíonn sé mar atá sonraithe sna ceanglais theicniúla. + +### Conarthaí a thástáil ar blocshlabhra áitiúil {#testing-on-local-blockchain} + +Cé gur féidir le tástáil uathoibrithe a dhéantar i dtimpeallacht forbartha áitiúil faisnéis úsáideach dífhabhtaithe a sholáthar, beidh tú ag iarraidh a fháil amach conas a oibríonn do chonradh cliste i dtimpeallacht táirgthe. Mar sin féin, tabhaítear táillí gáis as imscaradh chuig príomhshlabhra Ethereum - gan trácht ar gur féidir leat féin nó d'úsáideoirí fíor-airgead a chailleadh má tá fabhtanna fós ar do chonradh cliste. + +Is rogha mhalartach é do chonradh a thástáil ar bhlocshlabhra áitiúil (ar a dtugtar [líonra forbartha](/developers/docs/development-networks/)) ar thástáil ar Mainnet. Is éard atá i blocshlabhra áitiúil ná cóip den blocshlabhra Ethereum a ritheann go háitiúil ar do ríomhaire a ionsamhlaíonn iompar ciseal forghníomhaithe Ethereum. Mar sin, is féidir leat idirbhearta a ríomhchlárú chun idirghníomhú le conradh gan forchostas suntasach a thabhú. + +D'fhéadfadh sé a bheith úsáideach conarthaí a reáchtáil ar blocshlabhra áitiúil mar chineál tástála comhtháthaithe láimhe. [Tá conarthaí cliste an-inchumtha](/developers/docs/smart-contracts/composability/), rud a ligeann duit comhtháthú le prótacail atá ann cheana féin - ach beidh ort fós a chinntiú go n-eascróidh na torthaí cearta as idirghníomhaíochtaí casta ar slabhra. + +[Tuilleadh faoi líonraí forbartha.](/developers/docs/development-networks/) + +### Conarthaí a thástáil ar Líonraí tástála {#testing-contracts-on-testnets} + +Oibríonn líonra tástála nó testnet díreach cosúil le Ethereum Mainnet, ach amháin go n-úsáideann sé éitear (ETH) gan aon luach fíordhomhain. Má dhéantar do chonradh a imscaradh ar [Líonra tástála](/developers/docs/networks/#ethereum-testnets) is féidir le haon duine idirghníomhú leis (m.sh., trí aghaidh an dapp) gan cistí a chur i mbaol. + +Tá an cineál tástála láimhe seo úsáideach chun sreabhadh d’fheidhmchlár ó cheann go ceann a mheas ó dhearcadh an úsáideora. Anseo, is féidir le tástálaithe béite trialacha a dhéanamh freisin agus aon saincheisteanna a bhaineann le loighic ghnó agus feidhmiúlacht fhoriomlán an chonartha a thuairisciú. + +Tá sé iontach imscaradh ar líonra tástála tar éis tástáil a dhéanamh ar blocshlabhra áitiúil ós rud é go bhfuil an chéad cheann níos gaire d'iompar Meaisín Fíorúil Ethereum. Mar sin, tá sé coitianta go leor tionscadail Ethereum-dhúchasacha dapps a imscaradh ar testnets chun oibríocht conarthaí cliste a mheas faoi choinníollacha an domhain fíor. + +[Tuilleadh faoi líonraí tástála Ethereum.](/developers/docs/development-networks/#public-beacon-testchains) + +## Tástáil vs fíorú foirmiúil {#testing-vs-formal-verification} + +Cé go gcuidíonn an tástáil le deimhniú go dtugann conradh na torthaí a bhfuiltear ag súil leo ar ais do roinnt ionchuir sonraí, ní féidir leis a chruthú go cinntitheach an rud céanna maidir le hionchuir nach n-úsáidtear le linn tástálacha. Mar sin, ní féidir "cruinneas feidhmiúil" a ráthú le conradh cliste a thástáil (i.e. ní féidir a thaispeáint go n-iompraíonn ríomhchlár mar is gá do _gach tacar_ de luachanna ionchuir). + +Is éard atá i bhfíorú foirmiúil ná cur chuige chun cruinneas bogearraí a mheas trí sheiceáil an bhfuil samhail fhoirmiúil den chlár ag teacht leis an tsonraíocht fhoirmiúil. Is ionann samhail fhoirmiúil agus léiriú teibí matamaitice ar chlár, agus sainmhíníonn sonraíocht fhoirmiúil airíonna cláir (i.e. dearbhuithe loighciúla faoi fheidhmiú an chláir). + +Toisc go bhfuil airíonna scríofa i dtéarmaí matamaitice, is féidir a fhíorú go sásaíonn samhail fhoirmiúil (matamaiticiúil) den chóras sonraíocht agus úsáid á baint as rialacha loighciúla tátail. Mar sin, deirtear go dtugann uirlisí fíoraithe foirmiúla ‘cruthúnas matamaitice’ ar chruinneas córais. + +Murab ionann agus an tástáil, is féidir fíorú foirmiúil a úsáid chun a fhíorú go sásaíonn rith conarthaí cliste sonraíocht fhoirmiúil do _gach_ rith (i.e., níl aon fhabhtanna ann) gan gá a fhorghníomhú le sampla sonraí. Ní hamháin go laghdaítear an t-am a chaitear ar an iliomad tástálacha aonaid a rith, ach tá sé níos éifeachtaí freisin chun teacht ar leochaileachtaí ceilte. É sin ráite, luíonn teicnící foirmiúla fíoraithe ar speictream ag brath ar a ndeacracht le cur i bhfeidhm agus a n-úsáideacht. + +[Tuilleadh faoi fhíorú foirmiúil do chonarthaí cliste.](/developers/docs/smart-contracts/formal-verification) + +## Tástáil vs iniúchtaí agus deolchairí fabhtanna {#testing-vs-audits-bug-bounties} + +Mar a luadh, is annamh a d’fhéadfadh tástáil dhian a ráthú nach mbíonn fabhtanna i gconradh; féadann cur chuige foirmiúla fíoraithe cinnteacht níos láidre a thabhairt maidir le cirte ach is deacair iad a úsáid faoi láthair agus tabhaítear costais shuntasacha orthu. + +Fós féin, is féidir leat féidearthacht leochaileachtaí conartha a ghabháil a mhéadú trí athbhreithniú cóid neamhspleách a fháil. [Iniúchtaí conartha cliste](https://www.immunebytes.com/blog/what-is-a-smart-contract-audit/) agus [deolchairí fabhtanna](https://medium.com/immunefi/a-defi-security-standard-the-scaling-bug-bounty-9b83dfdc1ba7): dhá bhealach chun daoine eile a spreagadh chun anailís a dhéanamh ar do chonarthaí. + +Déanann iniúchóirí a bhfuil taithí acu ar chásanna lochtanna slándála agus deoch-chleachtais forbartha i gconarthaí cliste iniúchtaí. Áireofar le hiniúchadh tástáil (agus b’fhéidir fíorú foirmiúil) chomh maith le hathbhreithniú láimhe ar an mbunachar cód iomlán. + +Os a choinne sin, is iondúil go mbíonn luach saothair airgeadais á thairiscint do dhuine aonair i gclár deolchaire fabhtanna (ar a dtugtar [haiceálaithe hata bána](https://en.wikipedia.org/wiki/White_hat_(computer_security))) a aimsíonn leochaileacht i gconradh cliste agus nochtann d’fhorbróirí iad. Tá deolchairí fabhtanna cosúil le hiniúchtaí ós rud é go mbaineann sé le iarraidh ar dhaoine eile cabhrú le lochtanna i gconarthaí cliste a aimsiú. + +Is é an difríocht mhór ná go bhfuil cláir deolchaire fabhtanna oscailte don phobal forbróra/haiceálaithe níos leithne agus go meallann siad aicme leathan haiceálaithe eiticiúla agus gairmithe slándála neamhspleácha a bhfuil scileanna agus taithí uathúla acu. D’fhéadfadh sé seo a bheith ina bhuntáiste seachas iniúchtaí cliste conartha a bhíonn ag brath go príomha ar fhoirne a bhféadfadh saineolas teoranta nó cúng a bheith acu. + +## Uirlisí tástála agus leabharlanna {#testing-tools-and-libraries} + +### Uirlisí tástála aonad {#unit-testing-tools} + +- **[cumhdach-daingne](https://github.com/sc-forks/solidity-coverage)** - _Uirlis cumhdaigh cód le haghaidh conarthaí cliste scríofa i Solidity._ + +- **[Waffle](https://ethereum-waffle.readthedocs.io/en/latest/)** - _Creat um fhorbairt agus tástáil ardchonarthaí cliste (bunaithe ar ethers.js)_. + +- **[Tástálacha Remix](https://github.com/ethereum/remix-project/tree/master/libs/remix-tests)** - _Uirlis chun conarthaí cliste Solidity a thástáil. Oibríonn sé faoin mbreiseán "Tástáil Aonaid Solidity" Remix IDE a úsáidtear chun cásanna tástála ar chonradh a scríobh agus a rith._ + +- **[Cúntóirí Tástála OpenZeppelin](https://github.com/OpenZeppelin/openzeppelin-test-helpers)** - _ Leabharlann dearbhaithe le haghaidh tástála conarthaí cliste Ethereum. Cinntigh go n-iompraíonn do chonarthaí mar a bhíothas ag súil leis!_ + +- **[Creat tástála aonaid Brownie](https://eth-brownie.readthedocs.io/en/v1.0.0_a/tests.html)**- _Úsáideann Brownie Pytest, creat tástála atá saibhir i ngnéithe a ligeann duit tástálacha beaga a scríobh le híosmhéid cód, a scálaíonn go maith do thionscadail mhóra, agus atá an-insínte._ + +- **[Tástálacha Foundry](https://github.com/foundry-rs/foundry/tree/master/crates/forge)** -_ Tairgeann Foundry Forge, creat tástála Ethereum tapa agus solúbtha atá in ann tástálacha aonaid simplí, seiceálacha barrfheabhsaithe gáis, agus doiléiriú conartha a dhéanamh._ + +- **[Tástálacha Hardhat](https://hardhat.org/hardhat-runner/docs/guides/test-contracts)** - _Creat chun conarthaí cliste a thástáil bunaithe ar ethers.js, Mocha, agus Chai._ + +- **[ApeWorx](https://docs.apeworx.io/ape/stable/userguides/testing.html)** - _Creat forbartha agus tástála bunaithe ar Python le haghaidh conarthaí cliste a dhíríonn ar Mheaisín Fíorúil Ethereum._ + +- **[Wake](https://ackeeblockchain.com/wake/docs/latest/testing-framework/overview/)** - _Creat bunaithe ar Python le haghaidh tástála aonaid agus doiléiriú le cumais dhífhabhtaithe láidre agus tacaíocht tástála tras-slabhra, ag baint úsáide as pytest agus Anvil le haghaidh taithí agus feidhmíocht úsáideora is fearr._ + +### Uirlisí tástála airíonna-bhunaithe {#property-based-testing-tools} + +#### Uirlisí anailíse statacha {#static-analysis-tools} + +- **[Slither](https://github.com/crytic/slither)** - _Python- bunaithe ar chreat anailíse statach Solidity chun leochaileachtaí a aimsiú, tuiscint cóid a fheabhsú, agus anailísí saincheaptha a scríobh do chonarthaí cliste._ + +- **[Ethlint](https://ethlint.readthedocs.io/en/latest/)** - _>Linter chun dea-chleachtais stíle agus slándála a fhorfheidhmiú don teanga ríomhchláraithe um chonarthaí cliste Solidity._ + +- **[Cyfrin Aderyn](https://cyfrin.io/tools/aderyn)** - _Anailíseoir statach Rust-bhunaithe, deartha go sonrach le haghaidh slándála agus forbairt conartha cliste Web3._ + +- **[Wake](https://ackeeblockchain.com/wake/docs/latest/static-analysis/using-detectors/)** - _Creat anailíse statach bunaithe ar Python le brathadóirí leochaileachta agus cáilíochta cód, printéirí chun faisnéis úsáideach a bhaint as an gcód agus tacaíocht chun fomhodúil saincheaptha a scríobh._ + +#### Uirlisí anailíse dinimiciúla {#dynamic-analysis-tools} + +- **[Echidna](https://github.com/crytic/echidna/)** - _Doiléiriú mear conartha chun leochaileachtaí i gconarthaí cliste a bhrath trí thástáil bunaithe ar airíonna._ + +- **[Diligence Fuzzing](https://consensys.net/diligence/fuzzing/)** - _ Uirlis doiléirithe uathoibrithe atá úsáideach chun sáruithe airíonna i gcód conartha cliste a bhrath._ + +- **[>Manticore](https://manticore.readthedocs.io/en/latest/index.html)** - _Creat feidhmithe siombalach dinimiciúil chun anailís a dhéanamh ar bheartchód EVM._ + +- **[Mythril](https://github.com/ConsenSys/mythril-classic)** - _ Uirlis measúnaithe beartchóid EVM chun leochaileachtaí conartha a bhrath trí úsáid a bhaint as anailís smáil, anailís choncólach, agus seiceáil sreafa rialaithe._ + +- **[Scriobláil Díchill](https://consensys.net/diligence/scribble/)** - _ Is uirlis fíoraithe teanga sonraíochta agus ama rite é Scribble a ligeann duit conarthaí cliste a bhfuil airíonna acu a anótáil a ligeann duit na conarthaí a thástáil go huathoibríoch le huirlisí ar nós Diligence Fuzzing nó MythX._ + +## Ranganna teagaisc a bhaineann leo {#related-tutorials} + +- [Forbhreathnú agus comparáid idir táirgí tástála éagsúla](/developers/tutorials/guide-to-smart-contract-security-tools/) \_ +- [Conas Echidna a úsáid chun conarthaí cliste a thástáil](/developers/tutorials/how-to-use-echidna-to-test-smart-contracts/) +- [Conas Manticore a úsáid chun fabhtanna conartha cliste a aimsiú](/developers/tutorials/how-to-use-manticore-to-find-smart-contract-bugs/) +- [Conas Slither a úsáid chun fabhtanna conartha cliste a aimsiú](/developers/tutorials/how-to-use-slither-to-find-smart-contract-bugs/) +- [Conas conarthaí Dlúthpháirtíochta a bhréagnú le haghaidh tástála](/developers/tutorials/how-to-mock-solidity-contracts-for-testing/) +- [Conas tástálacha aonaid a rith i Solidity ag baint úsáide as Teilgcheárta](https://www.rareskills.io/post/foundry-testing-solidity) + +## Tuilleadh léitheoireachta {#further-reading} + +- [Treoir dhomhain maidir le conarthaí cliste Ethereum a thástáil](https://iamdefinitelyahuman.medium.com/an-in-depth-guide-to-testing-ethereum-smart-contracts-2e41b2770297) +- [Conas conarthaí cliste ethereum a thástáil](https://betterprogramming.pub/how-to-test-ethereum-smart-contracts-35abc8fa199d) +- [Treoir tástála aonaid MolochDAO d’fhorbróirí](https://github.com/MolochVentures/moloch/tree/4e786db8a4aa3158287e0935dcbc7b1e43416e38/test#moloch-testing-guide) +- [Conas conarthaí cliste cosúil le rockstar a thástáil](https://forum.openzeppelin.com/t/test-smart-contracts-like-a-rockstar/1001) diff --git a/public/content/translations/ga/developers/docs/smart-contracts/upgrading/index.md b/public/content/translations/ga/developers/docs/smart-contracts/upgrading/index.md new file mode 100644 index 00000000000..d98d43acd13 --- /dev/null +++ b/public/content/translations/ga/developers/docs/smart-contracts/upgrading/index.md @@ -0,0 +1,165 @@ +--- +title: Uasghrádú conarthaí cliste +description: Forbhreathnú ar phatrúin uasghrádaithe do chonarthaí cliste Ethereum +lang: ga +--- + +Is cláir féin-reatha iad conarthaí cliste ar Ethereum a ritheann i Meaisín Fíorúil Ethereum (EVM). Tá na cláir seo do-athraithe ó thaobh dearaidh de, rud a chuireann cosc ​​ar aon nuashonrú ar an loighic ghnó nuair atá an conradh imscartha. + +Cé go bhfuil gá le do-athraitheacht le haghaidh easpa iontaobhais, díláraithe, agus slándáil conarthaí cliste, d’fhéadfadh sé a bheith ina mhíbhuntáiste i gcásanna áirithe. Mar shampla, le cód do-athraithe é d'fhéadfadh sé a bheith dodhéanta d'fhorbróirí conarthaí leochaileacha a shocrú. + +Mar sin féin, de bharr taighde méadaithe maidir le conarthaí cliste a fheabhsú, tugadh isteach roinnt patrún uasghrádaithe. Cuireann na patrúin uasghrádaithe seo ar chumas na bhforbróirí conarthaí cliste a uasghrádú (agus do- athraitheacht á caomhnú) trí loighic ghnó a chur i gconarthaí éagsúla. + +## Réamhriachtanais {#prerequisites} + +Ba cheart go mbeadh tuiscint mhaith agat ar [chonarthaí cliste](/developers/docs/smart-contracts/), [ anatamaíocht chonradh cliste](/developers/docs/smart-contracts/anatomy/), agus an [Meaisín Fíorúil Ethereum (EVM)](/developers/docs/evm/). Glacann an treoir seo leis freisin go bhfuil tuiscint ag léitheoirí ar chonarthaí cliste a ríomhchlárú. + +## Cad is uasghrádú conartha cliste ann? {#what-is-a-smart-contract-upgrade} + +Is éard atá i gceist le huasghrádú conartha cliste ná loighic ghnó conradh cliste a athrú agus staid an chonartha á caomhnú. Tá sé tábhachtach a shoiléiriú nach ionann an t-uasghrádú agus an luaineacht, go háirithe i gcomhthéacs conarthaí cliste. + +Ní féidir leat clár a imscartar chuig seoladh ar líonra Ethereum a athrú go fóill. Ach is féidir leat an cód a ritear a athrú nuair a idirghníomhaíonn úsáideoirí le conradh cliste. + +Is féidir é seo a dhéanamh trí na modhanna seo a leanas: + +1. Leaganacha iolracha de chonradh cliste a chruthú agus staid ascnaimh (i.e. sonraí) ón seanchonradh go dtí ásc nua den chonradh. + +2. Conarthaí ar leith a chruthú chun loighic agus staid ghnó a stóráil. + +3. Úsáid a bhaint as patrúin seachfhreastalaí chun glaonna feidhme a tharmligean ó chonradh seachfhreastalaí do-athraithe go conradh loighce inathraithe. + +4. Príomhchonradh do-athraithe a chruthú a labhraíonn le, agus a bhraitheann ar chonarthaí satailíte solúbtha chun feidhmeanna sonracha a rith. + +5. An patrún muileata a úsáid chun glaonna feidhme a tharmligean ó chonradh seachfhreastalaí go conarthaí loighce. + +### Meicníocht uasghrádaithe #1: Ascnamh conartha {#contract-migration} + +Bunaítear ascnamh conartha ar leagan – an smaoineamh staideanna uathúla de na bogearraí céanna a chruthú agus a bhainistiú. Is éard atá i gceist le haistriú conartha ná sampla nua de chonradh cliste atá ann cheana a imscaradh agus stóras agus iarmhéideanna a aistriú chuig an gconradh nua. + +Beidh stóras folamh ag an gconradh nua-imlonnaithe, rud a ligeann duit sonraí a aisghabháil ón seanchonradh agus é a scríobh chuig an gcur chun feidhme nua. Ina dhiaidh sin, beidh ort na conarthaí go léir a d'oibrigh leis an seanchonradh a nuashonrú chun an seoladh nua a léiriú. + +Is í an chéim dheireanach in ascnamh conartha ná cur ina luí ar úsáideoirí athrú chuig an gconradh nua a úsáid. Coinneoidh an leagan conartha nua iarmhéideanna agus seoltaí úsáideoirí, rud a chaomhnóidh do-athraitheacht. Más conradh atá bunaithe ar chomharthaí é, beidh ort dul i dteagmháil le malartáin freisin chun an seanchonradh a chaitheamh amach agus an conradh nua a úsáid. + +Is beart réasúnta simplí agus sábháilte é imirce conartha chun conarthaí cliste a uasghrádú gan idirghníomhaíochtaí úsáideoirí a bhriseadh. Mar sin féin, bíonn sé fadálach stóráil agus iarmhéideanna úsáideoirí a aistriú de láimh chuig an gconradh nua agus d'fhéadfadh costais arda gáis a bheith i gceist. + +[Tuilleadh faoi imirce conartha.](https://blog.trailofbits.com/2018/10/29/how-contract-migration-works/) + +### Meicníocht uasghrádaithe #2: Deighilt sonraí {#data-separation} + +Modh eile chun conarthaí cliste a uasghrádú ná loighic ghnó agus stóras sonraí a dheighilt i gconarthaí ar leith. Ciallaíonn sé seo go n-idirghníomhaíonn úsáideoirí leis an gconradh loighce, agus sonraí á stóráil sa chonradh stórais. + +Tá an cód a fhorghníomhaítear nuair a idirghníomhaíonn úsáideoirí leis an bhfeidhmchlár sa chonradh loighce. Coinníonn sé seoladh an chonartha stórais freisin agus idirghníomhaíonn sé leis chun sonraí a fháil agus a shocrú. + +Idir an dá linn, coinníonn an conradh stórála an staid a bhaineann leis an gconradh cliste, mar shampla iarmhéideanna agus seoltaí úsáideoirí. Tabhair faoi deara go bhfuil an conradh stórais faoi úinéireacht an chonartha loighce agus go bhfuil sé cumraithe le seoladh an dara ceann ag an imscaradh. Cuireann sé seo cosc ​​ar chonarthaí neamhúdaraithe an conradh stórais a ghlaoch nó a sonraí a nuashonrú. + +De réir réamhshocraithe, bíonn an conradh stórála do-athraithe - ach is féidir leat cur i bhfeidhm nua a chur in ionad an chonartha loighce a luann sé. Athróidh sé seo an cód a ritheann san EVM, agus an stóras agus na hiarmhéideanna a choinneáil slán. + +Chun an modh uasghrádaithe seo a úsáid is gá seoladh an chonartha loighce sa chonradh stórais a nuashonrú. Ní mór duit freisin an conradh loighce nua a chumrú le seoladh an chonartha stórais ar chúiseanna atá mínithe cheana. + +D’fhéadfaí a áitiú gur fusa an patrún deighilte sonraí a chur i bhfeidhm i gcomparáid le haistriú conartha. Mar sin féin, beidh ort conarthaí iolracha a bhainistiú agus scéimeanna údaraithe casta a chur i bhfeidhm chun conarthaí cliste a chosaint ó uasghrádú mailíseach. + +### Meicníocht uasghrádaithe #3: Patrúin seachfhreastalaí {#proxy-patterns} + +Úsáideann an patrún seachfhreastalaí freisin scarúint sonraí chun loighic ghnó agus sonraí a choinneáil i gconarthaí ar leithligh. Mar sin féin, i bpatrún seachfhreastalaí, glaonn an conradh stórais (ar a dtugtar seachfhreastalaí) an conradh loighic le linn rith cóid. Is iompú droim ar ais é seo ar an modh deighilte sonraí, áit a nglaonn an conradh loighce ar an gconradh stórais. + +Is é seo a tharlaíonn i bpatrún seachfhreastalaí: + +1. Idirghníomhaíonn úsáideoirí leis an gconradh seachfhreastalaí, a stórálann sonraí, ach nach bhfuil an loighic ghnó aige. + +2. Stórálann an conradh seachfhreastalaí seoladh an chonartha loighce agus tarmligeann sé gach glao feidhme chuig an gconradh loighce (a bhfuil an loighic ghnó aige) ag baint úsáide as an bhfeidhm `delegatecall`. + +3. Tar éis an glao a chur ar aghaidh chuig an gconradh loighce, aisghabháiltear na sonraí a cuireadh ar ais ón gconradh loighce agus cuirtear ar ais chuig an úsáideoir iad. + +Teastaíonn tuiscint ar fheidhm **glaoch toscaire** chun na patrúin seachfhreastalaí a úsáid. Go bunúsach, is opcode é `glaoch toscaire` a ligeann do chonradh conradh eile a ghlaoch, agus tarlaíonn forghníomhú an chóid iarbhír i gcomhthéacs an chonartha ag glaoch. Impleacht a bhaineann le `delegatecall` a úsáid i bpatrúin seachfhreastalaí is ea go léann agus go scríobhann an conradh seachfhreastalaí chuig a stóras agus go bhfeidhmíonn sé an loighic atá stóráilte ag an gconradh loighce amhail is dá nglaofaí feidhm inmheánach. + +Ón [Doiciméadú Solidity](https://docs.soliditylang.org/en/latest/introduction-to-smart-contracts.html#delegatecall-callcode-and-libraries): + +> _Tá leagan speisialta de ghlao teachtaireachta ann, darb ainm **glao toscaire** atá comhionann le glao teachtaireachta seachas an cód ag an sprioc-seoladh a dhéantar i gcomhthéacs (i.e. ag an seoladh) den chonradh glaonna agus `msg.sender` agus `msg.value` ná a luachanna a athrú._ _ Ciallaíonn sé seo gur féidir le conradh cód a lódáil go dinimiciúil ó sheoladh eile ag am rite. Tagraíonn stóras, seoladh reatha agus iarmhéid don chonradh atá ag glaoch, ní thógtar ach an cód ón seoladh a nglaoitear air._ + +Tá a fhios ag an gconradh seachfhreastalaí `glaochtoscaire` a agairt aon uair a ghlaonn úsáideoir ar fheidhm toisc go bhfuil feidhm `tacachumais` ionsuite ann. I ríomhchlárú Solidity déantar an [fheidhm tacachumais](https://docs.soliditylang.org/en/latest/contracts.html#fallback-function) nuair nach meaitseálann glao feidhme na feidhmeanna sonraithe i gconradh. + +Chun go n-oibreoidh an patrún seachfhreastalaí ní mór feidhm tacachumais shaincheaptha a scríobh a shonraíonn an chaoi ar cheart don chonradh seachfhreastalaí glaonna feidhme nach dtacaíonn sé leo a láimhseáil. Sa chás seo tá feidhm tacachumais an tseachvótálaí cláraithe chun glao toscaire a thionscnamh agus chun iarratas an úsáideora a athródú chuig cur i bhfeidhm an chonartha loighce reatha. + +Tá an conradh seachfhreastalaí do-athraithe de réir réamhshocraithe, ach is féidir conarthaí loighce nua le loighic ghnó nuashonraithe a chruthú. Déantar an t-uasghrádú ansin trí sheoladh an chonartha loighce dá dtagraítear sa chonradh seachfhreastalaí a athrú. + +Tríd an gconradh seachfhreastalaí a phointeáil go chonradh nua loighce, déantar an cód a rith nuair a ghlaonn úsáideoirí ar athruithe ar fheidhm an chonartha seachfhreastalaí. Ligeann sé seo dúinn loighic conartha a uasghrádú gan iarraidh ar úsáideoirí idirghníomhú le conradh nua. + +Is modh coitianta iad patrúin seachfhreastalaí chun conarthaí cliste a uasghrádú mar go gcuireann siad deireadh leis na deacrachtaí a bhaineann le himirce conartha. Mar sin féin, tá patrúin seachfhreastalaí níos casta le húsáid agus féadann siad lochtanna criticiúla a thabhairt isteach, mar [troideanna roghnóir feidhme](https://medium.com/nomic-foundation-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357), má úsáidtear go míchuí é. + +[Tuilleadh faoi phatrúin seachfhreastalaí](https://blog.openzeppelin.com/proxy-patterns/). + +### Meicníocht uasghrádaithe #4: Patrún straitéise {#strategy-pattern} + +Bíonn tionchar ag an [bpatrún straitéise](https://en.wikipedia.org/wiki/Strategy_pattern) ar an teicníocht seo, rud a spreagann cruthú cláir bhogearraí a dhéanann comhéadan le cláir eile chun gnéithe sonracha a chur i bhfeidhm. Dá gcuirfí patrún na straitéise i bhfeidhm ar fhorbairt Ethereum chiallódh sé conradh cliste a thógáil a ghlaonn feidhmeanna ó chonarthaí eile. + +Sa phríomhchonradh sa chás seo tá an loighic lárnach gnó, ach déanann sé comhéadan le conarthaí cliste eile ("conarthaí satailíte") chun feidhmeanna áirithe a rith. Stórálann an príomhchonradh seo seoladh gach conartha satailíte agus féadann sé aistriú idir feidhmeanna éagsúla an chonartha satailíte. + +Is féidir leat conradh satailíte nua a thógáil agus an príomhchonradh a chumrú leis an seoladh nua. Ligeann sé seo duit _straitéisí_ a athrú (i.e. loighic nua a chur i bhfeidhm) le haghaidh conradh cliste. + +Cé go bhfuil sé cosúil leis an bpatrún seachfhreastalaí a pléadh níos luaithe, tá patrún na straitéise difriúil toisc go bhfuil loighic an ghnó i seilbh an phríomhchonartha, a n-idirghníomhaíonn úsáideoirí leis. Trí úsáid a bhaint as an bpatrún seo tugtar an deis duit athruithe teoranta a thabhairt isteach ar chonradh cliste gan cur isteach ar an mbonneagar lárnach. + +Is é an príomh-mhíbhuntáiste go bhfuil an patrún seo úsáideach den chuid is mó chun mion-uasghráduithe a chur i bhfeidhm. Chomh maith leis sin, má tá an príomhchonradh i gcontúirt (m.sh., trí haic), ní féidir leat an modh uasghrádaithe seo a úsáid. + +### Meicníocht uasghrádaithe #5: Patrún muileata {#diamond-pattern} + +Is féidir an patrún muileata a mheas mar fheabhsú ar an bpatrún seachfhreastalaí. Ní hionann patrúin mhuileata agus patrúin seachfhreastalaí mar is féidir leis an gconradh seachfhreastalaí muileata glaonna feidhme a tharmligean chuig níos mó ná conradh loighce amháin. + +_Gruanna_ a thugtar ar na conarthaí loighce sa phatrún muileata. Le go n-oibreoidh an patrún muileata, ní mór duit léarscáiliú a chruthú sa chonradh seachfhreastalaí a mhapálann [feidhm roghnóir](https://docs.soliditylang.org/en/latest/abi-spec.html#function-selector) chuig seoltaí gné éagsúla. + +Nuair a dhéanann úsáideoir glao feidhme, seiceálann an conradh seachfhreastalaí an léarscáiliú chun teacht ar an ngné atá freagrach as an bhfeidhm sin a chur i gcrích. Ansin déanann sé `glaochtoscaire` a agairt (ag baint úsáide as an bhfeidhm tacachumais) agus atreoraíonn sé an glao chuig an gconradh loighce cuí. + +Tá roinnt buntáistí ag an bpatrún uasghrádaithe muileata thar phatrúin uasghrádaithe seachfhreastalaí traidisiúnta: + +1. Ligeann sé duit cuid bheag den chonradh a uasghrádú gan an cód ar fad a athrú. Chun úsáid a bhaint as an bpatrún seachfhreastalaí le haghaidh uasghráduithe ní mór conradh loighce iomlán nua a chruthú, fiú i gcás mion-uasghráduithe. + +2. Tá teorainn méide 24KB ag gach conradh cliste (lena n-áirítear conarthaí loighce a úsáidtear i bpatrúin seachvótálaithe), ar féidir leis a bheith ina teorainn - go háirithe i gcás conarthaí casta a éilíonn níos mó feidhmeanna. Déanann an patrún muileata an fhadhb seo a réiteach go héasca trí fheidhmeanna a roinnt thar chonarthaí iolracha loighce. + +3. Glacann patrúin seachfhreastalaí cur chuige uileghabhálach maidir le rialuithe rochtana. Is féidir le haonán a bhfuil rochtain aige ar fheidhmeanna uasghrádaithe an conradh _iomlán_ a athrú. Ach cuireann an patrún muileata ar chumas cur chuige ceadanna modúlach, áit ar féidir leat aonáin a shrianadh chun feidhmeanna áirithe a uasghrádú laistigh de chonradh cliste. + +[Tuilleadh faoin bpatrún muileata](https://eip2535diamonds.substack.com/p/introduction-to-the-diamond-standard?s=w). + +## Buntáistí agus míbhuntáistí a bhaineann le conarthaí cliste a uasghrádú {#pros-and-cons-of-upgrading-smart-contracts} + +| Buntáistí | Míbhuntáistí | +| ----------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Is féidir le huasghrádú conartha cliste é a dhéanamh níos fusa leochaileachtaí a aimsítear sa chéim iar-imscartha a shocrú. | Frithoibríonn uasghrádú conarthaí cliste smaoineamh an neamh-luaineacht cóid, a bhfuil impleachtaí aige maidir le dílárú agus slándáil. | +| Is féidir le forbróirí uasghráduithe loighce a úsáid chun gnéithe nua a chur le feidhmchláir dhíláraithe. | Caithfidh úsáideoirí muinín a bheith acu as forbróirí gan conarthaí cliste a mhodhnú go treallach. | +| Is féidir le huasghráduithe cliste conartha feabhas a chur ar shábháilteacht úsáideoirí deiridh mar is féidir fabhtanna a shocrú go tapa. | Cruthaíonn clárú feidhmiúlacht uasghrádaithe ríomhchláraithe i gconarthaí cliste sraith eile castachta agus méadaítear an fhéidearthacht go mbeidh lochtanna criticiúla ann. | +| Tugann uasghrádú conartha níos mó spáis d'fhorbróirí triail a bhaint as gnéithe éagsúla agus feabhas a chur ar dapps le himeacht ama. | Féadfaidh an deis chun conarthaí cliste a uasghrádú forbróirí a spreagadh chun tionscadail a sheoladh níos tapúla gan dícheall cuí a dhéanamh le linn na céime forbartha. | +| | Is féidir le rialú rochtana nó lárú neamhdhaingnithe i gconarthaí cliste é a dhéanamh níos fusa do ghníomhaithe mailíseacha uasghrádú neamhúdaraithe a dhéanamh. | + +## Ceisteanna maidir le conarthaí cliste a uasghrádú {#considerations-for-upgrading-smart-contracts} + +1. Bain úsáid as meicníochtaí slána um rialú rochtana/údaraithe chun uasghráduithe conartha cliste neamhúdaraithe a chosc, go háirithe má úsáidtear patrúin seachfhreastalaí, patrúin straitéise, nó scarúint sonraí. Sampla is ea rochtain ar an bhfeidhm uasghrádaithe a shrianadh, ionas nach bhféadfaidh ach úinéir an chonartha glaoch a chur uirthi. + +2. Is gníomhaíocht chasta é conarthaí cliste a uasghrádú agus éilíonn sé leibhéal ard díchill chun tabhairt isteach leochaileachtaí a chosc. + +3. Laghdaigh toimhdí muiníne tríd an bpróiseas uasghrádaithe a chur i bhfeidhm a dhílárú. Áirítear le straitéisí féideartha úsáid a bhaint as conradh [sparán multisig](/developers/docs/smart-contracts/#multisig) chun uasghrádú a rialú, nó chun [comhaltaí de DAO](/dao/) chun vótáil ar cheadú an uasghrádú. + +4. Bí ar an eolas faoi na costais a bhaineann le conarthaí a uasghrádú. Mar shampla, d’fhéadfadh go mbeadh gá le níos mó ná idirbheart amháin chun staid a chóipeáil (m.sh. iarmhéideanna úsáideoirí) ó sheanchonradh go conradh nua le linn ascnaimh chonartha, rud a chiallódh go mbeadh níos mó táillí gáis ag teastáil. + +5. Smaoinigh ar **ghlais ama** a chur i bhfeidhm chun úsáideoirí a chosaint. Tagraíonn glas ama do mhoill a chuirtear i bhfeidhm ar athruithe ar chóras. Is féidir glais ama a chomhcheangal le córas rialachais multisig chun uasghráduithe a rialú: má shroicheann gníomh atá beartaithe an tairseach formheasa riachtanach, ní fhorghníomhaíonn sé go dtí go dtéann an tréimhse moille réamhshainithe thart. + +Tugann glais ama roinnt ama d’úsáideoirí éirí as an gcóras mura n-aontaíonn siad le hathrú molta (m.sh. uasghrádú loighce nó scéimeanna táillí nua). Gan glas ama, ní mór d’úsáideoirí muinín a chur sna forbróirí gan athruithe treallacha i gconradh cliste a chur i bhfeidhm gan fógra a thabhairt roimh ré. Is é an míbhuntáiste anseo ná go gcuireann glais ama srian ar an gcumas leochaileachtaí a réiteach go tapa. + +## Acmhainní {#resources} + +**Breiseáin Uasghrádaithe OpenZeppelin - _Sraith uirlisí chun conarthaí cliste in-uasghrádaithe a imscaradh agus a dhaingniú._** + +- [GitHub](https://github.com/OpenZeppelin/openzeppelin-upgrades) +- [Doiciméadúchán](https://docs.openzeppelin.com/upgrades) + +## Ranganna Teagaisc {#tutorials} + +- [Do Chonarthaí Cliste a uasghrádú | Teagaisc YouTube](https://www.youtube.com/watch?v=bdXJmWajZRY) le Patrick Collins +- [Ethereum Smart Contract Migration Tutorial](https://medium.com/coinmonks/ethereum-smart-contract-migration-13f6f12539bd) le Austin Griffith +- [Úsáid a bhaint as patrún seachfhreastalaí UUPS chun conarthaí cliste a uasghrádú](https://blog.logrocket.com/author/praneshas/) le Pranesh A.S +- [Teagasc Web3: Scríobh conradh cliste uasghrádaithe (seachfhreastalaí) ag úsáid OpenZeppelin](https://dev.to/yakult/tutorial-write-upgradeable-smart-contract-proxy-contract-with-openzeppelin-1916) ag fangjun.eth + +## Tuilleadh léitheoireachta {#further-reading} + +- [Staid Uasghráduithe Conartha Cliste](https://blog.openzeppelin.com/the-state-of-smart-contract-upgrades/) le Santiago Palladino +- [Ilbhealaí chun conradh cliste Solidity a uasghrádú](https://cryptomarketpool.com/multiple-ways-to-upgrade-a-solidity-smart-contract/) - blag Crypto Market Pool +- [Foghlaim: Conarthaí Cliste a Uasghrádú](https://docs.openzeppelin.com/learn/upgrading-smart-contracts) - Doiciméid OpenZeppelin +- [ Patrúin Seachfhreastalaí Le hAghaidh Uasghrádú Conarthaí Dlúthachta: Trédhearcach vs Proxies UUPS](https://mirror.xyz/0xB38709B8198d147cc9Ff9C133838a044d78B064B/M7oTptQkBGXxox-tk9VJjL66E1V8BUF0GF79MMK4YG0) le Naveen Sahu +- [Conas a Oibríonn Uasghrádú Muileata](https://dev.to/mudgen/how-diamond-upgrades-work-417j) le Nick Mudge diff --git a/public/content/translations/ga/developers/docs/smart-contracts/verifying/index.md b/public/content/translations/ga/developers/docs/smart-contracts/verifying/index.md new file mode 100644 index 00000000000..a02903a667c --- /dev/null +++ b/public/content/translations/ga/developers/docs/smart-contracts/verifying/index.md @@ -0,0 +1,107 @@ +--- +title: Conarthaí cliste a fhíorú +description: Forbhreathnú ar fhíorú cód foinseach do chonarthaí cliste Ethereum +lang: ga +--- + +Tá [Conarthaí cliste](/developers/docs/smart-contracts/) deartha le bheith “neamhiontaofa”, rud a chiallaíonn nár cheart go mbeadh ar úsáideoirí muinín a bheith acu as tríú páirtithe (m.sh., forbróirí agus cuideachtaí) roimh idirghníomhú le conradh. Mar riachtanas don neamhiontaobh, caithfidh úsáideoirí agus forbróirí eile a bheith in ann cód foinse conartha cliste a fhíorú. Cinntíonn fíorú cód foinse d'úsáideoirí agus d'fhorbróirí gurb é an cód conartha foilsithe an cód céanna a ritheann ag seoladh an chonartha ar bhlocshlabhra Ethereum. + +Tá sé tábhachtach idirdhealú a dhéanamh idir "fíorú cód foinse" agus "[fíorú foirmiúil](/developers/docs/smart-contracts/formal-verification/)". Tagraíonn fíorú an chód foinse, a mhíneofar go mion thíos, d’fhíorú go bhfuil cód foinse áirithe an chonartha chliste i dteanga ardleibhéil (m.sh. Solidity) tiomsaithe don bheartchód céanna atá le cur i gcrích ag seoladh an chonartha. Mar sin féin, cuireann fíorú foirmiúil síos ar chruinneas conartha chliste a fhíorú, rud a chiallaíonn go n-oibríonn an conradh mar a bhíothas ag súil leis. Cé go mbraitheann comhthéacs, tagraíonn fíorú conartha de ghnáth d'fhíorú an chóid fhoinse. + +## Cad is fíorú cód foinse ann? {#what-is-source-code-verification} + +Sula n-imscarfar conradh cliste i [Meaisín Fíorúil Ethereum (EVM)](/developers/docs/evm/), déanfaidh na forbróirí [>tiomsú](/developers/docs/smart-contracts/compiling/) ar chód foinse an chonartha - treoracha [scríofa i Solidity](/developers/docs/smart-contracts/languages/) nó ceann eile teanga ríomhchlárúcháin ardleibhéil - go bytecode. Toisc nach féidir leis an EVM treoracha ardleibhéil a léirmhíniú, tá gá le cód foinse a thiomsú go beartchód (i.e., treoracha meaisín leibhéal íseal) chun loighic conartha a rith san EVM. + +Is éard atá i bhfíorú cód foinse ná cód foinse an chonartha chliste a chur i gcomparáid leis an mbeartchód tiomsaithe a úsáideadh le linn chruthú an chonartha chun aon difríochtaí a bhrath. Tá sé tábhachtach conarthaí cliste a fhíorú toisc go bhféadfadh cód an chonartha fógartha a bheith difriúil ón méid a ritheann ar an mblocshlabhra. + +Cumasaíonn fíorú conartha cliste imscrúdú a dhéanamh ar cad a dhéanann conradh tríd an teanga ardleibhéil ina bhfuil sé scríofa, gan gá le cód meaisín a léamh. Fanann feidhmeanna, luachanna, agus go hiondúil na hainmneacha agus na tuairimí athraitheacha mar a chéile leis an mbunchód foinse a chuirtear le chéile agus a imscartar. Déanann sé seo léamh an chóid i bhfad níos éasca. Déanann fíorú foinse foráil freisin do dhoiciméadú cód, ionas go mbeidh a fhios ag úsáideoirí deiridh cad í feidhm dheartha an conartha cliste. + +### Cad is fíorú iomlán ann? {#full-verification} + +Tá codanna áirithe den chód foinse nach ndéanann difear don bheartchód tiomsaithe, mar shampla tuairimí nó ainmneacha athraitheacha. Ciallaíonn sé sin go mbeadh dhá chód foinseach le hainmneacha athraitheacha éagsúla agus tuairimí difriúla in ann an conradh céanna a fhíorú. Leis sin, is féidir le gníomhaí mailíseach tuairimí meabhlacha a chur leis nó ainmneacha athróg míthreoracha a thabhairt taobh istigh den chód foinse agus an conradh a fhíorú le cód foinse éagsúil ón gcód foinse bunaidh. + +Is féidir é seo a sheachaint trí shonraí breise a chur leis an mbeartchód chun feidhmiú mar _ráthaíocht chripteagrafach_ maidir le beachtas an chóid foinse, agus mar _mhéarloirg_ na faisnéise tiomsaithe. Tá an fhaisnéis riachtanach le fáil i [meiteashonraí conartha Solidity](https://docs.soliditylang.org/en/v0.8.15/metadata.html), agus cuirtear hais an chomhaid seo i gceangal le beartchód an chonartha. Is féidir leat é a fheiceáil i ngníomh i [gclós súgartha meiteashonraí](https://playground.sourcify.dev) + +Tá faisnéis sa chomhad meiteashonraí maidir le tiomsú an chonartha lena n-áirítear na comhaid fhoinseacha agus na haiseanna atá acu. Ciallaíonn sé má athraíonn aon cheann de na socruithe tiomsaithe nó fiú beart i gceann de na comhaid foinseacha, go n-athraíonn an comhad meiteashonraí. Mar thoradh air sin athraíonn hais an chomhaid meiteashonraí, atá i gceangal leis an mbeartchód, freisin. Ciallaíonn sé sin má mheaitseálann beartchód an chonartha + an hais meiteashonraí atá i gceangal leis an gcód foinseach tugtha agus na socruithe tiomsaithe, is féidir linn a bheith cinnte gurb é seo go díreach an cód foinseach céanna a úsáideadh sa tiomsú bunaidh, gan fiú beart amháin difriúil. + +Tagraítear don chineál seo fíoraithe a ghiarálann hais na meiteashonraí mar **" [fíorú iomlán](https://docs.sourcify.dev/docs/full-vs-partial-match/)"** (freisin "fíorú foirfe"). Mura n-oireann na haiseanna meiteashonraí nó mura mbreathnaítear orthu le linn fíorú, "comhoiriúnú páirteach" a bheadh ​​ann, arb é an bealach is coitianta faoi láthair conarthaí a fhíorú. Is féidir [cód mailíseach a chur isteach](https://samczsun.com/hiding-in-plain-sight/) nach léireofaí sa chód foinseach fíoraithe gan fíorú iomlán. Níl an chuid is mó d’fhorbróirí eolach ar an bhfíorú iomlán agus ní choinníonn siad an comhad meiteashonraí dá dtiomsú, dá bhrí sin is é an fíordheimhniú páirteach an modh de facto chun conarthaí a fhíorú go dtí seo. + +## Cén fáth a bhfuil fíorú an chóid foinseach tábhachtach? {#importance-of-source-code-verification} + +### Neamh-Iontaobhas {#trustlessness} + +D’fhéadfaí a mhaíomh go bhfuil an easpa muiníne ar an mbonn is mó maidir le conarthaí cliste agus [feidhmchláir dhíláraithe (dapps)](/developers/docs/dapps/). Tá conarthaí cliste “do-athraithe” - ní féidir iad a athrú; ní rithfidh conradh ach an loighic ghnó a shainítear sa chód tráth an imscartha. Ciallaíonn sé seo nach féidir le forbróirí agus fiontair cur isteach ar chód conartha tar éis é a imscaradh ar Ethereum. + +Chun conradh cliste a bheith neamhiontaofa, ba cheart go mbeadh cód an chonartha ar fáil fíorú go neamhspleách. Cé go bhfuil an beartchód tiomsaithe do gach conradh cliste ar fáil go poiblí ar an mblocshlabhra, tá sé deacair teanga íseal-leibhéil a thuiscint - d'fhorbróirí agus d'úsáideoirí araon. + +Laghdaíonn tionscadail boinn tuisceana iontaobhais trí chód foinseach a gconarthaí a fhoilsiú. Ach tagann fadhb eile as seo: tá sé deacair a fhíorú go bhfuil an cód foinseach foilsithe ag teacht le beartchód an chonartha. Sa chás seo, cailltear luach na hiontaofachta toisc go gcaithfidh úsáideoirí muinín a bheith acu as forbróirí gan loighic ghnó an chonartha a athrú (i.e., tríd an beartchód a athrú) sula n-imscartar ar an blocshlabhra é. + +Soláthraíonn uirlisí fíoraithe cód foinseach ráthaíochtaí go dtagann comhaid cód foinseach an chonartha chliste leis an gcód tionóil. Is é an toradh atá ann ná éiceachóras iontaofa, áit nach gcuireann úsáideoirí muinín go dall i dtríú pháirtithe agus ina ndéanann siad fíorú ar an gcód sula ndéanann siad cistí a thaisceadh i gconradh. + +### Sábháilteacht Úsáideoirí {#user-safety} + +Le conarthaí cliste, is gnách go mbíonn go leor airgid i gceist. Éilíonn sé seo ráthaíochtaí slándála níos airde agus fíorú loighic conartha cliste roimh é a úsáid. Is í an fhadhb atá ann gur féidir le forbróirí neamhscrupallacha úsáideoirí a mhealladh trí chód mailíseach a chur isteach i gconradh cliste. Gan fíorú, féadfaidh conarthaí cliste mailíseacha [cúldoirse](https://www.trustnodes.com/2018/11/10/concerns-rise-over-backdoored-smart-contracts) le meicníochtaí rochtana chonspóideacha rialaithe, leochaileachtaí insaothraithe, agus rudaí eile a chuireann sábháilteacht úsáideoirí i gcontúirt agus nach dtabharfaí faoi deara a shuiteáil. + +Má fhoilsítear comhaid chód foinseach an chonartha chliste beidh sé níos éasca dóibh siúd a bhfuil suim acu ann, mar iniúchóirí, measúnú a dhéanamh ar an gconradh le haghaidh veicteoirí ionsaithe féideartha. Agus ilpháirtithe ag fíorú conradh cliste go neamhspleách, bíonn ráthaíochtaí slándála níos láidre ag úsáideoirí. + +## Conas cód foinseach a fhíorú le haghaidh conarthaí cliste Ethereum {#source-code-verification-for-ethereum-smart-contracts} + +[Chun conradh cliste a imscaradh ar Ethereum](/developers/docs/smart-contracts/deploying/) is gá idirbheart le pálasta sonraí (beartchód tiomsaithe) a sheoladh chuig seoladh speisialta. Gintear an pálasta sonraí tríd an gcód foinseach a thiomsú, chomh maith le [argóintí tógálaí](https://docs.soliditylang.org/en/v0.8.14/contracts.html#constructor) an chonartha mar shampla ag gabháil leis an pálasta sonraí san idirbheart. Tá tiomsú cinntitheach, rud a chiallaíonn go dtáirgeann sé an t-aschur céanna i gcónaí (i.e., beartchód conartha) má úsáidtear na comhaid foinse céanna, agus socruithe tiomsaithe (m.sh. leagan tiomsaithe, optamóir). + +![Léaráid a thaispeánann fíorú cód foinseach an chonartha cliste](./source-code-verification.png) + +Go bunúsach tá na céimeanna seo a leanas i gceist le conradh cliste a fhíorú: + +1. Cuir na comhaid foinse agus na socruithe tiomsaithe isteach i dtiomsaitheoir. + +2. Aschuireann tiomsaitheoir beartchód an chonartha + +3. Faigh beartchód an chonartha imlonnaithe ag seoladh ar leith + +4. Déan comparáid idir an beartchód imlonnaithe agus an beartchód ath-thiomsaithe. Má mheaitseálann na cóid, fíorófar an conradh leis an gcód foinseach tugtha agus leis na socruithe tiomsaithe. + +5. Ina theannta sin, má tá na meiteashonraí haise ag deireadh an chluiche beartchód, beidh sé ar chluiche iomlán. + +Tabhair faoi deara gur cur síos simplíoch é seo ar an bhfíorú agus go bhfuil go leor eisceachtaí ann nach n-oibreodh leis seo, mar shampla [athróga neamh-inchurtha](https://docs.sourcify.dev/docs/immutables/). + +## Uirlisí fíoraithe cód foinseach {#source-code-verification-tools} + +Is féidir leis an bpróiseas traidisiúnta chun conarthaí a fhíorú a bheith casta. Sin é an fáth go bhfuil uirlisí againn chun cód foinseach a fhíorú le haghaidh conarthaí cliste a imscartar ar Ethereum. Déanann na huirlisí seo codanna móra d'fhíorú an chóid fhoinseach a uathoibriú agus coimeádann siad conarthaí fíoraithe ar mhaithe le húsáideoirí. + +### Etherscan {#etherscan} + +Cé go dtugtar [taiscéalaí blocshlabhra Ethereum](/developers/docs/data-and-analytics/block-explorers/) air den chuid is mó, soláthraíonn Etherscan [seirbhís fíoraithe cód foinseach](https://etherscan.io/verifyContract) d'fhorbróirí agus d'úsáideoirí conarthaí cliste. + +Ligeann Etherscan duit beartchód conartha a ath-thiomsú ón bpálasta sonraí bunaidh (cód foinseach, seoladh leabharlainne, socruithe tiomsaitheora, seoladh conartha, etc.) Má bhaineann an beartchód ath-thiomsaithe le beartchód (agus paraiméadair tógálach) an chonartha ar slabhra, ansin [déantar an conradh a fhíorú](https://info.etherscan.com/types-of-contract-verification/). + +Nuair a bheidh sé fíoraithe, faigheann cód foinseach do chonartha lipéad "Fíoraithe" agus foilsítear é ar Etherscan chun go bhféadfaidh daoine eile é a iniúchadh. Cuirtear leis an rannán [Conarthaí Fíoraithe](https://etherscan.io/contractsVerified/) é freisin — stór conarthaí cliste le cóid foinseach fíoraithe. + +Is é Etherscan an uirlis is mó a úsáidtear chun conarthaí a fhíorú. Mar sin féin, tá míbhuntáiste ag baint le fíorú conartha Etherscan: teipeann air comparáid a dhéanamh idir **hais meiteashonraí** an bheartchóid ar slabhra agus an beartchód ath-thiomsaithe. Mar sin is meaitseálaithe páirteacha iad na meaitseálaithe in Etherscan. + +[Tuilleadh maidir le conarthaí ar Etherscan a fhíorú](https://medium.com/etherscan-blog/verifying-contracts-on-etherscan-f995ab772327). + +### Soursify {#sourcify} + +Uirlis eile is ea [Sourcify](https://sourcify.dev/#/verifier) chun conarthaí foinse oscailte agus díláraithe a fhíorú. Ní taiscéalaí bloic é agus ní fhíoraíonn sé ach conarthaí ar [líonraí éagsúla bunaithe ar EVM](https://docs.sourcify.dev/docs/chains). Feidhmíonn sé mar bhonneagar poiblí le haghaidh uirlisí eile de bhreis air, agus tá sé mar aidhm aige idirghníomhaíochtaí conartha atá níos éasca don duine a chumasú trí úsáid a bhaint as [ Tráchtanna ABI](/developers/docs/smart-contracts/compiling/#web-applications) agus [NatSpec](https://docs.soliditylang.org/en/v0.8.15/natspec-format.html) a aimsíodh sna comhaid mheiteashonraí. + +Murab ionann agus Etherscan, tacaíonn Sourcify le meaitseáil iomlán leis an hais meiteashonraí. Déantar na conarthaí fíoraithe a sheirbheáil ina [stór poiblí](https://docs.sourcify.dev/docs/repository/) ar HTTP agus[IPFS](https://docs.ipfs.io/concepts/what-is-ipfs/#what-is-ipfs), atá díláraithe, [inneachar-dírithe](https://web3.storage/docs/concepts/content-addressing/) ar stóras. Ligeann sé seo duit comhad meiteashonraí conartha a fháil thar IPFS ós rud é gur hais IPFS an hais meiteashonraí atá ag gabháil leis. + +Ina theannta sin, is féidir na comhaid cód foinseach a aisghabháil thar IPFS freisin, mar go bhfuil hais IPFS de na comhaid seo le fáil sna meiteashonraí freisin. Is féidir conradh a fhíorú tríd an gcomhad meiteashonraí agus na comhaid fhoinseacha a sholáthar thar a API nó an [UI](https://sourcify.dev/#/verifier), nó trí na forlíontáin a úsáid. Éisteann uirlis monatóireachta Sourcify freisin le cruthú conarthaí ar bhloic nua agus déanann sé iarracht na conarthaí a fhíorú má fhoilsítear a meiteashonraí agus a gcomhaid foinseacha ar IPFS. + +[Tuilleadh maidir le conarthaí ar Sourcify a fhíorú](https://blog.soliditylang.org/2020/06/25/sourcify-faq/). + +### Tenderly {#tenderly} + +Cuireann an [ardán Tenderly](https://tenderly.co/) ar chumas forbróirí Web3 conarthaí cliste a thógáil, a thástáil, monatóireacht a dhéanamh orthu agus iad a oibriú. Trí uirlisí dífhabhtaithe a chomhcheangal le hinbhraiteacht agus bloic thógála bonneagair, cabhraíonn Tenderly le forbróirí forbairt conarthaí cliste a luathú. Chun gnéithe Tenderly a chumasú go hiomlán, ní mór d'fhorbróirí [fíorú cód foinseach a dhéanamh](https://docs.tenderly.co/monitoring/contract-verification) ag baint úsáide as roinnt modhanna. + +Is féidir conradh a fhíorú go príobháideach nó go poiblí. Má dhéantar é a fhíorú go príobháideach, ní bheidh an conradh cliste le feiceáil ach agat féin (agus do bhaill eile i do thionscadal). Má dhéantar conradh a fhíorú go poiblí, beidh sé le feiceáil ag gach duine a úsáideann ardán Tenderly. + +Is féidir leat do chonarthaí a fhíorú trí úsáid a bhaint as an [Daischlár](https://docs.tenderly.co/monitoring/smart-contract-verification/verifying-a-smart-contract), [Breiseán Tenderly Hardhat](https://docs.tenderly.co/monitoring/smart-contract-verification/verifying-contracts-using-the-tenderly-hardhat-plugin), nó [CLI](https://docs.tenderly.co/monitoring/smart-contract-verification/verifying-contracts-using-cli). + +Agus conarthaí á bhfíorú tríd an Deais, ní mór duit an comhad foinseach nó an comhad meiteashonraí ginte ag an tiomsaitheoir Solidity, an seoladh/líonra, agus socruithe an tiomsaitheora a iompórtáil. + +Trí úsáid a bhaint as an mbreiseán Tenderly Hardhat is féidir níos mó smachta a fháil ar an bpróiseas fíoraithe le níos lú iarrachta, rud a chuirfidh ar do chumas rogha a dhéanamh idir fíorú uathoibríoch (gan chód) agus fíorú láimhe (cód-bhunaithe). + +## Tuilleadh léitheoireachta {#further-reading} + +- [Cód foinse an chonartha á fhíorú](https://programtheblockchain.com/posts/2018/01/16/verifying-contract-source-code/) diff --git a/public/content/translations/ga/developers/docs/standards/index.md b/public/content/translations/ga/developers/docs/standards/index.md new file mode 100644 index 00000000000..f32408764d8 --- /dev/null +++ b/public/content/translations/ga/developers/docs/standards/index.md @@ -0,0 +1,59 @@ +--- +title: Caighdeáin Fhorbartha Ethereum +description: +lang: ga +incomplete: true +--- + +## Forbhreathnú ar chaighdeáin {#standards-overview} + +Tá go leor caighdeáin glactha ag pobal Ethereum a chuidíonn le tionscadail (amhail [Cliant Ethereum](/developers/docs/nodes-and-clients/) agus sparán) a choinneáil idir-inoibritheach trasna feidhmiúcháin, agus a chinntíonn go bhfanann conarthaí cliste agus dapps in-chomhdhéanta. + +De ghnáth tugtar isteach caighdeáin mar [Tograí Feabhsúcháin Ethereum](/eips/) (EIPs), a phléann baill an phobail trí [phróiseas caighdeánach](https://eips.ethereum.org/EIPS/eip-1). + +- [Réamhrá do EIPanna](/eips/) +- [Liosta EIPanna](https://eips.ethereum.org/) +- [EIP stóras GitHub](https://github.com/ethereum/EIPs) +- [Bord plé an EIP](https://ethereum-magicians.org/c/eips) +- [Réamhrá ar Rialachas Ethereum](/governance/) +- [Forbhreathnú ar Rialachas Ethereum](https://web.archive.org/web/20201107234050/https://blog.bmannconsulting.com/ethereum-governance/) _ 31 Márta, 2019 - Boris Mann_ +- [Prótacal Ethereum, Rialachas Forbartha agus Comhordú Uasghrádaithe Líonra](https://hudsonjameson.com/2020-03-23-ethereum-protocol-development-governance-and-network-upgrade-coordination/) _ 23 Márta, 2020 - Hudson Jameson_ +- [Seinnliosta de Chruinnithe Core Dev Ethereum go léir](https://www.youtube.com/@EthereumProtocol) _(Seinnliosta YouTube)_ + +## Cineálacha caighdeán {#types-of-standards} + +Tá 3 chineál EIP ann: + +- Rian Caighdeán: cur síos ar aon athrú a dhéanann difear don chuid is mó de nó do gach feidhmiú Ethereum +- [Meta Track](https://eips.ethereum.org/meta): próiseas a bhaineann le Ethereum nó a mholann athrú ar phróiseas +- [Rian Faisnéise](https://eips.ethereum.org/informational): déanann sé cur síos ar shaincheist dearaidh Ethereum nó soláthraíonn sé treoirlínte ginearálta nó faisnéis do phobal Ethereum + +Ina theannta sin, tá an Rian Caighdeánach foroinnte i 4 chatagóir: + +- [Croí](https://eips.ethereum.org/core): feabhsuithe a éilíonn forc comhthola +- [Líonrú:](https://eips.ethereum.org/networking): feabhsuithe timpeall devp2p agus Fophrótacal Éadrom Ethereum, chomh maith le feabhsuithe molta ar shonraíochtaí prótacail líonra cogar agus scaoth. +- [Comhéadan](https://eips.ethereum.org/interface): feabhsuithe ar shonraíochtaí agus ar chaighdeáin API/RPC na gcliant, agus caighdeáin áirithe ag leibhéal teanga amhail ainmneacha modha agus ABIanna conartha. +- [ERC](https://eips.ethereum.org/erc): caighdeáin agus coinbhinsiúin ar leibhéal an fheidhmchláir + +Tá faisnéis níos mionsonraithe ar na cineálacha agus na catagóirí éagsúla seo le fáil in [EIP-1](https://eips.ethereum.org/EIPS/eip-1#eip-types) + +### Caighdeáin comharthaí {#token-standards} + +- [ERC-20](/developers/docs/standards/tokens/erc-20/) - Comhéadan caighdeánach le haghaidh comharthaí idirmhalartaithe, amhail comharthaí vótála, comharthaí gill nó airgeadraí fíorúla. + - [ERC-223](/developers/docs/standards/tokens/erc-223/) - Caighdeán comharthaí idirmhalartacha a fhágann go bhfeidhmíonn comharthaí mar éitear agus a thacaíonn le láimhseáil aistrithe comharthaí ar thaobh an fhaighteora. + - [ERC-1363](https://eips.ethereum.org/EIPS/eip-1363) - Sainmhíníonn sé comhéadan chomharthaí le haghaidh comharthaí ERC-20 a thacaíonn le cód faighteora a fhorghníomhú tar éis aistrithe nó aistrithe Ó, nó cód caiteachais tar éis é a fhaomhadh. +- [ERC-721](/developers/docs/standards/tokens/erc-721/) - Comhéadan caighdeánach do chomharthaí neamh-idirmhalartacha, amhail gníomhas le haghaidh saothar ealaíne nó amhrán. + - [ERC-2309](https://eips.ethereum.org/EIPS/eip-2309) - Ócáid chaighdeánaithe a astaítear nuair a bhíonn ceann amháin, nó go leor comharthaí neamh-idirmhalartacha á gcruthú/aistriú, ag úsáid aitheantóirí comharthaí comhleanúnacha. + - [ERC-4400](https://eips.ethereum.org/EIPS/eip-4400) - Síneadh comhéadan le haghaidh ról tomhaltóra EIP-721. + - [ERC-4907](https://eips.ethereum.org/EIPS/eip-4907) - Cuir ról a bhfuil teorainn ama leis le ceadanna srianta le comharthaí ERC-721. +- [ERC-777](/developers/docs/standards/tokens/erc-777/) - **(NÍ MHOLTAR)** Caighdeán chomhartha ag feabhsú thar ERC-20. +- [ERC-1155](/developers/docs/standards/tokens/erc-1155/) - Caighdeán chomhartha a bhféadfaidh sócmhainní idirmhalartacha agus neamh-idirmhalartacha a bheith ann. +- [ERC-4626](/developers/docs/standards/tokens/erc-4626/) - Caighdeán boghta comharthaithe atá deartha chun paraiméadair theicniúla boghtaí a bhfuil toradh orthu a bharrfheabhsú agus a aontú. + +Foghlaim tuilleadh faoi [caighdeáin chomharthaí](/developers/docs/standards/tokens/). + +## Tuilleadh léitheoireachta {#further-reading} + +- [Moltaí Feabhsúcháin Ethereum (EIPs)](/eips/) + +_Ar eolas agat ar acmhainn pobail a chabhraigh leat? Cuir an leathanach seo in eagar agus cuir leis!_ diff --git a/public/content/translations/ga/developers/docs/standards/tokens/erc-1155/index.md b/public/content/translations/ga/developers/docs/standards/tokens/erc-1155/index.md new file mode 100644 index 00000000000..8195bb34c10 --- /dev/null +++ b/public/content/translations/ga/developers/docs/standards/tokens/erc-1155/index.md @@ -0,0 +1,146 @@ +--- +title: ERC-1155 Caighdeán Ilchomhartha +description: +lang: ga +--- + +## Réamhrá {#introduction} + +Comhéadan caighdeánach do chonarthaí a bhainistíonn cineálacha éagsúla comharthaí. Féadfar a áireamh i gconradh imlonnaithe aonair aon teaglam de chomharthaí inmhalartacha, de chomharthaí neamh-idirmhalartacha nó de chumraíochtaí eile (m.sh. comharthaí leath-idirmhalartacha). + +**Cad is brí le Caighdeán Ilchomhartha?** + +Is smaoineamh simplí é a fhéachann le comhéadan conartha cliste a chruthú a fhéadfaidh ionadaíocht agus rialú a dhéanamh ar líon ar bith de chineálacha comharthaí idirmhalartacha agus neamh-inmhalartacha. Ar an mbealach seo, is féidir le comhartha ERC-1155 na feidhmeanna céanna a dhéanamh le [ERC-20](/developers/docs/standards/tokens/erc-20/) agus comhartha [ERC-721](/developers/docs/standards/tokens/erc-721/), agus fiú an dá cheann ag an am céanna. Feabhsaíonn sé feidhmiúlacht na gcaighdeán ERC-20 agus ERC-721 araon, rud a fhágann go bhfuil sé níos éifeachtaí agus ag ceartú earráidí cur chun feidhme soiléir. + +Tá cur síos iomlán ar an chomhartha ERC-1155 i [EIP-1155](https://eips.ethereum.org/EIPS/eip-1155). + +## Réamhriachtanais {#prerequisites} + +Chun an leathanach seo a thuiscint níos fearr, molaimid duit léamh ar dtús faoi [caighdeáin chomharthaí](/developers/docs/standards/tokens/), [ERC-20](/developers/docs/standards/tokens/erc-20/), agus [ERC-721](/developers/docs/standards/tokens/erc-721/). + +## Feidhmeanna agus Gnéithe ERC-1155: {#body} + +- [Aistriú Baisc](#batch_transfers): Aistrigh roinnt sócmhainní in aon ghlao amháin. +- [Iarmhéid Baisc](#batch_balance): Faigh iarmhéideanna na sócmhainní iolracha in aon ghlao amháin. +- [Baisccheadú](#batch_approval): Ceadaigh gach comhartha chuig seoladh. +- [Crúcaí](#receive_hook): Faigh crúca comharthaí. +- [Tacaíocht NFT](#nft_support): Mura bhfuil sa soláthar ach 1, cuir mar NFT é. +- [Rialacha um Aistriú Sábháilte](#safe_transfer_rule): Sraith rialacha maidir le haistriú slán. + +### Aistrithe Baisc {#batch-transfers} + +Oibríonn an t-aistriú baisc an-chosúil le haistrithe rialta ERC-20. Breathnaímid ar an bhfeidhm rialta `transferFrom` ERC-20: + +```solidity +// ERC-20 +function transferFrom(address from, address to, uint256 value) external returns (bool); + +// ERC-1155 +function safeBatchTransferFrom( + address _from, + address _to, + uint256[] calldata _ids, + uint256[] calldata _values, + bytes calldata _data +) external; +``` + +Is é an t-aon difríocht atá in ERC-1155 ná go n-aimsímid na luachanna mar eagar agus go dtugaimid raon aitheantais freisin. Mar shampla nuair a thugtar `ids=[3, 6, 13]` agus `luacha=[100, 200, 5]`, is iad na haistrithe a bheidh mar thoradh orthu + +1. Aistrigh 100 comhartha le haitheantas 3 ó `_from` go `_to`. +2. Aistrigh 200 comhartha le haitheantas 6 ó `_from` go `_to`. +3. Aistrigh 5 chomhartha le haitheantas 13 ó `_from` go `_to`. + +In ERC-1155 níl againn ach `transferFrom`, gan `transfer`. Chun é a úsáid mar `transfer` rialta, socraigh an seoladh ón seoladh go dtí an seoladh atá ag glaoch ar an bhfeidhm. + +### Iarmhéid Baisc {#batch-balance} + +Tá feidhm chomhpháirtíochta ag an nglao ERC-20 `balanceOf` faoi seach le tacaíocht bhaisc. Mar mheabhrúchán, seo é an leagan ERC-20: + +```solidity +// ERC-20 +function balanceOf(address owner) external view returns (uint256); + +// ERC-1155 +function balanceOfBatch( + address[] calldata _owners, + uint256[] calldata _ids +) external view returns (uint256[] memory); +``` + +Níos simplí fós don ghlao iarmhéid, is féidir linn iarmhéideanna iolracha a aisghabháil in aon ghlao amháin. Gabhaimid thar raon na n-úinéirí, agus ina dhiaidh sin an raon de chomharthaí aitheantais. + +Mar shampla nuair a thugtar `_ids=[3, 6, 13]` agus `_owners=[0xbeef..., 0x1337..., 0x1111...]`, is é an luach tuairisceáin + +```solidity +[ + balanceOf(0xbeef...), + balanceOf(0x1337...), + balanceOf(0x1111...) +] +``` + +### Faomhadh Baisc {#batch-approval} + +```solidity +// ERC-1155 +function setApprovalForAll( + address _operator, + bool _approved +) external; + +function isApprovedForAll( + address _owner, + address _operator +) external view returns (bool); +``` + +Tá na formheasanna beagán difriúil ná ERC-20. In ionad méideanna sonracha a fhormheas, socraíonn tú oibreoir atá ceadaithe nó neamhcheadaithe trí `setApprovalForAll`. + +Is féidir an stádas reatha a léamh trí `isApprovedForAll`. Mar a fheiceann tú, is oibríocht uile-nó-rada ar bith é. Ní féidir leat a shainiú cé mhéad comharthaí atá le formheas nó fiú cén aicme chomharthaí. + +Tá sé seo deartha d'aon ghnó ar mhaithe le simplíocht. Ní féidir leat gach rud a fhormheas ach le haghaidh aon seoladh amháin. + +### Faigh Crúca {#receive-hook} + +```solidity +function onERC1155BatchReceived( + address _operator, + address _from, + uint256[] calldata _ids, + uint256[] calldata _values, + bytes calldata _data +) external returns(bytes4); +``` + +I bhfianaise na tacaíochta [EIP-165](https://eips.ethereum.org/EIPS/eip-165), faigheann tacaíochtaí ERC-1155 crúcaí le haghaidh conarthaí cliste amháin. Ní mór don fheidhm crúca luach draíochta beart4 réamhshainithe a thabhairt ar ais a thugtar mar: + +```solidity +bytes4(keccak256("onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)")) +``` + +Nuair a thugann an conradh fála an luach seo ar ais, glactar leis go nglacann an conradh leis an aistriú agus go bhfuil a fhios aige conas na comharthaí ERC-1155 a láimhseáil. Go hiontach, níl a thuilleadh comharthaí greamaithe i gconradh! + +### Tacaíocht NFT {#nft-support} + +Nuair nach bhfuil sa soláthar ach ceann amháin, is chomhartha neamh-inmhalartach (NFT) an comhartha go bunúsach. Agus mar atá caighdeánach do ERC-721, is féidir leat URL meiteashonraí a shainiú. Is féidir le cliaint an URL a léamh agus a mhodhnú, féach [anseo](https://eips.ethereum.org/EIPS/eip-1155#metadata). + +### Riail Aistrithe Sábháilte {#safe-transfer-rule} + +Táimid tar éis tagairt a dhéanamh do roinnt rialacha maidir le haistriú sábháilte cheana sna mínithe roimhe seo. Ach féachaimis ar na rialacha is tábhachtaí: + +1. Ní mór don ghlaoiteoir a bheith formheasta chun na comharthaí don seoladh `_from` a chaitheamh nó caithfidh an glaoiteoir a bheith cothrom le `_from`. +2. Caithfidh an glao aistrithe dul ar ais má + 1. Is é 0 an seoladh `_to`. + 2. mura bhfuil fad `_ids` mar an gcéanna le fad `_values`. + 3. tá aon iarmhéid(í) den sealbhóir(í) do chomhartha(í) in `_ids` níos ísle ná an méid(í) faoi seach in `_values` a seoladh chuig an bhfaighteoir. + 4. má tharlaíonn aon earráid eile. + +_Nóta_: Tá gach feidhm bhaisc lena n-áirítear an crúca ann freisin mar leaganacha gan bhaisc. Déantar é seo ar mhaithe le héifeachtacht gáis, agus is dócha gurb é an bealach is coitianta a úsáidtear go fóill má táthar ag smaoineamh ar shócmhainn amháin a aistriú. Táimid tar éis iad a fhágáil amach ar mhaithe le simplíocht sna míniúcháin, lena n-áirítear rialacha um aistriú sábháilte. Tá na hainmneacha comhionann, ach bain an 'Batch'. + +## Tuilleadh léitheoireachta {#further-reading} + +- [EIP-1155: Caighdeán Ilchomhartha](https://eips.ethereum.org/EIPS/eip-1155) +- [ERC-1155: Doiciméid Openzeppelin](https://docs.openzeppelin.com/contracts/3.x/erc1155) +- [ERC-1155: GitHub Stóras](https://github.com/enjin/erc-1155) +- [Ailceimic NFT API](https://docs.alchemy.com/alchemy/enhanced-apis/nft-api) diff --git a/public/content/translations/ga/developers/docs/standards/tokens/erc-20/index.md b/public/content/translations/ga/developers/docs/standards/tokens/erc-20/index.md new file mode 100644 index 00000000000..975d4a8c1c1 --- /dev/null +++ b/public/content/translations/ga/developers/docs/standards/tokens/erc-20/index.md @@ -0,0 +1,172 @@ +--- +title: ERC-20 Caighdeán Chomhartha +description: +lang: ga +--- + +## Réamhrá {#introduction} + +**Cad is Comhartha ann?** + +Is féidir le comharthaí ionadaíocht a dhéanamh ar bheagnach rud ar bith in Ethereum: + +- pointí clú ar ardán ar líne +- scileanna carachtair i gcluiche +- sócmhainní airgeadais amhail scair i gcuideachta +- airgeadra fiat cosúil le USD +- unsa óir +- agus tuilleadh... + +Nach mór gné chomh chumhachtach de Ethereum a láimhseáil le caighdeán láidir? Sin é go díreach an ról atá ag ERC-20! Ligeann an caighdeán seo d’fhorbróirí feidhmchláir chomharthaí a thógáil atá idir-inoibritheach le táirgí agus seirbhísí eile. Úsáidtear an caighdeán ERC-20 freisin chun feidhmiúlacht bhreise a sholáthar do [éitear](/glossary/#ether). + +**Cad é ERC-20?** + +Tugann an ERC-20 isteach caighdeán le haghaidh Comharthaí Idirmhalartacha, i bhfocail eile, tá maoin acu a fhágann go bhfuil gach Comhartha go díreach mar an gcéanna (i gcineál agus luach) le Comhartha eile. Mar shampla, feidhmíonn Comhartha ERC-20 díreach cosúil leis an ETH, rud a chiallaíonn go bhfuil 1 Chomhartha cothrom i gcónaí le gach Comhartha eile. + +## Réamhriachtanais {#prerequisites} + +- [Cuntais](/developers/docs/accounts) +- [Conarthaí Cliste](/developers/docs/smart-contracts/) +- [Caighdeáin comharthaí](/developers/docs/standards/tokens/) + +## Comhlacht {#body} + +Is Caighdeán Comhartha é an ERC-20 (Iarratas Ethereum ar Thuairimí 20), a mhol Fabian Vogelsteller i mí na Samhna 2015. Cuireann sé API le haghaidh comharthaí laistigh de Chonarthaí Cliste i bhfeidhm. + +Feidhmiúlachtaí samplacha a sholáthraíonn ERC-20: + +- comharthaí a aistriú ó chuntas amháin go cuntas eile +- iarmhéid comharthaíochta reatha an chuntais a fháil +- soláthar iomlán an chomhartha atá ar fáil ar an líonra a fháil +- a cheadú cibé an féidir le cuntas tríú páirtí méid dearbhán ó chuntas a chaitheamh + +Má chuireann Conradh Cliste na modhanna agus na himeachtaí seo a leanas i bhfeidhm is féidir Conradh Comhartha ERC-20 a thabhairt air agus, nuair a imscartar é, beidh sé freagrach as súil a choinneáil ar na comharthaí cruthaithe ar Ethereum. + +Ó [EIP-20](https://eips.ethereum.org/EIPS/eip-20): + +### Modhanna {#methods} + +```solidity +function name() public view returns (string) +function symbol() public view returns (string) +function decimals() public view returns (uint8) +function totalSupply() public view returns (uint256) +function balanceOf(address _owner) public view returns (uint256 balance) +function transfer(address _to, uint256 _value) public returns (bool success) +function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) +function approve(address _spender, uint256 _value) public returns (bool success) +function allowance(address _owner, address _spender) public view returns (uint256 remaining) +``` + +### Imeachtaí {#events} + +```solidity +event Transfer(address indexed _from, address indexed _to, uint256 _value) +event Approval(address indexed _owner, address indexed _spender, uint256 _value) +``` + +### Samplaí {#web3py-example} + +Feicimis conas atá Caighdeán chomh tábhachtach chun go mbeadh sé simplí dúinn iniúchadh a dhéanamh ar aon Chonradh Chomhartha ERC-20 ar Ethereum. Níl uainn ach Comhéadan Dénártha Iarratas Conartha (ABI) chun comhéadan a chruthú d’aon Chomhartha ERC-20. Mar atá le feiceáil thíos bainfimid úsáid as ABI simplithe, chun sampla frithchuimilte íseal a dhéanamh de. + +#### Sampla Web3.py {#web3py-example} + +Ar dtús, déan cinnte go bhfuil [Web3.py](https://web3py.readthedocs.io/en/stable/quickstart.html#installation) leabharlann Python suiteáilte agat: + +``` +pip install web3 +``` + +```python +from web3 import Web3 + + +w3 = Web3(Web3.HTTPProvider("https://cloudflare-eth.com")) + +dai_token_addr = "0x6B175474E89094C44Da98b954EedeAC495271d0F" # DAI +weth_token_addr = "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2" # Wrapped ether (WETH) + +acc_address = "0xA478c2975Ab1Ea89e8196811F51A7B7Ade33eB11" # Uniswap V2: DAI 2 + +# This is a simplified Contract Application Binary Interface (ABI) of an ERC-20 Token Contract. +# It will expose only the methods: balanceOf(address), decimals(), symbol() and totalSupply() +simplified_abi = [ + { + 'inputs': [{'internalType': 'address', 'name': 'account', 'type': 'address'}], + 'name': 'balanceOf', + 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'decimals', + 'outputs': [{'internalType': 'uint8', 'name': '', 'type': 'uint8'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'symbol', + 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'totalSupply', + 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + } +] + +dai_contract = w3.eth.contract(address=w3.to_checksum_address(dai_token_addr), abi=simplified_abi) +symbol = dai_contract.functions.symbol().call() +decimals = dai_contract.functions.decimals().call() +totalSupply = dai_contract.functions.totalSupply().call() / 10**decimals +addr_balance = dai_contract.functions.balanceOf(acc_address).call() / 10**decimals + +# DAI +print("===== %s =====" % symbol) +print("Total Supply:", totalSupply) +print("Addr Balance:", addr_balance) + +weth_contract = w3.eth.contract(address=w3.to_checksum_address(weth_token_addr), abi=simplified_abi) +symbol = weth_contract.functions.symbol().call() +decimals = weth_contract.functions.decimals().call() +totalSupply = weth_contract.functions.totalSupply().call() / 10**decimals +addr_balance = weth_contract.functions.balanceOf(acc_address).call() / 10**decimals + +# WETH +print("===== %s =====" % symbol) +print("Total Supply:", totalSupply) +print("Addr Balance:", addr_balance) +``` + +## Saincheisteanna aitheanta {#erc20-issues} + +### Saincheist ghlactha comhartha ERC-20 {#reception-issue} + +Nuair a sheoltar comharthaí ERC-20 chuig conradh cliste nach bhfuil deartha chun comharthaí ERC-20 a láimhseáil, is féidir na comharthaí sin a chailliúint go buan. Tarlaíonn sé seo toisc nach bhfuil an fheidhmiúlacht ag an gconradh fála chun na comharthaí isteach a aithint nó freagairt dóibh, agus níl aon mheicníocht sa chaighdeán ERC-20 chun fógra a thabhairt don chonradh fála faoi na comharthaí isteach. Is iad na príomhbhealaí a dtagann an cheist seo i gcrích ná trí: + +1. Meicníocht aistrithe comhartha + - Aistrítear comharthaí ERC-20 ag baint úsáide as na feidhmeanna aistrithe nó transferFrom + - Nuair a sheolann úsáideoir comharthaí chuig seoladh conartha ag baint úsáide as na feidhmeanna seo, aistrítear na comharthaí gan aird ar an bhfuil an conradh glactha deartha chun iad a láimhseáil +2. Easpa fógra + - Ní fhaigheann an conradh fála fógra nó aisghlao go bhfuil comharthaí seolta chuige + - Mura bhfuil meicníocht ag an gconradh fála chun comharthaí a láimhseáil (m.sh. feidhm chúltaca nó feidhm thiomnaithe chun glacadh comharthaí a bhainistiú), tá na comharthaí i bhfostú go héifeachtach i seoladh an chonartha +3. Gan láimhseáil ionsuite + - Ní áirítear i gcaighdeán ERC-20 feidhm shainordaitheach chun conarthaí a fháil le cur chun feidhme, rud a fhágann nach féidir le go leor conarthaí comharthaí isteach a bhainistiú i gceart + +D'eascair roinnt caighdeán malartacha as an gceist seo ar nós [ERC-223](/developers/docs/standards/tokens/erc-223) + +## Tuilleadh léitheoireachta {#further-reading} + +- [EIP-20: Caighdeán Comhartha ERC-20](https://eips.ethereum.org/EIPS/eip-20) +- [OpenZeppelin - Comharthaí](https://docs.openzeppelin.com/contracts/3.x/tokens#ERC20) +- [OpenZeppelin - ERC-20 Cur i bhfeidhm](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol) +- [Ailceimic - Treoir maidir le Comharthaí Solidity ERC20](https://www.alchemy.com/overviews/erc20-solidity) + + +## Caighdeáin chomharthaí idirmhalartacha eile {#fungible-token-standards} + +- [ERC-223](/developers/docs/standards/tokens/erc-223) +- [ERC-777](/developers/docs/standards/tokens/erc-777) +- [ERC-4626 - boghtaí comharthaithe](/developers/docs/standards/tokens/erc-4626) \ No newline at end of file diff --git a/public/content/translations/ga/developers/docs/standards/tokens/erc-223/index.md b/public/content/translations/ga/developers/docs/standards/tokens/erc-223/index.md new file mode 100644 index 00000000000..e2109aa5174 --- /dev/null +++ b/public/content/translations/ga/developers/docs/standards/tokens/erc-223/index.md @@ -0,0 +1,197 @@ +--- +title: ERC-223 Caighdeán Chomhartha +description: Forbhreathnú ar an gcaighdeán comharthaí idirmhalartacha ERC-223, conas a oibríonn sé, agus comparáid le ERC-20. +lang: ga +--- + +## Réamhrá {#introduction} + +### Cad é ERC-223? {#what-is-erc223} + +Is caighdeán é ERC-223 le haghaidh comharthaí idirmhalartacha, cosúil leis an gcaighdeán ERC-20. Is í an phríomhdhifríocht ná go sainmhíníonn ERC-223 ní amháin API chomharthaí ach freisin an loighic chun comharthaí a aistriú ó sheoltóir go faighteoir. Tugann sé isteach múnla cumarsáide a cheadaíonn aistrithe chomharthaí a láimhseáil ar thaobh an fhaighteora. + +### Difríochtaí ó ERC-20 {#erc20-differences} + +Tugann ERC-223 aghaidh ar roinnt srianta a bhaineann le ERC-20 agus tugtar isteach modh nua idirghníomhaíochta idir an conradh comhartha agus conradh a fhéadfaidh na comharthaí a fháil. Is beag rudaí indéanta le ERC-223 nach bhfuil indéanta le ERC-20: + +- Láimhseáil aistrithe comhartha ar thaobh an fhaighteora: Is féidir le faighteoirí a bhrath go bhfuil comhartha ERC-223 á thaisceadh. +- Diúltú comharthaí seolta go míchuí: Má sheolann úsáideoir comharthaí ERC-223 chuig conradh nach bhfuil ceaptha chun comharthaí a fháil, is féidir leis an gconradh an t-idirbheart a dhiúltú, rud a chuireann cosc ​​ar chaillteanas chomharthaí. +- Meiteashonraí in aistrithe: Is féidir meiteashonraí a áireamh le comharthaí ERC-223, rud a fhágann gur féidir faisnéis threallach a cheangal le hidirbhearta dearbhán. + +## Réamhriachtanais {#prerequisites} + +- [Cuntais](/developers/docs/accounts) +- [Conarthaí Cliste](/developers/docs/smart-contracts/) +- [Caighdeáin chomhartha](/developers/docs/standards/tokens/) +- [ERC-20](/developers/docs/standards/tokens/erc-20/) + +## Corp {#body} + +Is caighdeán dearbhán é ERC-223 a chuireann API le haghaidh comharthaí i bhfeidhm laistigh de chonarthaí cliste. Dearbhaíonn sé freisin API le haghaidh conarthaí atá ceaptha chun comharthaí ERC-223 a fháil. Ní féidir le conarthaí nach dtacaíonn le API Glacadóir ERC-223 comharthaí ERC-223 a fháil, rud a chuireann cosc ​​ar earráid úsáideora. + +Má chuireann conradh cliste na modhanna agus na himeachtaí seo a leanas i bhfeidhm is féidir conradh dearbhán comhoiriúnach ERC-223 a thabhairt air. Nuair a bheidh sé imscartha, beidh sé freagrach as súil a choinneáil ar na comharthaí cruthaithe ar Ethereum. + +Níl aon oibleagáid ar an gconradh ach na feidhmeanna seo a bheith aige agus is féidir le forbróir aon ghné eile ó chaighdeáin chomharthaí éagsúla a chur leis an gconradh seo. Mar shampla, níl feidhmeanna `ceadaigh` agus `transferFrom` mar chuid de chaighdeán ERC-223 ach d'fhéadfaí na feidhmeanna seo a chur i bhfeidhm dá mbeadh gá leis. + +Ó [EIP-223](https://eips.ethereum.org/EIPS/eip-223): + +### Modhanna {#methods} + +Ní mór do chomhartha ERC-223 na modhanna seo a leanas a chur i bhfeidhm: + +```solidity +function name() public view returns (string) +function symbol() public view returns (string) +function decimals() public view returns (uint8) +function totalSupply() public view returns (uint256) +function balanceOf(address _owner) public view returns (uint256 balance) +function transfer(address _to, uint256 _value) public returns (bool success) +function transfer(address _to, uint256 _value, bytes calldata _data) public returns (bool success) +``` + +Caithfidh conradh atá ceaptha chun comharthaí ERC-223 a fháil an modh seo a leanas a chur i bhfeidhm: + +```solidity +function tokenReceived(address _from, uint _value, bytes calldata _data) +``` + +Má sheoltar comharthaí ERC-223 chuig conradh nach gcuireann an fheidhm `tokenReceived(..)` i bhfeidhm ní mór go dteipfidh ar an aistriú agus ní féidir na comharthaí a aistriú ó iarmhéid an tseoltóra. + +### Imeachtaí {#events} + +```solidity +event Transfer(address indexed _from, address indexed _to, uint256 _value, bytes calldata _data) +``` + +### Samplaí {#examples} + +Tá an API de ERC-223 chomhartha cosúil leis an ERC-20, mar sin ó thaobh forbartha Chomhéadain níl aon difríocht ann. Is é an t-aon eisceacht anseo ná go bhféadfadh sé nach mbeadh feidhmeanna `ceadaigh` + `transferFrom` ag comharthaí ERC-223 mar go bhfuil siad seo roghnach don chaighdeán seo. + +#### Samplaí soladacha {#solidity-example} + +Léiríonn an sampla seo a leanas conas a fheidhmíonn bunchonradh dearbhán ERC-223: + +```solidity +pragma solidity ^0.8.19; +abstract contract IERC223Recipient { + function tokenReceived(address _from, uint _value, bytes memory _data) public virtual; +} +contract VeryBasicERC223Token { + event Transfer(address indexed from, address indexed to, uint value, bytes data); + string private _name; + string private _symbol; + uint8 private _decimals; + uint256 private _totalSupply; + mapping(address => uint256) private balances; + function name() public view returns (string memory) { return _name; } + function symbol() public view returns (string memory) {return _symbol; } + function decimals() public view returns (uint8) { return _decimals; } + function totalSupply() public view returns (uint256) { return _totalSupply; } + function balanceOf(address _owner) public view returns (uint256) { return balances[_owner]; } + function isContract(address account) internal view returns (bool) { + uint256 size; + assembly { size := extcodesize(account) } + return size > 0; + } + function transfer(address _to, uint _value, bytes calldata _data) public returns (bool success){ + balances[msg.sender] = balances[msg.sender] - _value; + balances[_to] = balances[_to] + _value; + if(isContract(_to)) { + IERC223Recipient(_to).tokenReceived(msg.sender, _value, _data); + } + emit Transfer(msg.sender, _to, _value, _data); + return true; + } + function transfer(address _to, uint _value) public returns (bool success){ + bytes memory _empty = hex"00000000"; + balances[msg.sender] = balances[msg.sender] - _value; + balances[_to] = balances[_to] + _value; + if(isContract(_to)) { + IERC223Recipient(_to).tokenReceived(msg.sender, _value, _empty); + } + emit Transfer(msg.sender, _to, _value, _empty); + return true; + } +} +``` + +Anois teastaíonn conradh eile uainn chun glacadh le taiscí `tokenA` ag glacadh leis gur comhartha ERC-223 é tokenA. Ní mór don chonradh glacadh le tokenA amháin agus aon comharthaí eile a dhiúltú. Nuair a fhaigheann an conradh chomhartha, caithfidh sé imeacht `Taiscigh()` a astú agus luach na hathróige `taiscí` inmheánach a mhéadú. + +Seo é an cód: + +```solidity +contract RecipientContract is IERC223Recipient { + event Deposit(address whoSentTheTokens); + uint256 deposits = 0; + address tokenA; // An t-aon chomhartha gur mian linn glacadh leis. + function tokenReceived(address _from, uint _value, bytes memory _data) public override + { + // Tá sé tábhachtach é sin a thuiscint laistigh den fheidhm seo + // msg.sender seoladh dearbhán atá á fháil, + // msg.value is 0 i gcónaí toisc nach leis an gconradh chomharthaí ná nach seolann éitear i bhformhór na gcásanna, + // _from is é seoltóir an aistrithe chomhartha. + // _value is é an méid comharthaí a cuireadh i dtaisce. + require(msg.sender == tokenA); + deposits += _value; + emit Deposit(_from); + } +} +``` + +## Ceisteanna coitianta {#faq} + +### Cad a tharlóidh má sheolaimid roinnt tokenB chuig an gconradh? {#sending-tokens} + +Teipfidh an t-idirbheart, agus ní tharlóidh aistriú comharthaí. Seolfar na comharthaí ar ais chuig seoladh an tseoltóra. + +### Conas is féidir linn taisce a dhéanamh sa chonradh seo? {#contract-deposits} + +Glaoigh ar an fheidhm `transfer(address,uint256)` nó `transfer(address,uint256,bytes)` den chomhartha ERC-223, ag sonrú seoladh an `RecipientContract`. + +### Cad a tharlóidh má aistrímid comhartha ERC-20 chuig an gconradh seo? {#erc-20-transfers} + +Má sheoltar comhartha ERC-20 chuig an `RecipientContract`, aistreofar na comharthaí, ach ní aithneofar an t-aistriú (ní dhéanfar aon imeacht `Taiscigh()` a bhácáil, agus ní athrófar luach na taiscí). Ní féidir taiscí ERC-20 nach dteastaíonn a scagadh ná a chosc. + +### Cad a tharlaíonn má theastaíonn uainn feidhm éigin a rith tar éis don taisce chomhartha a bheith críochnaithe? {#function-execution} + +Tá bealaí iomadúla ann chun é sin a dhéanamh. Sa sampla seo leanfaimid an modh a fhágann gurb ionann aistrithe ERC-223 agus aistrithe éitir: + +```solidity +contract RecipientContract is IERC223Recipient { + event Foo(); + event Bar(uint256 someNumber); + address tokenA; // The only token that we want to accept. + function tokenReceived(address _from, uint _value, bytes memory _data) public override + { + require(msg.sender == tokenA); + address(this).call(_data); // Handle incoming transaction and perform a subsequent function call. + } + function foo() public + { + emit Foo(); + } + function bar(uint256 _someNumber) public + { + emit Bar(_someNumber); + } +} +``` + +Nuair a gheobhaidh an `RecipientContract` chomhartha ERC-223 déanfaidh an conradh feidhm atá ionchódaithe mar pharaiméadar `_data` an idirbhirt chomharthaí, comhionann leis an gcaoi a n-ionchódaíonn idirbhearta éitear glaonna mar `data` idirbhirt. Léigh [an réimse sonraí] (https://ethereum.org/en/developers/docs/transactions/#the-data-field) le haghaidh tuilleadh faisnéise. + +Sa sampla thuas ní mór comhartha ERC-223 a aistriú chuig seoladh an `RecipientContract` leis an bhfeidhm `transfer(address,uin256,bytes calldata _data)`. Más é `0xc2985578` (síniú feidhm `foo()`) an paraiméadar sonraí, déanfar an foo feidhme () a agairt tar éis an taisce chomhartha a fháil agus déanfar an t-imeacht Foo() a bhácáil. + +Is féidir paraiméadair a ionchódú i `sonraí` an aistrithe chomharthaí freisin, mar shampla is féidir linn an fheidhm barra() a ghlaoch le luach 12345 le haghaidh `_someNumber`. Sa chás seo, caithfidh an `data` a bheith `0x0423a13200000000000000000000000000000000000000000000000000000000000004d2`, áit a bhfuil `0x0423a132` ina shíniú ar an bhfeidhm `bar(uint256)` agus `00000000000000000000000000000000000000000000000000000000000004d2` ina 12345 mar uint256. + +## Teorainneacha {#limitations} + +Cé go dtugann ERC-223 aghaidh ar roinnt saincheisteanna a aimsítear i gcaighdeán ERC-20, níl a theorainneacha féin ag baint leis: + +- Glacadh agus Comhoiriúnacht: Níl ERC-223 glactha go forleathan fós, rud a d’fhéadfadh teorainn a chur lena chomhoiriúnacht le huirlisí agus le hardáin atá ann cheana. +- Comhoiriúnacht Siar: Níl ERC-223 comhoiriúnach siar le ERC-20, rud a chiallaíonn nach n-oibreoidh conarthaí agus uirlisí ERC-20 atá ann cheana le comharthaí ERC-223 gan modhnuithe. +- Costais Gháis: D’fhéadfadh costais gháis níos airde a bheith mar thoradh ar sheiceálacha agus feidhmiúlachtaí breise in aistrithe ERC-223 i gcomparáid le hidirbhearta ERC-20. + +## Tuilleadh léitheoireachta {#further-reading} + +- [EIP-223: Caighdeán Comhartha ERC-223](https://eips.ethereum.org/EIPS/eip-223) +- [Togra tosaigh ERC-223](https://github.com/ethereum/eips/issues/223) diff --git a/public/content/translations/ga/developers/docs/standards/tokens/erc-4626/index.md b/public/content/translations/ga/developers/docs/standards/tokens/erc-4626/index.md new file mode 100644 index 00000000000..283ceee295d --- /dev/null +++ b/public/content/translations/ga/developers/docs/standards/tokens/erc-4626/index.md @@ -0,0 +1,227 @@ +--- +title: ERC-4626 Caighdeán Boghta Comharthaithe +description: Caighdeán le haghaidh boghtaí a bhfuil toradh orthu. +lang: ga +--- + +## Réamhrá {#introduction} + +Is caighdeán é ERC-4626 chun paraiméadair theicniúla boghtaí a bhfuil toradh orthu a bharrfheabhsú agus a aontú. Soláthraíonn sé API caighdeánach do bhoghtaí comharthaithe a bhfuil toradh orthu a léiríonn scaireanna de bhunchomhartha amháin ERC-20. Tugann ERC-4626 breac-chuntas freisin ar shíneadh roghnach le haghaidh boghtaí comharthaithe ag baint úsáide as ERC-20, ag tairiscint feidhmiúlacht bhunúsach chun taisceadh, comharthaí a tharraingt siar agus iarmhéideanna léitheoireachta. + +**Ról ERC-4626 i mboghtaí a bhfuil toradh orthu** + +Cuidíonn margaí iasachtaithe, comhbhailitheoirí, agus comharthaí úsmhara go bunúsach le húsáideoirí an toradh is fearr a fháil ar a gcuid comharthaí cripte trí straitéisí éagsúla a chur i bhfeidhm. Déantar na straitéisí seo le héagsúlacht neafaiseach, a d’fhéadfadh a bheith i mbaol earráidí nó acmhainní forbartha a chur amú. + +Laghdóidh ERC-4626 i mboghtaí a bhfuil toradh orthu an iarracht chomhtháthaithe agus scaoilfidh sé rochtain ar thorthaí in iarratais éagsúla gan mórán iarracht speisialaithe ó fhorbróirí trí phatrúin feidhmithe níos comhsheasmhaí agus níos láidre a chruthú. + +Tá cur síos iomlán ar an chomhartha ERC-4626 i [EIP-4626](https://eips.ethereum.org/EIPS/eip-4626). + +**Síneadh boghta asincrónach (ERC-7540)** + +Tá ERC-4626 optamaithe le haghaidh taiscí adamhacha agus fuascailtí go teorainn áirithe. Má shroichtear an teorainn, ní féidir aon taiscí ná fuascailtí nua a chur isteach. Ní oibríonn an teorannú seo go maith d’aon chóras conartha cliste a bhfuil gníomhartha nó moilleanna asincrónacha ina réamhriachtanas chun comhéadan a dhéanamh leis an Cruinneachán (m.sh. prótacail sócmhainní fíor-dhomhain, prótacail iasachta neamh-chomhthaobhaithe, prótacail iasachtaithe trasshlabhra, comharthaí greamaithe leachta, nó modúil sábháilteachta árachais). + +Leathnaíonn ERC-7540 áirgiúlacht Boghtaí ERC-4626 le haghaidh cásanna úsáide asincrónacha. Baintear úsáid iomlán as an gcomhéadan Boghta atá ann cheana (`deposit`/`withdraw`/`mint`/`redeem`) chun Iarratais asincrónacha a éileamh. + +Tá cur síos iomlán ar an mbreiseán ERC-7540 in [ERC-7540](https://eips.ethereum.org/EIPS/eip-7540). + +**Breiseán boghta il-sócmhainne (ERC-7575)** + +Cás úsáide amháin atá ar iarraidh nach dtacaíonn ERC-4626 leis is ea Boghtaí a bhfuil sócmhainní iolracha nó pointí iontrála acu, mar shampla Comharthaí soláthraí leachtachta (LP). Go ginearálta bíonn siad seo ciontach nó neamh-chomhlíontach mar gheall ar riachtanas ERC-4626 a bheith ina ERC-20 féin. + +Cuireann ERC-7575 tacaíocht le Boghtaí a bhfuil sócmhainní iolracha acu trí fheidhmiú chomharthaí ERC-20 a sheachtrú ó chur chun feidhme ERC-4626. + +Tá cur síos iomlán ar an mbreiseán ERC-7575 in [ERC-7575](https://eips.ethereum.org/EIPS/eip-7575). + +## Réamhriachtanais {#prerequisites} + +Chun an leathanach seo a thuiscint níos fearr, molaimid duit léamh ar dtús faoi [caighdeáin chomharthaí](/developers/docs/standards/tokens/) agus [ERC-20](/developers/docs/standards/tokens/erc-20/). + +## Feidhmeanna agus Gnéithe ERC-4626: {#body} + +### Modhanna {#methods} + +#### asset {#asset} + +```solidity +function asset() public view returns (address assetTokenAddress) +``` + +Tugann an fheidhm seo ar ais seoladh an chomhartha bhunúsach a úsáidtear don bhoghta le haghaidh cuntasaíocht, taisceadh, aistarraingt. + +#### totalAssets {#totalassets} + +```solidity +function totalAssets() public view returns (uint256) +``` + +Tugann an fheidhm seo ar ais méid iomlán na sócmhainní bunúsacha atá i seilbh na mboghtaí. + +#### convertToShares {#convertoshares} + +```solidity +function convertToShares(uint256 assets) public view returns (uint256 shares) +``` + +Tugann an fheidhm seo ar ais an méid `scaireanna` a d'athródh an boghta ar an méid `sócmhainní` a cuireadh ar fáil. + +#### convertToAssets {#convertoassets} + +```solidity +function convertToAssets(uint256 shares) public view returns (uint256 assets) +``` + +Tugann an fheidhm seo ar ais an méid `sócmhainní` a d'athródh an cruinneachán ar an méid `scaireanna` a cuireadh ar fáil. + +#### maxDeposit {#maxdeposit} + +```solidity +function maxDeposit(address receiver) public view returns (uint256 maxAssets) +``` + +Tugann an fheidhm seo ar ais uasmhéid na sócmhainní bunúsacha is féidir a chur i dtaisce i nglao amháin <[`taisce`](#deposit) glaoch ón `fhaighteoir`. + +#### previewDeposit {#previewdeposit} + +```solidity +function previewDeposit(uint256 assets) public view returns (uint256 shares) +``` + +Ligeann an fheidhm seo d'úsáideoirí éifeachtaí a n-éarlais a insamhail ag an mbloc reatha. + +#### deposit {#deposit} + +```solidity +function deposit(uint256 assets, address receiver) public returns (uint256 shares) +``` + +Déanann an fheidhm seo `sócmhainní` de bhunchomharthaí a thaisceadh isteach sa bhoghta agus tugann sí úinéireacht `scaireanna` don `fhaighteoir`. + +#### maxMint {#maxmint} + +```solidity +function maxMint(address receiver) public view returns (uint256 maxShares) +``` + +Tugann an fheidhm seo ar ais uasmhéid na scaireanna is féidir a bhualadh i nglao amháin [`buail`](#mint) glaoch ón `fhaighteoir`. + +#### previewMint {#previewmint} + +```solidity +function previewMint(uint256 shares) public view returns (uint256 assets) +``` + +Ligeann an fheidhm seo d'úsáideoirí insamhlú a dhéanamh ar éifeachtaí a mbuailte ag an mbloc reatha. + +#### mint {#mint} + +```solidity +function mint(uint256 shares, address receiver) public returns (uint256 assets) +``` + +Bualann an fheidhm seo go díreach scaireanna boghta `shares` chuig `faighteora` trí `shócmhainní` de na comharthaí bunúsacha a thaisceadh. + +#### maxWithdraw {#maxwithdraw} + +```solidity +function maxWithdraw(address owner) public view returns (uint256 maxAssets) +``` + +Tugann an fheidhm seo ar ais uasmhéid na sócmhainní bunúsacha is féidir a aistarraingt ón iarmhéid `úinéir` le glao amháin [`aistarraing`](#withdraw). + +#### previewWithdraw {#previewwithdraw} + +```solidity +function previewWithdraw(uint256 assets) public view returns (uint256 shares) +``` + +Ligeann an fheidhm seo d'úsáideoirí insamhlú a dhéanamh ar thionchair a n-aistarraingt ag an mbloc reatha. + +#### withdraw {#withdraw} + +```solidity +function withdraw(uint256 assets, address receiver, address owner) public returns (uint256 shares) +``` + +Déanann an fheidhm seo `shares` a dhó ó `úinéir` agus seol comhartha díreach `sócmhainní` ón cruinneachán chuig `faighteoir`. + +#### maxRedeem {#maxredeem} + +```solidity +function maxRedeem(address owner) public view returns (uint256 maxShares) +``` + +Tugann an fheidhm seo ar ais uasmhéid na scaireanna is féidir a fhuascailt ón iarmhéid `úinéir` trí ghlao [`redeem`](#redeem). + +#### previewRedeem {#previewredeem} + +```solidity +function previewRedeem(uint256 shares) public view returns (uint256 assets) +``` + +Ligeann an fheidhm seo d’úsáideoirí insamhlú a dhéanamh ar éifeachtaí a bhfuascailte ag an mbloc reatha. + +#### redeem {#redeem} + +```solidity +function redeem(uint256 shares, address receiver, address owner) public returns (uint256 assets) +``` + +Fuasclaíonn an fheidhm seo líon sonrach `scaireanna` ó `úinéir` agus seolann `sócmhainní` den bhunchomhartha ón mboghta chuig an `fhaighteoir`. + +#### totalSupply {#totalsupply} + +```solidity +function totalSupply() public view returns (uint256) +``` + +Tugann sé ar ais líon iomlán na scaireanna cruinneachán neamhfhuascailte atá i gcúrsaíocht. + +#### balanceOf {#balanceof} + +```solidity +function balanceOf(address owner) public view returns (uint256) +``` + +Filleann sé seo méid iomlán na scaireanna cruinneachán atá ag an `úinéir` faoi láthair. + +### Léarscáil an chomhéadain {#mapOfTheInterface} + +![Léarscáil den chomhéadan ERC-4626](./map-of-erc-4626.png) + +### Imeachtaí {#events} + +#### Imeacht Taisce + +NÍ MÓR ** a bheith astaithe** nuair a thaisctear comharthaí isteach sa bhoghta trí na modhanna [`buail`](#mint) agus [`taisce`](#deposit). + +```solidity +event Deposit( + address indexed sender, + address indexed owner, + uint256 assets, + uint256 shares +) +``` + +Sa chás gurb é `seoltóir` an t-úsáideoir a mhalartóidh `sócmhainní` le haghaidh `scaireanna`, agus a d’aistrigh na `scaireanna` sin chuig `úinéir`. + +#### Imeacht Aistarraingthe + +NÍ MÓR **Astú** nuair a tharraingíonn taisceoir scaireanna as an mboghta sna modhanna [`fuascail`](#redeem) nó [`aistarraing`](#withdraw). + +```solidity +event Withdraw( + address indexed sender, + address indexed receiver, + address indexed owner, + uint256 assets, + uint256 shares +) +``` + +I gcás gurb é `seoltóir` an t-úsáideoir a spreag an aistarraingt agus a mhalartaigh `scaireanna`, ar le `húinéir` é, le haghaidh `sócmhainní`. Is é `faigheoir` an t-úsáideoir a fuair na `sócmhainní` aistarraingthe. + +## Tuilleadh léitheoireachta {#further-reading} + +- [EIP-4626: Caighdeán boghta comharthaithe](https://eips.ethereum.org/EIPS/eip-4626) +- [ERC-4626: Stóras GitHub](https://github.com/transmissions11/solmate/blob/main/src/tokens/ERC4626.sol) diff --git a/public/content/translations/ga/developers/docs/standards/tokens/erc-721/index.md b/public/content/translations/ga/developers/docs/standards/tokens/erc-721/index.md new file mode 100644 index 00000000000..d19ebcdffbc --- /dev/null +++ b/public/content/translations/ga/developers/docs/standards/tokens/erc-721/index.md @@ -0,0 +1,244 @@ +--- +title: ERC-721 Caighdeán Comhartha Neamh-idirmhalartach +description: +lang: ga +--- + +## Réamhrá {#introduction} + +**Cad is Comhartha Neamh-idirmhalartach ann?** + +Baintear úsáid as Comhartha Neamh-idirmhalartach (NFT) chun rud nó duine éigin a aithint ar bhealach uathúil. Tá an cineál seo Comhartha foirfe le húsáid ar ardáin a thairgeann míreanna inbhailithe, eochracha rochtana, ticéid chrannchuir, suíocháin uimhrithe do cheolchoirmeacha agus cluichí spóirt, srl. Tá féidearthachtaí iontacha ag an gcineál speisialta Comhartha seo agus mar sin tá Caighdeán ceart, ERC-721, a tháinig chun é sin a réiteach, tuillte aige! + +**Cad é ERC-721?** + +Tugann an ERC-721 isteach caighdeán do NFT, i bhfocail eile, tá an cineál Comhartha seo uathúil agus is féidir luach difriúil a bheith aige ó Chomhartha eile ón gConradh Cliste céanna, b'fhéidir mar gheall ar a aois, a theirce nó fiú rud éigin eile cosúil lena amharc. Fan, amharc? + +Sin é! Tá athróg `uint256` ag gach NFT ar a dtugtar `tokenId`, mar sin d'aon Chonradh ERC-721, ní mór an péire `contract address, uint256 tokenId` a bheith uathúil ar fud an domhain. Mar sin féin, is féidir "tiontaire" a bheith ag dapp a úsáideann an `tokenId` mar ionchur agus a aschuireann íomhá de rud éigin faiseanta, cosúil le zombaithe, airm, scileanna nó puisíní gleoite! + +## Réamhriachtanais {#prerequisites} + +- [Cuntais](/developers/docs/accounts/) +- [Conarthaí Cliste](/developers/docs/smart-contracts/) +- [Caighdeáin comharthaí](/developers/docs/standards/tokens/) + +## Comhlacht {#body} + +An ERC-721 (Iarratas Ethereum ar Thuairimí 721), molta ag William Entriken, Dieter Shirley, Jacob Evans, Tá Nastassia Sachs i mí Eanáir 2018, ina Chaighdeán Comhartha Neamh-idirmhalartacha a chuireann API le haghaidh comharthaí laistigh de Chonarthaí Cliste i bhfeidhm. + +Soláthraíonn sé feidhmiúlachtaí cosúil le comharthaí a aistriú ó chuntas amháin go cuntas eile, chun an iarmhéid reatha chomharthaí a fháil ar chuntas, chun úinéir chomhartha sainiúil a aimsiú agus freisin soláthar iomlán an chomhartha atá ar fáil ar an líonra. Chomh maith leo seo tá roinnt feidhmiúlachtaí eile aige ar nós an méid de chomhartha is féidir le cuntas tríú pháirtí a bhogadh ó chuntas a fhaomhadh. + +Má chuireann Conradh Cliste na modhanna agus na teagmhais seo a leanas i bhfeidhm is féidir Conradh Comhartha Neamh-idirmhalartach ERC-721 a thabhairt air agus, ar é a imscaradh, beidh sé freagrach as súil a choinneáil ar na comharthaí cruthaithe ar Ethereum. + +Ó [EIP-721](https://eips.ethereum.org/EIPS/eip-721): + +### Modhanna {#methods} + +```solidity + function balanceOf(address _owner) external view returns (uint256); + function ownerOf(uint256 _tokenId) external view returns (address); + function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes data) external payable; + function safeTransferFrom(address _from, address _to, uint256 _tokenId) external payable; + function transferFrom(address _from, address _to, uint256 _tokenId) external payable; + function approve(address _approved, uint256 _tokenId) external payable; + function setApprovalForAll(address _operator, bool _approved) external; + function getApproved(uint256 _tokenId) external view returns (address); + function isApprovedForAll(address _owner, address _operator) external view returns (bool); +``` + +### Imeachtaí {#events} + +```solidity + event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId); + event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId); + event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved); +``` + +### Samplaí {#web3py-example} + +Feicimis conas atá Caighdeán chomh tábhachtach chun go mbeadh sé simplí dúinn iniúchadh a dhéanamh ar aon Chonradh Chomhartha ERC-721 ar Ethereum. Níl uainn ach Comhéadan Dénártha Feidhmchláir Conartha (ABI) chun comhéadan a chruthú d’aon Chomhartha ERC-721. Mar atá le feiceáil thíos bainfimid úsáid as ABI simplithe, chun sampla frithchuimilte íseal a dhéanamh de. + +#### Sampla Web3.py {#web3py-example} + +Ar dtús, déan cinnte go bhfuil [Web3.py](https://web3py.readthedocs.io/en/stable/quickstart.html#installation) leabharlann Python suiteáilte agat: + +``` +pip install web3 +``` + +```python +from web3 import Web3 +from web3._utils.events import get_event_data + + +w3 = Web3(Web3.HTTPProvider("https://cloudflare-eth.com")) + +ck_token_addr = "0x06012c8cf97BEaD5deAe237070F9587f8E7A266d" # CryptoKitties Contract + +acc_address = "0xb1690C08E213a35Ed9bAb7B318DE14420FB57d8C" # CryptoKitties Sales Auction + +# This is a simplified Contract Application Binary Interface (ABI) of an ERC-721 NFT Contract. +# It will expose only the methods: balanceOf(address), name(), ownerOf(tokenId), symbol(), totalSupply() +simplified_abi = [ + { + 'inputs': [{'internalType': 'address', 'name': 'owner', 'type': 'address'}], + 'name': 'balanceOf', + 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], + 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'name', + 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [{'internalType': 'uint256', 'name': 'tokenId', 'type': 'uint256'}], + 'name': 'ownerOf', + 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], + 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'symbol', + 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'totalSupply', + 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, +] + +ck_extra_abi = [ + { + 'inputs': [], + 'name': 'pregnantKitties', + 'outputs': [{'name': '', 'type': 'uint256'}], + 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [{'name': '_kittyId', 'type': 'uint256'}], + 'name': 'isPregnant', + 'outputs': [{'name': '', 'type': 'bool'}], + 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True + } +] + +ck_contract = w3.eth.contract(address=w3.to_checksum_address(ck_token_addr), abi=simplified_abi+ck_extra_abi) +name = ck_contract.functions.name().call() +symbol = ck_contract.functions.symbol().call() +kitties_auctions = ck_contract.functions.balanceOf(acc_address).call() +print(f"{name} [{symbol}] NFTs in Auctions: {kitties_auctions}") + +pregnant_kitties = ck_contract.functions.pregnantKitties().call() +print(f"{name} [{symbol}] NFTs Pregnants: {pregnant_kitties}") + +# Using the Transfer Event ABI to get info about transferred Kitties. +tx_event_abi = { + 'anonymous': False, + 'inputs': [ + {'indexed': False, 'name': 'from', 'type': 'address'}, + {'indexed': False, 'name': 'to', 'type': 'address'}, + {'indexed': False, 'name': 'tokenId', 'type': 'uint256'}], + 'name': 'Transfer', + 'type': 'event' +} + +# We need the event's signature to filter the logs +event_signature = w3.keccak(text="Transfer(address,address,uint256)").hex() + +logs = w3.eth.get_logs({ + "fromBlock": w3.eth.block_number - 120, + "address": w3.to_checksum_address(ck_token_addr), + "topics": [event_signature] +}) + +# Notes: +# - Increase the number of blocks up from 120 if no Transfer event is returned. +# - If you didn't find any Transfer event you can also try to get a tokenId at: +# https://etherscan.io/address/0x06012c8cf97BEaD5deAe237070F9587f8E7A266d#events +# Click to expand the event's logs and copy its "tokenId" argument +recent_tx = [get_event_data(w3.codec, tx_event_abi, log)["args"] for log in logs] + +if recent_tx: + kitty_id = recent_tx[0]['tokenId'] # Paste the "tokenId" here from the link above + is_pregnant = ck_contract.functions.isPregnant(kitty_id).call() + print(f"{name} [{symbol}] NFTs {kitty_id} is pregnant: {is_pregnant}") +``` + +Tá roinnt Imeachtaí suimiúla ag CryptoKitties Contract seachas na cinn Caighdeánacha. + +Déanaimis seiceáil ar dhá cheann acu, `Toirchis` agus `Breith`. + +```python +# Using the Pregnant and Birth Events ABI to get info about new Kitties. +ck_extra_events_abi = [ + { + 'anonymous': False, + 'inputs': [ + {'indexed': False, 'name': 'owner', 'type': 'address'}, + {'indexed': False, 'name': 'matronId', 'type': 'uint256'}, + {'indexed': False, 'name': 'sireId', 'type': 'uint256'}, + {'indexed': False, 'name': 'cooldownEndBlock', 'type': 'uint256'}], + 'name': 'Pregnant', + 'type': 'event' + }, + { + 'anonymous': False, + 'inputs': [ + {'indexed': False, 'name': 'owner', 'type': 'address'}, + {'indexed': False, 'name': 'kittyId', 'type': 'uint256'}, + {'indexed': False, 'name': 'matronId', 'type': 'uint256'}, + {'indexed': False, 'name': 'sireId', 'type': 'uint256'}, + {'indexed': False, 'name': 'genes', 'type': 'uint256'}], + 'name': 'Birth', + 'type': 'event' + }] + +# We need the event's signature to filter the logs +ck_event_signatures = [ + w3.keccak(text="Pregnant(address,uint256,uint256,uint256)").hex(), + w3.keccak(text="Birth(address,uint256,uint256,uint256,uint256)").hex(), +] + +# Here is a Pregnant Event: +# - https://etherscan.io/tx/0xc97eb514a41004acc447ac9d0d6a27ea6da305ac8b877dff37e49db42e1f8cef#eventlog +pregnant_logs = w3.eth.get_logs({ + "fromBlock": w3.eth.block_number - 120, + "address": w3.to_checksum_address(ck_token_addr), + "topics": [ck_event_signatures[0]] +}) + +recent_pregnants = [get_event_data(w3.codec, ck_extra_events_abi[0], log)["args"] for log in pregnant_logs] + +# Here is a Birth Event: +# - https://etherscan.io/tx/0x3978028e08a25bb4c44f7877eb3573b9644309c044bf087e335397f16356340a +birth_logs = w3.eth.get_logs({ + "fromBlock": w3.eth.block_number - 120, + "address": w3.to_checksum_address(ck_token_addr), + "topics": [ck_event_signatures[1]] +}) + +recent_births = [get_event_data(w3.codec, ck_extra_events_abi[1], log)["args"] for log in birth_logs] +``` + +## NFTanna Coitianta {#popular-nfts} + +- Liostaíonn [ Etherscan NFT Tracker](https://etherscan.io/tokens-nft) an NFT is fearr ar Ethereum de réir méid aistrithe. +- Is cluiche é [CryptoKitties](https://www.cryptokitties.co/) atá dírithe ar neacha inphóraithe, inbhailithe aoibhne a dtugtar CryptoKitties orthu. +- Is cluiche peile fantaisíochta domhanda é [Sorare](https://sorare.com/) inar féidir leat eagráin teoranta nithe inbhailithe a bhailiú, do chuid foirne a bhainistiú agus dul san iomaíocht chun duaiseanna a thuilleamh. +- [Soláthraíonn Seirbhís Ainmneacha Ethereum (ENS)](https://ens.domains/) bealach díláraithe slán & chun aghaidh a thabhairt ar acmhainní ar an mblocshlabhra agus as, ag baint úsáide as ainmneacha simplí atá inléite ag an duine. +- Seachadann [POAP](https://poap.xyz) NFTanna saor in aisce do dhaoine a fhreastalaíonn ar imeachtaí nó a dhéanann gníomhartha sonracha. Is féidir POAPanna a chruthú agus a dháileadh. +- Is cuideachta atá lonnaithe i San Francisco é [Unstoppable Domains](https://unstoppabledomains.com/) a thógann fearainn ar blocshlabhra. Cuireann fearainn Bhlocshlabhra ainmneacha inléite daonna in ionad seoltaí criptea-airgeadra agus is féidir iad a úsáid chun a chumasú láithreáin ghréasáin atá díonach ar chinsireacht. +- Is TCG é [ Gods Unchained Cards](https://godsunchained.com/) ar bhlocshlabhra Ethereum a úsáideann NFTanna chun fíor-úinéireacht a thabhairt chuig sócmhainní in-chluiche. +- Is bailiúchán é [Bored Ape Yacht Club](https://boredapeyachtclub.com) bailiúchán de 10,000 NFT uathúla, a fheidhmíonn, chomh maith le bheith ina phíosa ealaíne annamh, mar chomhartha ballraíochta don chlub, ag soláthar buntáistí agus tairbhí do chomhaltaí a mhéadaíonn le himeacht ama mar thoradh ar iarrachtaí pobail. + +## Tuilleadh léitheoireachta {#further-reading} + +- [EIP-721: ERC-721 Caighdeán Comhartha Neamh-idirmhalartach](https://eips.ethereum.org/EIPS/eip-721) +- [OpenZeppelin - ERC-721 Doiciméid](https://docs.openzeppelin.com/contracts/3.x/erc721) +- [OpenZeppelin - ERC-721 Feidhmiú](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC721/ERC721.sol) +- [Ailceimic NFT API](https://docs.alchemy.com/alchemy/enhanced-apis/nft-api) diff --git a/public/content/translations/ga/developers/docs/standards/tokens/erc-777/index.md b/public/content/translations/ga/developers/docs/standards/tokens/erc-777/index.md new file mode 100644 index 00000000000..0763431e373 --- /dev/null +++ b/public/content/translations/ga/developers/docs/standards/tokens/erc-777/index.md @@ -0,0 +1,45 @@ +--- +title: ERC-777 Caighdeán Chomhartha +description: null +lang: ga +--- + +## Rabhadh {#warning} + +**Tá sé deacair ERC-777 a chur i bhfeidhm i gceart, mar gheall ar a [shoghabhálacht i leith cineálacha éagsúla ionsaí](https://github.com/OpenZeppelin/openzeppelin-contracts/issues/2620). Moltar [ERC-20](/developers/docs/standards/tokens/erc-20/) a úsáid ina áit.** Fanann an leathanach seo mar chartlann stairiúil. + +## Réamhrá? {#introduction} + +Is caighdeán comharthach inbhraite é ERC-777 a fheabhsaíonn an caighdeán reatha [ERC-20] (/developers/docs/standards/tokens/erc-20/). + +## Réamhriachtanais {#prerequisites} + +Chun an leathanach seo a thuiscint níos fearr, molaimid duit léamh ar dtús faoi [ERC-20](/developers/docs/standards/tokens/erc-20/). + +## Cad iad na feabhsuithe atá beartaithe ag ERC-777 thar ERC-20? {#-erc-777-vs-erc-20} + +Soláthraíonn an ERC-777 na feabhsuithe seo a leanas thar ERC-20. + +### Crúcaí {#hooks} + +Is feidhm é crúcaí a thuairiscítear i gcód conartha cliste. Glaoitear ar chrúcaí nuair a sheoltar nó nuair a fhaightear comharthaí tríd an gconradh. Ligeann sé seo do chonradh cliste freagairt do chomharthaí isteach nó amach. + +Cláraítear na crúcaí agus aimsítear iad leis an gcaighdeán [ERC-1820](https://eips.ethereum.org/EIPS/eip-1820). + +#### Cén fáth go bhfuil crúcaí iontach? {#why-are-hooks-great} + +1. Ceadaíonn crúcaí comharthaí a sheoladh chuig conradh agus fógra a thabhairt don chonradh in aon idirbheart amháin, murab ionann agus [ERC-20](https://eips.ethereum.org/EIPS/eip-20), a éilíonn glao dúbailte (`approve`/`transferFrom`) chun é seo a bhaint amach. +2. Tá conarthaí nach bhfuil crúcaí cláraithe acu ar neamhréir le ERC-777. Toirmeascfaidh an conradh seolta an idirbhirt nuair nach bhfuil crúca cláraithe ag an gconradh fála. Cuireann sé seo cosc ​​ar aistrithe de thaisme chuig conarthaí cliste neamh-ERC-777. +3. Is féidir le crúcaí idirbhearta a dhiúltú. + +### Deachúlacha {#decimals} + +Réitíonn an caighdeán freisin an mearbhall maidir le `deachúlacha` a dhéantar in ERC-20. Feabhsaíonn an tsoiléireacht seo taithí an fhorbróra. + +### Comhoiriúnacht cúil le ERC-20 {#backwards-compatibility-with-erc-20} + +Is féidir idirghníomhú le conarthaí ERC-777 amhail is dá mba chonarthaí ERC-20 iad. + +## Tuilleadh Léitheoireachta {#further-reading} + +[EIP-777: Caighdeán Comhartha](https://eips.ethereum.org/EIPS/eip-777) diff --git a/public/content/translations/ga/developers/docs/standards/tokens/index.md b/public/content/translations/ga/developers/docs/standards/tokens/index.md new file mode 100644 index 00000000000..44b53094b7f --- /dev/null +++ b/public/content/translations/ga/developers/docs/standards/tokens/index.md @@ -0,0 +1,39 @@ +--- +title: Caighdeáin Chomhartha +description: +lang: ga +incomplete: true +--- + +## Réamhrá {#introduction} + +Díríonn go leor caighdeáin forbartha Ethereum ar chomhéadain chomharthaí. Cuidíonn na caighdeáin seo lena chinntiú go bhfanann conarthaí cliste in-chumtha, mar sin mar shampla nuair a eisíonn tionscadal nua comhartha, go mbíonn sé comhoiriúnach go fóill leis na malartuithe díláraithe atá ann cheana féin. + +## Réamhriachtanais {#prerequisites} + +- [Caighdeáin fhorbartha Ethereum](/developers/docs/standards/) +- [Conarthaí cliste](/developers/docs/smart-contracts/) + +## Caighdeáin comharthaí {#token-standards} + +Seo cuid de na caighdeáin chomharthaíochta is coitianta ar Ethereum: + +- [ERC-20](/developers/docs/standards/tokens/erc-20/) - Comhéadan caighdeánach le haghaidh comharthaí idirmhalartaithe, amhail comharthaí vótála, comharthaí gill nó airgeadraí fíorúla. + +### Caighdeáin NFT {#nft-standards} + +- [ERC-721](/developers/docs/standards/tokens/erc-721/) - Comhéadan caighdeánach do chomharthaí neamh-idirmhalartacha, amhail gníomhas le haghaidh saothar ealaíne nó amhrán. +- [ERC-1155](/developers/docs/standards/tokens/erc-1155/) - Ceadaíonn ERC-1155 trádáil níos éifeachtaí agus cuachadh idirbheart – rud a shábhálann costais. Ceadaíonn an caighdeán chomharthaí seo comharthaí áirgiúlachta a chruthú (cosúil le $BNB nó $BAT) agus Comharthaí Neamh-idirmhalartacha cosúil le CryptoPunks. + +Liosta iomlán de thograí [ERC](https://eips.ethereum.org/erc). + +## Tuilleadh léitheoireachta {#further-reading} + +_Ar eolas agat ar acmhainn pobail a chabhraigh leat? Cuir an leathanach seo in eagar agus cuir leis!_ + +## Ranganna teagaisc a bhaineann leo {#related-tutorials} + +- [Seicliosta comhtháthaithe comharthaí](/developers/tutorials/token-integration-checklist/) _- Seicliosta de na rudaí is cóir a chur san áireamh agus tú ag idirghníomhú le comharthaí._ +- [Conradh cliste comharthaí ERC20 a thuiscint](/developers/ tutorials/understand-the-erc-20-token-smart-contract/) _– Réamhrá ar do chéad chonradh cliste a imscaradh ar líonra tástála Ethereum._ +- [Aistrithe agus faomhadh comharthaí ERC20 ó chonradh cliste Solidity](/developers/tutorials/transfers-and-approval-of-erc-20-tokens-from-a-solidity-smart-contract/) _– Conas conradh cliste a úsáid chun idirghníomhú le comhartha ag baint úsáide as an teanga Solidity._ +- [Margadh ERC721 a chur i bhfeidhm [treoir déanaimh]](/developers/tutorials/how-to-implement-an-erc721-market/) _- Conas earraí comharthaíochta a chur ar díol ar chlár aicmithe díláraithe._ diff --git a/public/content/translations/ga/events/index.md b/public/content/translations/ga/events/index.md new file mode 100644 index 00000000000..20c9e6499ca --- /dev/null +++ b/public/content/translations/ga/events/index.md @@ -0,0 +1,24 @@ +--- +title: Imeachtaí Ethereum +description: Conas a bheith páirteach sa phobal Ethereum. +lang: ga +hideEditButton: true +--- + +# Imeachtaí atá le teacht {#events} + +** Gach mí, bíonn mórimeachtaí Ethereum ar fud an domhain.** Smaoinigh ar fhreastal ar cheann in aice leat chun bualadh le níos mó daoine sa phobal, foghlaim faoi dheiseanna fostaíochta, agus scileanna nua a fhorbairt. + + + +Is liosta neamh-iomlán é seo arna chothabháil ag ár bpobal. Ar an eolas faoi imeacht Ethereum atá le teacht chun cur leis an liosta seo? [Cuir leis an liosta seo é le do thoil](https://github.com/ethereum/ethereum-org-website/blob/dev/src/data/community-events.json)! + +## Cruinnithe Ethereum {#meetups} + +Nach bhfeiceann tú imeacht a oibríonn duit? Bain triail as páirt a ghlacadh i gcruinniú. Is imeachtaí níos lú iad Cruinnithe a reáchtálann grúpaí díograiseoirí Ethereum - deis do dhaoine a bhfuil suim acu in Ethereum teacht le chéile, labhairt faoi Ethereum, agus foghlaim faoi fhorbairtí le déanaí. + + + +An bhfuil suim agat do chruinniú féin a bhunú? Féach ar an [ Líonra BUIDL ](https://consensys.net/developers/buidlnetwork/), tionscnamh de chuid ConsenSys chun cabhrú le tacú le pobail chruinnithe Ethereum. + +Is liosta neamh-iomlán é seo a chuir ár bpobal le chéile. Is féidir leat [tuilleadh cruinnithe Ethereum a fháil anseo](https://www.meetup.com/topics/ethereum/). An bhfuil eolas agat ar ghrúpa cruinnithe gníomhach le cur leis an liosta seo? [Cuir leis an liosta seo é le do thoil](https://github.com/ethereum/ethereum-org-website/blob/dev/src/data/community-meetups.json)! diff --git a/public/content/translations/ga/foundation/index.md b/public/content/translations/ga/foundation/index.md new file mode 100644 index 00000000000..1d8349a3cef --- /dev/null +++ b/public/content/translations/ga/foundation/index.md @@ -0,0 +1,40 @@ +--- +title: Fondúireacht Ethereum +description: Foghlaim faoi Fhondúireacht Ethereum (EF), eagraíocht neamhbhrabúis atá tiomanta do thacaíocht a thabhairt do Ethereum agus teicneolaíochtaí gaolmhara. +hideEditButton: true +lang: ga +--- + +# Maidir leis an Fondúireacht Ethereum {#about-the-ethereum-foundation} + + + +Is eagraíocht neamhbhrabúis í an [Fondúireacht Ethereum](http://ethereum.foundation/) (EF) atá tiomanta do thacaíocht a thabhairt do [Ethereum](/what-is-ethereum/) agus teicneolaíochtaí gaolmhara. + +Ní cuideachta, nó fiú neamhbhrabúis thraidisiúnta í an EF. Ní hé an ról atá acu Ethereum a rialú ná a threorú, agus ní hiad an t-aon eagraíocht a mhaoiníonn forbairt chriticiúil ar theicneolaíochtaí a bhaineann le Ethereum. Is cuid amháin d' [éiceachóras](/community/) atá i bhfad níos mó an EF. + +## Tionscnaimh Fondúireacht Ethereum {#ethereum-foundation-initiatives} + +### Clár Tacaíochta Éiceachórais {#ecosystem-support-program} + +Tá an [Clár Tacaíochta Éiceachórais](https://esp.ethereum.foundation/) ann chun tacaíocht airgeadais agus neamhairgeadais araon a sholáthar do thionscadail agus d’eintitis laistigh de mhórphobal Ethereum, chun fás an éiceachórais a luathú. Is leathnú é an Clár Tacaíochta Éiceachórais ar an mbunchlár Deontas Ethereum a dhírigh go príomha ar thacaíocht airgeadais. + +Foghlaim tuilleadh faoin gClár Tacaíochta Éiceachórais, faighteoirí deontais roimhe seo, agus an próiseas iarratais ar dheontas ag [esp.ethereum.foundation](https://esp.ethereum.foundation/). Is féidir leat féachaint freisin ar [Blag an Chláir Tacaíochta don Éiceachóras](https://blog.ethereum.org/category/ecosystem-support-program/) nó [@EF_ESP](https://twitter.com/EF_ESP) a leanúint le haghaidh na nuachta agus na bhfógraí is déanaí atá acu. + +### Devcon {#devcon} + +Ó 2014, d'eagraigh Fondúireacht Ethereum Devcon, an chomhdháil bhliantúil d'fhorbróirí, taighdeoirí, smaointeoirí agus déantóirí Ethereum go léir. + +Is féidir leat rochtain a fháil ar ábhar físe de láithreoireachtaí comhdhála gach bliain ó cuireadh tús leis ag [archive.devcon.org](https://archive.devcon.org/). + +Foghlaim tuilleadh ag [devcon.org](https://devcon.org/), seiceáil an [Blag Devcon](https://devcon.org/en/blogs/), nó lean [@efdevcon](https://twitter.com/EFDevcon) le haghaidh na bhfógraí is déanaí. + +### Clár Comhaltachta {#fellowship-program} + +Is tionscnamh é [Clár Comhaltachta Fhondúireacht Ethereum](https://fellowship.ethereum.foundation/) chun cabhrú le dul i ngleic le bearnaí san ionadaíocht thar chultúir, náisiúntachtaí agus aicmí eacnamaíocha. Is éard atá i gceist leis an gClár Comhaltachta ná na bearnaí seo a líonadh trí dhaoine aonair cumasacha a aithint agus a thacú chun cabhrú le hábharthacht Ethereum a chumasú, agus deireadh a chur le bacainní iontrála do na daoine agus na pobail tearc-ionadaithe sin a bheidh mar thodhchaí Web3. + +[Foghlaim tuilleadh ag comhaltacht.ethereum.foundation](https://fellowship.ethereum.foundation/). + +
+ +Le haghaidh tuilleadh eolais ar an bhForas agus a gcuid oibre, tabhair cuairt ar [ethereum.foundation](http://ethereum.foundation/), nó féach ar [Blag Fondúireacht Ethereum](https://blog.ethereum.org/) le haghaidh na nuachta agus na bhfógraí is déanaí ón EF. diff --git a/public/content/translations/ga/governance/index.md b/public/content/translations/ga/governance/index.md index e5ae00ad54b..ac06adc7b47 100644 --- a/public/content/translations/ga/governance/index.md +++ b/public/content/translations/ga/governance/index.md @@ -20,17 +20,17 @@ Ní le haon duine amháin é prótacal Ethereum nó níl sé á rialú ag duine ## Rialachas Ethereum {#ethereum-governance} -Is é rialachas Ethereum an próiseas trína ndéantar athruithe prótacail. Tá sé tábhachtach a chur in iúl nach bhfuil baint ag an bpróiseas seo leis an gcaoi a n-úsáideann daoine agus feidhmchláir an prótacal - tá Ethereum gan chead. Anyone from anywhere in the world can participate in onchain activities. Níl aon rialacha leagtha síos maidir le cé hiad atá in ann agus cé hiad nach bhfuil in ann iarratas a dhéanamh nó idirbheart a sheoladh. Mar sin féin, tá próiseas ann chun athruithe a mholadh ar an gcroíphrótacal, a ritheann feidhmchláir dhíláraithe ar a bharr. Ós rud é go bhfuil an oiread sin daoine ag brath ar chobhsaíocht Ethereum, tá tairseach comhordaithe an-ard ann le haghaidh athruithe lárnacha, lena n-áirítear próisis shóisialta agus theicniúla, chun a chinntiú go bhfuil aon athruithe ar Ethereum slán agus go dtacaíonn an pobal go forleathan leo. +Is é rialachas Ethereum an próiseas trína ndéantar athruithe prótacail. Tá sé tábhachtach a chur in iúl nach bhfuil baint ag an bpróiseas seo leis an gcaoi a n-úsáideann daoine agus feidhmchláir an prótacal - tá Ethereum gan chead. Is féidir le duine ar bith ó áit ar bith ar domhan páirt a ghlacadh i ngníomhaíochtaí ar slabhra. Níl aon rialacha leagtha síos maidir le cé hiad atá in ann agus cé hiad nach bhfuil in ann iarratas a dhéanamh nó idirbheart a sheoladh. Mar sin féin, tá próiseas ann chun athruithe a mholadh ar an gcroíphrótacal, a ritheann feidhmchláir dhíláraithe ar a bharr. Ós rud é go bhfuil an oiread sin daoine ag brath ar chobhsaíocht Ethereum, tá tairseach comhordaithe an-ard ann le haghaidh athruithe lárnacha, lena n-áirítear próisis shóisialta agus theicniúla, chun a chinntiú go bhfuil aon athruithe ar Ethereum slán agus go dtacaíonn an pobal go forleathan leo. -### Onchain vs offchain governance {#onchain-vs-offchain} +### Rialachas ar slabhra vs as slabhra {#onchain-vs-offchain} -Blockchain technology allows for new governance capabilities, known as onchain governance. Onchain governance is when proposed protocol changes are decided by a stakeholder vote, usually by holders of a governance token, and voting happens on the blockchain. With some forms of onchain governance, the proposed protocol changes are already written in code and implemented automatically if the stakeholders approve the changes via signing a transaction. +Ceadaíonn teicneolaíocht Blocshlabhra cumais rialachais nua, ar a dtugtar rialachas ar slabhra. Is éard atá i gceist le rialachas ar slabhra ná nuair a chinntear athruithe prótacail atá beartaithe le vóta páirtithe leasmhara, de ghnáth ag sealbhóirí dearbháin rialachais, agus tarlaíonn vótáil ar an mblocshlabhra. Le roinnt cineálacha rialachais ar slabhra, tá na hathruithe prótacail atá beartaithe scríofa sa chód cheana féin agus cuirtear chun feidhme iad go huathoibríoch má fhormheasann na páirtithe leasmhara na hathruithe trí idirbheart a shíniú. -The opposite approach, offchain governance, is where any protocol change decisions happen through an informal process of social discussion, which, if approved, would be implemented in code. +Is é an cur chuige contrártha, rialachas eisshlabhra, ná nuair a dhéantar aon chinntí maidir le hathrú prótacail trí phróiseas neamhfhoirmiúil plé sóisialta, a chuirfí chun feidhme sa chód dá gceadófaí é. -**Ethereum governance happens offchain** with a wide variety of stakeholders involved in the process. +**Tarlaíonn rialachas Ethereum lasmuigh den slabhra** le raon leathan geallsealbhóirí páirteach sa phróiseas. -_Whilst at the protocol level Ethereum governance is offchain, many use cases built on top of Ethereum, such as DAOs, use onchain governance._ +_Cé go bhfuil rialachas Ethereum as slabhra ag leibhéal an phrótacail, úsáideann go leor cásanna úsáide a tógadh ar bharr Ethereum, mar DAO, rialachas ar slabhra._ Tuilleadh faoi DAO @@ -180,5 +180,5 @@ Níl an rialachas in Ethereum sainmhínithe go docht. Tá dearcthaí éagsúla a - [Cad is croífhorbróir Ethereum ann?](https://hudsonjameson.com/2020-06-22-what-is-an-ethereum-core-developer/) - _Hudson Jameson_ - [Rialachas, Cuid 2: Tá an plútacratachas fós go dona](https://vitalik.eth.limo/general/2018/03/28/plutocracy.html) - _Vitalik Buterin_ - [Ag bogadh níos faide ná rialachas vótála boinn](https://vitalik.eth.limo/general/2021/08/16/voting3.html) - _Vitalik Buterin _ -- [Understanding Blockchain Governance](https://research.2077.xyz/understanding-blockchain-governance) - _2077 Research_ -- [The Ethereum Government](https://www.galaxy.com/insights/research/ethereum-governance/) - _Christine Kim_ +- [Rialachas Blocshlabhra a Thuiscint](https://research.2077.xyz/understanding-blockchain-governance) - _Taighde 2077_ +- [Rialtas Ethereum](https://www.galaxy.com/insights/research/ethereum-governance/) - _Christine Kim_ diff --git a/public/content/translations/ga/history/index.md b/public/content/translations/ga/history/index.md new file mode 100644 index 00000000000..0708c7a27b0 --- /dev/null +++ b/public/content/translations/ga/history/index.md @@ -0,0 +1,675 @@ +--- +title: Stair agus Forcanna Ethereum +description: Stair na blocshlabhra Ethereum lena n-áirítear clocha míle móra, scaoileadh, agus forcanna. +lang: ga +sidebarDepth: 1 +--- + +# Stair Ethereum {#the-history-of-ethereum} + +Amlíne de na mórspriocanna, forcanna, agus nuashonruithe ar blocshlabhra Ethereum. + + + +Is éard is foirc ann ná nuair is gá uasghráduithe nó athruithe móra teicniúla a dhéanamh ar an líonra – go hiondúil eascraíonn siad ó Moltaí Feabhsúcháin Ethereum (EIPs) agus athraíonn siad "rialacha" an phrótacail. + +Nuair a bhíonn gá le huasghráduithe ar bhogearraí traidisiúnta atá rialaithe go lárnach, foilseoidh an comhlacht leagan nua don úsáideoir deiridh. Oibríonn Blocshlabhraí ar bhealach difriúil toisc nach bhfuil aon úinéireacht lárnach ann. Ní mór do chliaint Ethereum a mbogearraí a nuashonrú chun na rialacha foirc nua a chur i bhfeidhm. Ní mór do chruthaitheoirí bloc Plus (mianadóirí i ndomhan cruthúnas-oibre, bailíochtóirí i ndomhan cruthúnas-gealláil) agus nóid bloic a chruthú agus bailíochtú a dhéanamh i gcoinne na rialacha nua. Tuilleadh faoi mheicníochtaí comhthola + +Féadfaidh na hathruithe rialacha seo scoilt shealadach a chruthú sa líonra. D’fhéadfaí bloic nua a tháirgeadh de réir na rialacha nua nó na seanchinn. Is gnách go n-aontaítear foirc roimh an am ionas go nglacfaidh na cliaint leis na hathruithe d'aon ghuth agus go dtiocfaidh an forc leis na huasghráduithe ar an bpríomhshlabhra. I gcásanna neamhchoitianta, áfach, d’fhéadfadh easaontais faoi fhoirc a bheith ina gcúis le scoilt bhuan sa líonra – go háirithe cruthú Ethereum Classic leis an bhforc DAO. + + + + + +Tá na bogearraí atá mar bhonn le Ethereum comhdhéanta de dhá leath, ar a dtugtar an [ciseal forghníomhaithe](/glossary/#execution-layer) agus an [ciseal comhdhearcadh](/glossary/#consensus-layer). + +** Ainmniú uasghrádaithe feidhmiúcháin** + +Ó 2021 i leith, ainmnítear uasghrádú ar an **ciseal forghníomhaithe** de réir ainmneacha cathracha [suíomhanna Devcon roimhe seo]( https://devcon.org/en/past-events/) in ord croineolaíoch: + +| Uasghrádú Ainm | Bliain Devcon | Uimhir Devcon | Dáta Uasghrádaithe | +| ------------ | ----------- | ------------- | ------------ | +| Beirlín | 2014 | 0 | 15 Aibreán, 2021 | +| Londain | 2015 | mé | 5 Lúnasa, 2021 | +| Shanghai | 2016 | II | 12 Aibreán, 2023 | +| Cancún | 2017 | III | 13 Márta, 2024 | +| **Prág** | 2018 | IV | TBD - Ar Aghaidh | +| _Osaka_ | 2019 | V | TBD | +| _Bogota_ | 2022 | VI | TBD | +| _Bancác_ | 2024 | VII | TBD | + +**Uasghrádú comhthola** + +Ó seoladh an [Beacon Chain](/gluais/#beacon-chain), ainmnítear uasghráduithe ar an **ciseal comhdhearcadh** i ndiaidh réaltaí neamhaí ag tosú le litreacha a théann ar aghaidh in ord aibítre: + +| Uasghrádú Ainm | Dáta Uasghrádaithe | +| ----------------------------------------------------------- | ------------ | +| Géineas Slabhra Beacon | 1 Nollaig, 2020 | +| [Altair]( https://ga.wikipedia.org/wiki/Altair) | 27 Deireadh Fómhair, 2021 | +| [Bellatrix]( https://ga.wikipedia.org/wiki/Bellatrix) | 6 Meán Fómhair, 2022 | +| [Capella]( https://ga.wikipedia.org/wiki/Capella) | 12 Aibreán, 2023 | +| [Deneb]( https://ga.wikipedia.org/wiki/Deneb) | 13 Márta, 2024 | +| [**Electra**]() | TBD - Ar Aghaidh | +| [_Fulu_]() | TBD | + +**Ainmniú comhcheangailte** + +Cuireadh an forghníomhú agus na huasghráduithe comhaontaithe i bhfeidhm ar dtús ag amanna éagsúla, ach tar éis [An Cumasc](/treochlár/cumasc/) in 2022 tá siad seo imlonnaithe go comhuaineach. Mar sin, tháinig téarmaí comhghleacaithe chun cinn chun tagairtí do na huasghráduithe seo a shimpliú trí úsáid a bhaint as téarma comhcheangailte amháin. Thosaigh sé seo leis an uasghrádú _Shanghai-Capella_, dá ngairtear "**Shapella**" de ghnáth, agus leantar leis leis na huasghráduithe _Cancun-Deneb_ (**Dencun**), agus _Prague-Electra_ (**Pectra**). + +| Uasghrádú Forghníomhaithe | Uasghrádú Comhdhearcadh | Gearrainm | +| ---------------- | ---------------- | ---------- | +| Shanghai | Capella | "Shapella" | +| Cancún | Deneb | "Dencun" | +| Prág | Leictreacha | "Peictra" | +| Osaka | Fliú | "Fusaka" | + + + +Téigh díreach chuig eolas faoi chuid de na huasghráduithe thar a bheith tábhachtach san am a chuaigh thart: [An Slabhra Beacon](/roadmap/beacon-chain/); [An Cumasc](/roadmap/merge/); agus [EIP-1559](#london) + +An bhfuil tú ag lorg uasghráduithe prótacail amach anseo? [Faigh amach faoi uasghráduithe atá le teacht ar an treochlár Ethereum](/roadmap/). + + + +## 2025 {#2025} + +### Prág-Electra ("Pectra", _ar siúl_) {#pectra} + + + +Áiríonn uasghrádú Prág-Electra ("Pectra") roinnt feabhsuithe ar an bprótacal Ethereum atá dírithe ar an taithí a fheabhsú do gach úsáideoir, líonraí ciseal 2, páirtithe leasmhara agus oibreoirí nód. + +Faigheann Páirtithe leasmhara uasghrádú le cuntais bhailíochtóirí a chumasc, agus rialú feabhsaithe ar chistí geallta ag baint úsáide as an seoladh aistarraingthe forghníomhaithe. Méadaíonn EIP-7251 an t-iarmhéid uasta éifeachtach do bhailitheoir aonair go dtí 2048, ag feabhsú éifeachtúlacht chaipitil do gheallsealbhóirí. Ceadaíonn EIP-7002 do chuntas forghníomhaithe gníomhartha bailíochtóra a spreagadh go slán, lena n-áirítear codanna de na cistí a fhágáil nó a tharraingt siar, feabhas a chur ar an taithí do pháirtithe leasmhara ETH, agus ag an am céanna cuidiú le cuntasacht oibreoirí nód a neartú. + +Díríonn codanna eile den uasghrádú ar an taithí a fheabhsú d’úsáideoirí rialta. Tugann EIP-7702 an cumas do chuntas rialta neamhchonartha cliste ([EOA](/glossary/#eoa)) cód cosúil le conradh cliste a fhorghníomhú. Díghlasálann sé seo feidhmiúlacht nua neamhtheoranta do chuntais thraidisiúnta Ethereum, amhail baisceáil idirbheart, urraíocht gháis, fíordheimhniú malartach, rialuithe caiteachais in-ríomhchláraithe, meicníochtaí aisghabhála cuntais agus go leor eile. + + + +Taithí úsáideora níos fearr: + +
    +
  • EIP-7702 - Socraigh cód cuntais EOA
  • +
  • EIP-7691 - Méadú tréchur Bloba
  • +
  • EIP-7623 - Méadaigh costas sonraí glao
  • +
  • EIP-7840 - Cuir sceideal bloba le comhaid chumraíochta EL
  • +
+ +Taithí gealltóireachta níos fearr: + +
    +
  • EIP-7251 - Méadaigh an MAX_EFFECTIVE_BALANCE
  • +
  • EIP-7002 - Ciseal feidhmithe aschuir intriailte
  • +
  • EIP-7685 - Iarratais sraithe forghníomhaithe cuspóir ginearálta
  • +
  • EIP-6110 - Cuir taiscí bailíochtóra ar slabhra
  • +
+ +Feabhsuithe éifeachtúlachta agus slándála Prótacail: + +
    +
  • EIP-2537 - Réamh-thiomsú le haghaidh oibríochtaí cuar BLS12-381
  • +
  • EIP-2935 - Sábháil haise bloc stairiúil sa stát
  • +
  • EIP-7549 - Bog innéacs coiste lasmuigh den Fhianú
  • +
+ +
+ +- [Pectra.wtf](https://pectra.wtf) +- [Conas a chuirfidh Pectra le heispéireas na ngealltóireachta](https://www.kiln.fi/post/next-ethereum-upgrade-how-pectra-will-enhance-the-staking-experience) +- [Léigh na sonraíochtaí uasghrádaithe Electra](https://github.com/ethereum/consensus-specs/blob/dev/specs/electra/) +- [Ceisteanna Coitianta Prág-Electra ("Pectra")](/roadmap/pectra/) + + + +## 2024 {#2024} + +### Cancun-Deneb ("Dencun") {#dencun} + + + +#### Achoimre Cancun {#cancun-summary} + +Tá sraith feabhsuithe in uasghrádú Cancun ar _forghníomhú_ Ethereum atá dírithe ar inscálaitheacht a fheabhsú, i dteannta le huasghráduithe comhthola Deneb. + +Áirítear leis seo go háirithe EIP-4844, ar a dtugtar **Proto-Danksharding**, rud a laghdaíonn go suntasach an costas stórála sonraí le haghaidh rolladh suas ciseal 2. Baintear é seo amach trí "blobaí" sonraí a thabhairt isteach a ligeann do rolladh suas sonraí a phostáil chuig Príomhlíonra ar feadh tréimhse ghearr ama. Mar thoradh air seo tá táillí idirbhirt i bhfad níos ísle d'úsáideoirí rolladh suas ciseal 2. + + + +
    +
  • EIP-1153 - Opcodes stórála neamhbhuan
  • +
  • EIP-4788 - Fréamh bloc Beacon san EVM
  • +
  • EIP-4844 - Idirbhearta blobaí géara (Proto-Danksharding)
  • +
  • EIP-5656 - MCOPY - Treoir maidir le cóipeáil chuimhne
  • +
  • EIP-6780 - SELFDESTRUCT ach amháin san idirbheart céanna
  • +
  • EIP-7516 - BLOBBASEFEE opchód
  • +
+ +
+ +- [Rollálacha Ciseal 2](/layer-2/) +- [Proto-Danksharding](/roadmap/scaling/#proto-danksharding) +- [Danksharding](/roadmap/danksharding/) +- [Léigh an tsonraíocht uasghrádú Cancun](https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/cancun.md) + +#### Achoimre Deneb {#deneb-summary} + +In uasghrádú Deneb tá sraith feabhsuithe ar _chomhthoil_ Ethereum atá dírithe ar inscálaitheacht a fheabhsú. Tagann an t-uasghrádú seo in éineacht le huasghráduithe forghníomhaithe Cancun chun Proto-Danksharding (EIP-4844) a chumasú, chomh maith le feabhsuithe eile ar an Slabhra Beacon. + +Ní théann “teachtaireachtaí imeachta deonacha” sínithe réamhghinte in éag a thuilleadh, rud a thugann níos mó smachta d’úsáideoirí atá i mbun a gcuid cistí le hoibreoir nód tríú páirtí. Leis an teachtaireacht scoir sínithe seo, is féidir le páirtithe leasmhara oibriú nóid a tharmligean agus an cumas acu imeacht go sábháilte agus a gcuid cistí a tharraingt siar ag am ar bith, gan cead a iarraidh ó dhuine ar bith. + +Tugann EIP-7514 géarú ar eisiúint ETH tríd an ráta “churn” a theorannú gur féidir le bailíochtóirí dul isteach sa líonra go hocht (8) in aghaidh na haga. Os rud é go bhfuil eisiúint ETH comhréireach leis an ETH iomlán atá i gceist, cuireann teorainn le líon na mbailitheoirí a cheanglaíonn teorainn leis an _ráta fáis_ den ETH nua-eisithe, agus laghdaítear riachtanais chrua-earraí na n-oibreoirí nód freisin, rud a chabhraíonn le dílárú. + + + +
    +
  • EIP-4788 - Fréamh bloc Beacon san EVM
  • +
  • EIP-4844 - Idirbhearta Shard bloba
  • +
  • EIP-7044 - Imeachtaí deonacha sínithe a bheidh bailí go buan
  • +
  • EIP-7045 - Sliotán cuimsithe fianuithe uasta a mhéadú
  • +
  • EIP-7514 - Cuir an t-uasteorainn maistreáin aga leis
  • +
+ +
+ +- [Léigh na sonraíochtaí uasghrádaithe Deneb](https://github.com/ethereum/consensus-specs/blob/dev/specs/deneb/) +- [Ceisteanna Coitianta Cancun-Deneb ("Dencun")](/roadmap/dencun/) + + + +## 2023 {#2023} + +### Shanghai-Capella ("Shapella") {#shapella} + + + +#### Achoimre Shanghai {#shanghai-summary} + +Thug uasghrádú Shanghai aistarraingtí geallta chuig an gciseal forghníomhaithe. In éineacht le huasghrádú Capella, chuir sé seo ar chumas na mbloic oibríochtaí aistarraingthe a ghlacadh, rud a fhágann gur féidir le páirtityhe leasmhara a ETH a tharraingt siar ón Slabhra Beacon go dtí an ciseal forghníomhaithe. + + + +
    +
  • EIP-3651 - Cuireann sé tús leis an seoladh COINBASE
  • +
  • EIP-3855Treoir nua PUSH0
  • +
  • EIP-3860 - Teorainn agus cód ionchuir an mhéadair
  • +
  • EIP-4895 - Aistarraingtí brú slabhra Beacon mar oibríochtaí
  • +
  • EIP-6049 - Cáin an SELFDESTRUCT
  • +
+ +
+ +- [Léigh an tsonraíocht uasghrádú Shanghai](https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/shanghai.md) + +#### Capella achoimre {#capella-summary} + +Ba é uasghrádú Capella an tríú uasghrádú mór ar an gciseal comhdhearcadh (Slabhra Beacon) agus chuir sé ar chumas aistarraingtí geallta. Tharla Capella go sioncronach leis an uasghrádú ciseal forghníomhaithe, Shanghai, agus chuir sé ar chumas feidhmiúlacht aistarraingthe geallta. + +Thug an t-uasghrádú comhaontaithe seo ar chumas na bpáirtithe leasmhara nár chuir a n-éarlais aistarraingthe tosaigh ar fáil é sin a dhéanamh, rud a d'éascaigh aistarraingtí. + +Sholáthair an t-uasghrádú feidhmiúlacht um scuabadh cuntas uathoibríoch freisin, a phróiseálann cuntais bhailitheoirí go leanúnach le haghaidh aon íocaíochtaí luaíochta atá ar fáil nó aistarraingtí iomlána. + +- [Tuilleadh maidir le haistarraingtí geallta](/staking/withdrawals/). +- [Léigh na sonraíochtaí uasghrádú Capella](https://github.com/ethereum/consensus-specs/blob/dev/specs/capella/) + + + +## 2022 {#2022} + +### Páras (An Cumasc) {#paris} + + + +#### Achoimre {#paris-summary} + +Spreag an t-uasghrádú i bPáras mar gheall ar an mblocshlabhra cruthúnais-oibre agus [deacracht iomlán críochfoirt](/glossary/#terminal-total-difficulty) de 5875000000000000000000. Tharla sé seo ag bloc 15537393 ar an 15ú Meán Fómhair 2022, rud a chuir tús le huasghrádú Pháras an chéad bhloc eile. Ba é [An Cumasc](/roadmap/merge/) an t-aistriú i bPáras - ba é an phríomhghné a bhí aige ná an t-algartam mianadóireachta [cruthúnas-oibre](/developers/docs/consensus-mechanisms/pow) agus an loighic chomhaontaithe a bhaineann leis a mhúchadh agus [cruthúnas-geallála](/developers/docs/consensus-mechanisms/pos) ina ionad sin. Ba uasghrádú é Páras féin ar na [cliaint forghníomhaithe](/developers/docs/nodes-and-clients/#execution-clients) (comhionann le Bellatrix ar an tsraith chomhthoil) a chuir ar a gcumas teagasc a ghlacadh óna gcuid cliant [cliaint chomhthoil ceangailte](/developers/docs/nodes-and-clients/#consensus-clients). Chuige seo bhí gá le sraith nua modhanna inmheánacha API, ar a dtugtar le chéile an [tInneall API](https://github.com/ethereum/execution-apis/blob/main/src/engine/common.md), a ghníomhachtú. D’fhéadfaí a áitiú gurbh é seo an t-uasghrádú is suntasaí i stair Ethereum ó [Homestead](#homestead)! + +- [Léigh sonraíocht uasghrádaithe Pháras](https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/paris.md) + + + +
    +
  • EIP-3675 - Uasghrádaigh comhthoil go Cruthúnas-Geallála
  • +
  • EIP-4399Opcód DEACRACHT le PREVRANDAO a fhorchur
  • +
+ +
+ +--- + +### Bellatrix {#bellatrix} + + + +#### Achoimre {#bellatrix-summary} + +Ba é uasghrádú Bellatrix an dara huasghrádú sceidealaithe don [ Slabhra Beacon](/roadmap/beacon-chain), ag ullmhú an tslabhra don [Chumasc](/roadmap/merge/). Tugann sé pionóis bhailitheora chuig a luachanna iomlána maidir le neamhghníomhaíocht agus cionta inghearrtha. Áiríonn Bellatrix freisin nuashonrú ar na rialacha maidir le rogha na bhforc chun an slabhra a ullmhú le haghaidh An Cumasc agus an t-aistriú ón mbloc cruthúnas-oibre go dtí an chéad bhloc cruthúnas-geallála. Áirítear leis seo cliaint comhthola a chur ar an eolas faoin [deacracht iomlán críochfoirt](/glossary/#terminal-total-difficulty) de 587500000000000000000. + +- [Léigh an tsonraíocht uasghrádaithe Bellatrix](https://github.com/ethereum/consensus-specs/tree/dev/specs/bellatrix) + +--- + +### Gray Glacier {#gray-glacier} + + + +#### Achoimre {#gray-glacier-summary} + +Bhrúigh uasghrádú líonra an Oighearshruth Liath an [buama deacrachta](/glossary/#difficulty-bomb) siar ar feadh trí mhí. Is é seo an t-aon athrú a tugadh isteach san uasghrádú seo, agus tá sé cosúil ó thaobh nádúr leis na huasghráduithe [Oighearshruth Arrow](#arrow-glacier) agus [Oighearshruth Muir](#muir-glacier). Rinneadh athruithe cosúla ar uasghrádú líonra [Byzantium](#byzantium), [Constantinople](#constantinople) agus [Londain](#london). + +- [Blag EF - Fógra Uasghrádaithe Oighearshruth Liath](https://blog.ethereum.org/2022/06/16/gray-glacier-announcement/) + + + +
    +
  • EIP-5133 - moill ar an mbuama deacrachta go dtí Meán Fómhair 2022
  • +
+ +
+ + + +## 2021 {#2021} + +### Arrow Glacier {#arrow-glacier} + + + +#### Achoimre {#arrow-glacier-summary} + +Bhrúigh uasghrádú líonra Arrow Glacier an [buama deacrachta](/glossary/#difficulty-bomb) siar roinnt míonna. Seo an t-aon athrú a tugadh isteach san uasghrádú seo, agus tá sé cosúil ó thaobh nádúr leis an uasghrádú [Glacier Muir](#muir-glacier). Rinneadh athruithe cosúla ar uasghrádú líonra [Byzantium](#byzantium), [Constantinople](#constantinople) agus [Londain](#london). + +- [Blag EF - Fógra faoi Uasghrádú Arrow Glacier](https://blog.ethereum.org/2021/11/10/arrow-glacier-announcement/) +- [Ethereum Cat Herders - Uasghrádú Ethereum Arrow Glacier](https://medium.com/ethereum-cat-herders/ethereum-arrow-glacier-upgrade-e8d20fa4c002) + + + + + + + +--- + +### Altair {#altair} + + + +#### Achoimre {#altair-summary} + +Ba é uasghrádú Altair an chéad uasghrádú sceidealaithe don [Beacon Slabhra](/roadmap/beacon-chain). Chuir sé tacaíocht le "coistí sioncronaithe" - rud a chumasaíonn cliaint éadroma, agus méadú ar neamhghníomhaíocht bhailitheoirí agus pionóis a ghearradh de réir mar a chuaigh an fhorbairt ar aghaidh i dtreo An Cumasc. + +- [Léigh an tsonraíocht uasghrádaithe Altair](https://github.com/ethereum/consensus-specs/tree/dev/specs/altair) + +#### Fíric spraoi! {#altair-fun-fact} + +Ba é Altair an chéad mhór-uasghrádú líonra a raibh aga céimneach beacht aige. Bhí gach uasghrádú roimhe seo bunaithe ar uimhir bhloc dearbhaithe ar an slabhra cruthúnais-oibre, áit a mbíonn éagsúlacht ag baint le hamanna na mbloc. Ní éilíonn an Slabhra Beacon réiteach le haghaidh cruthúnais-oibre, agus ina ionad sin oibríonn sé ar chóras aga bunaithe ar am a chuimsíonn 32 "sliotán" dhá soicind dhéag nuair is féidir le bailíochtóirí bloic a mholadh. Sin é an fáth go raibh a fhios againn go díreach cathain a bhuailfeadh muid an aga 74,240 agus go mbeadh Altair beo! + +- [Am bloic](/developers/docs/blocks/#block-time) + +--- + +### Londain {#london} + + + +#### Achoimre {#london-summary} + +Thug uasghrádú Londain isteach [EIP-1559](https://eips.ethereum.org/EIPS/eip-1559), a rinne athchóiriú ar mhargadh na dtáillí idirbheartaíochta, mar aon le hathruithe ar an gcaoi a láimhseáiltear aisíocaíochtaí gáis agus an sceideal [Oighearaois](/glossary/#ice-age). + +#### Cad a bhí i gceist le hUasghrádú Londain / EIP-1559? {#eip-1559} + +Roimh Uasghrádú Londain, bhí bloic de mhéid seasta ag Ethereum. Nuair a bhí éileamh ard ar an líonra, d'oibrigh na bloic seo ag a lánacmhainneacht. Mar thoradh air sin, b'éigean d'úsáideoirí fanacht go minic go laghdófaí an t-éileamh chun iad a áireamh i mbloc, rud a d'eascair droch-eispéireas úsáideora. Thug Uasghrádú Londain bloic de mhéid athraitheach isteach chuig Ethereum. + +Athraíodh an bealach a ríomhadh táillí idirbheart ar líonra Ethereum le [Uasghrádú Londain](/history/#london) i mí Lúnasa 2021. Roimh uasghrádú Londain, ríomhadh táillí gan táillí `bonn` agus `priority` a scaradh, mar a leanas: + +Ligean le rá go raibh Alice a íoc Bob 1 ETH. San idirbheart, is é 21,000 aonad an teorainn gháis, agus is é 200 gwei an praghas gáis. + +Ba é an táille iomlán ná: `Gas units (limit) * Praghas gáis an aonaid` i.e `21,000 * 200 = 4,200,000 gwei` nó 0.0042 ETH + +Mar gheall ar chur i bhfeidhm [EIP-1559](https://eips.ethereum.org/EIPS/eip-1559) san Uasghrádú Londain rinneadh meicníocht na dtáillí idirbhirt níos casta, ach rinneadh táillí gáis níos intuartha, rud a d’fhág go raibh margadh táillí idirbhirt níos éifeachtaí. Is féidir le húsáideoirí idirbhearta a chur isteach le `maxFeePerGas` a fhreagraíonn don mhéid atá siad sásta a íoc as an idirbheart a chur i gcrích, agus fios acu nach n-íocfaidh siad níos mó ná an praghas margaidh le haghaidh gáis (`baseFeePerGas`), agus aon airgead breise a fháil, lúide a leid, aisíoctha. + +Míníonn an físeán seo EIP-1559 agus na buntáistí a bhaineann leis: [EIP-1559 Mínithe](https://www.youtube.com/watch?v=MGemhK9t44Q) + +- [An forbróir dapp thú? Bí cinnte do leabharlanna agus uirlisí a uasghrádú.](https://github.com/ethereum/execution-specs/blob/master/network-upgrades/london-ecosystem-readiness.md) +- [Léigh an fógra Fondúireacht Ethereum](https://blog.ethereum.org/2021/07/15/london-mainnet-announcement/) +- [Léigh an míniú ar Ethereum Cat Herder](https://medium.com/ethereum-cat-herders/london-upgrade-overview-8eccb0041b41) + + + +
    +
  • EIP-1559 - feabhsaítear margadh na dtáillí idirbhirt
  • +
  • EIP-3198 - seolann an BASEFEE ar ais ó bhloc
  • +
  • EIP-3529 - laghdaíonn sé aisíocaíochtaí gáis le haghaidh oibríochtaí EVM
  • +
  • EIP-3541 - coisctear conarthaí a imscaradh ag tosú le 0xEF
  • +
  • CuireannEIP-3554 - moill ar an Oighearaois go dtí Nollaig 2021
  • +
+ +
+ +--- + +### Beirlín {#berlin} + + + +#### Achoimre {#berlin-summary} + +Le huasghrádú Bheirlín rinneadh an costas gáis optamaithe le haghaidh gníomhartha áirithe EVM, agus méadaítear an tacaíocht d’ilchineálacha idirbheart. + +- [Léigh an fógra Fondúireacht Ethereum](https://blog.ethereum.org/2021/03/08/ethereum-berlin-upgrade-announcement/) +- [Léigh an míniú ar Ethereum Cat Herder](https://medium.com/ethereum-cat-herders/the-berlin-upgrade-overview-2f7ad710eb80) + + + +
    +
  • EIP-2565 - laghdaíonn costas gáis ModExp
  • +
  • EIP-2718 - cumasaíonn sé tacaíocht níos éasca le haghaidh cineálacha éagsúla idirbheart
  • +
  • EIP-2929méaduithe ar chostais gháis le haghaidh roghanna rochtana stáit ar opchóid
  • +
  • EIP-2930 - cuirtear liostaí rochtana roghnacha leis
  • +
+ +
+ + + +## 2020 {#2020} + +### Géineas Slabhra Beacon {#beacon-chain-genesis} + + + +#### Achoimre {#beacon-chain-genesis-summary} + +Theastaigh ón [Slabhra Beacon](/roadmap/beacon-chain/) 16384 taisce de 32 ETH greamaithe le seoladh go slán. Tharla sé seo an 27 Samhain, rud a chiallaíonn gur thosaigh an Beacon Chain ag táirgeadh bloic an 1 Nollaig, 2020. Is céim thábhachtach í seo chun [fís Ethereum](/roadmap/vision/) a bhaint amach. + +[Léigh an fógra Fondúireacht Ethereum](https://blog.ethereum.org/2020/11/27/eth2-quick-update-no-21/) + + + An Slabhra Beacon + + +--- + +### Conradh taisce ghealltanais imscartha {#staking-deposit-contract} + + + +#### Achoimre {#deposit-contract-summary} + +Leis an gconradh taisce gealltanais tugadh isteach [geallta](/glossary/#staking) d'éiceachóras Ethereum. Cé gur conradh [Príomhlíonra](/glossary/#mainnet) é, bhí tionchar díreach aige ar an amlíne chun an [Slabhra Beacon](/roadmap/beacon-chain/) a sheoladh, [uasghrádú ar an Ethereum](/roadmap/) tábhachtach. + +[Léigh an fógra Fondúireacht Ethereum](https://blog.ethereum.org/2020/11/04/eth2-quick-update-no-19/) + + + Geallchur + + +--- + +### Muir Glacier {#muir-glacier} + + + +#### Achoimre {#muir-glacier-summary} + +Chuir an forc Muir Glacier moill ar an [bhuama deacrachta](/glossary/#difficulty-bomb). Mar gheall ar mhéaduithe ar bhlocdheacrachtaí a bhain leis an meicníocht chomhaontaithe [cruthúnas-oibre](/developers/docs/consensus-mechanisms/pow/), bhíothas ag iarraidh díghrádú a dhéanamh ar inúsáidteacht Ethereum trí amanna feithimh a mhéadú chun idirbhearta a sheoladh agus dapps a úsáid. + +- [Léigh an fógra Fondúireacht Ethereum](https://blog.ethereum.org/2019/12/23/ethereum-muir-glacier-upgrade-announcement/) +- [Léigh an míniú ar Ethereum Cat Herder](https://medium.com/ethereum-cat-herders/ethereum-muir-glacier-upgrade-89b8cea5a210) + + + +
    +
  • EIP-2384 - moillíonn an buama deacrachta ar feadh 4,000,000 bloc eile, nó ~611 lá.
  • +
+ +
+ + + +## 2019 {#2019} + +### Iostanbúl {#istanbul} + + + +#### Achoimre {#istanbul-summary} + +An forc Iostanbúl: + +- Optamaíodh costas [gáis](/glossary/#gas) gníomhartha áirithe san [EVM](/developers/docs/ethereum-stack/#ethereum-virtual-machine). +- Athléimneacht ionsaithe diúltaithe feabhsaithe. +- Rinne [ scálú Sraith 2](/developers/docs/scaling/#layer-2-scaling) réitigh níos feidhmiúla bunaithe ar SNARKs agus STARKs. +- Ar chumas Ethereum agus Zcash idiroibriú. +- Conarthaí ceadaithe chun feidhmeanna níos cruthaithí a thabhairt isteach. + +[Léigh an fógra Fondúireacht Ethereum](https://blog.ethereum.org/2019/11/20/ethereum-istanbul-upgrade-announcement/) + + + +
    +
  • EIP-152 - lig do Ethereum oibriú le hairgeadra caomhnaithe príobháideachta cosúil le Zcash.
  • +
  • EIP-1108cripteagrafaíocht níos saoire chun costais gáis a fheabhsú.
  • +
  • EIP-1344 - cosnaíonn sé Ethereum ar ionsaithe athimeartha trí CHAINID opemcode a chur leis.
  • +
  • EIP-1884praghsanna gáis opcode a bharrfheabhsú bunaithe ar thomhaltas.
  • +
  • EIP-2028laghdaíonn costas CallData chun tuilleadh sonraí a cheadú i mbloic – maith do Sraith 2.
  • +
  • EIP-2200athruithe eile ar phraghas an gháis opcode.
  • +
+ +
+ +--- + +### Constantinople {#constantinople} + + + +#### Achoimre {#constantinople-summary} + +An forc Constantinople: + +- Luach saothair bloc laghdaithe [mining](/developers/docs/consensus-mechanisms/pow/mining/) ó 3 go 2 ETH. +- Cinntíodh nár reo an blocshlabhra sular cuireadh [cruthúnas-de-gealláil i bhfeidhm](#beacon-chain-genesis). +- Optamaíodh costas [gáis](/glossary/#gas) gníomhartha áirithe san [EVM](/developers/docs/ethereum-stack/#ethereum-virtual-machine). +- Cuireadh leis an gcumas idirghníomhú le seoltaí nár cruthaíodh fós. + +[Léigh an fógra Fondúireacht Ethereum](https://blog.ethereum.org/2019/02/22/ethereum-constantinople-st-petersburg-upgrade-announcement/) + + + +
    +
  • EIP-145 - uasmhéadaíonn sé costas gníomhartha áirithe ar slabhra.
  • +
  • EIP-1014 - ceadaíonn sé duit idirghníomhú le seoltaí atá fós le cruthú.
  • +
  • EIP-1052 – tugann isteach an treoir EXTCODEHASH chun hais chód conartha eile a fháil.
  • +
  • EIP-1234 - Cinntíonn nach reoiteann an blocshlabhra roimh chruthúnas i gceist agus laghdaítear luach saothair bloc ó 3 go 2 ETH.
  • +
+ +
+ + + +## 2017 {#2017} + +### Byzantium {#byzantium} + + + +#### Achoimre {#byzantium-summary} + +An forc Byzantium: + +- Luach saothair bloc laghdaithe [mianadóireacht](/developers/docs/consensus-mechanisms/pow/mining/) ó 5 go 3 ETH. +- Cuireadh moill bliana ar an [deacracht](/glossary/#difficulty-bomb). +- Cumas breise chun glaonna gan athrú stáit a dhéanamh ar chonarthaí eile. +- Cuireadh modhanna áirithe cripteagrafaíochta leis chun [scálú ciseal 2](/developers/docs/scaling/#layer-2-scaling) a cheadú. + +[Léigh an fógra Fondúireacht Ethereum](https://blog.ethereum.org/2017/10/12/byzantium-hf-announcement/) + + + +
    +
  • EIP-140 - Cuireann REVERT opcode leis.
  • +
  • EIP-658réimse stádais curtha le hadmhálacha idirbheart chun rath nó teip a léiriú.
  • +
  • EIP-196 – cuireann cuar éilipseach agus iolrú scálach le ligean do ZK-Snarks.
  • +
  • EIP-197 – cuireann cuar éilipseach agus iolrú scálach leis chun ZK-Snarks a cheadú.
  • +
  • EIP-198 - cumasaíonn sé fíorú sínithe RSA.
  • +
  • EIP-211 - Cuireann sé tacaíocht le haghaidh luachanna aischuir faid athraitheach.
  • +
  • EIP-214 - cuireann chód opcode leis an STATICCALL, rud a cheadaíonn glaonna nach n-athraíonn an stát ar chonarthaí eile.
  • +
  • EIP-100 - athraíonn an fhoirmle coigeartaithe deacrachta.
  • +
  • EIP-649moilleanna buama deacrachta faoi 1 bhliain agus laghdaítear luach saothair bloc ó 5 go 3 ETH.
  • +
+ +
+ + + +## 2016 {#2016} + +### Spurious Dragon {#spurious-dragon} + + + +#### Achoimre {#spurious-dragon-summary} + +Ba é forc Spurious Dragon an dara freagra ar na hionsaithe um dhiúltú seirbhíse (DoS) ar an líonra (Meán Fómhair/Deireadh Fómhair 2016), lena n-áirítear: + +- praghsáil opcode a thiúnadh chun ionsaithe ar an líonra amach anseo a chosc. +- “debloat” an stáit blocshlabhra a chumasú. +- ag cur cosaint ó athionsaí. + +[Léigh an fógra Fondúireacht Ethereum](https://blog.ethereum.org/2016/11/18/hard-fork-no-4-spurious-dragon/) + + + +
    +
  • EIP-155coisctear idirbhearta ó shlabhra Ethereum amháin a athchraoladh ar shlabhra eile, mar shampla idirbheart líonra tástála a athchraoladh ar an bpríomhshlabhra Ethereum.
  • +
  • EIP-160coigeartaíonn sé praghsanna EXP opcode – bíonn sé níos deacra an líonra a mhoilliú trí oibríochtaí conartha atá costasach go ríomhaireacht.
  • +
  • EIP-161 - ceadaíonn cuntais fholmha a cuireadh leis trí na hionsaithe DOS a bhaint.
  • +
  • EIP-170 – athraíonn an méid cóid uasta is féidir a bheith ag conradh ar an mblocshlabhra – go 24576 bytes.
  • +
+ +
+ +--- + +### Tangerine whistle {#tangerine-whistle} + + + +#### Achoimre {#tangerine-whistle-summary} + +Ba é forc Tangerine Whistle an chéad fhreagra ar ionsaithe ar dhiúltú seirbhíse (DoS) ar an líonra (Meán Fómhair/Deireadh Fómhair 2016), lena n-áirítear: + +- aghaidh a thabhairt ar shaincheisteanna práinneacha sláinte líonra a bhaineann le cóid oibríochta atá praghasáillte ró-íseal. + +[Léigh an fógra Fondúireacht Ethereum](https://blog.ethereum.org/2016/10/18/faq-upcoming-ethereum-hard-fork/) + + + +
    +
  • EIP-150 – méadaíonn costais gháis na gcód opcode is féidir a úsáid in ionsaithe turscair.
  • +
  • EIP-158laghdaítear méid an stáit trí líon mór cuntas folamh a cuireadh sa stát ar chostas an-íseal a bhaint de bharr lochtanna i leaganacha níos luaithe de phrótacal Ethereum.
  • +
+ +
+ +--- + +### Forc DAO {#dao-fork} + + + +#### Achoimre {#dao-fork-summary} + +Bhí forc DAO mar fhreagra ar [ionsaí DAO 2016](https://www.coindesk.com/learn/understanding-the-dao-attack/) nuair a [DAO](/glossary/ / Draenáladh conradh #dao) de níos mó ná 3.6 milliún ETH i hac. Bhog an forc na cistí ón gconradh lochtach go [draenáladh conradh neamhchinnte nua](https://etherscan.io/address/0xbf4ed7b27f1d666546e30d74d50d173d20bca754) le feidhm amháin: tarraingt siar. D'fhéadfadh duine ar bith a chaill cistí 1 ETH a tharraingt siar in aghaidh gach 100 comhartha DAO ina gcuid sparán. + +Vótáil pobal Ethereum ar son na gníomhaíochta seo. Bhí aon sealbhóir ETH in ann vótáil trí idirbheart ar [ardán vótála](https://web.archive.org/web/20170620030820/http://v1.carbonvote.com/). Bhain an cinneadh chun forcála os cionn 85% de na vótaí. + +Dhiúltaigh roinnt mianadóirí forc toisc nach raibh an teagmhas DAO ina locht sa phrótacal. Lean siad ar aghaidh chun [Ethereum Classic](https://ethereumclassic.org/) a chruthú. + +[Léigh an fógra Fondúireacht Ethereum](https://blog.ethereum.org/2016/07/20/hard-fork-completed/) + +--- + +### Homestead {#homestead} + + + +#### Achoimre {#homestead-summary} + +An forc Homestead a d’fhéach ar an todhchaí. Áiríodh leis roinnt athruithe prótacail agus athrú líonraithe a thug an cumas do Ethereum uasghrádú líonra breise a dhéanamh. + +[Léigh an fógra Fondúireacht Ethereum](https://blog.ethereum.org/2016/02/29/homestead-release/) + + + +
    +
  • EIP-2 – déanann athruithe ar an bpróiseas cruthaithe conartha.
  • +
  • EIP-7 - cuireann cód op nua leis: DELEGATECALL
  • +
  • EIP-8tugann sé isteach ceanglais um chomhoiriúnacht ar aghaidh devp2p
  • +
+ +
+ + + +## 2015 {#2015} + +### Leá teorainn {#frontier-thawing} + + + +#### Achoimre {#frontier-thawing-summary} + +D'ardaigh an forc leá teorann an teorainn 5,000 [gáis](/glossary/#gas) in aghaidh an [bloc](/glossary/#block) agus socraíodh praghas réamhshocraithe an gháis go 51 [gwei](/glossary/#gwei). Cheadaigh sé seo idirbhearta – éilíonn idirbhearta 21,000 gás. Tugadh isteach an [buama deacrachta](/glossary/#difficulty-bomb) chun forc crua amach anseo a chinntiú do [cruthúnas-geallta](/glossary/#pos). + +- [Léigh an fógra Fondúireacht Ethereum](https://blog.ethereum.org/2015/08/04/the-thawing-frontier/) +- [Léigh an Nuashonrú Prótacal Ethereum 1](https://blog.ethereum.org/2015/08/04/ethereum-protocol-update-1/) + +--- + +### Teorainn {#frontier} + + + +#### Achoimre {#frontier-summary} + +Bhí Frontier ina chur i bhfeidhm beo, ach neamhthógtha, ar thionscadal Ethereum. Lean sé céim na tástála Oilimpeacha rathúil. Bhí sé dírithe ar úsáideoirí teicniúla, go háirithe forbróirí. Bhí teorainn [gáis](/glossary/#gas) ag [Blocanna](/glossary/#block) de 5,000. Chuir an tréimhse ‘leáite’ seo ar chumas na mianadóirí tús a chur lena n-oibríochtaí agus d’uchtaitheoirí luatha a gcuid cliant a shuiteáil gan brú a bheith orthu. + +[Léigh an fógra Fondúireacht Ethereum](https://blog.ethereum.org/2015/07/22/frontier-is-coming-what-to-expect-and-how-to-prepare/) + + + +## 2014 {#2014} + +### Díol Éitear {#ether-sale} + + + +Chuaigh Éitear ar díol go hoifigiúil ar feadh 42 lá. D'fhéadfá é a cheannach le BTC. + +[Léigh an fógra Fondúireacht Ethereum](https://blog.ethereum.org/2014/07/22/launching-the-ether-sale/) + +--- + +### Páipéar buí eisithe {#yellowpaper} + + + +Is sainmhíniú teicniúil ar phrótacal Ethereum é an Páipéar Buí, a scríobh an Dr. Gavin Wood. + +[Féach ar an bPáipéar Buí](https://github.com/ethereum/yellowpaper) + + + +## 2013 {#2013} + +### Páipéar bán eisithe {#whitepaper} + + + +An páipéar tosaigh, arna fhoilsiú in 2013 ag Vitalik Buterin, bunaitheoir Ethereum, roimh sheoladh an tionscadail i 2015. + + + Páipéar bán + diff --git a/public/content/translations/ga/how-to-create-an-ethereum-account/index.md b/public/content/translations/ga/how-to-create-an-ethereum-account/index.md new file mode 100644 index 00000000000..69b569835a9 --- /dev/null +++ b/public/content/translations/ga/how-to-create-an-ethereum-account/index.md @@ -0,0 +1,73 @@ +--- +title: Conas cuntas Ethereum a "chruthú" +description: Treoir céim ar chéim ar chruthú cuntas Ethereum ag baint úsáide as sparán. +lang: ga +--- + +# Conas cuntas Ethereum a chruthú + +**Is féidir le duine ar bith cuntas Ethereum a chruthú saor in aisce.** Níl le déanamh agat ach aip crypto-sparán a shuiteáil. Cruthaíonn agus bainistíonn Sparán do chuntas Ethereum. Is féidir leo idirbhearta a sheoladh, seiceáil ar do chuid iarmhéideanna agus tú a nascadh le haipeanna eile atá tógtha ar Ethereum. + +Le sparán is féidir leat freisin logáil isteach ar aon mhalartán comharthaí, cluichí, aonaigh[NFT](/glossary/#nft) láithreach bonn. Níl gá le clárú aonair, roinntear cuntas amháin do gach aip a tógadh ar Ethereum. + +## Céim 1: Roghnaigh sparán + +Is aip é sparán a chuidíonn leat do chuntas Ethereum a bhainistiú. Tá mórán sparán éagsúla le roghnú astu: síntí soghluaiste, deisce, nó fiú brabhsálaí. + + + + Liosta sparán + + +Más duine nua thú, is féidir leat an scagaire “Nua le criptiú” a roghnú ar an leathanach “aimsigh sparán” chun sparán a shainaithint ar cheart go n-áireofaí iontu na gnéithe riachtanacha go léir atá oiriúnach do thosaitheoirí. + +![Scag an rogha ar an leathanach 'faigh sparán'](./wallet-box.png) + +Tá scagairí próifíle eile ann freisin chun freastal ar do chuid riachtanas. Is samplaí iad seo de sparán a úsáidtear go coitianta - ba cheart duit do thaighde féin a dhéanamh sula gcuireann tú muinín in aon bhogearraí. + +## Céim 2: Íoslódáil agus suiteáil do aip sparáin + +Nuair a bheidh cinneadh déanta agat ar sparán ar leith, tabhair cuairt ar a láithreán gréasáin oifigiúil nó siopa aipeanna, a íoslódáil agus a shuiteáil. Ba chóir go mbeadh gach ceann acu saor. + +## Céim 3: Oscail an aip agus déan do chuntas Ethereum a chruthú + +An chéad uair a osclaíonn tú do sparán nua b’fhéidir go n-iarrfar ort rogha a dhéanamh idir cuntas nua a chruthú nó cuntas atá ann cheana a iompórtáil. Cliceáil ar chruthú cuntais nua. **Seo an chéim lena ngineann na bogearraí sparán do chuntas Ethereum.** + +## Céim 4: Stóráil do fhrása athshlánaithe + +Iarrfaidh roinnt aipeanna ort "frása athshlánaithe" rúnda a shábháil (ar a dtugtar "frása síl" nó "neamónach" uaireanta). Tá sé thar a bheith tábhachtach an frása seo a choinneáil slán! Úsáidtear é seo chun do chuntas Ethereum a ghiniúint agus is féidir é a úsáid chun idirbhearta a chur isteach. + +**Is féidir le duine ar bith a bhfuil an frása ar eolas aige smacht a fháil ar na cistí go léir.** Ná roinn é seo le haon duine choíche. Ba chóir go mbeadh idir 12 agus 24 focal a gineadh go randamach san abairt seo (tá ord na bhfocal tábhachtach). + +
+ +
Sparán suiteáilte?
Foghlaim conas é a úsáid.
+ + Conas sparán a úsáid + +
+
+ +Spéis agat i dtreoracha eile? Breathnaigh ar ár: [dtreoracha céim ar chéim](/guides/) + +## Ceisteanna coitianta + +### An bhfuil mo sparán agus mo chuntas Ethereum mar an gcéanna? + +Ní féidir. Is uirlis bhainistíochta é an sparán a chuidíonn leat cuntais a bhainistiú. D'fhéadfadh go mbeadh rochtain ag sparán aonair ar roinnt cuntas, agus is féidir rochtain a fháil ar chuntas amháin trí il-sparáin. Úsáidtear an frása athshlánaithe chun cuntais a chruthú agus tugann sé cead d’aip sparán chun sócmhainní a bhainistiú. + +### An féidir liom bitcoin a sheoladh chuig seoladh Ethereum, nó éitear chuig seoladh Bitcoin? + +Ní féidir leat. Tá Bitcoin agus éitear ar dhá líonra ar leith (i.e. blocshlabhraí éagsúla), agus a bhformáidí leabharchoimeád agus tá a seoltaí féin ag gach ceann acu. Rinneadh iarrachtaí éagsúla an dá líonra difriúla a dhúnadh, agus is é an ceann is gníomhaí faoi láthair ná [Wrapped Bitcoin nó WBTC](https://www.bitcoin.com/get-started/what-is-wbtc/). Ní moladh é seo, toisc gur réiteach coimeádta é WBTC (a chiallaíonn go rialaíonn grúpa amháin daoine feidhmeanna ríthábhachtacha áirithe) agus cuirtear ar fáil anseo é chun críocha faisnéise amháin. + +### Má tá seoladh ETH agam, an liomsa an seoladh céanna ar bhlocshlabhraí eile? + +Is féidir leat an [seoladh](/glossary/#address) céanna a úsáid ar gach blocshlabhra a úsáideann bogearraí bunúsacha atá cosúil le Ethereum (ar a dtugtar 'EVM-compatible'). Taispeánfaidh an [liosta](https://chainlist.org/) duit na blocshlabhraí is féidir leat a úsáid leis an seoladh céanna. Cuireann roinnt blocshlabhraí, cosúil le Bitcoin, sraith rialacha líonra ar leithligh i bhfeidhm agus beidh seoladh difriúil uait le formáid dhifriúil. Má tá sparán conartha cliste agat ba cheart duit a láithreán gréasáin táirge a sheiceáil le haghaidh tuilleadh faisnéise maidir leis na blocshlabhraí a dtugtar tacaíocht dóibh mar go hiondúil go bhfuil raon feidhme teoranta ach níos sláine acu siúd. + +### An bhfuil mo sparán féin níos sábháilte ná mo chistí a choinneáil ar mhalartú? + +Má tá do sparán féin agat, glacann tú freagracht as slándáil do shócmhainní. Ar an drochuair tá go leor samplaí de mhalartuithe teipthe a chaill airgead a gcustaiméirí. Má shealbhaíonn tú sparán (le frása athshlánaithe) cuirtear deireadh leis an riosca a bhaineann le muinín a bheith agat as aonán éigin as do chuid sócmhainní a shealbhú. Mar sin féin, caithfidh tú féin é a dhaingniú agus scamálacha fioscaireachta a sheachaint, idirbhearta a cheadú trí thimpiste nó frása athshlánaithe a nochtadh, idirghníomhú le láithreáin ghréasáin falsa agus rioscaí féinchoinneála eile. Tá na rioscaí agus na tairbhí difriúil. + +### Má chaillim mo ghuthán/sparán crua-earraí, an gá dom an aip sparán céanna a úsáid arís chun na cistí caillte a aisghabháil? + +Níl, is féidir leat sparán difriúil a úsáid. Chomh fada agus a bhfuil an frása síl agat is féidir leat é a chur isteach i bhformhór na sparán agus tabharfaidh siad do chuntas ar ais. Bí cúramach más gá duit é seo a dhéanamh riamh: is fearr a chinntiú nach bhfuil tú ceangailte leis an idirlíon nuair a bhíonn do sparán á athshlánú agat ionas nach sceitear ​​​​d'fhrása síl de thaisme. Is minic go bhfuil sé dodhéanta cistí caillte a ghnóthú gan an frása athshlánaithe. diff --git a/public/content/translations/ga/roadmap/index.md b/public/content/translations/ga/roadmap/index.md index 4ee44167604..52a16dbbacc 100644 --- a/public/content/translations/ga/roadmap/index.md +++ b/public/content/translations/ga/roadmap/index.md @@ -109,7 +109,7 @@ Is ionann sciartha agus an blocshlabhra Ethereum a roinnt ionas nach mbeidh fo- ## Ag lorg uasghráduithe teicniúla ar leith? {#looking-for-specific-technical-upgrades} -- [Pectra](/roadmap/pectra) - Prague/Electra hardfork that brings new approach to account abstraction, improves scalability and more. +- [Pectra](/roadmap/pectra) - forc crua Prág/Electra a thugann cur chuige nua maidir le hastarraingt cuntas, a fheabhsaíonn inscálaithe agus tuilleadh. - [Danksharding](/roadmap/danksharding) - Déanann Danksharding rolluithe ciseal 2 i bhfad níos saoire d'úsáideoirí trí “blobaí” sonraí a chur le bloic Ethereum. - [Aistarraingtí geallta](/staking/backals) - Chuir uasghrádú Shanghai/Capella ar chumas aistarraingtí geallta ar Ethereum, rud a chuir ar chumas daoine a ETH geallta a dhíghlasáil. - [Críochnaitheacht sliotán aonair](/roadmap/single-slot-finality) - In ionad fanacht cúig nóiméad déag, d'fhéadfaí bloic a mholadh agus a thabhairt chun críche sa sliotán céanna. Tá sé seo níos áisiúla do aipeanna agus i bhfad níos deacra a ionsaí. diff --git a/public/content/translations/ga/whitepaper/index.md b/public/content/translations/ga/whitepaper/index.md new file mode 100644 index 00000000000..29eb932746c --- /dev/null +++ b/public/content/translations/ga/whitepaper/index.md @@ -0,0 +1,517 @@ +--- +title: Páipéar Bán Ethereum +description: Páipéar tosaigh ar Ethereum, a foilsíodh in 2013 sular seoladh é. +lang: ga +sidebarDepth: 2 +hideEditButton: true +--- + +# Páipéar Bán Ethereum {#ethereum-whitepaper} + +_D’fhoilsigh Vitalik Buterin, bunaitheoir [Ethereum](/what-is-ethereum/) an páipéar tosaigh seo ar dtús in 2014, sular seoladh an tionscadal in 2015. Is fiú a thabhairt faoi deara go bhfuil Ethereum, cosúil le go leor tionscadal bogearraí foinse oscailte faoi stiúir an phobail, tar éis teacht chun cinn ó bunaíodh é._ + +_Cé go bhfuil sé roinnt blianta d'aois, cothabhåilimid an páipéar seo mar thagairt úsáideach agus mar léiriú cruinn ar Ethereum agus a fhís. Chun foghlaim faoi na forbairtí is déanaí ar Ethereum, agus conas a dhéantar athruithe ar an bprótacal, molaimid [an treoir seo](/learn/)._ + +[Ba cheart do thaighdeoirí agus d’acadóirí atá ag lorg leagan stairiúil nó canónach den pháipéar bán [ó Nollaig 2014] an PDF seo a úsáid.](./whitepaper-pdf/Ethereum_Whitepaper_-_Buterin_2014.pdf) + +## Conradh Cliste den Chéad Ghlúin Eile agus Ardán Iarratais Díláraithe {#a-next-generation-smart-contract-and-decentralized-application-platform} + +Is minic a luadh forbairt Satoshi Nakamoto ar Bitcoin in 2009 mar fhorbairt radacach in airgead agus airgeadra, agus é ar an gcéad sampla de shócmhainn dhigiteach nach bhfuil aon tacaíocht nó [luach intreach](http://bitcoinmagazine.com/8640/an-exploration-of-intrinsic-value-what-it-is-why-bitcoin-doesnt-have-it-and-why-bitcoin-does-have-it/)" aaige ag an am céanna ná aon eisitheoir nó rialtóir láraithe. Mar sin féin, tá cuid eile, agus níos tábhachtaí b'fhéidir, is cuid den turgnamh Bitcoin an teicneolaíocht blocshlabhra bhunúsach mar uirlis comhdhearcadh dáilte, agus tá aird ag aistriú go tapa chuig an ngné eile seo de Bitcoin. I measc na na bhfeidhmeanna eile a luaitear go coitianta le teicneolaíocht blocshlabhra tá úsáid a bhaint as sócmhainní digiteacha ar-bhlocshlabhra chun airgeadraí saincheaptha agus ionstraimí airgeadais a léiriú ("[boinn dhaite](https://docs.google.com/a/buterin.com/document/d/1AnkP_cVZTCMLIzw4DvsW6M8Q2JC0lIzrTLuoWu2z1BE/edit)"), úinéireacht feiste fisiceach bunúsach ("[airí cliste](https://en.bitcoin.it/wiki/Smart_Property)"), sócmhainní neamh-inmheasctha amhail ainmneacha fearainn ("[Namecoin](http://namecoin.org)"), chomh maith le feidhmchláir níos casta a bhaineann le sócmhainní digiteacha a bheith á rialú go díreach ag píosa cód a chuireann rialacha treallacha chun feidhme ("[conarthaí cliste](http://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/idea.html)") nó fiú blocshlabhra-bhunaithe” [eagraíochtaí uathrialaithe díláraithe](http://bitcoinmagazine.com/7050/bootstrapping-a-decentralized-autonomous-corporation-part-i/)" (DAO). Is é an rud atá beartaithe ag Ethereum a sholáthar ná blocshlabhra le teanga ríomhchláraithe Turing iomlán ionsuite le h úsáid chun "conarthaí" a chruthú le feidhmeanna aistrithe stáit treallach a ionchódú, rud a ligeann d'úsáideoirí aon cheann de na córais thuasluaite a chruthú, chomh maith le go leor eile nár samhlaíodh fós, go simplí tríd an loighic a scríobh i roinnt línte cód. + +## Réamhrá le Bitcoin agus Coincheapa Reatha {#introduction-to-bitcoin-and-existing-concepts} + +### Stair {#history} + +Tá coincheap airgeadra digiteach díláraithe, chomh maith le feidhmchláir mhalartacha cosúil le clárlanna maoine, ann le blianta. Chuir prótacail r-airgead gan ainm na 1980í agus na 1990idí, a bhí ag brath go príomha ar primitíbheach cripteagrafach ar a dtugtar dalladh Chaumian, airgeadra ardleibhéal príobháideachta ar fáil, ach theip ar na prótacail den chuid is mó aon dul chun cinn a dhéanamh mar gheall go raibh siad ag brath ar idirghabhálaí láraithe. Sa bhliain 1998, tháinig [b-money](http://www.weidai.com/bmoney.txt) de chuid Wei Dai, an chéad mholadh a thug isteach an smaoineamh airgead a chruthú trí puzail ríomhaireachtúla a réiteach chomh maith. comhdhearcadh díláraithe, ach ní raibh mórán sonraí sa togra maidir le conas a d’fhéadfaí comhdhearcadh díláraithe a chur chun feidhme i ndáiríre. In 2005, thug Hal Finney isteach coincheap de “[cruthúnais oibre in-athúsáidte](https://nakamotoinstitute.org/finney/rpow/)", córas a úsáideann smaointe ó b-airgead mar aon le puzail Hashcash ríomha deacair Adam Back le cruthú coincheap a chruthú e haghaidh criptea-airgeadra, ach arís eile theip ar an idéal trí bheith ag brath ar ríomhaireacht iontaofa mar chúl. Sa bhliain 2009, chuir Satoshi Nakamoto airgeadra dáilte i bhfeidhm den chéad uair go praiticiúil, agus é ag comhcheangal buneilimintí seanbhunaithe chun úinéireacht a bhainistiú tríd chripteagrafaíocht eochrach phoiblí le halgartam comhaontaithe chun súil a choinneáil ar cé leis na boinn, ar a dtugtar 'cruthúnas oibre'. + +Bhí an mheicníocht taobh thiar de chruthúnas oibre chun cinn sa spás toisc gur réitigh sé dhá fhadhb ag an am céanna. Ar an gcéad dul síos, sholáthraigh sé algartam comhdhearcaidh simplí agus measartha éifeachtach, rud a ligeann do nóid sa líonra aontú le chéile ar shraith nuashonruithe canónacha ar staid mhórleabhair Bitcoin. Ar an dara dul síos, chuir sé meicníocht ar fáil chun iontráil saor in aisce sa phróiseas comhthola a cheadú, chun an fhadhb pholaitiúil a réiteach maidir le cinneadh a dhéanamh cé a rachaidh i bhfeidhm ar an gcomhdhearcadh, agus ionsaithe sibil a chosc ag an am céanna. Déanann sé é seo trí bhacainn fhoirmiúil ar rannpháirtíocht a bhunú, amhail an ceanglas a bheith cláraithe mar aonán uathúil ar liosta áirithe, le bacainn eacnamaíoch - tá meáchan nód aonair sa phróiseas vótála comhthola comhréireach go díreach leis an gcumhacht ríomhaireachta. a thugann an nód. Ó shin i leith, tá cur chuige eile molta ar a dtugtar _cruthúnas-gill_, lena ríomhtar meáchan nóid mar rud atá comhréireach lena shealúchais airgeadra agus nach acmhainní ríomhaireachtúla iad; tá an plé ar thuillteanais choibhneasta an dá chur chuige lasmuigh de raon feidhme an pháipéir seo ach ba chóir a thabhairt faoi deara gur féidir an dá chur chuige a úsáid mar chnámh droma criptea-airgeadra. + +### Bitcoin Mar Chóras Idirthréimhse Staide {#bitcoin-as-a-state-transition-system} + +![Aistriú staide Ethereum](./ethereum-state-transition.png) + +Ón taobh teicniúil de, is féidir smaoineamh ar mhórleabhar criptea-airgeadra cosúil le Bitcoin mar chóras aistrithe staide, áit a bhfuil "staid" comhdhéanta de stádas úinéireachta na bitcoins go léir atá ann cheana féin agus "feidhm aistrithe staide" a thógann staid. agus idirbheart agus a aschuireann staid mar thoradh. I ngnáthchóras baincéireachta, mar shampla, is clár comhardaithe é an staid, is éard is idirbheart ann ná iarratas chun $X a aistriú ó A go B, agus laghdaíonn an fheidhm aistrithe staide an luach i gcuntas A faoi $X agus méadaítear an luach i gcuntas B. cuntas le $X. Má tá níos lú ná $X i gcuntas A ar an gcéad dul síos, filleann an fheidhm aistrithe satide earráid. Mar sin, is féidir sainmhíniú foirmiúil a thabhairt ar: + +``` +APPLY(S,TX) -> S' or ERROR +``` + +Sa chóras baincéireachta atá sainmhínithe thuas: + +```js +APPLY({ Alice: $50, Bob: $50 },"send $20 from Alice to Bob") = { Alice: $30, Bob: $70 } +``` + +Ach: + +```js +APPLY({ Alice: $50, Bob: $50 },"send $70 from Alice to Bob") = ERROR +``` + +Is éard atá sa "staid" in Bitcoin bailiúchán na monaí go léir (go teicniúil, "aschuir idirbheart neamhchaite" nó UTXO) atá buailte agus nár caitheadh ​​fós, agus tá ainmníocht agus úinéir ag gach UTXO (arna shainiú ag seoladh 20 beart a go bunúsach is eochair phoiblí chripteagrafach í[fn1](#notes)). Tá ionchur amháin nó níos mó in idirbheart, le gach ionchur ina bhfuil tagairt do UTXO atá ann cheana agus síniú cripteagrafach arna tháirgeadh ag an eochair phríobháideach a bhaineann le seoladh an úinéara, agus aschur amháin nó níos mó, le gach aschur ina bhfuil UTXO nua le cur leis an staid. + +An fheidhm trasdula stáit `APPLY(S,TX) -> Is féidir S'` a shainmhíniú go garbh mar seo a leanas: + +
    +
  1. + I gcás gach ionchur i TX: +
      +
    • + Mura bhfuil an UTXO dá dtagraítear in S, cuir earráid ar ais. +
    • +
    • + Mura dtagann an síniú a cuireadh ar fáil le húinéir an UTXO, cuir earráid ar ais. +
    • +
    +
  2. +
  3. + Más lú suim ainmníochtaí gach UTXO ionchuir ná suim ainmníochtaí gach aschuir UTXO, cuir earráid ar ais. +
  4. +
  5. + Seol S ar ais le gach ionchur UTXO bainte amach agus gach aschur UTXO curtha leis. +
  6. +
+ +Cuireann an chéad leath den chéad chéim cosc ​​ar sheoltóirí idirbheart monaí nach bhfuil ann a chaitheamh, cuireann an dara leath den chéad chéim cosc ​​ar sheoltóirí idirbheart monaí daoine eile a chaitheamh, agus cuireann an dara céim caomhnú luacha i bhfeidhm. Chun é seo a úsáid le haghaidh íocaíochta, is é seo a leanas an prótacal. Cuir i gcás go bhfuil Alice ag iarraidh 11.7 BTC a sheoladh chuig Bob. Ar an gcéad dul síos, lorgóidh Alice tacar UTXO atá ar fáil agus atá ar úinéireacht aici a bhfuil suas le 11.7 BTC ar a laghad ann. Go réadúil, ní bheidh Alice in ann 11.7 BTC a fháil go díreach; abair gurb é an ceann is lú is féidir léi a fháil ná 6+4+2=12. Cruthaíonn sí idirbheart ansin leis na trí ionchur agus dhá aschur sin. Beidh an chéad aschur 11.7 BTC le seoladh Bob mar úinéir, agus is é an dara aschur an "sóinseáil" 0.3 BTC agus Alice í féin mar úinéir. + +### Mianadóireacht {#mining} + +![Bloic Ethereum](./ethereum-blocks.png) + +Dá mbeadh teacht againn ar sheirbhís láraithe iontaofa, bheadh ​​sé éasca an córas seo a chur i bhfeidhm; d'fhéadfaí é a chódú go díreach mar a thuairiscítear, ag baint úsáide as tiomántán crua an fhreastalaí láraithe chun súil a choinneáil ar an staid. Mar sin féin, le Bitcoin táimid ag iarraidh córas airgeadra díláraithe a thógáil, agus mar sin beidh orainn an córas idirbheart staide a chomhcheangal le córas comhthola chun a chinntiú go n-aontaíonn gach duine ar ord na n-idirbheart. Éilíonn próiseas comhdhearcadh díláraithe Bitcoin nóid sa líonra iarracht leanúnach a dhéanamh ar phacáistí idirbheart ar a dtugtar "bloic" a tháirgeadh. Tá sé i gceist go gcruthóidh an líonra thart ar bhloc amháin gach deich nóiméad, agus beidh stampa ama, nonce, tagairt (i. e. hais) an bhloic roimhe seo agus liosta de na hidirbhearta go léir a tharla ón mbloc roimhe seo, i ngach bloc. Le himeacht ama, cruthaíonn sé seo "blocshlabhra" leanúnach, atá ag fás i gcónaí, a nuashonraítear i gcónaí chun an staid is déanaí den mhórleabhar Bitcoin a léiriú. + +Seo a leanas an t-algartam chun seiceáil an bhfuil bloc bailí, arna chur in iúl sa pharaidím seo: + +1. Seiceáil an bhfuil an bloc a ndearna an bloc tagairt dó roimhe seo ann agus an bhfuil sé bailí. +2. Cinntigh go bhfuil stampa ama an bhloic níos mó ná stampa ama an bhloic roimhe seo[fn2](#notes) agus níos lú ná 2 uair as seo amach +3. Seiceáil go bhfuil an cruthúnas-oibre ar an mbloc bailí. +4. Bíodh `S[0]` mar an staid ag deireadh an bhloic roimhe seo. +5. Abair gurb é `TX` liosta idirbhearta an bhloic le hidirbhearta `n`. I gcás gach `i` i `0...n-1`, socraigh `S[i+1] = APPLY(S[i],TX[i])` Má sheolann aon iarratas earráid ar ais, scoir agus seol ar ais bréagach. +6. Aischur fíor, agus cláraigh `S[n]` mar an staid ag deireadh an bhloic seo. + +Go bunúsach, ní mór do gach idirbheart sa bhloc aistriú bailí staide a sholáthar ón stát canónach a bhí ann sular cuireadh an t-idirbheart i gcrích go staid nua éigin. Tabhair faoi deara nach bhfuil an staid códaithe sa bhloc ar bhealach ar bith; níl ann ach asbhaint amháin atá le cuimhneamh ag an nód bailíochtaithe agus ní féidir é a ríomh (go slán) d'aon bhloc ach tosú ón stát geineasais agus gach idirbheart i ngach bloc a chur i bhfeidhm go seicheamhach. Ina theannta sin, tabhair faoi deara go bhfuil an t-ordú ina n-áirítear an mianadóir idirbhearta isteach sa bhloc ábhartha; má tá dhá idirbheart A agus B i mbloc den sórt sin go gcaitheann B UTXO cruthaithe ag A, ansin beidh an bloc bailí má thagann A roimh B ach ní ar shlí eile. + +Is é an coinníoll bailíochta amháin atá sa liosta thuas nach bhfuil le fáil i gcórais eile ná an ceanglas maidir le "cruthúnas-oibre". Is é an coinníoll beacht ná go gcaithfidh hais dúbailte-SHA256 gach bloic, a láimhseáiltear mar uimhir 256-ghiotán, a bheith níos lú ná sprioc arna choigeartú go dinimiciúil, atá thart ar 2187 ag am scríofa. Is é an cuspóir atá leis seo cruthú bloic a dhéanamh “deacair” go ríomhaireachtúil, agus ar an gcaoi sin cosc ​​a chur ar ionsaitheoirí sibil an blocshlabhra iomlán a athdhéanamh ina bhfabhar. Toisc go bhfuil SHA256 deartha le bheith ina fheidhm bhréige randamach nach féidir a thuar go hiomlán, is é an t-aon bhealach le bloc bailí a chruthú ná triail agus earráid, an nonce a mhéadú arís agus arís eile agus féachaint an bhfuil an hais nua ag teacht leis. + +Ag an sprioc reatha de ~2 187, caithfidh an líonra meán de ~269 iarracht a dhéanamh sula n-aimsítear bloc bailí; go ginearálta, déanann an líonra an sprioc a athchalabrú gach 2016 bloc ionas go mbeidh ar an meán bloc nua a tháirgtear ag nód éigin sa líonra gach deich nóiméad. Chun mianadóirí a chúiteamh as an obair ríomhaireachtúil seo, tá mianadóir gach bloic i dteideal idirbheart a chur san áireamh a thugann 25 BTC dóibh féin as tada. Ina theannta sin, má tá ainmníocht iomlán níos airde ag aon idirbheart ina ionchuir ná ina aschuir, téann an difríocht chuig an mianadóir mar "táille idirbhirt". Dála an scéil, is é seo an t-aon mheicníocht trína n-eisítear BTC; ní raibh boinn ar bith sa staid gheineasais. + +D'fhonn tuiscint níos fearr a fháil ar chuspóir na mianadóireachta, déanaimis scrúdú ar cad a tharlaíonn i gcás ionsaitheoir mailíseach. Ós rud é go n-aithnítear go bhfuil cripteagrafaíocht bhunúsach Bitcoin slán, díreoidh an t-ionsaitheoir ar chuid amháin den chóras Bitcoin nach bhfuil cosanta ag cripteagrafaíocht go díreach: ord na n-idirbheart. Tá straitéis an ionsaitheora simplí: + +1. Seol 100 BTC chuig ceannaí mar mhalairt ar tháirge éigin (b’fhearr earra digiteach seachad-tapa) +2. Fan le seachadadh an táirge +3. Idirbheart eile a tháirgeadh ag seoladh an 100 BTC céanna chuige féin +4. Déanann iarracht a chur ina luí ar an líonra gurb é an idirbheart chuige féin an ceann a tháinig ar dtús. + +Nuair a bheidh céim (1) déanta, tar éis cúpla nóiméad áireoidh mianadóir an t-idirbheart i mbloc, abair bloc uimhir 270000. Tar éis thart ar uair an chloig, cuirfear cúig bhloc eile leis an slabhra tar éis an bhloic sin, agus beidh gach ceann de na bloic sin ag díriú go hindíreach ar an idirbheart agus mar sin "á dhearbhú". Ag an bpointe seo, glacfaidh an ceannaí leis an íocaíocht mar atá críochnaithe agus seachadfaidh sé an táirge; ós rud é go bhfuilimid ag glacadh leis gur leas digiteach é seo, tá seachadadh láithreach ann. Anois, cruthaíonn an t-ionsaitheoir idirbheart eile a sheolann an 100 BTC chuige féin. Mura ndéantar ach an t-ionsaitheoir a scaoileadh isteach sa bhfiántas, ní dhéanfar an t-idirbheart a phróiseáil; déanfaidh mianadóirí iarracht `APPLY(S,TX)` a rith agus tabharfaidh siad faoi deara go n-ídíonn `TX` UTXO nach bhfuil sa staid níos mó. Mar sin ina ionad sin, cruthaíonn an t-ionsaitheoir "forc" den bhlocshlabhra, ag tosú trí leagan eile den bhloc 270000 a mhianadóireacht a dhíríonn ar an mbloc céanna 269999 mar thuismitheoir ach leis an idirbheart nua in ionad an tseanchinn. Toisc go bhfuil na sonraí bloc difriúil, ní mór an cruthúnas oibre a athdhéanamh. Ina theannta sin, tá hais difriúil ag leagan nua an ionsaitheora de bhloc 270000, mar sin ní dhíríonn na bloic bunaidh 270001 go 270005" air; dá bhrí sin, tá an slabhra bunaidh agus slabhra nua an ionsaitheora go hiomlán ar leithligh. Is é an riail i bhforc go nglactar leis gurb é an blocshlabhra is faide an fhírinne, agus mar sin oibreoidh mianadóirí dlisteanacha ar an slabhra 270005 agus an t-ionsaitheoir ina n-aonar ag obair ar an slabhra 270000. D'fhonn go mbeidh an t-ionsaitheoir ábalta an blocshlabhra is faide a dhéanamh as a bhlocshlabhra féin, bheadh ​​níos mó cumhachta ríomhaireachta de dhíth air ná an chuid eile den líonra le chéile chun breith suas (dá bhrí sin, "ionsaí 51%"). + +### Crainn Merkle {#merkle-trees} + +![SPV i Bitcoin](./spv-bitcoin.png) + +_Ar chlé: is leor líon beag nóid i gcrann Merkle a chur i láthair le cruthúnas a thabhairt ar bhailíocht brainse._ + +_Ar dheis: beidh neamh-chomhsheasmhacht áit éigin suas an slabhra mar thoradh ar aon iarracht ar aon chuid den chrann Merkle a athrú._ + +Gné thábhachtach de inscálaitheacht de Bitcoin ná go bhfuil an bloc stóráilte i struchtúr sonraí il-leibhéil. Níl in "hais" bloic i ndáiríre ach hais cheanntáisc an bhloic, píosa thart ar 200-beart sonraí ina bhfuil an stampa ama, nonce, hais bloic roimhe sin agus an hais fréimhe de struchtúr sonraí ar a dtugtar an crann Merkle a stóráileann gach idirbheart sa bhloc. Is cineál crann dénártha é crann Merkle, comhdhéanta de thacar nód le líon mór nóid duille ag bun an chrainn ina bhfuil na sonraí bunúsacha, tacar de nóid idirmheánacha ina bhfuil gach nód ina hais dá bheirt leanaí, agus ar deireadh nód fréimhe amháin, déanta freisin as hais a bheirt leanaí, a ionadaíonn do "bharr" an chrainn. Is é cuspóir an chrainn Merkle seachadadh na sonraí i mbloc a cheadú de réir a chéile: ní féidir le nód ach ceanntásc an bhloic a íoslódáil ó fhoinse amháin, an chuid bheag den chrann atá ábhartha dóibh ó fhoinse eile, agus fós a bheith cinnte go bhfuil na sonraí go léir ceart. Is é an fáth a n-oibríonn sé seo ná go bhfuil haiseanna ag iomadú aníos: má dhéanann úsáideoir mailíseach iarracht babhtáil in idirbheart falsa isteach ag bun crann Merkle, beidh an t-athrú seo ina chúis le hathrú ar an nód thuas, agus ansin athrú ar an nód os a chionn sin., ag athrú ar deireadh an fhréamh an chrainn agus dá bhrí sin an hais an bhloc, is cúis leis an prótacal é a chlárú mar bhloc go hiomlán difriúil (beagnach cinnte le cruthúnas-oibre neamhbhailí). + +D’fhéadfaí a mhaíomh go bhfuil prótacal crann Merkle riachtanach d’inbhuanaitheacht fhadtéarmach. Glacann "nód iomlán" sa líonra Bitcoin, ceann a stórálann agus a phróiseálann gach bloc iomlán, thart ar 15 GB de spás diosca sa líonra Bitcoin ó Aibreán 2014, agus tá sé ag fás le níos mó ná gigibheart in aghaidh na míosa. Faoi láthair, tá sé seo inmharthana do roinnt ríomhairí deisce ach níl do fhóin, agus ball ní bheidh ach gnólachtaí agus lucht caitheamh aimsire in ann a bheith rannpháirteach. Ceadaíonn prótacal ar a dtugtar "fíorú íocaíochta simplithe" (SPV) d'aicme eile nód a bheith ann, ar a dtugtar "nóid éadroma", a íoslódáil na ceanntásca bloc, an cruthúnas-oibre ar na ceanntásca bloc a fhíorú, agus ansin na "craobhacha" amháin a bhaineann le hidirbhearta a bhaineann leo a íoslódáil. Ligeann sé seo do nóid éadrom a chinneadh le ráthaíocht láidir slándála cad é stádas aon idirbheart Bitcoin, agus a n-iarmhéid reatha, gan ach cuid an-bheag den blocshlabhra iomlán a íoslódáil. + +### Feidhmchláir Bhlocshlabhra Malartacha {#alternative-blockchain-applications} + +Tá stair fhada ag baint le glacadh le bunsmaoineamh an bhlocshlabhra a lena chur i bhfeidhm ar choincheapa eile. Sa bhliain 2005, tháinig Nick Szabo amach leis an gcoincheap "[teidil maoine slán le húdarás úinéara](https://nakamotoinstitute.org/secure-property-titles/)", doiciméad a chuireann síos ar conas " le dul chun cinn nua i dteicneolaíocht na mbunachar sonraí macasamhlaithe" go mbeifear in ann córas atá bunaithe ar bhlocshlabhra chun clár a stóráil de na daoine is leis an talamh, agus cruthófar creat ilchasta lena n-áirítear coincheapa mar áitribh tí, seilbh chodarsnach agus Seoirseach. cáin talún. Ar an drochuair, ní raibh aon chóras bunachar sonraí macasamhail éifeachtach ar fáil ag an am, agus mar sin níor cuireadh an prótacal i bhfeidhm go praiticiúil. Tar éis 2009, áfach, a luaithe a forbraíodh comhdhearcadh díláraithe Bitcoin thosaigh roinnt feidhmchlár eile ag teacht chun cinn go tapa. + +- **Namecoin** - cruthaithe in 2010 - is fearr cur síos ar [Namecoin](https://namecoin.org/) mar bhunachar sonraí clárúcháin ainmneacha díláraithe. I bprótacail dhíláraithe cosúil le Tor, Bitcoin agus BitMessage, bíonn bealach éigin de dhíth chun cuntais a aithint ionas gur féidir le daoine eile idirghníomhú leo, ach i ngach réiteach atá ann cheana féin is é an t-aon aitheantóir atá ar fáil ná hais bréige randamach cosúil le `1LW79wp5ZBqaHW1jL5TCiBCrhQYtHagUWy`. Go hidéalach, ba mhaith le daoine cuntas le hainm cosúil le "george" a bheith acu. Mar sin féin, is í an fhadhb atá ann, más féidir le duine amháin cuntas darb ainm "george" a chruthú ansin is féidir le duine eile an próiseas céanna a úsáid chun "George" a chlárú dóibh féin freisin agus iad a phearsanú. Is é an réiteach amháin paraidím chéad-go-comhad, i gcás ina n-éireoidh leis an chéad chláraitheoir agus go mainneoidh an dara ceann - fadhb a oireann go foirfe do phrótacal comhdhearcadh Bitcoin. Is é Namecoin an córas clárúcháin ainmneacha is sine, agus is rathúla, a úsáideann smaoineamh den sórt sin. +- **Monaí daite** - is é cuspóir [ monaí daite](https://docs.google.com/a/buterin.com/document/d/1AnkP_cVZTCMLIzw4DvsW6M8Q2JC0lIzrTLuoWu2z1BE/edit) feidhmiú mar phrótacal chun ligean do dhaoine a n-airgeadraí digiteacha féin a chruthú - nó, i gcás tábhachtach fánach airgeadra le naonad amháin, comharthaí digiteacha, ar bhlocshlabhra Bitcoin. I bprótacal na monaí daite, "eisíonn" ceann amháin airgeadra nua trí dhath a shannadh go poiblí do Bitcoin UTXO ar leith, agus sainmhíníonn an prótacal go hathchúrsach dath UTXO eile a bheith mar an gcéanna le dath na n-ionchur a chaith an t-idirbheart a chruthaigh iad. (Bíonn roinnt rialacha speisialta i bhfeidhm i gcás ionchur dathanna measctha). Ligeann sé seo d'úsáideoirí sparáin a chothabháil nach bhfuil iontu ach UTXO de dhath ar leith agus iad a sheoladh timpeall cosúil le bitcoins rialta, ag dul siar tríd an mblocshlabhra chun dath aon UTXO a fhaigheann siad a chinneadh. +- **Meiteamhonaí** - is é an smaoineamh atá taobh thiar de mheiteamhona ná prótacal a bheith ann a chónaíonn ar bharr Bitcoin, ag baint úsáide as idirbhearta Bitcoin chun idirbhearta meiteamhona a stóráil ach a bhfuil feidhm aistrithe staide eile aige, `APPLY'`. Toisc nach féidir leis an bprótacal metacoin idirbhearta neamhbhailí metacoin a chosc ó bheith le feiceáil i mblocshlabhra Bitcoin, cuirtear riail leis má sheolann `APPLY'(S,TX)` earráid ar ais, go réamhshocrú phrótacal `APPLY'( S,TX) = S`. Soláthraíonn sé seo meicníocht éasca chun prótacal criptea-airgeadra treallach a chruthú, a bhféadfadh gnéithe casta nach féidir a chur i bhfeidhm laistigh de Bitcoin féina bheith aige, ach le costas forbartha an-íseal ós rud é go bhfuil castachtaí mianadóireachta agus líonraithe á láimhseáil cheana féin ag an bprótacal Bitcoin. Baineadh úsáid as meiteamhonaí chun aicmí áirithe conarthaí airgeadais, clárú ainmneacha agus malartú díláraithe a chur i bhfeidhm. + +Mar sin, go ginearálta, tá dhá chur chuige i dtreo prótacal comhdhearcadh a thógáil: líonra neamhspleách a thógáil, agus prótacal a thógáil ar bharr Bitcoin. Is deacair an cur chuige a bhí ann roimhe seo a chur i bhfeidhm, cé go n-éiríonn go réasúnta leis i gcás iarratais ar nós Namecoin; ní mór do gach feidhmiú aonair blocshlabhra neamhspleách a thosú, chomh maith leis an gcód aistrithe agus líonraithe staide riachtanacha go léir a thógáil agus a thástáil. Ina theannta sin, tuaraimid go leanfaidh an tsraith iarratas ar theicneolaíocht chomhdhearcaidhl díláraithe dáileadh dlí cumhachta ina mbeadh formhór mór na n-iarratas ró-bheag chun a mblocshlabhra féin a chosaint, agus tugaimid faoi deara go bhfuil aicmí móra d’iarratais díláraithe ann, go háirithe eagraíochtaí uathrialaithe díláraithe., ar gá dóibh idirghníomhú lena chéile. + +Ar an láimh eile, tá an locht ar an gcur chuige atá bunaithe ar Bitcoin nach mbíonn ghnéithe fíoraithe íocaíochta simplithe Bitcoin mar oidhreacht aige. Oibríonn SPV do Bitcoin toisc go bhféadfaidh sé doimhneacht blocshlabhra a úsáid mar sheachvótálaí bailíochta; ag pointe éigin, a luaithe a théann sinsir idirbhirt siar fada go leor, tá sé sábháilte a rá go raibh siad mar chuid den staid go dlisteanach. Ar an láimh eile, ní féidir le meitea-phrótacail atá bunaithe ar blocshlabhra iallach a chur ar an blocshlabhra gan idirbhearta nach bhfuil bailí laistigh de chomhthéacs a bprótacal féin a áireamh. Mar sin, bheadh ​​gá le meitea-phrótacal SPV a chur i bhfeidhm go hiomlán slán scanadh siar an bealach ar fad go dtí tús bhlocshlabhra Bitcoin chun a chinneadh an bhfuil idirbhearta áirithe bailí nó nach bhfuil. Faoi láthair, tá gach feidhmiúchán "éadrom" de mheiteashonraí bunaithe ar Bitcoin ag brath ar fhreastalaí iontaofa chun na sonraí a sholáthar, is féidir a mhaíomh go bhfuil toradh an-fho-optamach go háirithe nuair is é ceann de phríomhchuspóirí criptea-airgeadra deireadh a chur leis an ngá atá le muinín. + +### Scriptiú {#scripting} + +Fiú gan aon bhreisithe, éascaíonn an prótacal Bitcoin i ndáiríre leagan lag de choincheap "conarthaí cliste". Is féidir le UTXO i Bitcoin a bheith faoi úinéireacht ní hamháin le heochair phoiblí, ach freisin le script níos casta a chuirtear in iúl i dteanga cláir shimplí atá bunaithe ar chruach. Sa pharaidím seo, ní mór do UTXO sonraí a sholáthar a shásaíonn an script i gcaiteachas idirbheart. Go deimhin, cuirtear fiú an mheicníocht bhunúsach úinéireachta eochair phoiblí i bhfeidhm trí script: glacann an script síniú cuar éilipseach mar ionchur, fíoraíonn sé é i gcoinne an idirbhirt agus an seoladh ar leis an UTXO é, agus filleann sé 1 má éiríonn leis an bhfíorú agus 0 ar shlí eile. Tá scripteanna eile, níos casta, ann do chásanna úsáide breise éagsúla. Mar shampla, is féidir script a thógáil a éilíonn sínithe ó dhá cheann as trí eochair phríobháideacha áirithe le bailíochtú ("multisig"), socrú atá úsáideach do chuntais chorparáideacha, do chuntais shábháilte choigiltis agus do roinnt cásanna eascró ceannaithe. Is féidir scripteanna a úsáid freisin chun deolchairí a íoc le haghaidh réitigh ar fhadhbanna ríomhaireachtúla, agus is féidir fiú script a thógáil a deir rud éigin cosúil le "Is leatsa an Bitcoin UTXO seo más féidir leat cruthúnas SPV a sholáthar gur sheol tú idirbheart Dogecoin den ainmníocht seo chugam", go bunúsach a cheadaíonn malartú tras-criptea-airgeadra díláraithe. + +Mar sin féin, tá roinnt teorainneacha tábhachtacha ag an teanga scriptithe mar a chuirtear i bhfeidhm é i Bitcoin: + +- **Easpa iomláine Turing** - is é sin le rá, cé go bhfuil fo-thacar mór ríofa a dtacaíonn an teanga scriptithe Bitcoin leis, ní thacaíonn sé le gach rud. Is é an príomhchatagóir atá ar iarraidh ná lúba. Déantar é seo chun lúba éigríochta a sheachaint le linn fíorú idirbheart; go teoiriciúil is constaic insroichte é do ríomhchláraitheoirí scripte, mar is féidir aon lúb a insamhlú ach an bunchód a athrá go minic le ráiteas, ach bíonn scripteanna an-neamhéifeachtúil ó thaobh spáis de mar thoradh air. Mar shampla, is dócha go mbeadh gá le 256 babhta iolraithe arís agus arís eile chun algartam sínithe cuar éilips eile a chur i bhfeidhm, iad ar fad san áireamh sa chód ina n-aonar. +- **Luach-daille** - níl aon bhealach ag script UTXO chun smacht mínghlan a sholáthar ar an méid is féidir a aistarraingt. Mar shampla, cás úsáide cumhachtach amháin de chonradh oracail is ea conradh fálaithe, áit ar chuir A agus B luach $1000 BTC isteach agus tar éis 30 lá seolann an script luach $1000 BTC chuig A agus an chuid eile chuig B. Bheadh ​​gá le h oracal luach 1 BTC a chinneadh i USD, ach fiú ansin is feabhas ollmhór é i dtéarmaí iontaobhais agus riachtanas bonneagair thar na réitigh láraithe go hiomlán atá ar fáil anois. Mar sin féin, toisc go bhfuil UTXO iomlán-nó-tada, is é an t-aon bhealach chun é seo a bhaint amach trí haiceáil an-neamhéifeachtúil go leor UTXO d'ainmníochtaí éagsúla a bheith ann (m. sh. UTXO amháin de 2k in aghaidh gach k suas go dtí 30) agus an t-oracal ag piocadh cé acu UTXO le cur chuig A agus cé acu chuig B. +- **Easpa staide** - is féidir UTXO a chaitheamh nó gan é a chaitheamh; níl aon deis ann conarthaí nó scripteanna ilchéime a choimeádann aon staid inmheánach eile níos faide ná sin. Dá bharr sin bíonn sé deacair conarthaí roghanna ilchéime a dhéanamh, tairiscintí malartaithe díláraithe nó prótacail gealltanas cripteagrafach dhá chéim (riachtanach le haghaidh deolchairí ríomhaireachtúla slána). Ciallaíonn sé freisin nach féidir UTXO a úsáid ach amháin chun conarthaí simplí, aonuaire a thógáil nach bhfuil níos casta ná conarthaí “staidiúla” cosúil le heagraíochtaí díláraithe, agus déanann sé deacair meiteaphrótacail a chur i bhfeidhm. Ciallaíonn staid dhénártha in éineacht le daille luach freisin go bhfuil iarratas tábhachtach eile, teorainneacha a tharraingt siar, dodhéanta. +- **Daille-Blocshlabhra** - Tá UTXO dall ar shonraí blocshlabhra ar nós an nonce, an stampa ama agus hais an bhloic roimhe seo. Cuireann sé seo teorainn mhór le feidhmchláir sa chearrbhachas, agus go leor catagóirí eile, trí fhoinse randamachta a d’fhéadfadh a bheith luachmhar a bhaint den teanga scripte. + +Mar sin, feicimid trí chur chuige maidir le hiarratais fhorbartha a thógáil ar bharr criptea-airgeadra: blocshlabhra nua a thógáil, scriptiú a úsáid ar bharr Bitcoin, agus meitea-phrótacal a thógáil ar bharr Bitcoin. Ceadaíonn tógáil bhlocshlabhra nua saoirse neamhtheoranta maidir le tacar gnéithe a thógáil, ach ar chostas am forbartha, obair chrua agus slándáil. Tá sé éasca úsáid scripte a chur i bhfeidhm agus a chaighdeánú, ach tá sé an-teoranta ina chumais, agus tá lochtanna in inscálaithe ag baint le meiteaphrótacail, cé go bhfuil siad éasca. Le Ethereum, tá sé ar intinn againn creat malartach a thógáil a sholáthraíonn gnóthachain níos mó fós ar mhaithe le héascaíocht forbartha chomh maith le hairíonna cliant éadroma níos láidre, agus ag an am céanna a ligeann d'iarratais timpeallacht eacnamaíoch agus slándáil blocshlabhra a roinnt. + +## Ethereum {#ethereum} + +Is í aidhm Ethereum prótacal eile a chruthú chun feidhmchláir dhíláraithe a thógáil, ag soláthar tacar éagsúil trádála a chreidimid a bheidh an-úsáideach le haghaidh aicme mór d'fheidhmchláir dhíláraithe, le béim ar leith ar chásanna ina bhfuil am forbartha tapa, slándáil do dhaoine beaga agus do fheidhmchláir a úsáidtear go hannamh, agus cumas feidhmchláir éagsúla idirghníomhú go han-éifeachtach. Déanann Ethereum é seo tríd an gciseal bunúsach teibí deiridh a thógáil: blocshlabhra le teanga ríomhchlárúcháin iomlán Turing-tógtha, a ligeann do dhuine ar bith conarthaí cliste agus feidhmchláir dhíláraithe a scríobh inar féidir leo a rialacha treallacha féin a chruthú maidir le húinéireacht, formáidí idirbhirt agus feidhmeanna aistrithe staide. Is féidir leagan lom de Namecoin a scríobh in dhá líne de chód, agus is féidir prótacail eile cosúil le hairgeadraí agus córais cháile a chur isteach faoi bhun fiche. Is féidir conarthaí cliste, "boscaí" cripteagrafacha ina bhfuil luach agus nach scaoilfidh siad ach amháin má chomhlíontar coinníollacha áirithe, a thógáil freisin ar bharr an ardáin, le cumhacht i bhfad níos mó ná mar a thairgeann scripteáil Bitcoin mar gheall ar chumhachtaí breise Turing-iomláine, feasacht ar luach, feasacht bhlocshlabhra agus staid. + +### Cuntais Ethereum {#ethereum-accounts} + +In Ethereum, tá an staid comhdhéanta de rudaí ar a dtugtar "cuntais", agus tá seoladh 20 beart ag gach cuntas agus aistrithe staide mar aistrithe díreacha luacha agus faisnéise idir cuntais. Tá ceithre réimse i gcuntas Ethereum: + +- An **nonce**, áiritheoir a úsáidtear chun a chinntiú nach féidir gach idirbheart a phróiseáil ach uair amháin +- **iarmhéid éitir** reatha an chuntais +- **cód conartha** an chuntais, más ann dó +- **Stóras** an chuntais (folamh de réir réamhshocraithe) + +Is é "Éitear" príomh-bhreosla criptithe inmheánach Ethereum, agus úsáidtear é chun táillí idirbhirt a íoc. Go ginearálta, tá dhá chineál cuntais ann: **cuntais faoi úinéireacht sheachtrach**, arna rialú ag eochracha príobháideacha, agus **cuntais chonartha**, arna rialú ag a gcód conartha. Níl aon chód ag cuntas faoi úinéireacht sheachtrach, agus is féidir le duine teachtaireachtaí a sheoladh ó chuntas faoi úinéireacht sheachtrach trí idirbheart a chruthú agus a shíniú; i gcuntas conartha, gach uair a fhaigheann cuntas an chonartha teachtaireacht a ghníomhaíonn a chód, rud a ligeann dó léamh agus scríobh chuig an stóráil inmheánach agus teachtaireachtaí eile a sheoladh nó conarthaí a chruthú ar a seal. + +Tabhair faoi deara nár cheart "conarthaí" in Ethereum a fheiceáil mar rud ar cheart "a chomhlíonadh" nó "cloí leo"; in áit sin, tá siad níos mó cosúil le "gníomhairí uathrialacha" a chónaíonn taobh istigh de thimpeallacht reatha Ethereum, i gcónaí ag rith píosa sonrach cóid le "priocadh" ó theachtaireacht nó idirbheart, agus smacht díreach acu ar a n-iarmhéid éitirr féin agus a n-eochair féin / stór luach chun súil a choinneáil ar athróga leanúnacha. + +### Teachtaireachtaí agus Idirbhearta {#messages-and-transactions} + +Úsáidtear an téarma "idirbheart" in Ethereum le tagairt don phacáiste sonraí sínithe a stórálann teachtaireacht le seoladh ó chuntas faoi úinéireacht sheachtrach. Cuimsíonn na hidirbhearta: + +- Faighteoir na teachtaireachta +- Síniú lena sainaithnítear an seoltóir +- An méid éitir atá le haistriú ón seoltóir chuig an bhfaighteoir +- Réimse sonraí roghnach +- Luach `STARTGAS`, arb ionann é agus uaslíon na gcéimeanna ríomhaireachtúla a cheadaítear do rith idirbhirt +- Luach `GASPRICE`, a léiríonn an táille a íocann an seoltóir in aghaidh na céime ríomhaireachta + +Is iad na chéad trí réimsí caighdeánacha a bhfuiltear ag súil leo in aon criptea-airgeadra. Níl aon fheidhm réamhshocraithe ag an réimse sonraí, ach tá opcode ag an meaisín fíorúil trína bhféadfaidh conradh rochtain a fháil ar na sonraí; mar shampla de chás úsáide, má tá conradh ag feidhmiú mar sheirbhís chlárúcháin fearainn ar-blocshlabhra, b'fhéidir gur mhaith leis na sonraí atá á gcur ar aghaidh chuige a léirmhíniú mar go bhfuil dhá "réimse" iontu, agus is fearann ​​é an chéad réimse le clárú agus an dara réimse. réimse a bheith mar an seoladh IP chun é a chlárú. Léireodh an conradh na luachanna seo ó shonraí na teachtaireachta agus chuirfí i stóras cuí iad. + +Tá na réimsí `STARTGAS` agus `GASPRICE` ríthábhachtach do shamhail frithshéanta seirbhíse Ethereum. Chun lúba éigríochta de thaisme nó naimhdeach nó cur amú ríomhaireachtúil eile sa chód a chosc, ní mór do gach idirbheart teorainn a shocrú maidir le cé mhéad céimeanna ríomha chun cód a rith is féidir leis a úsáid. Is é "gás" an bunaonad ríomha; de ghnáth, cosnaíonn céim ríomhaireachtúil 1 ghás, ach cosnaíonn roinnt oibríochtaí méideanna níos airde gáis toisc go bhfuil siad níos costasaí ó thaobh ríomha, nó go n-ardóidh siad an méid sonraí a chaithfear a stóráil mar chuid den staid. Tá táille 5 gháis ann freisin do gach beart i sonraí an idirbhirt. Is é rún an chórais táillí go gceanglófar ar ionsaitheoir íoc go comhréireach as gach acmhainn a úsáidfidh sé, lena n‑áirítear ríomh, bandaleithead agus stóráil; mar sin, ní mór táille gháis a bheith ag gach idirbheart as a n‑ídíonn an líonra méid níos mó acmhainní ar bith atá i gcomhréir go garbh leis an incrimint. + +### Teachtaireachtaí {#messages} + +Tá sé de chumas ag conarthaí "teachtaireachtaí" a sheoladh chuig conarthaí eile. Is réada fíorúla iad teachtaireachtaí nach ndéantar srathú orthu riamh agus nach bhfuil ann ach i dtimpeallacht reatha Ethereum. Ábhar atá sa teachtaireacht: + +- Seoltóir na teachtaireachta (intuigthe) +- Faighteoir na teachtaireachta +- An méid éitir le haistriú taobh leis an teachtaireacht +- Réimse sonraí roghnach +- Luach `STARTGAS` + +Go bunúsach, tá teachtaireacht cosúil le hidirbheart, ach amháin gur conradh a tháirgtear í agus ní gníomhaí seachtrach. Léirítear teachtaireacht nuair a ritheann conradh atá á rith faoi láthair an cód opcode `CALL`, a tháirgeann agus a ritheann teachtaireacht. Cosúil le hidirbheart, is é an toradh a bhíonn ar theachtaireacht ná go n-oibríonn cuntas an fhaighteora a chód. Mar sin, is féidir caidreamh a bheith ag conarthaí le conarthaí eile ar an mbealach céanna go díreach agus is féidir le gníomhaithe seachtracha. + +Tabhair faoi deara go mbaineann an liúntas gáis arna sannta ag idirbheart nó conradh leis an ngás iomlán arna thomhailt ag an idirbheart sin agus le gach rith. Mar shampla, má sheolann gníomhaí seachtrach A idirbheart chuig B le 1000 gás, agus go n-ídíonn B 600 gás sula gcuirtear teachtaireacht chuig C, agus go n-ídíonn rith inmheánach C 300 gás sula dtéann sé ar ais, ansin is féidir le B 100 gás eile a chaitheamh roimh rith as gás. + +### Feidhm Aistrithe Staide Ethereum {#ethereum-state-transition-function} + +![Aistriú staide éitir](./ether-state-transition.png) + +Feidhm trasdula staide Ethereum, `APPLY(S,TX) -> Is féidir S'` a shainmhíniú mar seo a leanas: + +1. Seiceáil an bhfuil an t-idirbheart dea-chruthaithe (. i. an bhfuil an líon ceart luachanna ann), go bhfuil an síniú bailí, agus nach dtagann an nonce leis an nonce i gcuntas an tseoltóra. Mura bhfuil, cuir earráid ar ais. +2. Ríomh an táille idirbhirt mar `STARTGAS * GASPRICE`, agus deimhnigh an seoladh seolta ón síniú. Dealaigh an táille ó iarmhéid chuntais an tseoltóra agus incrimint an tseoltóra ar nonce. Mura bhfuil go leor iarmhéid ann le caitheamh, cuir earráid ar ais. +3. Tosaigh `GAS = STARTGAS`, agus bain de méid áirithe gáis in aghaidh an bhirt chun íoc as na bearta san idirbheart. +4. Aistrigh luach an idirbhirt ó chuntas an tseoltóra go dtí an cuntas fála. Mura bhfuil an cuntas fála ann fós, cruthaigh é. Más conradh é an cuntas fála, rith cód an chonartha go dtí go mbeidh sé críochnaithe nó go dtí go n-imeoidh an forghníomhú as gás. +5. Má theip ar an aistriú luacha toisc nach raibh go leor airgid ag an seoltóir, nó gur imigh rith an chóid as gás, cuir na hathruithe staide go léir ar ais ach amháin íoc na dtáillí, agus cuir na táillí le cuntas an mhianadóra. +6. Seachas sin, aisíoc na táillí don ghás go léir atá fágtha chuig an seoltóir, agus seol na táillí a íocadh as gás a chaitear chuig an mianadóir. + +Mar shampla, más é cód an chonartha: + +```py +if !self.storage[calldataload(0)]: + self.storage[calldataload(0)] = calldataload(32) +``` + +Tabhair faoi deara, i ndáiríre, go bhfuil cód an chonartha scríofa sa chód EVM íseal-leibhéil; tá an sampla seo scríofa i Serpent, ceann dár dteangacha ardleibhéil, ar mhaithe le soiléireacht, agus is féidir é a thiomsú síos go dtí cód EVM. Abair go dtosaíonn stóras an chonartha folamh, agus seoltar idirbheart le luach éitear 10, 2000 gás, 0.001 éitear gasprice, agus 64 beart sonraí, le bearta 0-31 a sheasann don uimhir `2` agus beart 32-63 a sheasann don teaghrán `CHARLIE`. Is é seo a leanas an próiseas don fheidhm aistrithe staide sa chás seo: + +1. Seiceáil go bhfuil an t-idirbheart bailí agus dea-chruthaithe. +2. Seiceáil go bhfuil ar a laghad 2000 \* 0.001 = 2 éitear ag seoltóir an idirbhirt. Más é, déan éitear 2 a bhaint as cuntas an tseoltóra. +3. Túsaigh gás = 2000; ag glacadh leis go bhfuil an t‑idirbheart 170 beart ar fad agus go bhfuil an beart‑táille 5, dealaigh 850 ionas go mbeidh 1150 gás fágtha. +4. Dealaigh 10 n-éitear níos mó ó chuntas an tseoltóra, agus cuir le cuntas an chonartha é. +5. Rith an cód. Sa chás seo, tá sé seo simplí: seiceálann sé an mbaintear úsáid as stóras an chonartha ag innéacs `2`, tugann sé faoi deara nach bhfuil, agus mar sin socraíonn sé an stóras ag innéacs `2` go luach `CHARLIE`. Má thógann sé seo 187 gás, mar sin is é an méid gáis atá fágtha ná 1150 - 187 = 963 +6. Cuir 963 \* 0.001 = 0.963 éitir ar ais go cuntas an tseoltóra, agus cuir ar ais an staid mar thoradh air. + +Mura mbeadh aon chonradh ag pointe glactha an idirbhirt, bheadh ​​táille iomlán an idirbhirt díreach comhionann leis an `GASPRICE` arna sholáthar arna iolrú faoi fhad an idirbhirt i mbearta, agus bheadh na sonraí a seoladh taobh leis an idirbheart ​​​​neamhábhartha. + +Tabhair faoi deara go n-oibríonn teachtaireachtaí ar chomhchéim le hidirbhearta i dtéarmaí fillte: má ritheann rith teachtaireachta as gás, ansin filleann rith na teachtaireachta sin, agus gach rith eile a spreag an forghníomhú sin, ar ais, ach ní gá do rith tuismitheora filleadh. Ciallaíonn sé seo go bhfuil sé "sábháilte" do chonradh glaoch ar chonradh eile, mar má ghlaonn A ar B le G gás ansin ráthaítear go gcaillfidh rith A gás G ar a mhéad. Ar deireadh, tabhair faoi deara go bhfuil opcode ann, `CREATE`, a chruthaíonn conradh; tá a mheicníochtaí reatha cosúil go ginearálta le `CALL`, cé is moite de go gcinneann aschur an reatha cód conartha nuachruthaithe. + +### Rith Cóid {#code-execution} + +Tá an cód i gconarthaí Ethereum scríofa i dteanga bytecode íseal-leibhéal, cruach-bhunaithe, dá ngairtear "cód meaisín fíorúil Ethereum" nó "cód EVM". Is éard atá sa chód ná tacar bearta, ina léiríonn gach beart oibríocht. Go ginearálta, is lúb éigríochta é forghníomhú cód mar ndéantar an oibríocht arís agus arís eile ag an áiritheoir clár reatha (a thosaíonn ag nialas) agus ansin an t-áiritheoir cláir a bhreisiú faoi haon, go dtí go sroichtear deireadh an chóid nó earráid nó go mbraitear treoir `STOP` nó `RETURN`. Tá rochtain ag na hoibríochtaí ar thrí chineál spáis inar féidir sonraí a stóráil: + +- An **cruach**: coimeádán is déanaí isteach is túisce amach inar féidir luachanna a bhrú agus a phreabadh +- **Cuimhne**, eagar beart is féidir a leathnú gan teorainn +- **stóras** fadtéarmach an chonartha, stóras eochrach/luacha. Murab ionann agus cruachta agus cuimhne, a athshocraíonn tar éis don ríomh críochnú, maireann an stóras go fadtéarmach. + +Is féidir leis an gcód luach, seoltóir agus sonraí na teachtaireachta isteach a rochtain freisin, chomh maith le sonraí ceanntásc bloic, agus is féidir leis an gcód sraith de bhearta sonraí a thabhairt ar ais mar aschur freisin. + +Tá samhaltán reatha foirmiúil chód EVM iontach simplí. Agus an meaisín fíorúil Ethereum ag rith, is féidir a staid ríomhaireachtúil iomlán a shainiú leis an `(block_state, transaction, message, code, memory, stack, pc, gas)`, áit a bhfuil `block_state` is é cód an staid dhomhanda ina bhfuil na cuntais go léir agus folaíonn sé iarmhéideanna agus stóráil. Ag tús gach babhta reatha, faightear an treoir reatha tríd an `pc`ú beart den `chód` (nó 0 más `pc >= len(code)`), agus tá a shainmhíniú féin ag gach treoir maidir leis an gcaoi a dtéann sé i bhfeidhm ar an tuple. Mar shampla, popálann `ADD` dhá mhír den chruach agus brúnn sé a suim, laghdaítear `gas` faoi 1 agus méadaíonn sé `pc` faoi 1, agus buaileann `SSTORE` an dá mhír is airde den chruach agus cuireann sé an dara mír isteach i stóras an chonartha ag an innéacs atá sonraithe ag an gcéad mhír. Cé go bhfuil go leor bealaí ann chun rith meaisín fíorúil Ethereum a bharrfheabhsú trí thiomsú díreach-in-am, is féidir feidhmiú bunúsach Ethereum a dhéanamh i gceann cúpla céad líne de chód. + +### Blocshlabhra agus Mianadóireacht {#blockchain-and-mining} + +![Léaráid bloc iarratais Ethereum](./ethereum-apply-block-diagram.png) + +Tá an blocshlabhra Ethereum cosúil le blocshlabhra Bitcoin ar go leor bealaí, cé go bhfuil roinnt difríochtaí ann. Is é an príomhdhifríocht idir Ethereum agus Bitcoin maidir leis an ailtireacht blocshlabhra ná, murab ionann agus Bitcoin, go bhfuil cóip den liosta idirbheart agus den staid is déanaí i mbloic Ethereum. Seachas sin, déantar dhá luach eile, an uimhir bhloic agus an deacracht, a stóráil sa bhloc freisin. Is é seo a leanas an t-algartam bailíochtaithe bloc bunúsach in Ethereum: + +1. Seiceáil an bhfuil an bloc tagartha roimhe seo ann agus an bhfuil sé bailí. +2. Cinntigh go bhfuil stampa ama an bhloic níos mó ná stampa ama an bhloic a luadh roimhe seo agus níos lú ná 15 nóiméad amach anseo +3. Seiceáil go bhfuil líon na mbloc, deacracht, fréamh idirbhirt, fréamh uncail agus teorainn gháis (coincheapa éagsúla a bhaineann go sonrach le Ethereum ar leibhéal íseal) bailí. +4. Seiceáil go bhfuil an cruthúnas-oibre ar an mbloc bailí. +5. Bíodh `S[0]` mar an staid ag deireadh an bhloic roimhe seo. +6. Bíodh `TX` mar liosta idirbhearta an bhloc, le hidirbhearta `n`. I gcás gach `i` i `0...n-1`, socraigh `S[i+1] = APPLY(S[i],TX[i])`. Má sheolann feidhmchlár earráid ar ais, nó má sháraíonn an gás iomlán a ídíodh sa bhloc suas go dtí an pointe seo an `GASLIMIT`, seol earráid ar ais. +7. Bíodh `S_FINAL` ina `S[n]`, ach ag cur an luach saothair bloc a íocadh leis an mianadóir leis. +8. Seiceáil an bhfuil fréamh crainn Merkle an stáit `S_FINAL` cothrom leis an bhfréamh staid dheiridh a thugtar sa cheanntásc bloic. Má tá, tá an bloc bailí; ar shlí eile, níl sé bailí. + +Bíonn cuma an-éifeachtach ar an gcur chuige ar an gcéad amharc, mar ní mór an staid iomlán a stóráil le gach bloc, ach i ndáiríre ba chóir don éifeachtacht a bheith inchomparáide le cuid Bitcoin. Is é an chúis atá leis ná go bhfuil an staid stóráilte i struchtúr an chrainn, agus tar éis gach bloc ní gá ach cuid bheag den chrann a athrú. Mar sin, go ginearálta, idir dhá bhloc in aice le chéile, ba chóir go mbeadh formhór mór an chrainn mar an gcéanna, agus dá bhrí sin is féidir na sonraí a stóráil uair amháin agus tagairt a dhéanamh dóibh faoi dhó le pointeoirí (ie. haiseanna de fho-chrainn). Úsáidtear crann speisialta ar a dtugtar "crann Patricia" chun é seo a bhaint amach, le modhnú ar choincheap an chrainn Merkle a cheadaíonn nóid a chur isteach agus a scriosadh, agus ní hamháin a athrú, go héifeachtach. Ina theannta sin, toisc go bhfuil an fhaisnéis staide go léir mar chuid den bhloc deireanach, níl aon ghá le stair iomlán an bhlocshlabhra a stóráil - straitéis ar féidir, dá bhféadfaí é a chur i bhfeidhm ar Bitcoin, a ríomh chun coigilteas 5-20x a sholáthar sa spás. + +Ceist a chuirtear go coitianta is ea "cá" ritear cód conartha, i dtéarmaí crua-earraí fisiceacha. Tá freagra simplí air seo: tá an próiseas maidir le cód conartha a rith mar chuid den sainmhíniú ar fheidhm aistrithe na staide, atá mar chuid den algartam bailíochtaithe bloc, mar sin má chuirtear idirbheart isteach sa bhloc `B` an cód déanfaidh gach nód, anois agus amach anseo, a dhéanann an bloc `B` a íoslódáil agus a bhailíochtú an rith a bheidh déanta ag an idirbheart sin. + +## Feidhchláir {#applications} + +Go ginearálta, tá trí chineál feidhmchlár ar bharr Ethereum. Is é an chéad chatagóir ná feidhmchláir airgeadais, a sholáthraíonn bealaí níos cumhachtaí d'úsáideoirí chun conarthaí a bhainistiú agus a dhéanamh lena gcuid airgid. Áirítear leis seo fo-airgeadraí, díorthaigh airgeadais, conarthaí fálaithe, sparán coigiltis, uachtanna, agus sa deireadh fiú roinnt cineálacha conarthaí fostaíochta ar scála iomlán. Is é an dara catagóir feidhmchláir leath-airgeadais, áit a bhfuil airgead i gceist ach go bhfuil taobh trom neamh-airgeadaíochta ag baint leis an méid atá á dhéanamh; sampla iontach is ea deolchairí féin-rite chun fadhbanna ríomhaireachtúla a réiteach. Ar deireadh, tá feidhmchláir amhail vótáil ar líne agus rialachas díláraithe ann nach feidhmchláir airgeadais iad ar chor ar bith. + +### Córais Chomharthaí {#token-systems} + +Tá go leor feidhmchlár ag córais chomharthaí blocshlabhra ó fho-airgeadraí a léiríonn sócmhainní cosúil le USD nó ór go stoic chuideachta, comharthaí aonair a léiríonn maoin chliste, cúpóin shlána dhobhriste, agus fiú córais chomharthaí nach bhfuil aon cheangail acu le gnáthluach ar bith, a úsáidtear mar phointe córais dreasachta. Is iontach chomh héasca is atá sé córais chomharthaí a chur i bhfeidhm in Ethereum. Is é an príomhphointe atá le tuiscint ná gur bunachar sonraí é airgeadra, nó córas comharthaí, go bunúsach, ina bhfuil oibríocht amháin: bain X aonaid ó A agus tabhair X aonaid go B, ar an gcoinníoll (i) go raibh X aonad ar laghad ag A roimh an idirbheart agus (2) go bhfuil an t-idirbheart ceadaithe ag A. Níl le déanamh chun córas comharthaí a chur i bhfeidhm ach an loighic seo a chur i bhfeidhm i gconradh. + +Is é seo a leanas an bunchód chun córas comharthaí a chur i bhfeidhm i Serpent: + +```py +def send(to, value): + if self.storage[msg.sender] >= value: + self.storage[msg.sender] = self.storage[msg.sender] - value + self.storage[to] = self.storage[to] + value +``` + +Go bunúsach is cur i bhfeidhm litriúil é seo d’fheidhm aistrithe staide an “chórais bhaincéireachta” ar a bhfuil cur síos níos mine thuas sa doiciméad seo. Is gá cúpla líne breise de chód a chur leis chun foráil a dhéanamh don chéad chéim de dháileadh na n-aonad airgeadra ar an gcéad dul síos agus cúpla cás imill eile, agus go hidéalach chuirfí feidhm leis chun ligean do chonarthaí eile fiosrú a dhéanamh maidir le hiarmhéid seolta. Ach níl ann ach sin. Go teoiriciúil, is féidir gné thábhachtach eile a chur san áireamh i gcórais chomhartha atá bunaithe ar Ethereum atá ag gníomhú mar fho-airgeadraí nach bhfuil meitea-airgeadraí ar slabhra bunaithe ar Bitcoin: an cumas táillí idirbhirt a íoc go díreach san airgeadra sin. Chuirfí é seo i bhfeidhm trí iarmhéid éitir a chothabháil a chonradh lena n-aisíocfadh sé éitear a úsáideadh chun táillí a íoc leis an seoltóir, agus go n-athlíonfadh sé an t-iarmhéid sin trí na haonaid airgeadra inmheánaigh a thógann sé i dtáillí a bhailiú agus iad a athdhíol i gceant reatha leanúnach. Mar sin bheadh ​​ar úsáideoirí a gcuntais a “ghníomhachtú” le héitear, ach nuair a bheidh an t-éitear ann bheadh ​​sé in-athúsáidte toisc go n-aisíocfadh an conradh é gach uair. + +### Díorthaigh airgeadais agus Airgeadraí Luacha Cobhsaí {#financial-derivatives-and-stable-value-currencies} + +Is iad díorthaigh airgeadais an cur i bhfeidhm is coitianta ar "chonradh cliste", agus ceann de na cinn is simplí le cur i bhfeidhm sa chód. Is é an príomhdhúshlán a bhaineann le conarthaí airgeadais a fheidhmiú ná go n-éilíonn a bhformhór tagairt do thicéadóir seachtrach praghais; mar shampla, is éard atá i gceist le hiarratas an-inmhianaithe ná conradh cliste a dhéanann fálú i gcoinne luaineacht éitir (nó criptea-airgeadra eile) maidir le dollar SAM, ach chun é seo a dhéanamh ní mór go mbeadh a fhios ag an gconradh cad é luach ETH/USD. Is é an bealach is simplí chun é seo a dhéanamh ná trí chonradh "fotha sonraí" arna chothabháil ag páirtí ar leith (m. sh. NASDAQ) atá deartha ionas go mbeidh an cumas ag an bpáirtí sin an conradh a nuashonrú de réir mar is gá, agus comhéadan a sholáthar a ligeann do chonarthaí eile teachtaireacht a sheoladh chuig an gconradh sin agus freagra a fháil ar ais a sholáthraíonn an praghas. + +Agus an comhábhar ríthábhachtach sin á chur san áireamh, is mar seo a leanas a bheadh ​​cuma an chonartha fálaithe: + +1. Fan le páirtí A chun 1000 éitear a ionchur. +2. Fan go gcuirfidh páirtí B 1000 éitear isteach. +3. Taifead an luach USD de 1000 éitear, arna ríomh trí cheist a chur faoin gconradh beathaithe sonraí, i stóráil, abair gurb é seo $x. +4. Tar éis 30 lá, lig do A nó B an conradh a “athghníomhachtú” chun éitear de luach $x (arna ríomh tríd an gconradh fothaithe sonraí a cheistiú arís chun an praghas nua a fháil) a sheoladh chuig A agus an chuid eile chuig B. + +Bheadh ​​cumas suntasach ag conradh den sórt sin i criptea-thráchtáil. Ceann de na fadhbanna is mó a luadh faoi criptea-airgeadra is ea an fíric go bhfuil sé luaineach; cé go bhféadfadh go mbeadh go leor úsáideoirí agus díoltóirí ag iarraidh an tslándáil agus an áisiúlacht chun déileáil le sócmhainní cripteagrafacha, níor mhian le go leor acu aghaidh a thabhairt ar an ionchas sin 23% de luach a gcistí a chailleadh in aon lá amháin. Go dtí seo, is é an réiteach is coitianta a mholtar ná sócmhainní arna dtacú ag eisitheoirí; is é an smaoineamh go gcruthaíonn eisitheoir fo-airgeadra ina bhfuil sé de cheart aige aonaid a eisiúint agus a chúlghairm, agus aonad amháin den airgeadra a sholáthar d’aon duine a sholáthraíonn (as líne) aonad amháin de bhunsócmhainn shonraithe dóibh (eg. ór , USD). Geallann an t-eisitheoir ansin aonad amháin den bhunsócmhainn a sholáthar do dhuine ar bith a sheolann aonad amháin den tsócmhainn criptea ar ais. Ceadaíonn an mheicníocht seo aon sócmhainn neamh-chripteagrafach a "ardú" isteach i sócmhainn chripteagrafach, ar choinníoll gur féidir muinín a chur san eisitheoir. + +Go praiticiúil, áfach, ní bhíonn eisitheoirí iontaofa i gcónaí, agus i gcásanna áirithe bíonn an bonneagar baincéireachta ró-lag, nó ró-naimhdeach, le go mbeadh a leithéid de sheirbhísí ann. Soláthraíonn díorthaigh airgeadais rogha eile. Anseo, in ionad eisitheoir aonair a sholáthraíonn cistí mar chúltaca do shócmhainn, imríonn margadh díláraithe amhantraithe, a chuireann geall go n-ardóidh praghas sócmhainn tagartha cripteagrafach (m. sh. ETH). Murab ionann agus eisitheoirí, níl aon rogha ag amhantraithe mainneachtain a dhéanamh ar a dtaobh féin den mhargadh toisc go gcoimeádann an conradh fálaithe a gcuid cistí in eascró. Tabhair faoi deara nach bhfuil an cur chuige seo díláraithe go hiomlán, toisc go bhfuil foinse iontaofa fós ag teastáil chun an ticeoir praghais a sholáthar, cé gur féidir a mhaíomh go fóill gur feabhas ollmhór é seo maidir le ceanglais bhonneagair a laghdú (murab ionann agus a bheith i d’eisitheoir, níl aon cheadúnais ag teastáil chun fotha praghais a eisiúint agus is dócha gur féidir iad a chatagóiriú mar shaorchaint) agus an poitéinseal calaoise a laghdú. + +### Córais Aitheantais agus Clú {#identity-and-reputation-systems} + +Rinne an criptea-airgeadra malartach is luaithe ar fad, [Namecoin](http://namecoin.org/), iarracht úsáid a bhaint as blocshlabhra cosúil le Bitcoin chun córas clárúcháin ainmneacha a sholáthar, inar féidir le húsáideoirí a n-ainmneacha a chlárú i mbunachar sonraí poiblí mar aon le sonraí eile. Baineann an mórchás úsáide a luadh le córas [DNS](https://wikipedia.org/wiki/Domain_Name_System), ag mapáil ainmneacha fearainn ar nós "bitcoin.org" (nó, i gcás Namecoin," bitcoin.bit”) chuig seoladh IP. I measc cásanna úsáide eile tá fíordheimhniú ríomhphoist agus córais chlú a d’fhéadfadh a bheith níos forbartha. Seo an bunchonradh chun córas clárúcháin ainm cosúil le Namecoin a sholáthar ar Ethereum: + +```py +def register(name, value): + if !self.storage[name]: + self.storage[name] = value +``` + +Tá an conradh an-simplí; níl ann ach bunachar sonraí taobh istigh den líonra Ethereum is féidir cur leis, ach nach bhfuil á mhodhnú ná baint de. Is féidir le duine ar bith ainm a chlárú a bhfuil luach éigin ag baint leis, agus fanann an clárú sin go deo. Beidh “clásal feidhme” ag conradh clárúcháin ainm níos sofaisticiúla freisin a cheadóidh do chonarthaí eile é a cheistiú, chomh maith le meicníocht don “úinéir” (ie an chéad chláraitheoir) den ainm na sonraí a athrú nó úinéireacht a aistriú. Is féidir fiú clú agus feidhmiúlacht iontaofacht ghréasáin a chur ar an mbarr. + +### Stóras Comhad Díláraithe {#decentralized-file-storage} + +Le blianta beaga anuas, tá roinnt gnólachtaí nuathionasnta stórála comhad ar líne a bhfuil an-tóir orthu tagtha chun cinn, agus Dropbox ar na cinn is suntasaí, ag iarraidh ligean d’úsáideoirí cúltaca dá dtiomántán crua a uaslódáil agus an tseirbhís cúltaca a stóráil agus ligean don úsáideoir rochtain a fháil air. mar mhalairt ar tháille mhíosúil. Mar sin féin, ag an bpointe seo tá an margadh stóras comhad sách mí-éifeachtach uaireanta; Léiríonn sracfhéachaint ar réitigh éagsúla reatha, go háirithe ag an leibhéal "ghleann ait" 20-200 GB nach bhfuil cuótaí saor in aisce ná lascainí leibhéal fiontair á spreagadh acu, go bhfuil praghsanna míosúla do chostais stóras comhad príomhshrutha chomh hard sin go bhfuil tú ag íoc as níos mó ná costas an tiomántáin chrua ar fad in aon mhí amháin. Is féidir le conarthaí Ethereum éiceachóras stóras comhad díláraithe a fhorbairt, áit ar féidir le húsáideoirí aonair méideanna beaga airgid a thuilleamh trína dtiomántáin chrua féin a ligean ar cíos agus is féidir spás neamhúsáidte a úsáid chun costais stóras comhad a laghdú tuilleadh. + +Is é an príomhphíosa a bheadh ​​mar bhonn ag feiste den sórt sin ná an rud ar a dtugamar an "conradh díláraithe Dropbox". Oibríonn an conradh seo mar seo a leanas. Ar dtús, scoiltear na sonraí atá ag teastáil ina mbloic, ag criptiú gach bloc le haghaidh príobháideachta, agus tógann sé crann Merkle as. Déantar conradh ansin leis an riail, gach bloic N, go bpiocfadh ​​​​an conradh innéacs randamach i gcrann Merkle (ag baint úsáide as an hais bloc roimhe sin, inrochtana ó chód conartha, mar fhoinse randamach), ag tabhairt X éitear don chéad aonán a sholáthróidh idirbheart le cruthúnas ar úinéireacht an bhloic atá cosúil le fíorú íocaíochta simplithe ag an innéacs áirithe sin sa chrann. Nuair is mian le húsáideoir a chomhad a ath-íoslódáil, is féidir leo prótacal cainéal micreaíocaíochta a úsáid (m. sh. íoc 1 szabo in aghaidh 32 cilibheart) chun an comhad a aisghabháil; is é an cur chuige is tíosaí ar tháillí ná nach bhfoilseoidh an t-íocóir an t-idirbheart go dtí an deireadh, agus ina ionad sin cuirtear ceann beagán níos brabúsaí in ionad an idirbhirt leis an nonce céanna tar éis gach 32 cilibheart. + +Gné thábhachtach den phrótacal is ea, cé go bhfuil an chuma air go bhfuil duine ag cur muiníne i mórán nóid randamacha gan dearmad a dhéanamh ar an gcomhad, is féidir an riosca sin a laghdú go dtí gar-nialas tríd an gcomhad a roinnt i mórán píosaí trí chomhroinnt rúnda, agus faire ar na conarthaí le feiceáil go bhfuil gach píosa fós i seilbh nód éigin. Má tá conradh fós ag íoc airgid amach, cuireann sé sin cruthúnas cripteagrafach ar fáil go bhfuil an comhad á stóráil ag duine éigin amuigh ansin. + +### Eagraíochtaí Uathrialacha Díláraithe {#decentralized-autonomous-organizations} + +Is é an coincheap ginearálta "eagraíocht uathrialaitheach díláraithe" ná aonán fíorúil a bhfuil tacar áirithe comhaltaí nó scairshealbhóirí aige, a bhfuil an ceart acu, b'fhéidir le tromlach 67%, cistí an aonáin a chaitheamh agus a chód a mhodhnú. Dhéanfadh na comhaltaí cinneadh le chéile ar conas ba cheart don eagraíocht a cistí a leithdháileadh. D’fhéadfadh modhanna a bheith ann chun cistí OCC a leithdháileadh, ó dheolchairí, tuarastail agus meicníochtaí níos aistí fós, amhail airgeadra inmheánach chun luach saothair a thabhairt don obair. Go bunúsach, is éard atá i gceist leis seo ná ornaíocht dhlíthiúil chuideachta thraidisiúnta nó neamhbhrabúis nach mbaineann úsáid as teicneolaíocht bhlocshlabhra chripteagrafach ach le haghaidh forfheidhmithe. Go dtí seo bhí cuid mhór den chaint ar OCTanna bunaithe ar mhúnla "caipitleach" de "chorparáid uathrialaitheach dhíláraithe" (DAC) le scairshealbhóirí a fhaigheann díbhinní agus scaireanna intrádála; rogha eile, “pobal uathrialaithe díláraithe” b’fhéidir, mar a mbeadh sciar cothrom ag gach ball sa chinnteoireacht agus go n-éileodh 67% de chomhaltaí láithreacha aontú comhalta a chur leis nó a bhaint. Ní mór don ghrúpa an ceanglas nach bhféadfaidh ach comhaltas amháin a bheith ag duine amháin a fhorfheidhmiú le chéile ansin. + +Seo a leanas cur síos ginearálta ar conas DAO a chódú. Níl sa dearadh is simplí ach píosa cód féinmhodhnaithe a athraíonn má aontaíonn dhá thrian de na baill ar athrú. Cé go bhfuil an cód do-athraithe go teoiriciúil, is féidir teacht timpeall air seo go héasca agus inathraitheacht de-facto a bheith agat trí smután den chód a bheith i gconarthaí ar leith, agus seoladh na gconarthaí atá le glaoch a bheith stóráilte sa stóráil inathraithe. Agus conradh DAO den sórt sin á chur chun feidhme go simplí, bheadh ​​trí chineál idirbhirt ann, arna idirdhealú ag na sonraí a chuirtear ar fáil san idirbheart: + +- `[0,i,K,V]` chun moladh a chlárú le hinnéacs `i` chun an seoladh ag an innéacs stórála ` K` a athrú go luach ` V` +- `[1,i]` chun vóta a chlárú i bhfabhar thogra `i` +- `[2,i]` chun an togra `i` a thabhairt chun críche má tá go leor vótaí déanta + +Bheadh ​​clásail sa chonradh ansin do gach ceann díobh seo. Choimeádfadh sé taifead ar gach athrú stórais oscailte, mar aon le liosta de na daoine a vótáil ar a shon. Bheadh ​​liosta de na baill ar fad ann freisin. Nuair a vótálann dhá thrian de na comhaltaí ar son aon athrú stórais, d’fhéadfaí críochnú idirbhirt an t-athrú a dhéanamh. Bheadh ​​cumas vótála ionsuite ag creatlach níos sofaisticiúla freisin le haghaidh gnéithe cosúil le hidirbheart a sheoladh, baill a chur leis agus baill a bhaint, agus d'fhéadfadh sé fiú foráil a dhéanamh don [Daonlathas Leachtach ](https://wikipedia.org/wiki/Liquid_democracy)-stíl tharmligean vóta (i.e. is féidir le duine ar bith duine éigin a shannadh chun vótáil ar a son, agus tá an sannadh neamhbhuan mar sin má shannann A B agus smá shannann B C ansin cinneann C ceann A vóta). Cheadódh an dearadh seo don DAO fás go horgánach mar phobal díláraithe, rud a ligeann do dhaoine an tasc a bhaineann le scagadh amach cé atá ina bhall a tharmligean chuig speisialtóirí, cé, go murab ionann agus an "córas reatha", gur féidir le speisialtóirí teacht isteach agus amach go héasca le himeacht ama. de réir mar a athraíonn baill aonair pobail a gcuid ailínithe. + +Is samhail mhalartach é do chorparáid dhíláraithe, nuair is féidir le nialas nó níos mó scaireanna a bheith ag aon chuntas, agus éilítear dhá thrian de na scaireanna chun cinneadh a dhéanamh. Bheadh ​​feidhmiúlacht bainistíochta sócmhainní i gceist le creatlach iomlán, an cumas chun tairiscint a dhéanamh chun scaireanna a cheannach nó a dhíol, agus an cumas glacadh le tairiscintí (b’fhearr le meicníocht ordaithe laistigh den chonradh). Bheadh ​​an tarmligean ann freisin ar nós an Daonlathais Leachtaigh, rud a dhéanfadh ginearálú ar choincheap “bord stiúrthóirí”. + +### Tuilleadh Feidhmchláir {#further-applications} + +**1. Sparáin choigiltis**. Cuir i gcás go bhfuil Alice ag iarraidh a cuid cistí a choinneáil slán, ach go bhfuil imní uirthi go gcaillfidh sí nó go heaiceálfaidh duine éigin a heochair phríobháideach. Cuireann sí éitear i gconradh le Bob, banc, mar seo a leanas: + +- Is í Alice amháin atá in ann uasmhéid de 1% de na cistí a aistarraingt in aghaidh an lae. +- Is féidir le Bob ina aonar uasmhéid de 1% de na cistí a tharraingt siar in aghaidh an lae, ach tá sé ar chumas Alice idirbheart a dhéanamh agus a heochair ag múchadh an cumas seo. +- Is féidir le Alice agus Bob le chéile rud ar bith a aistarraingt. + +De ghnáth, is leor 1% in aghaidh an lae do Alice, agus má tá Alice ag iarraidh níos mó a aistarraingt féadfaidh sí teagmháil a dhéanamh le Bob chun cabhair a fháil. Má dhéantar eochair Alice a haiceáil, téann sí chuig Bob chun na cistí a aistriú chuig conradh nua. Má chailleann sí a heochair, bainfidh Bob an t-airgead amach sa deireadh. Má tharlaíonn go bhfuil Bob mailíseach, is féidir léi a chumas aistarraingthe a mhúchadh. + +**2. Árachas bearrtha**. Is féidir conradh díorthach airgeadais a dhéanamh go héasca ach úsáid a bhaint as fotha sonraí den aimsir in ionad aon innéacs praghsanna. Má cheannaíonn feirmeoir in Iowa díorthach a íocann go contrártha ar an bhfrasaíocht in Iowa, ansin má bhíonn triomach ann, gheobhaidh an feirmeoir airgead go huathoibríoch agus má bhíonn dóthain báistí ann beidh an feirmeoir sásta mar go n-éireodh go maith lena bharra. Is féidir é seo a leathnú chuig árachas tubaiste nádúrtha go ginearálta. + +**3. Fotha sonraí díláraithe**. I gcás conarthaí difríochta airgeadais, d’fhéadfadh sé a bheith indéanta an fotha sonraí a dhílárú trí phrótacal ar a dtugtar “[SchellingCoin](http://blog.ethereum.org/2014/03/28/schellingcoin-a-minimal-trust-universal-data-feed/)". Oibríonn SchellingCoin go bunúsach mar seo a leanas: chuir N páirtithe go léir isteach sa chóras luach sonra ar leith (m. sh. an praghas ETH/USD), déantar na luachanna a shórtáil, agus faigheann gach duine idir an 25ú agus an 75ú peircintíl comhartha amháin mar luach saothair. Tá dreasacht ag gach duine an freagra a sholáthróidh gach duine eile a sholáthar, agus is é an t-aon luach ar féidir le líon mór imreoirí aontú go réalaíoch air ná an réamhshocrú soiléir: an fhírinne. Cruthaíonn sé seo prótacal díláraithe a fhéadfaidh líon ar bith luachanna a sholáthar go teoiriciúil, lena n-áirítear an praghas ETH/USD, an teocht i mBeirlín nó fiú toradh ríomh crua ar leith. + +**4. Eascró cliste le síniú iolrach**. Ceadaíonn Bitcoin conarthaí idirbhirt le síniú iolrach mar ar féidir, mar shampla, le trí cinn as cúig eochracha ar leith na cistí a chaitheamh. Ceadaíonn Ethereum níos mó gráinneachta; mar shampla, is féidir le ceathrar as gach cúigear gach rud a chaitheamh, is féidir le triúr as gach cúigear suas le 10% a chaitheamh in aghaidh an lae, agus is féidir le beirt as gach cúigear suas le 0.5% a chaitheamh in aghaidh an lae. Ina theannta sin, tá Ethereum multisig aisioncronach - is féidir le dhá pháirtí a gcuid sínithe a chlárú ar an mblocshlabhra ag amanna éagsúla agus seolfaidh an síniú deireanach an t-idirbheart go huathoibríoch. + +**5. Néalríomhaireacht**. Is féidir an teicneolaíocht EVM a úsáid freisin chun timpeallacht ríomhaireachta infhíoraithe a chruthú, rud a ligeann d’úsáideoirí iarraidh ar dhaoine eile ríomhanna a dhéanamh agus ansin cruthúnais a iarraidh go roghnach go ndearnadh ríomhanna ag seicphointí roghnaithe go randamach i gceart. Ceadaíonn sé seo margadh néalríomhaireachta a chruthú inar féidir le haon úsáideoir a bheith rannpháirteach lena ríomhaire deisce, glúine nó freastalaí speisialaithe, agus is féidir spotseiceáil mar aon le taiscí slándála a úsáid lena chinntiú go bhfuil an córas iontaofa (ie. ní féidir le nóid caimiléireacht a dhéanamh go brabúsach). Cé go mb’fhéidir nach mbeadh a leithéid de chóras oiriúnach do gach tasc; ní féidir tascanna a éilíonn ardleibhéal cumarsáide idirphróisis, mar shampla, a dhéanamh go héasca ar scamall mór nód. Tá tascanna eile, áfach, i bhfad níos éasca a chomhthreomharú; is furasta tionscadail mar SETI@home, folding@home agus halgartaim ghéiniteacha a chur i bhfeidhm ar bharr ardán dá leithéid. + +**6. Cearrbhachas idir piaraí**. Is féidir líon ar bith de phrótacail chearrbhachais idir comhghleacaithe, mar shampla Frank Stajano agus Richard Clayton [Cyberdice](http://www.cl.cam.ac.uk/~fms27/papers/2008-StajanoCla-cyberdice.pdf), a chur i bhfeidhm ar bhlocshlabhra Ethereum. Is é an prótacal cearrbhachais is simplí i ndáiríre ná conradh le haghaidh difríochta ar an gcéad bhloc haise eile, agus is féidir prótacail níos airde a thógáil as sin, ag cruthú seirbhísí cearrbhachais le táillí gar-nialas nach bhfuil ar a gcumas caimiléireacht. + +**7. Margaí tuartha**. Ar choinníoll oracal nó SchellingCoin, tá margaí tuar éasca a chur i bhfeidhm freisin, agus d'fhéadfadh margaí tuar mar aon le SchellingCoin a chruthú a bheith ar an gcéad iarratas príomhshrutha [futarchy ](http://hanson.gmu.edu/futarchy.html) mar phrótacal rialachais le haghaidh eagraíochtaí díláraithe. + +**8. Ar ionaid mhargaidh díláraithe ar slabhra**, ag baint úsáide as an gcóras aitheantais agus clú mar bhonn. + +## Ábhair Ilghnéitheacha Agus Imní {#miscellanea-and-concerns} + +### Feidhmiú Athraithe GHOST {#modified-ghost-implementation} + +Is nuálaíocht é an prótacal "Fo-chrann Santach is Troime" (GHOST) a thug Yonatan Sompolinsky agus Aviv Zohar isteach den chéad uair i [Nollaig 2013](https://eprint.iacr.org/2013/881.pdf). Is é an spreagadh taobh thiar de GHOST ná go bhfuil blocshlabhraí le hamanna daingnithe tapa ag fulaingt faoi láthair ó shlándáil laghdaithe mar gheall ar ráta ard seanchaite - toisc go dtógann bloic am áirithe chun iomadú tríd an líonra, má tá mianadóir A ag mianú bloc agus ansin mianadóir B ag mianú mianach eile bloc. sula n-iomadaítear bloc mianadóir A go B, cuirfear amú bloc mianadóir B agus ní chuirfidh sé le slándáil líonra. Ina theannta sin, tá ceist láraithe ann: má tá mianadóir A ina linn mianadóireachta le 30% haischumhacht agus 10% haischumhacht ag B, beidh an baol ann go dtáirgfear bloc seanchaite 70% den am (ó 30% eile den am tháirg A an bloc deireanach agus mar sin gheobhaidh sé sonraí mianadóireachta láithreach) ach beidh an baol ann go dtáirgfidh B bloc seanchaite 90% den am. Mar sin, má tá an bloc-eatramh gearr go leor le go mbeidh an ráta seanchaite ard, beidh A i bhfad níos éifeachtaí go simplí de bharr a mhéide. Agus an dá éifeacht seo le chéile, is dóichí go n-eascróidh linn mhianadóireachta amháin as blocshlabhra a tháirgeann bloic go tapa le céatadán sách mór den hais-chumhacht líonra chun smacht de facto a bheith aige ar an bpróiseas mianadóireachta. + +Mar atá tuairiscithe ag Sompolinsky agus Zohar, réitíonn GHOST an chéad cheist maidir le caillteanas slándála líonra trí bhloic sheanchaite a áireamh agus an slabhra “is faide” á ríomh; is é sin le rá, ní hamháin tuismitheoir agus sinsear breise an bhloic, ach freisin cuirtear sliocht sean-shinsear an bhloc (i mbéarlagair Ethereum, "uncailí") leis an ríomh cé acu bloc a bhfuil an cruthúnas-oibre iomlán is mó ag tacú leis. Chun an dara saincheist a bhaineann le claonadh láraithe a réiteach, téann muid thar an bprótacal a ndearna Sompolinsky agus Zohar cur síos air, agus cuirimid luach saothair bloc ar fáil do bhloic sheanchaite: faigheann bloc seanchaite 87.5% dá luach saothair boinn, agus faigheann an nia lena n-áirítear an bloc seanchaite an chuid eile. 12.5%. Ní bhronntar táillí idirbhirt, áfach, ar uncailí. + +Ní bhronntar táillí idirbhirt, áfach, ar uncailí. Go sonrach, sainmhínítear é mar seo a leanas: + +- Caithfidh bloc tuismitheoir a shonrú, agus caithfidh sé 0 uncail nó níos mó a shonrú +- Caithfidh na hairíonna seo a leanas a bheith ag uncail atá áirithe i mbloc B: + - Caithfidh sé a bheith ina leanbh díreach de sinsear kth ghlúin B, áit a bhfuil `2 <= k <= 7`. + - Ní féidir leis a bheith ina shinsear ag B + - Caithfidh uncail a bheith ina cheanntásc bailí bloic, ach ní gá gur bloc fíoraithe roimhe seo nó fiú bloc bailí é + - Caithfidh uncail a bheith difriúil ó na huncailí go léir atá san áireamh i mbloic roimhe seo agus na h-uncailí go léir eile atá san áireamh sa bhloc céanna (cuimsiú neamhdhúbailte) +- I gcás gach uncail U i mbloc B, faigheann mianadóir B 3.125% breise a chuirtear lena luach saothair mona bhoinn agus faigheann mianadóir U 93.75% de luach saothair caighdeánach monabhoinn. + +Baineadh úsáid as an leagan teoranta seo de GHOST, le huncailí san áireamh ach suas le 7 nglúin, ar dhá chúis. Ar an gcéad dul síos, d’áireofaí in GHOST neamhtheoranta an iomarca aimhréidheanna a mbeadh uncailí do bhloc áirithe bailí sa ríomh. Ar an dara dul síos, baineann GHOST neamhtheoranta le cúiteamh mar a úsáidtear in Ethereum an dreasacht do mhianadóir mianach a dhéanamh ar an bpríomhshlabhra agus ní ar shlabhra ionsaitheora poiblí. + +### Táillí {#fees} + +Toisc go gcuireann gach idirbheart a fhoilsítear sa bhlocshlabhra an costas ar an líonra chun é a íoslódáil agus a fhíorú, tá gá le meicníocht rialála éigin, a bhaineann go hiondúil le táillí idirbhirt, chun mí-úsáid a chosc. Is é an cur chuige réamhshocraithe, a úsáidtear i Bitcoin, ná táillí deonacha amháin a bheith ann, ag brath ar mhianadóirí chun gníomhú mar gheataí agus íosmhéideanna dinimiciúla a shocrú. Tá glactha go an-fhabhrach leis an gcur chuige i bpobal Bitcoin go háirithe toisc go bhfuil sé "bunaithe ar an margadh", rud a cheadaíonn soláthar agus éileamh idir mianadóirí agus seoltóirí idirbheart an praghas a chinneadh. Is í an fhadhb leis an líne réasúnaíochta seo, áfach, nach margadh é próiseáil idirbheart; cé go bhfuil sé tarraingteach go hintuigthe próiseáil idirbheart a fhorléiriú mar sheirbhís atá á tairiscint ag an mianadóir don seoltóir, i ndáiríre ní mór do gach nód sa líonra gach idirbheart a chuimsíonn mianadóir a phróiseáil, agus mar sin tá formhór mór an chostais phróiseála idirbhirt á iompar ag tríú páirtithe agus ní ag an mianadóir atá ag déanamh an chinnidh an áireofar nó nach gn-áireofar é. Mar sin, is beag seans go dtarlóidh fadhbanna tragóid na ndaoine coitianta. + +Mar sin féin, mar a tharlaíonn, cealaíonn an locht sa mheicníocht atá bunaithe ar an margadh, nuair a thugtar toimhde simplithe mhíchruinn ar leith dó, é féin go draíochta. Seo a leanas an argóint. Cuir i gcás: + +1. Is é an toradh a bhíonn ar idirbheart ná oibríochtaí `k`, ag tairiscint an luach saothair `kR` do mhianadóir ar bith a chuimsíonn é nuair a shocraíonn an seoltóir `R` agus tá `k` agus `R` (beagán) le feiceáil ag an mianadóir roimh ré. +2. Tá costas próiseála `C` ag oibríocht ar aon nód (. i. tá an éifeachtacht chéanna ag gach nód) +3. Tá nóid mhianadóireachta `N` ann, gach ceann acu ar cóimhéid le cumhacht próiseála (ie. `1/N` den iomlán) +4. Níl aon nóid iomlána neamh-mhianadóireachta ann. + +Bheadh ​​​​mianadóir sásta idirbheart a phróiseáil má tá an luach saothair ionchais níos mó ná an costas. Mar sin, is é `kR/N` an luach saothair a bhfuiltear ag súil leis toisc go bhfuil seans `1/N` ag an mianadóir an chéad bhloc eile a phróiseáil, agus is é an costas próiseála don mhianadóir ` kC`. Mar sin, áireoidh mianadóirí idirbhearta ina bhfuil `kR/N > kC`, nó `R > NC`. Tabhair faoi deara gurb é `R` an táille in aghaidh na hoibríochta a sholáthraíonn an seoltóir, agus mar sin tá teorainn níos ísle ar an sochar a fhaigheann an seoltóir ón idirbheart, agus is é `NC` an costas don líonra iomlán le chéile chun oibríocht a phróiseáil. Dá bhrí sin, tá dreasacht ag mianadóirí gan ach na hidirbhearta sin a sháraíonn an sochar fónta iomlán ná an costas a chur san áireamh. + +Mar sin féin, tá roinnt diallais thábhachtacha ann ó na boinn tuisceana sin i ndáiríre: + +1. Íocann an miandóir costas níos airde chun an t-idirbheart a phróiseáil ná na nóid fíoraithe eile, ós rud é go gcuireann an t-am breise fíoraithe moill ar iomadú bloc agus dá bhrí sin méadaíonn sé an seans go mbeidh an bloc sean. +2. Tá nóid iomlána neamh-mhianadóireachta ann. +3. D'fhéadfadh go mbeadh an dáileadh cumhachta mianadóireachta go hiomlán míchothromaíoch i ndáiríre. +4. Tá amhantraithe, naimhde polaitiúla agus na gealta a n-áirítear ina bhfeidhm fóntais díobháil a dhéanamh don líonra ann, agus is féidir leo conarthaí a chur ar bun go cliste nuair a bhíonn a gcostas i bhfad níos ísle ná an costas a íocann nóid fhíoraithe eile. + +(1) foráiltear claonadh sa mhianadóir níos lú idirbheart a áireamh, agus (2) méadaíonn `NC`; mar sin, cealaíonn an dá éifeacht chéile ar a laghad go páirteach.[Conas?]( https://github.com/ethereum/wiki/issues/447#issuecomment-316972260) is iad (3) agus (4) is tábhachtaí; chun iad a réiteach ní dhéanaimid ach caidhp cothlúthaithe a bhunú: ní féidir níos mó oibríochtaí a bheith ag aon bhloc ná `BLK_LIMIT_FACTOR` an meán gluaiseachta easpónantúil fadtéarmach. Go sonrach: + +```js +blk.oplimit = floor((blk.parent.oplimit \* (EMAFACTOR - 1) + +floor(parent.opcount \* BLK\_LIMIT\_FACTOR)) / EMA\_FACTOR) +``` + +Is tairisigh iad `BLK_LIMIT_FACTOR` agus `EMA_FACTOR` a shocrófar go 65536 agus 1.5 faoi láthair, ach is dócha go n-athrófar iad tar éis tuilleadh anailíse. + +Tá fachtóir eile ann a dhídhreasaíonn méideanna móra bloc i Bitcoin: tógfaidh sé níos faide bloic mhóra a iomadú, agus mar sin beidh dóchúlacht níos airde acu go mbeidh siad seanchaite. In Ethereum, is féidir go dtógfaidh sé níos mó ama ar bhloic a ídíonn cuid mhór gáis an dá cheann a iomadú toisc go bhfuil siad níos mó go fisiciúil agus toisc go dtógann sé níos mó ama chun aistrithe staide an idirbhirt a phróiseáil le bailíochtú. Is breithniú suntasach é an dídhreasacht moille seo i Bitcoin, ach níos lú ná sin in Ethereum mar gheall ar phrótacal GHOST; mar sin, trí bheith ag brath ar theorainneacha rialaithe bloc soláthraíonn sé bonnlíne níos cobhsaí. + +### Comhláine Ríomha Agus Turing {#computation-and-turing-completeness} + +Nóta tábhachtach ná go bhfuil an meaisín fíorúil Ethereum Turing-iomlán; ciallaíonn sé seo gur féidir le cód EVM aon ríomh a ionchódú is féidir a dhéanamh go samhlaíoch, lena n-áirítear lúba éigríochta. Ceadaíonn cód EVM lúbadh ar dhá bhealach. Ar dtús, tá treoir `JUMP` ann a ligeann don ríomhchlár léim siar go dtí an spota roimhe seo sa chód, agus treoir `JUMPI` chun léim choinníollach a dhéanamh, a cheadaíonn ráitis mar `while x < 27: x = x * 2`. Ar an dara dul síos, is féidir le conarthaí glaoch ar chonarthaí eile, rud a d'fhéadfadh lúbadh trí atarlú a cheadú. Cruthaíonn sé seo fadhb go nádúrtha: an féidir le húsáideoirí mailíseach mianadóirí agus nóid iomlána a dhúnadh go bunúsach trí iallach a chur orthu dul isteach i lúb éigríochta? Tagann an tsaincheist chun cinn mar gheall ar fhadhb san eolaíocht ríomhaireachta ar a dtugtar an fhadhb stad: níl aon bhealach ann a rá, go ginearálta, an dtiocfaidh nó nach dtiocfaidh deireadh le feidhmchlár áirithe. + +Mar a thuairiscítear sa rannán aistrithe staide, oibríonn ár réiteach trí cheangal a chur ar idirbheart uaslíon céimeanna ríomhaireachtúla a cheadaítear dó a ghlacadh, agus má thógann sé níos faide é a rith filltear an ríomh ach bíonn táillí fós le híoc. Oibríonn teachtaireachtaí ar an mbealach céanna. Chun an spreagadh atá taobh thiar dár réiteach a thaispeáint, smaoinigh ar na samplaí seo a leanas: + +- Cruthaíonn ionsaitheoir conradh a ritheann lúb éigríochta, agus ansin cuireann sé idirbheart chun an lúb sin a ghníomhachtú chuig an mianadóir. Cruthaíonn ionsaitheoir conradh a ritheann lúb éigríochta, agus ansin cuireann sé idirbheart chun an lúb sin a ghníomhachtú chuig an mianadóir. Cé go n-imíonn an rith amach as gás agus go stopann sé leath bealaigh tríd, tá an t-idirbheart fós bailí agus éilíonn an mianadóir an táille ón ionsaitheoir do gach céim ríomhaireachtúil. +- Cruthaíonn ionsaitheoir lúb éigríochta an-fhada le hintinn iallach a chur ar an mianadóir leanúint leis an ríomhaireacht chomh fada sin go mbeidh cúpla bloc eile tagtha amach faoin am a chríochnaíonn an ríomh agus ní bheidh sé indéanta don mhianadóir an t-idirbheart a chur san áireamh. chun an táille a éileamh. Beidh ar an ionsaitheoir, áfach, luach a chur isteach le haghaidh `STARTGAS` a theorannóidh líon na gcéimeanna ríomha is féidir leis an rith a dhéanamh, ionas go mbeidh a fhios ag an mianadóir roimh ré go nglacfaidh an ríomh líon ró-mhór céimeanna. +- Feiceann ionsaitheoir conradh le cód de chineál éigin mar `send(A,contract.storage[A]); contract.storage[A] = 0` agus seolann sé idirbheart ina bhfuil dóthain gáis chun an chéad chéim a rith ach ní an dara céim (.i. aistarraingt a dhéanamh ach gan an t-iarmhéid a ligean síos). Ní gá don údar conartha a bheith buartha faoi chosaint i gcoinne ionsaithe den sórt sin, mar má stopann rith leath bealaigh tríd filltear na hathruithe. +- Oibríonn conradh airgeadais trí mheán na naoi bhfotha sonraí dílsithe a ghlacadh chun riosca a íoslaghdú. Glacann ionsaitheoir ceann de na fothaí sonraí ar láimh, atá deartha le bheith inathraithe tríd an meicníocht glao inathraithe-seoladh a bhfuil cur síos air sa rannán ar DAO, agus tiontaíonn sé é chun lúb éigríochta a rith, agus ar an gcaoi sin déantar iarracht aon iarrachtaí cistí a éileamh ón gconradh airgeadais rith amach as gás. Mar sin féin, is féidir leis an gconradh airgeadais teorainn gháis a shocrú ar an teachtaireacht chun an fhadhb seo a chosc. + +Is é an rogha eile seachas turing-iomláine ná Turing-neamhiomlán, áit nach bhfuil `JUMP` agus `JUMPI` ann agus nach gceadaítear ach cóip amháin de gach conradh a bheith sa chruach glaonna ag aon am ar leith. Leis an gcóras seo, b’fhéidir nach mbeadh gá leis an gcóras táillí luaite agus leis na héiginnteachtaí maidir le héifeachtacht ár réitigh, toisc go mbeadh an costas a bhainfeadh le conradh a rith teoranta ag a mhéid. Ina theannta sin, ní teorainn chomh mór sin é Turing-neamhiomlán; as na samplaí conartha go léir atá ceaptha againn go hinmheánach, go dtí seo níor theastaigh ach lúb amháin, agus d'fhéadfaí fiú an lúb sin a bhaint trí 26 athrá de phíosa cód aonlíne a dhéanamh. I bhfianaise na n-impleachtaí tromchúiseacha a bhaineann le iomláine Turing, agus an tairbhe theoranta, cén fáth nach mbeadh ann ach teanga Turing neamhiomlán? I ndáiríre, áfach, is fada ó réiteach néata ar an bhfadhb é Turing-neamhiomlán. Le fáil amach cén fáth, smaoinigh ar na conarthaí seo a leanas: + +```sh +C0: call(C1); call(C1); +C1: call(C2); call(C2); +C2: call(C3); call(C3); +... +C49: call(C50); call(C50); +C50: (run one step of a program and record the change in storage) +``` + +Anois, seol idirbheart chuig A. Mar sin, i 51 idirbheart, tá conradh againn a thógann suas le 2 chéim ríomhaireachtúla 50. D’fhéadfadh mianadóirí iarracht a dhéanamh buamaí loighce den sórt sin a bhrath roimh an am trí luach a choinneáil taobh le gach conradh ag sonrú uaslíon na gcéimeanna ríomha is féidir leo a ghlacadh, agus é seo a ríomh le haghaidh conarthaí a ghlaonn conarthaí eile go hathchúrsach, ach a d’éileodh ar mianadóirí conarthaí a chosc a chruthaíonn. conarthaí eile (ó cruthaíodh agus gur féidir na 26 conradh thuas a chruthú agus a chur i gcrích go héasca a rolladh isteach in aon chonradh amháin). Fadhb eile is ea gur athróg é réimse seoltaí na teachtaireachta, agus mar sin go ginearálta b’fhéidir nach mbeifear in ann a rá cé na conarthaí eile a bheidh i gceist le conradh áirithe roimh an am. Mar sin, ar an iomlán, tá conclúid aisteach againn: Is éasca iomláine Turing a bhainistiú, agus bíonn easpa iomláine Turing chomh deacair céanna a bhainistiú mura bhfuil na rialuithe céanna i bhfeidhm - ach sa chás sin cén fáth nach ligtear don phrótacal a bheith Turing-iomlán? + +### Airgeadra Agus Eisiúint {#currency-and-issuance} + +Áirítear ar líonra Ethereum a airgeadra ionsuite féin, éitear, a fhreastalaíonn ar dhá chuspóir ciseal leachtachta príomhúil a sholáthar chun malartú éifeachtach idir cineálacha éagsúla sócmhainní digiteacha a cheadú agus, níos tábhachtaí fós, meicníocht a sholáthar chun táillí idirbhirt a íoc. Ar mhaithe le caoithiúlacht agus chun argóint sa todhchaí a sheachaint (féach an díospóireacht reatha mBTC/uBTC/satoshi i Bitcoin), déanfar na hainmníochtaí a réamh-lipéadú: + +- 1: wei +- 1012: szabo +- 1015: finney +- 1018: éitear + +Ba cheart é seo a ghlacadh mar leagan leathnaithe den choincheap "dollar" agus "cents" nó "BTC" agus "satoshi". Go luath amach anseo, táimid ag súil go n-úsáidfear "éitear" le haghaidh gnáth-idirbheart, "finney" le haghaidh micrea-idirbhearta agus "szabo" agus "wei" le haghaidh plé teicniúil maidir le táillí agus cur i bhfeidhm prótacail; féadfaidh na hainmníochtaí atá fágtha a bheith úsáideach níos déanaí agus níor cheart iad a áireamh i gcliant ag an bpointe seo. + +Beidh an samhaltán eisiúna mar seo a leanas: + +- Scaoilfear éitear i ndíolachán airgeadra ar phraghas 1000-2000 éitear in aghaidh an BTC, meicníocht atá beartaithe chun eagraíocht Ethereum a mhaoiniú agus íoc as forbairt a d'úsáid ardáin eile ar nós Mastercoin agus NXT go rathúil. Bainfidh ceannaitheoirí luatha leas as lascainí níos mó. Úsáidfear an BTC a fhaightear ón díolachán go hiomlán chun tuarastail agus deolchairí a íoc le forbróirí agus infheisteofar i dtionscadail éagsúla brabúis agus neamhbhrabúis san éiceachóras Ethereum agus criptea-airgeadra. +- 0.099x an méid iomlán a dhíoltar (60102216 ETH) a leithdháiltear ar an eagraíocht chun ranníocóirí luath a chúiteamh agus costais ainmnithe ETH a íoc roimh an bloc geineasas. +- 0.099x an méid iomlán a dhíoltar a choinneáil mar chúlchiste fadtéarmach. +- 0.26x an méid iomlán a dhíolfar a leithdháiltear ar mianadóirí in aghaidh na bliana go deo tar éis an bpointe sin. + +| Grúpa | Ag lainseáil | Tar éis 1 bhliain | Tar éis 5 bliana | +| --------------------------- | ------------ | ----------------- | ---------------- | +| Aonaid airgeadra | 1.198X | 1.458X | 2.498X | +| Ceannaitheoirí | 83.5% | 68.6% | 40.0% | +| Cúlchiste caite réamhdhíola | 8.26% | 6.79% | 3.96% | +| Cúlchiste úsáidte iar-díola | 8.26% | 6.79% | 3.96% | +| Mianadóirí | 0% | 17.8% | 52.0% | + +#### Ráta Fáis Soláthair Fadtéarmach (céatadán) + +![Boilsciú Ethereum](./ethereum-inflation.png) + +_In ainneoin na heisiúna airgeadra líneach, díreach cosúil le Bitcoin le himeacht ama is gnách go dtéann an ráta fáis soláthair i dtreo nialas mar sin féin._ + +Is iad an dá phríomhrogha sa tsamhail thuas ná (1) comhthiomsú dearlaice a bheith ann agus a mhéid, agus (2) soláthar líneach atá ag fás go buan a bheith ann, i gcomparáid le soláthar caipínithe mar atá i Bitcoin. Is é seo a leanas an bonn cirt leis an linn dearlaice. Mura raibh an linn dearlaice ann, agus an t-eisiúint líneach laghdaithe go 0.217x chun an ráta boilscithe céanna a sholáthar, ansin bheadh ​​cainníocht iomlán an éitear 16.5% níos lú agus mar sin bheadh ​​​​gach aonad 19.8% níos luachmhaire. Mar sin, sa chothromaíocht cheannófaí 19.8% níos mó éitir sa díolachán, agus mar sin bheadh ​​gach aonad chomh luachmhar céanna arís agus a bhíodh. Bheadh ​​1.198x an oiread BTC ag an eagraíocht freisin, ar féidir a mheas a bheith roinnte ina dhá shlis: an BTC bunaidh, agus an 0.198x breise. Mar sin, tá an cás seo _díreach coibhéiseach_ leis an dearlaic, ach le difríocht thábhachtach amháin: níl ach BTC aag an eagraíocht, agus mar sin ní spreagtar í chun tacú le luach an aonad éitir. + +Laghdaíonn an tsamhail buanfhás soláthair líneach an baol a mheasann roinnt daoine a bheith ann go mbeadh an iomarca comhchruinnithe saibhris i Bitcoin, agus tugann sé deis chothrom do dhaoine aonair atá ina gcónaí sa ré seo agus sa todhchaí aonaid airgeadra a fháil, agus ag an am céanna dreasacht láidir a choinneáil chun éitear a fháil agus a shealbhú toisc go bhfuil an "ráta fáis soláthair" mar chéatadán fós ag nialas le himeacht ama. Is é ár dtuairim freisin, toisc go gcailltear monaí i gcónaí le himeacht ama mar gheall ar mhíchúram, bás, srl, agus gur féidir caillteanas monaí a shamhaltú mar chéatadán den soláthar iomlán in aghaidh na bliana, go dtiocfaidh cobhsú ar luach iomlán an tsoláthair airgeadra atá i gcúrsaíocht ar deireadh thiar. comhionann leis an eisiúint bhliantúil roinnte ar an ráta caillteanais (m. sh. ag ráta caillteanais 1%, nuair a shroicheann an soláthar 26X ansin déanfar 0.26X a bhaint amach agus 0.26X caillte gach bliain, rud a chruthaíonn cothromaíochta). + +Tabhair faoi deara, sa todhchaí, is dócha go n-aistreoidh Ethereum go múnla cruthúnais le haghaidh slándála, ag laghdú an riachtanas eisiúna go dtí áit éigin idir nialas agus 0.05X in aghaidh na bliana. Sa chás go gcailleann an eagraíocht Ethereum maoiniú nó go n-imíonn sé as ar chúis ar bith eile, fágaimid "conradh sóisialta" ar oscailt: tá sé de cheart ag duine ar bith leagan iarrthóra de Ethereum a chruthú sa todhchaí, agus is é an t-aon choinníoll ná go gcaithfidh cainníocht an éitir a bheith ar a mhéad cothrom le `60102216 * (1.198 + 0.26 * n)` áit arb é `n` líon na mblianta i ndiaidh an bhloc ghéinis. Tá cead ag cruthaitheoirí slua-dhíol nó cuid den difríocht nó an difríocht ar fad a shannadh ar bhealach eile idir an leathnú soláthair atá á thiomáint ag PoS agus an t-uasmhéadú soláthair incheadaithe chun íoc as an bhforbairt. D’fhéadfadh sé go mbeadh bonn cirt le huasghráduithe iarrthóirí nach gcomhlíonann an conradh sóisialta a chur isteach i leaganacha comhlíontacha. + +### Lárú Mianadóireachta {#mining-centralization} + +Oibríonn an t-algartam mianadóireachta Bitcoin trí iarraidh ar mhianadóirí SHA256 a ríomh ar leaganacha beagán modhnaithe den cheannteideal bloc na milliúin uaireanta arís agus arís eile, go dtí go dtiocfaidh nód amháin suas le leagan a bhfuil a hais níos lú ná an sprioc (thart ar 2192 faoi láthair). Mar sin féin, tá an t-algartam mianadóireachta seo i mbaol ó dhá chineál láraithe. Sa chéad dul síos, tá an t-éiceachóras mianadóireachta faoi cheannas ASICs (ciorcaid iomlánaithe a bhaineann go sonrach le feidhm) anois, sliseanna ríomhaire atá deartha le haghaidh tasc sonrach mianadóireachta Bitcoin,, agus mar sin na mílte uaire níos éifeachtaí. Ciallaíonn sé seo nach bhfuil mianadóireacht Bitcoin ina shaothrú an-díláraithe agus cothromaíoch a thuilleadh, éilíonn sé na milliúin dollar caipitil le bheith rannpháirteach go héifeachtach ann. Sa dara háit, ní dhéanann an chuid is mó de na mianadóirí Bitcoin bailíochtú bloc go háitiúil i ndáiríre; ina ionad sin, bíonn siad ag brath ar chomhthiomsú mianadóireachta láraithe chun na ceannteidil bloc a sholáthar. D’fhéadfaí a mhaíomh go bhfuil an fhadhb seo níos measa: ó scríobhadh an méid seo, rialaíonn na trí linnte mianadóireachta is mó go hindíreach thart ar 50% den chumhacht próiseála i líonra Bitcoin, cé go maolaítear é seo toisc gur féidir le mianadóirí aistriú chuig linnte mianadóireachta eile má dhéanann linn nó comhaltas mianadóireachta iarracht ionsaí 51%. + +Is í intinn Ethereum faoi láthair algartam mianadóireachta a úsáid ina n-éilítear ar mhianadóirí sonraí randamacha a fháil ón staid, roinnt idirbheart a roghnaíodh go randamach a ríomh ó na bloic N deiridh sa bhlocshlabhra, agus hais an toraidh a sheoladh ar ais. Tá dhá bhuntáiste thábhachtacha ag baint leis seo. Sa chéad áit, is féidir go n-áireofaí ríomh de chineál ar bith i gconarthaí Ethereum, mar sin bheadh ​​​​ASIC Ethereum go bunúsach ina ASIC le haghaidh ríomh ginearálta - ie. LAP níos fearr. Ar an dara dul síos, éilíonn mianadóireacht rochtain ar an mblocshlabhra iomlán, rud a chuireann iallach ar mhianadóirí an blocshlabhra iomlán a stóráil agus a bheith in ann gach idirbheart a fhíorú ar a laghad. Cuireann sé seo deireadh leis an ngá atá le linnte mianadóireachta láraithe; cé gur féidir le linnte mianadóireachta freastal fós ar an ról dlisteanach a bhaineann le randamacht dáileadh luach saothair a chothromú, is féidir freastal chomh maith céanna ar an bhfeidhm seo trí chomhthiomsuithe piara le piaraí nach bhfuil aon smacht lárnach acu. + +Tá an tsamhail seo gan tástáil, agus d'fhéadfadh deacrachtaí a bheith ann maidir le leas iomlán a bhaint as optamuithe cliste áirithe a sheachaint agus rith conartha á úsáid mar algartam mianadóireachta. Gné an-suimiúil amháin den algartam seo, áfach, is ea go gceadaíonn sé do dhuine ar bith "an tobar a nimhiú", trí líon mór conarthaí a thabhairt isteach sa bhlocshlabhra atá deartha go sonrach chun ASICanna áirithe a chosc. Tá dreasachtaí eacnamaíocha ann do mhonaróirí ASIC cleas den sórt sin a úsáid chun ionsaí a dhéanamh ar a chéile. Mar sin, is réiteach oiriúnaitheach eacnamaíoch daonna é an réiteach atá á fhorbairt againn ar deireadh seachas réiteach teicniúil amháin. + +### Inscálaitheacht {#scalability} + +Ábhar imní coitianta amháin faoi Ethereum ná ceist na hinscálaitheachta. Cosúil le Bitcoin, tá sé de locht ar Ethereum gur gá gach idirbheart a phróiseáil ag gach nód sa líonra. Le Bitcoin, luíonn méid an blocshlabhra reatha ag thart ar 15 GB, ag fás de thart ar 1 MB in aghaidh na huaire. Dá ndéanfadh an líonra Bitcoin idirbhearta 2000 Visa in aghaidh an tsoicind a phróiseáil, d'fhásfadh sé 1 MB in aghaidh na trí shoicind (1 GB in aghaidh na huaire, 8 TB in aghaidh na bliana). Is dócha go bhfulaingeoidh Ethereum patrún fáis den chineál céanna, níos measa mar go mbeidh go leor iarratas ar bharr an bhlocshlabhra Ethereum in ionad airgeadra díreach mar atá an cás le Bitcoin, ach feabhsaithe mar nach gcaithfidh Ethereum ach nóid iomlána a stóráil seachas stair iomlán an bhlocshlabhra. + +Is í an fhadhb le blocshlabhra chomh mór an riosca láraithe. Má mhéadaíonn an méid blocshlabhra go, abair, 100 TB, is é an cás dóchúil ná nach mbeadh ach líon an-bheag gnólachtaí móra ag rith nóid iomlána, agus na húsáideoirí rialta go léir ag baint úsáide as nóid SPV éadroma. I gcás mar seo, bheadh sé ina ábhar imní go bhféadfadh na nóid iomlána teacht le chéile agus aontú chun caimiléireacht a dhéanamh i slí brabúsach (mar shampla, athrú ar an deolchaire bloic, nó BTC a thabhairt dóibh féin). Ní bheadh ​​aon bhealach ag nóid solais é seo a bhrath láithreach. Ar ndóigh, is dócha go mbeadh nód iomlán macánta amháin ann, agus tar éis cúpla uair an chloig bheadh ​​faisnéis faoin gcalaois breactha amach trí bhealaí cosúil le Reddit, ach ag an bpointe sin bheadh ​​​​sé ró-dhéanach: bheadh ​​​​sé faoi na gnáthúsáideoirí iarracht a eagrú chun na bloic a tugadh a chur ar liosta dubh, fadhb chomhordaithe ollmhór agus ní dócha go mbeadh sé indéanta ar scála cosúil leis an gceann a bhain le hionsaí rathúil 51%. I gcás Bitcoin, is fadhb é seo faoi láthair, ach tá modhnú blocshlabhra ann [molta ag Peter Todd](https://web.archive.org/web/20140623061815/http://sourceforge.net/p/bitcoin/mailman/message/31709140/) a mhaolóidh an cheist seo. + +Sa luath-théarma, úsáidfidh Ethereum dhá straitéis bhreise chun dul i ngleic leis an bhfadhb seo. Ar an gcéad dul síos, mar gheall ar na halgartaim mianadóireachta atá bunaithe ar blocshlabhra, beidh iallach gach mianadóir a bheith ina nód iomlán ar a laghad, rud a chruthaíonn teorainn níos ísle ar líon na nóid iomlána. Ar an dara dul síos agus níos tábhachtaí fós, áfach, áireoimid fréamh crainn staide idirmheánaigh sa bhlocshlabhra tar éis gach idirbheart a phróiseáil. Fiú má tá bailíochtú bloic láraithe, chomh fada agus atá nód fíoraithe macánta amháin ann, is féidir an fhadhb láraithe a shárú trí phrótacal fíorúcháin. Má fhoilsíonn mianadóir bloc neamhbhailí, ní foláir go bhfuil an bloc sin formáidithe go dona, nó go bhfuil an staid `S[n]` mícheart. Ós eol go bhfuil `S[0]` ceart, caithfidh go bhfuil an chéad staid `S[i]` mícheart nuair a bhíonn `S[i-1]` ceart. Thabharfadh an nód fíoraithe an t-innéacs `i`, mar aon le "cruthúnas neamhbhailíochta" ina mbeadh an fothacar de nóid chrainn Patricia ar gá `APPLY(S[i-1],TX[i]) -> S[i]` a phróiseáil. Bheadh ​​na nóid in ann na nóid sin a úsáid chun an chuid sin den ríomh a rith, agus a fheiceáil nach bhfuil an `S[i]` ginte ag teacht leis an `S[i]` a soláthraíodh. + +Ionsaí eile, níos sofaisticiúla, a bheadh ​​i gceist leis na mianadóirí mailíseacha ag foilsiú bloic neamhiomlána, mar sin níl an fhaisnéis iomlán ann fiú chun a chinneadh an bhfuil bloic bailí nó nach bhfuil. Is é an réiteach air seo ná prótacal freagartha dúshláin: eisíonn nóid fíoraithe "dúshláin" i bhfoirm innéacsanna sprice idirbhearta, agus nuair a aimsíonn siad nód éadrom déileálann siad leis an mbloc mar rud nach bhfuil iontaofa go dtí go soláthraíonn nód eile, an mianadóir nó fíoraitheoir eile é, fothacar de nóid Patricia mar chruthúnas ar bhailíocht. + +## Conclúid {#conclusion} + +Ceapadh prótacal Ethereum ar dtús mar leagan uasghrádaithe de criptea-airgeadra, ag soláthar ardghnéithe mar eascró ar-blocshlabhra, teorainneacha aistarraingthe, conarthaí airgeadais, margaí cearrbhachais agus a leithéidí trí theanga ríomhchlárúcháin an-ghinearálaithe. Ní thacódh prótacal Ethereum le haon cheann de na hiarratais go díreach, ach ciallaíonn teanga ríomhchláraithe Turing-iomlán a bheith ann gur féidir conarthaí treallacha a chruthú go teoiriciúil le haghaidh aon chineál idirbhirt nó feidhmchlár. Is é an rud atá níos suimiúla faoi Ethereum, áfach, ná go mbogann prótacal Ethereum i bhfad níos faide ná airgeadra díreach. D’fhéadfadh prótacail a bhaineann le stóras comhad díláraithe, ríomh díláraithe agus margaí tuar díláraithe, i measc an iliomad coincheap eile den sórt sin, éifeachtúlacht an tionscail ríomhaireachtúil a mhéadú go suntasach, agus borradh ollmhór a chur faoi phrótacail eile idir piaraí trí chur leis an ciseal eacnamaíoch den chéad uair. Ar deireadh, tá raon suntasach feidhmchlár ann freisin nach bhfuil baint ar bith acu leis an airgead. + +Soláthraíonn coincheap heidhm aistrithe staide treallach mar a chuirtear i bhfeidhm é ag prótacal Ethereum ardán a bhfuil acmhainneacht uathúil aige; seachas a bheith ina phrótacal aonfheidhme dúnta atá beartaithe le haghaidh raon sainiúil feidhmchlár i stóras sonraí, i gcearrbhachas nó i gcúrsaí airgeadais, tá Ethereum oscailte ó thaobh dearaidh de, agus creidimid go bhfuil sé thar a bheith feiliúnach chun fónamh mar chiseal dúshraithe do líon an-mhór de phrótacail airgeadais agus neamhairgeadais sna blianta atá le teacht. + +## Nótaí agus Tuilleadh Léitheoireachta {#notes-and-further-reading} + +### Nótaí {#notes} + +1. Féadfaidh léitheoir sofaisticiúla a thabhairt faoi deara gur hais eochair phoiblí an chuair éiliptigh is ea seoladh Bitcoin i ndáiríre, agus ní an eochair phoiblí féin. Mar sin féin, is téarmaíocht chripteagrafach fhíordhlisteanach é tagairt a dhéanamh don hais pubkey mar eochair phoiblí féin. Tá sé seo toisc gur féidir cripteagrafaíocht Bitcoin a mheas mar algartam sínithe digiteach saincheaptha, áit a bhfuil an eochair phoiblí comhdhéanta de hais an ECC pubkey, is éard atá sa síniú an pubkey ECC atá comhghaolaithe le síniú an ECC, agus is éard atá i gceist leis an algartam fíoraithe seiceáil an ECC pubkey sa síniú i gcoinne an ECC pubkey hais ar fáil mar eochair phoiblí agus ansin a fhíorú an síniú ECC i gcoinne an pubkey ECC. +2. Go teicniúil, airmheán de na 11 bloic roimhe seo. +3. Go hinmheánach, is uimhreacha [fn3](#notes) iad 2 agus "CHARLIE", agus tá an dara ceann acu i mbunús mór-cheannaigh 256. Is féidir le huimhreacha a bheith 0 ar a laghad agus 2256-1 ar a mhéad. + +### Further Reading {#further-reading} + +1. [Luach intreach](http://bitcoinmagazine.com/8640/an-exploration-of-intrinsic-value-what-it-is-why-bitcoin-doesnt-have-it-and-why-bitcoin-does-have-it/) +2. [Maoin chliste](https://en.bitcoin.it/wiki/Smart_Property) +3. [Conarthaí cliste](https://en.bitcoin.it/wiki/Contracts) +4. [B-money](http://www.weidai.com/bmoney.txt) +5. [Cruthúnas oibre ath-inúsáidte](https://nakamotoinstitute.org/finney/rpow/) +6. [Teidil maoine a dhaingniú le húdarás úinéara](https://nakamotoinstitute.org/secure-property-titles/) +7. [Páipéar bán Bitcoin](http://bitcoin.org/bitcoin.pdf) +8. [Namecoin](https://namecoin.org/) +9. [Triantán Zooko](https://wikipedia.org/wiki/Zooko's_triangle) +10. [Páipéar bá na monaí daite](https://docs.google.com/a/buterin.com/document/d/1AnkP_cVZTCMLIzw4DvsW6M8Q2JC0lIzrTLuoWu2z1BE/edit) +11. [Páipéar bán Mastercoin](https://github.com/mastercoin-MSC/spec) +12. [Corparáidí uathrialaitheacha díláraithe, Irisleabhar Bitcoin](http://bitcoinmagazine.com/7050/bootstrapping-a-decentralized-autonomous-corporation-part-i/) +13. [Fíorú íocaíochta simplithe](https://en.bitcoin.it/wiki/Scalability#Simplified_payment_verification) +14. [Crainn merkle](https://wikipedia.org/wiki/Merkle_tree) +15. [Crainn Patricia](https://wikipedia.org/wiki/Patricia_tree) +16. [GHOST](https://eprint.iacr.org/2013/881.pdf) +17. [StorJ agus Gníomhairí Uathrialacha, Jeff Garzik](http://garzikrants.blogspot.ca/2013/01/storj-and-bitcoin-autonomous-agents.html) +18. [Mike Hearn ar Mhaoin Chliste ag Féile Turing](https://www.youtube.com/watch?v=MVyv4t0OKe4) +19. [Ethereum RLP](https://github.com/ethereum/wiki/wiki/%5BEnglish%5D-RLP) +20. [Crainn Ethereum Merkle Patricia](https://github.com/ethereum/wiki/wiki/%5BEnglish%5D-Patricia-Tree) +21. [Peter Todd ar chrainn suim Merkle](https://web.archive.org/web/20140623061815/http://sourceforge.net/p/bitcoin/mailman/message/31709140/) + +_Le haghaidh stair an pháipéir bháin, féach [an vicí seo](https://github.com/ethereum/wiki/blob/old-before-deleting-all-files-go-to-wiki-wiki-instead/old-whitepaper-for-historical-reference.md)._ + +_Tá Ethereum, cosúil le go leor tionscadal bogearraí foinse oscailte faoi stiúir an phobail, tar éis athrú ó bunaíodh é. Chun foghlaim faoi na forbairtí is déanaí ar Ethereum, agus conas a dhéantar athruithe ar an bprótacal, molaimid [an treoir seo](/learn/)._ diff --git a/public/content/translations/ga/withdrawals/index.md b/public/content/translations/ga/withdrawals/index.md new file mode 100644 index 00000000000..fbd50874c90 --- /dev/null +++ b/public/content/translations/ga/withdrawals/index.md @@ -0,0 +1,218 @@ +--- +title: Aistarraingtí geallchuir +description: Leathanach ag achoimriú cad is aistarraingtí brú geallchuir ann, conas a oibríonn siad, agus cad is gá do gheallsealbhóirí a dhéanamh chun a luaíochtaí a fháil +lang: ga +template: staking +image: /images/staking/leslie-withdrawal.png +alt: Leslie an srónbheannach lena luaíocht gheallchuir +sidebarDepth: 2 +summaryPoints: + - Chumasaigh uasghrádú Shanghai/Capella aistarraingtí geallchuir ar Ethereum + - Ní mór d’oibreoirí bailíochtóra seoladh aistarraingthe a sholáthar chun é a chumasú + - Déantar luaíocht a dháileadh go huathoibríoch gach cúpla lá + - Gheobhaidh bailíochtóirí a fhágann an geallchur go hiomlán an t-iarmhéid atá fágtha acu +--- + + +Cumasaíodh aistarraingtí geallchuir le huasghrádú Shanghai/Capella a tharla an 12 Aibreán 2023. Tuilleadh faoi Shanghai/Capella + + +Tagraíonn **aistarraingtí geallchuir** d'aistrithe ETH ó chuntas bailíochtóra ar chiseal comhthola Ethereum (an Slabhra Beacon), chuig an gciseal reatha inar féidir é a dhéanamh. + +**Déanfar íocaíochtaí luaíochta barrachais** thar 32 ETH a sheoladh go huathoibríoch agus go rialta chuig seoladh aistarraingthe atá nasctha le gach bailíochtóir, a luaithe a sholáthraíonn an t-úsáideoir é. Is féidir le húsáideoirí **an geallchur a scor go hiomlán** freisin, ag díghlasáil a n-iarmhéid bailíochtaithe iomlán. + +## Díolaíocht geallchuir {#staking-rewards} + +Déantar íocaíochtaí luaíochta a phróiseáil go huathoibríoch do chuntais bhailíochtóra ghníomhaigh le hiarmhéid éifeachtach uasta de 32 ETH. + +Ní chuireann aon iarmhéid os cionn 32 ETH a thuilltear trí luaíocht leis an bpríomhshuim, ná ní mhéadaíonn sé meáchain an bhailíochtóra seo ar an líonra, agus mar sin tarraingítear siar go huathoibríoch é mar íocaíocht luaíochta gach cúpla lá. Seachas seoladh aistarraingthe a sholáthar uair amháin, níl aon ghníomhaíocht de dhíth ón oibreoir bailíochtóra do na luaíochtaí seo. Déantar é seo go léir a thionscnamh ar an gciseal comhthola, dá bhrí sin ní gá aon ghás (táille idirbhirt) ag aon chéim. + +### Conas a shroicheamar an pointe seo? {#how-did-we-get-here} + +Le cúpla bliain anuas tá Ethereum tar éis dul faoi roinnt uasghráduithe líonra ag aistriú go líonra atá urraithe ag ETH féin, in ionad mianadóireacht atá dian ar fhuinneamh mar a bhí tráth. Tugtar 'geallchur' ar an rannpháirtíocht i gcomhthoil Ethereum anois, mar go bhfuil ETH glasáilte ag na rannpháirtithe, á chur "i ngeall" don chumas a bheith rannpháirteach sa líonra. Tabharfar luaíiocht d’úsáideoirí a leanann na rialacha, agus féadfar pionós a ghearradh ar iarrachtaí calaoise. + +Ó seoladh an conradh taisce geallchuir i mí na Samhna 2020, tá roinnt ceannródaithe cróga Ethereum tar éis cistí a ghlasáil go deonach chun "bailíiochtóirí" a ghníomhachtú, cuntais speisialta a bhfuil an ceart acu bloic a fhianú go foirmiúil agus a mholadh, de réir rialacha líonra. + +Roimh uasghrádú Shanghai/Capella, ní raibh tú in ann do ETH geallta a úsáid ná a rochtain. Ach anois, is féidir leat liostáil d'fhonn do luaíochtaí a fháil go huathoibríoch isteach i gcuntas roghnaithe, agus is féidir leat do ETH geallta a aistarraingt aon uair is mian leat. + +### Conas a ullmhaím? {#how-do-i-prepare} + + + +### Fógraí tábhachtacha {#important-notices} + +Is céim riachtanach é seoladh aistarraingthe a sholáthar d’aon chuntas bailíochtóra sula mbeidh sé incháilithe ETH a aistarraingt óna iarmhéid. + + + Ní féidir ach seoladh aistarraingthe amháin a shannadh do gach cuntas bailíochtóra, uair amháin. Nuair a roghnaítear seoladh agus a chuirtear isteach sa tsraith chomhthola é, ní féidir é seo a chealú nó a athrú arís. Déan seiceáil faoi dhó ar úinéireacht agus ar chruinneas an tseolta a cuireadh ar fáil sula gcuirtear isteach é. + + +Níl bagairt ar do chistí idir an dá linn mura soláthraitear é seo, ag glacadh leis go bhfuil d'fhrása cuimhneacháin/síolta fós slán as líne, agus nach bhfuil sé curtha i mbaol ar bhealach ar bith. Mura gcuirtear dintiúir aistarraingthe leis, fágfar an ETH faoi ghlas sa chuntas bailíochtóra mar a bhí sé go dtí go gcuirtear seoladh aistarraingthe ar fáil. + +## Ag éirí as an ngeallchur go hiomlán {#exiting-staking-entirely} + +Is gá seoladh aistarraingthe a sholáthar sular féidir _aon chistí_ a aistriú amach as iarmhéid cuntais bhailíochtóra. + +Ní mór d'úsáideoirí atá ag iarraidh éirí as an ngeallchurgo hiomlán agus a n-iarmhéid iomlán a aistarraingt, teachtaireacht "imeacht dheonach" a shíniú agus a chraoladh freisin le heochracha bailíochtaithe a chuirfidh tús leis an bpróiseas chun éirí as an ngeallchur. Déantar é seo le do chliant bailíochtóra agus cuirtear faoi bhráid nód comhdhearcadh é, agus níl gá le gás. + +Tógann an próiseas a bhaineann le bailíochtóir éirí as an ngeallchur tréimhsí athraitheacha, ag brath ar cé mhéad daoine eile atá ag imeacht ag an am céanna. Nuair a bheidh an cuntas seo críochnaithe, ní bheidh an cuntas seo freagrach a thuilleadh as dualgais líonra bailíochtóra a chomhlíonadh, ní bheidh sé incháilithe le haghaidh luaíochtaí a thuilleadh, agus níl a ETH "i gceist" a thuilleadh. Ag an am seo déanfar an cuntas a mharcáil mar chuntas iomlán “in-aistarraingthe”. + +Chomh luath agus a bheidh cuntas "in-aistarraingthe", agus dintiúir aistarraingthe curtha ar fáil, níl aon rud eile le déanamh ag úsáideoir ach fanacht. Scuabtar cuntais go huathoibríoch agus go leanúnach ag moltóirí bloic do chistí éagtha incháilithe, agus aistreofar iarmhéid do chuntais ina iomláine (ar a dtugtar freisin “aistarraingt iomlán”) le linn an chéad scuabadh. + +## Cathain a chumasaítear aistarraingtí geallchuir? {#when} + +Tá aistarraingtí geallchuir beo! Cumasaíodh feidhmiúlacht aistarraingthe mar chuid d’uasghrádú Shanghai/Capella ar an 12 Aibreán 2023. + +Mar gheall ar uasghrádú Shanghai/Capella bhíothas in ann ETH a bhí i ngeall roimhe seo a fháil ar ais i gcuntais rialta Ethereum. Dhún sé seo an lúb ar leachtacht geallchuir, agus thug sé Ethereum céim níos gaire dá thuras i dtreo éiceachóras díláraithe inbhuanaithe, inscálaithe, slán a thógáil. + +- [Tuilleadh faoi stair Ethereum](/history/) +- [Tuilleadh ar an treochlár Ethereum](/roadmap/) + +## Conas a oibríonn íocaíochtaí aistarraingthe? {#how-do-withdrawals-work} + +Is é staid chuntas an bhailíochtóra féin a chinneann an bhfuil bailíochtóir áirithe incháilithe le haghaidh aistarraingthe nó nach bhfuil. Níl aon ionchur úsáideora ag teastáil ag aon am ar leith le cinneadh cé acu ar cheart nó nár cheart go dtionscnófaí aistarraingt cuntais – déantar an próiseas iomlán go huathoibríoch trí chiseal comhthola ar lúb leanúnach. + +### An bhfuil tú níos mó d’fhoghlaimeoir amhairc? {#visual-learner} + +Breathnaigh ar an míniú seo ar aistarraingtí geallchuir Ethereum ag Finematics: + + + +### "Scuabadh" Bailíochtóra {#validator-sweeping} + +Nuair atá bailíochtóir sceidealta chun an chéad bhloc eile a mholadh, ní mór dó scuaine aistarraingthe a thógáil, de suas le 16 aistarraingt incháilithe. Déantar é seo trí thosú ar dtús le hinnéacs bailíochtóra 0, ag cinneadh an bhfuil aistarraingt incháilithe don chuntas seo de réir rialacha an phrótacail, agus é a chur leis an scuaine má tá. Tógfaidh an bailíochtóir atá socraithe chun an bloc seo a leanas a mholadh an áit atá fágtha ag an gceann deireanach, ag dul ar aghaidh in ord ar feadh tréimhse éiginnte. + + +Smaoinigh ar chlog analógach. Díríonn an lámh ar an gclog go dtí an uair, téann sí ar aghaidh i dtreo amháin, ní scipeann sí uaireanta ar bith, agus sa deireadh filleann sí ar ais go dtí an tús arís tar éis an uimhir dheireanach a shroicheadh.

+Anois in ionad 1 go 12, samhlaigh go bhfuil 0 trí N ag an gclog (líon iomlán na gcuntas bailíochtóra a cláraíodh riamh ar an tsraith chomhthola, níos mó ná 500,000 ó Eanáir 2023).

+Díríonn an lámh ar an gclog chuig an gcéad bhailíochtóir eile nach mór a sheiceáil le haghaidh aistarraingtí incháilithe. Tosaíonn sé ag 0, agus téann sé chun cinn an bealach ar fad gan aon chuntais a scipeáil. Nuair a shroichtear an bailíochtóir deiridh, leanann an timthriall ar ais ag an tús. +
+ +#### Cuntas á sheiceáil le haghaidh aistarraingtí {#checking-an-account-for-withdrawals} + +Cé go bhfuil moltóir ag scuabadh trí bhailíochtóirí maidir le haistarraingtí féideartha, déantar gach bailíochtóir atá á sheiceáil a mheas i gcoinne sraith ghearr ceisteanna chun a chinneadh ar cheart tarraingt siar a spreagadh, agus má tá, cé mhéad ETH ba cheart a aistarraingt. + +1. **Ar cuireadh seoladh aistarraingthe ar fáil?** Murar soláthraíodh seoladh aistarraingthe, ní dhéantar an cuntas a scipeáil agus ní thionscnófar aon aistarraingt. +2. **An bhfuil an bailíochtóir scortha agus in-aistarraingthe?** Má tá an bailíochtóir imithe go hiomlán, agus an tréimhse sroichte againn ina meastar a chuntas a bheith "in-aistarraingthe", déanfar aistarraingt iomlán. a phróiseáil. Aistreoidh sé seo an t-iarmhéid iomlán atá fágtha chuig an seoladh aistarraingthe. +3. **An bhfuil an iarmhéid éifeachtach uasmhéadaithe ag 32?** Má tá dintiúir aistarraingthe ag an gcuntas, mura bhfuil sé imithe go hiomlán, agus má tá luach saothair os cionn 32 ag fanacht, déanfar aistarraingt pháirteach a phróiseáil anach n-aistreoidh ach na luaíocht os cionn 32 chuig seoladh aistarraingthe an úsáideora. + +Níl ach dhá ghníomh a dhéanann oibreoirí bailíochtóra le linn shaolré an bhailíochtóra a mbíonn tionchar díreach acu ar an sreabhadh seo: + +- Cuir dintiúir aistarraingthe ar fáil chun aon chineál aistarraingthe a chumasú +- Scoir ón líonra, rud a spreagfaidh aistarraingt iomlán + +### Saor ó ghás {#gas-free} + +Seachnaíonn an cur chuige seo maidir le haistarraingtí geallchuir a cheangal ar ghealltóirí idirbheart a chur isteach de láimh ag iarraidh go ndéanfaí méid áirithe ETH a aistarraingt. Ciallaíonn sé seo nach bhfuil **aon ghás (táille idirbhirt) ag teastáil**, agus freisin nach mbíonn aistarraingtí in iomaíocht le haghaidh spás blocála sraitheanna reatha. + +### Cé chomh minic is a gheobhaidh mé mo luaíochtaí geallchuir? {#how-soon} + +Is féidir uasmhéid de 16 aistarraingt a phróiseáil in aon bhloc amháin. Ag an ráta sin, is féidir 115,200 aistarraingt bhailíochtóra a phróiseáil in aghaidh an lae (ag glacadh leis nach gcailltear aon sliotán). Mar a luadh thuas, déanfar bailíochtóirí gan aistarraingtí incháilithe a scipeáil, rud a laghdóidh an t-am chun an scuabadh a chríochnú. + +Agus an ríomh seo á leathnú againn, is féidir linn an t-am a thógfaidh sé chun líon áirithe aistarraingtí a phróiseáil a mheas: + + + +|Líon aistarraingtí | Am le críochnú | +| :-------------------: | :--------------: | +| 400,000 | 3.5 lá | +| 500,000 | 4.3 lá | +| 600,000 | 5.2 lá | +| 700,000 | 6.1 lá | +| 800,000 | 7.0 lá | + + + +Mar a fheiceann tú moillíonn sé seo de réir mar a bhíonn níos mó bailíochtóirí ar an líonra. D'fhéadfadh méadú ar na sliotáin a chailltear é seo a mhoilliú go comhréireach, ach de ghnáth is é seo an taobh is moille de thorthaí féideartha. + +## Ceisteanna coitianta {#faq} + + +Ní féidir, is próiseas aonuaire é an próiseas chun dintiúir aistarraingthe a sholáthar, agus ní féidir é a athrú tar éis é a chur isteach. + + + +Trí sheoladh aistarraingthe ciseal forghníomhaithe a shocrú athraíodh na dintiúir aistarraingthe don bhailíochtóir sin go buan. Ciallaíonn sé seo nach n-oibreoidh na seandintiúir a thuilleadh, agus treoraíonn na dintiúir nua díreach chuig cuntas sraithe reatha. + +Féadfaidh seoltaí aistarraingthe a bheith ina gconradh cliste (arna rialú ag a chód), nó ina gcuntas faoi úinéireacht sheachtrach (EOA, arna rialú ag a eochair phríobháideach). Faoi láthair níl aon bhealach ag na cuntais seo teachtaireacht a chur ar ais go dtí an ciseal comhthola a chomharthódh athrú ar dhintiúir an bhailíochtóra, agus chuirfeadh cur leis an bhfeidhmiúlacht seo castacht neamhriachtanach leis an bprótacal. + +Mar mhalairt ar an seoladh aistarraingthe do bhailíochtóir leith a athrú, féadfaidh úsáideoirí rogha a dhéanamh conradh cliste a shocrú mar a seoladh aistarraingthe a bheadh ábalta láimhseáil eochair-uainíochta a dhéanamh, ar nós Taisceadáin. Is féidir le húsáideoirí a shocraíonn a gcuid cistí dá EOA féin slí amach iomlán a dhéanamh chun a gcistí geallta go léir a aistarraingt, agus ansin ath-gheall a dhéanamh ag baint úsáide as dintiúir nua. + + + + +Má tá tú mar chuid de linn geallchuir nó má tá comharthaí geallta agat, ba cheart duit seiceáil le do sholáthraí le haghaidh tuilleadh sonraí faoin gcaoi a láimhseáiltear aistarraingtí geallchuir, toisc go n-oibríonn gach seirbhís ar bhealach difriúil. + +Go ginearálta, ba cheart go mbeadh cead ag úsáideoirí a ETH bunaidh atá geallta a éileamh ar ais, nó an soláthraí geallchuir a úsáideann siad a athrú. Má tá comhthiomsú ar leith ag dul i méid ró-mhór, is féidir cistí a fhágáil, a fhuascailt agus a chur i ngeall arís le soláthraí níos lú. Nó, má tá go leor ETH carntha agat d’fhéadfá geallchur a dhéanamh ón mbaile. + + + + +Tarlaíonn a fhad is go bhfuil seoladh aistarraingte tugtha ag do bhailíochtóir. Ní mór é seo a sholáthar uair amháin chun aon aistarraingtí a chumasú ar dtús, ansin cuirfear tús le híocaíochtaí luaíochta go huathoibríoch gach cúpla lá le gach scuabadh bailíochtaóirí. + + + + +Ní tharlaíonn, má tá do bhailíochtóir fós gníomhach ar an líonra, ní dhéanfar aistarraingt iomlán go huathoibríoch. Éilíonn sé seo imeacht dheonach a thionscnamh de láimh. + +Nuair a bheidh an próiseas scoir curtha i gcrích ag bailíochtóir, agus ag glacadh leis go bhfuil dintiúir aistarraingthe ag an gcuntas, ansin aistarraingeofar an fuílleach le linn an chéad scuabadh bhailíochtóraeile. + + + + +Tá aistarraingtí deartha chun iad a bhrú go huathoibríoch, ag aistriú aon ETH nach bhfuil ag cur go gníomhach leis an ngeall. Áirítear leis seo iarmhéideanna iomlána do chuntais a bhfuil an próiseas reatha críochnaithe acu. + +Ní féidir méideanna sonracha ETH a aistarraingt a iarraidh de láimh. + + + + +Moltar d’oibreoirí bailíochtóra cuairt a thabhairt ar an leathanach Ceap Láinseála Aistarraingtí áit a bhfaighidh tú tuilleadh sonraí faoi conas do bhailíochtóir a ullmhú le haghaidh aistarraingtí, faoi uainiú na n-imeachtaí, agus tuilleadh sonraí faoin gcaoi a bhfeidhmíonn aistarraingtí. + +Chun triail a bhaint as do shocrú ar testnet ar dtús, tabhair cuairt ar Holesky Testnet Staking Launchpad chun tús a chur leis. + + + + +Ní féidir. A luaithe a bheidh bailíochtóir imithe agus a iarmhéid iomlán aistarraingthe, aistreofar go huathoibríoch aon chistí breise a thaiscfear don bhailíochtóir sin chuig an seoladh aistarraingthe le linn an chéad scuabadh bailíochtóra eile. Chun ETH a athbheartú, ní mór bailíochtóir nua a chur i ngníomh. + + +## Tuilleadh léitheoireachta {#further-reading} + +- [Aistarraingtí ón gCeap Lainseála Geallchuir](https://launchpad.ethereum.org/withdrawals) +- [EIP-4895: aistarraingtí brú slabhra beacon mar oibríochtaí](https://eips.ethereum.org/EIPS/eip-4895) +- [Tréadaithe Cat Ethereum - Shanghai](https://www.ethereumcatherders.com/shanghai_upgrade/index.html) +- [PEEPanEIP #94: Aistarraingt ETH Geallta (Tástáil) le Potuz & Hsiao-Wei Wang](https://www.youtube.com/watch?v=G8UstwmGtyE) +- [PEEPanEIP#68: EIP-4895: aistarraingtí brú slabhra Beacon mar oibríochtaí le Alex Stokes](https://www.youtube.com/watch?v=CcL9RJBljUs) +- [Iarmhéid Éifeachtach an Bhailíochtóra a Thuiscint](https://www.attestant.io/posts/understanding-validator-effective-balance/) diff --git a/src/intl/ga/common.json b/src/intl/ga/common.json index 45f86bba55d..7f29950b298 100644 --- a/src/intl/ga/common.json +++ b/src/intl/ga/common.json @@ -11,6 +11,7 @@ "adding-products": "Táirgí a Chur Leis", "adding-staking-products": "Táirgí Staking a Chur Leis", "adding-wallets": "Sparán a Chur Leis", + "ai-agents": "Gníomhairí AI", "aria-toggle-menu-button": "Scoránaigh an cnaipe roghchláir", "aria-toggle-search-button": "Scoránaigh an cnaipe cuardaigh", "beacon-chain": "Slabhra Beacon", @@ -221,6 +222,7 @@ "nav-about-description": "Tionscadal poiblí foinse oscailte do phobal Ethereum", "nav-advanced-description": "Foghlaim ábhair níos casta", "nav-advanced-label": "Casta", + "nav-ai-agents-description": "Déan iniúchadh ar shaol na ngníomhairí AI ar ethereum", "nav-basics-description": "Bunphrionsabail Ethereum a thuiscint", "nav-basics-label": "Bunphrionsabail", "nav-bridges-description": "Tá Web3 tagtha chun cinn ina éiceachóras de bhlocshlabhraí L1 príomha agus réitigh scálaithe L2", diff --git a/src/intl/ga/glossary-tooltip.json b/src/intl/ga/glossary-tooltip.json new file mode 100644 index 00000000000..9e6a986584c --- /dev/null +++ b/src/intl/ga/glossary-tooltip.json @@ -0,0 +1,164 @@ +{ + "51%-attack-term": "51% ionsaí", + "51%-attack-definition": "Cineál ionsaithe ina bhfaigheann grúpa smacht ar fhormhór na nóid. Ligfeadh sé seo dóibh calaois a dhéanamh ar an mblocshlabhra trí idirbhearta a aisiompú agus trí éitear agus dearbháin eile a chaitheamh faoi dhó.", + "abi-term": "Comhéadan Dénártha Feidhmchláir (ABI)", + "abi-definition": "Comhad JSON a shainíonn na feidhmeanna agus na hathróga atá san áireamh i gconradh cliste. Leis an ABI is féidir seachchód a mhapáil i bhformáidí atá inléite ag daoine.", + "account-term": "Cuntas", + "account-definition": "Is ionann cuntas Ethereum agus aitheantas digiteach ar an mblocshlabhra Ethereum, a ligeann d’úsáideoirí Ether nó sócmhainní digiteacha eile a sheoladh, a fháil, agus idirghníomhú le conarthaí cliste.", + "address-term": "Seoladh", + "address-definition": "Is aitheantóir uathúil é seoladh Ethereum a úsáidtear chun dearbháin a fháil, feidhmíonn sé mar uimhir chuntas bainc le haghaidh criptea-airgeadraí. Úsáidtear é chun do chuntas Ethereum a aithint.", + "anti-sybil-term": "Frith-Sibil", + "anti-sybil-definition": "An bhfuil bealaí ann le daoine a stopadh ó ligean orthu gur úsáideoirí iomadúla iad ag an am céanna ar an idirlíon, ag cinntiú gur duine fíor ar leith gach úsáideoir. Cuidíonn sé seo le hidirghníomhaíochtaí ar líne a choinneáil cothrom agus macánta.", + "apr-term": "APR", + "apr-definition": "Léiríonn APR, nó Ráta Céatadáin Bliantúil, an costas bliantúil a bhaineann le hairgead a fháil ar iasacht, lena n-áirítear ús agus táillí, mar chéatadán.", + "attestation-term": "Fianú", + "attestation-definition": "Éileamh a dhéanann eintiteas go bhfuil rud éigin fíor. I gcomhthéacs Ethereum, ní mór do bhailitheoirí comhaontaithe éileamh a dhéanamh maidir le staid an tslabhra a chreideann siad. Ag amanna ainmnithe, tá gach bailíochtóir freagrach as fianuithe éagsúla a fhoilsiú a dhearbhaíonn go foirmiúil dearcadh an bhailíochtóra seo ar an slabhra, lena n-áirítear an seicphointe deiridh críochnaithe agus ceann reatha an tslabhra. Tuilleadh fianuithe.", + "block-term": "Bloc", + "block-definition": "Is éard is bloc ann ná áit a stóráiltear idirbhearta nó gníomhartha digiteacha. Nuair a bhíonn bloc lán, déantar é a nascadh leis an gceann roimhe seo, rud a chruthaíonn slabhra bloc nó \"blocshlabhra\". Tuilleadh maidir le bloic.", + "blockchain-term": "Blocshlabhra", + "blockchain-definition": "Is bunachar sonraí idirbhearta é blocshlabhra, a cóipeáladh agus a roinneadh ar gach ríomhaire sa líonra, ag cinntiú nach féidir sonraí a athrú go haisghníomhach.", + "bridge-term": "Droichead", + "bridge-definition": "Úsáidtear droichead blocshlabhra chun sócmhainní a aistriú ó líonra blocshlabhra amháin go ceann eile.", + "consensus-term": "Comhdhearcadh", + "consensus-definition": "Nuair a aontaíonn níos mó ná 2/3 de na ríomhairí i líonra go bhfuil an tsraith taifead céanna acu, ag cinntiú go bhfuil gach duine ar an leathanach céanna. Ní bhaineann sé seo leis na rialacha a leanann siad, ach ag cinntiú go bhfuil an fhaisnéis chéanna acu go léir.", + "consensus-client-term": "Cliant comhthola", + "consensus-client-definition": "Reáchtálann cliaint chomhthola (cosúil le Prysm, Teku, Nimbus, Lighthouse, Lodestar) algartam comhthola cruthúnas-geallála Ethereum a ligeann don líonra teacht ar chomhaontú faoi cheann an tSlabhra Rabhcháin. Ní ghlacann cliaint chomhthola páirt in idirbhearta a bhailíochtú/craoladh nó aistrithe stáit a chur i gcrích. Déanann cliaint forghníomhaithe é seo. Ní fhianaíonn cliaint chomhthola, nó ní mholann siad bloic nua. Déanann an cliant bailíochtóra é seo, ar breiseán roghnach é don chliant comhthola.", + "consensus-layer-term": "Ciseal comhthola", + "consensus-layer-definition": "Is é ciseal comhthola Ethereum ná líonra na gcliaint chomhthola.", + "cryptoeconomics-term": "Criptéacnamaíocht", + "cryptoeconomics-definition": "Staidéar ar phrionsabail matamaitice agus eacnamaíocha chun ardáin dhigiteacha atá slán iontaofa a dhearadh. Is é an sprioc a áirithiú go leanann na rannpháirtithe go léir na rialacha agus go bhfaighidh siad luach saothair as rannchuidiú le slándáil agus oibriú an ghréasáin. ", + "cryptography-term": "Cripteagrafaíocht", + "cryptography-definition": "Is é an cleachtas atá ann cumarsáid a dhéanamh príobháideach agus slán ionas nach féidir ach leo siúd a bhfuil an fhaisnéis ceaptha dóibh í a léamh.", + "dao-term": "Eagraíocht uathrialach dhíláraithe (DAO)", + "dao-definition": "Is eagraíocht dhigiteach é DAO a reáchtálann rialacha atá códaithe ar bhlocshlabhra, áit a ndéantar cinntí trí vótaí na mball, ní údarás lárnach. Tuilleadh faoi eagraíochtaí uathrialaitheacha díláraithe (DAOs).", + "dapp-term": "Dapp", + "dapp-definition": "Is feidhmchlár díláraithe é dApp a ritheann ar líonra blocshlabhra, a thairgeann seirbhísí gan údarás rialaithe lárnach. Tuilleadh faoi fheidhmchláir dhíláraithe.", + "data-availability-term": "Infhaighteacht sonraí", + "data-availability-definition": "Is féidir le haon nód idirbhearta a fhíorú go neamhspleách ar blocshlabhra chun trédhearcacht agus muinín sa chóras a choinneáil.", + "defi-term": "DeFi", + "defi-definition": "Catagóir leathan d'aipeanna Ethereum a bhfuil sé mar aidhm acu seirbhísí airgeadais a sholáthar le tacaíocht ón mblocshlabhra, gan aon idirghabhálaithe. Tuilleadh faoin airgeadas díláraithe (DeFi)", + "dex-term": "Malartú díláraithe (DEX)", + "dex-definition": "Cineál aip Ethereum a ligeann duit comharthaí a mhalartú le piaraí ar an líonra. Níl DEXanna faoi réir srianta geografacha amhail malartuithe láraithe – is féidir le haon duine a bheith rannpháirteach.", + "difficulty-bomb-term": "Buama deacrachta", + "difficulty-bomb-definition": "Méadú easpónantúil pleanáilte i suíomh cruthúnas-oibre deacracht a dearadh chun an t-aistriú go cruthúnas-geallála a spreagadh, ag laghdú seans forc. Ní raibh an buama deacrachta ag dul i léig le an Cumasc.", + "ecdsa-term": "Algartam Síniú Digiteach an Chuair Éiliptigh (ECDSA)", + "ecdsa-definition": "Algartam cripteagrafach a úsáideann Ethereum chun a chinntiú nach féidir cistí a chaitheamh ach amháin ag a n-úinéirí. Is é an modh is fearr chun eochracha poiblí agus príobháideacha a chruthú. Ábhartha do ghiniúint seolta agus fíorú idirbhirt.", + "ens-term": "Seirbhís Ainm Ethereum (ENS)", + "ens-definition": "Tá Seirbhís Ainm Ethereum cosúil le leabhar teileafóin idirlín le haghaidh seoltaí Ethereum. In ionad seoltaí fada sparán a úsáid, ligeann ENS duit ainmneacha simplí cosúil le \"john.eth\" a úsáid chun airgead agus sócmhainní digiteacha a sheoladh agus a fháil.", + "epoch-term": "Ré", + "epoch-definition": "Tréimhse 32 sliotán, 12 soicind i ngach sliotán, 6.4 nóiméad san iomlán. Déantar coistí Validator coistí a shuffles gach ré ar chúiseanna slándála. Tá deis ag gach ré an slabhra a críochnú. Sanntar freagrachtaí nua do gach bailíochtóir ag tús gach aga. Tuilleadh faoi chruthúnas-geallála", + "eoa-term": "Cuntas faoi úinéireacht eachtrach (EOA)", + "eoa-definition": "Is iad Cuntais faoi Úinéireacht Sheachtrach (EOAanna) an cineál cuntais Ethereum is coitianta. Tá siad á rialú ag duine trí eochracha príobháideacha / frása aisghabhála. Tuilleadh ar sparán Ethereum.", + "erc-term": "Iarratas Ethereum ar Thuairimí (ERC)", + "erc-definition": "Is cineál doiciméadúchán teicniúil é ERC (Iarratas Ethereum ar Thuairimí) a úsáidtear sa phobal Ethereum chun caighdeáin nua úsáide a mholadh do líonra Ethereum.", + "erc-1155-term": "ERC-1155", + "erc-1155-definition": "Cineál de chaighdeán comhartha Ethereum cosúil le NFT (cosúil le míreanna inbhailithe uathúla) a cheadaíonn freisin míreanna idirmhalartaithe (cosúil le airgeadra) a chruthú laistigh de chonradh cliste amháin.", + "erc-20-term": "ERC-20", + "erc-20-definition": "An sraith caighdeánach rialacha a chruthaítear an chuid is mó de na comharthaí ar líonra Ethereum leis.", + "erc-721-term": "ERC-721", + "erc-721-definition": "Sraith caighdeánach rialacha a úsáidtear chun NFTanna a chruthú (dearbháin nach féidir iad a chóipeáil).", + "ether-term": "Ether", + "ether-definition": "Criptea-airgeadra dúchasach Ethereum, dá ngairtear \"ETH\" de ghnáth. Úsáidtear é chun táillí idirbhirt a chlúdach nuair a úsáidtear éiceachóras Ethereum agus feidhmchláir. Tuilleadh faoin éitear.", + "events-term": "Imeachtaí", + "events-definition": "Ceadaíonn sé saoráidí logála EVM a úsáid. Is féidir le Dapps éisteacht le haghaidh imeachtaí agus iad a úsáid chun aisghlaonna JavaScript a spreagadh sa chomhéadan úsáideora. Tuilleadh faoi imeachtaí agus logaí", + "execution-client-term": "Cliant forghníomhaithe", + "execution-client-definition": "Tá sé de chúram ar chliaint fhorghníomhaithe (ar a dtugtaí \"cliaint Eth1 roimhe seo\"), mar shampla Besu, Erigon, Go-Ethereum (Geth), Nethermind, idirbhearta a phróiseáil agus a chraoladh agus staid Ethereum a bhainistiú. Ritheann siad na ríomhanna do gach idirbheart ag baint úsáide as an Meaisín Fíorúil Ethereum chun a chinntiú go leantar rialacha an phrótacail.", + "execution-layer-term": "Ciseal forghníomhaithe", + "execution-layer-definition": "Is é ciseal forghníomhaithe Ethereum an líonra de cliaint forghníomhaithe.", + "finality-term": "Críochtúlacht", + "finality-definition": "Is éard atá i gcríochúlacht ná ráthaíocht nach féidir sraith idirbheart a athrú gan méid ollmhór ETH a chailleadh.", + "fork-term": "Forc", + "fork-definition": "Athrú prótacail is cúis le cruthú slabhra malartach.", + "fraud-proof-term": "Cruthúnas calaoise", + "fraud-proof-definition": "Samhail slándála do réitigh áirithe ciseal 2 ina ndéantar, chun luas a mhéadú, idirbhearta a rolladh suas i mbaisceanna agus a chur faoi bhráid Ethereum in aon idirbheart amháin. Is féidir le rannpháirtithe líonra eile na hidirbhearta a ath-fhorghníomhú chun a sheiceáil go ndearnadh iad a fhorghníomhú go hionraic. Má aimsíonn siad neamhréireacht idir na sonraí postáilte agus a leagan féin féadfaidh siad cruthúnas cripteagrafach a phostáil a thaispeánann cár tharla calaois áirithe. Úsáideann roinnt rollups cruthúnais bailíochta.", + "gas-term": "Gás", + "gas-definition": "Is é gás an táille a íoctar as idirbhearta agus conarthaí cliste ar blocshlabhra, cosúil le Ethereum. Tuilleadh faoi ghás agus táillí.", + "genesis-block-term": "Bloc Genesis", + "genesis-block-definition": "An chéad bhloc i blocshlabhra, a úsáidtear chun líonra ar leith agus a chuid criptea-airgeadra a thionscnamh.", + "gwei-term": "Gwei", + "gwei-definition": "Short for gigawei, ainmníocht éitear, a úsáidtear go coitianta chun gás a phraghsáil. 1 gwei = 109 wei. 109 gwei = 1 éitear.", + "hash-term": "Hais", + "hash-definition": "Méarloirg fad seasta d'ionchur de mhéid athraitheach, arna tháirgeadh ag feidhm hais. (Féach keccak-256).", + "holographic-consensus-term": "Comhdhearcadh holografach", + "holographic-consensus-definition": "Tagraíonn sé don chaoi a ndéantar cinneadh grúpa mór trí ligean do ghrúpa níos lú de dhaoine ionadaíocha vótáil. Ansin aontaíonn gach duine eile dul leis, a fhad agus a bhfuil muinín acu go ndearna an grúpa beag jab maith.", + "index-term": "Innéacs", + "index-definition": "Is éard atá i gceist le struchtúr líonra an cheistiú faisnéise a bharrfheabhsú ó ar fud an blocshlabhra trí chonair éifeachtach a sholáthar chuig a fhoinse stórála.", + "key-term": "Eochair", + "key-definition": "I gcomhthéacs Ethereum, is cóid dhigiteacha iad eochracha: eochair phoiblí chun idirbhearta a fháil agus eochair phríobháideach chun cistí a rochtain agus a sheoladh.", + "layer-2-term": "Ciseal 2", + "layer-2-definition": "Is líonraí eile iad sraitheanna 2s a tógadh ar bharr príomhghréasán Ethereum chun idirbhearta a dhéanamh níos tapúla agus níos saoire. Tuilleadh ar ciseal 2.", + "liquidity-tokens-term": "Comharthaí leachtachta", + "liquidity-tokens-definition": "Is dearbháin digiteacha iad dearbháin leachtachta (LT) a eisítear chuig rannpháirtithe a thaisceann sócmhainní i stór leachtachta, ar bailiúchán cistí iad atá faoi ghlas i gconradh cliste agus a úsáidtear chun trádáil ar mhalartán díláraithe (DEX) a éascú.", + "mainnet-term": "Príomhlíonra", + "mainnet-definition": "Gearr do \"príomhghréasán\", is é seo an príomhlíonra Ethereum blocshlabhra.", + "mev-term": "MEV", + "mev-definition": "Meicníocht a thugann tosaíocht do ghníomhaíochtaí áirithe ar bhlocshlabhra ar tháille, a mbíonn tionchar acu ar thorthaí agus ar ord na n-idirbheart.", + "multisig-term": "Ilsíniú (Multisig)", + "multisig-definition": "Tagraíonn Multisig (ilshíniú) do sparán digiteach nó cuntas a éilíonn sínithe iolracha nó formheasanna chun idirbhearta a dhéanamh, rud a chuireann le slándáil.", + "nft-term": "Comhartha neamh-mhungible (NFT)", + "nft-definition": "Mír dhigiteach uathúil ar féidir leat a bheith i do sheilbh, amhail ealaín nó earraí inbhailithe, arna bhfíorú ag teicneolaíocht blocshlabhra. Tuilleadh eolais ar chomharthaí neamh-inmheasctha (NFTanna).", + "node-term": "Nód", + "node-definition": "Cliant bogearraí a ghlacann páirt sa líonra. Tuilleadh faoi nóid agus cliaint.", + "ommer-term": "Ommer (uncail) bloc", + "ommer-definition": "Nuair a aimsíonn cruthúnas-oibre mianadóir bloc bailí bloc, seans go mbeidh bloc iomaíoch foilsithe ag mianadóir eile a chuirtear le barr an bhlocshlabhra ar dtús. Is féidir an bloc bailí, ach sean, a áireamh le bloic níos nuaí mar ommers agus gheobhaidh sé páirt-luaíocht bloc. Is é an téarma \"ommer\" an téarma is fearr inscne-neodrach le haghaidh deartháir nó deirfiúr bloc tuismitheora, ach uaireanta tugtar \"uncail\" air seo freisin. Bhí sé seo coitianta i gcás Ethereum nuair a bhí sé ina líonra cruthúnas ar obair. Anois go n-úsáideann Ethereum cruthúnas ar an ngeall, ní roghnaítear ach blocthograí amháin in aghaidh na sliotán.", + "onchain-term": "Ar slabhra", + "onchain-definition": "Tagraíonn sé seo do ghníomhartha nó idirbhearta a tharlaíonn ar an mblocshlabhra agus atá ar fáil go poiblí.", + "optimistic-rollup-term": "Rollup dóchasach", + "optimistic-rollup-definition": "Réiteach Sraith 2 is ea Rollup Dóchasach a chuireann dlús le hidirbhearta ar Ethereum, ag glacadh leis go bhfuil siad bailí de réir réamhshocraithe mura ndéantar agóid ina leith. Tuilleadh faoi rolladh rollup dóchasach.", + "peer-to-peer-network-term": "Líonra piaraí-go-piara", + "peer-to-peer-network-definition": "Líonra ríomhairí (piaraí) atá in ann feidhmiúlachtaí a dhéanamh le chéile gan gá le seirbhísí láraithe bunaithe ar fhreastalaí.", + "permissionless-term": "Gan chead", + "permissionless-definition": "Níl aon chead nó formheas ag teastáil chun córas cosúil le Ethereum a úsáid agus ní féidir le duine ar bith stop a chur ort ó úsáid a bhaint as. Tá sé oscailte 24/7 do gach duine páirt a ghlacadh.", + "private-key-term": "Eochair phoiblí", + "private-key-definition": "Is cód rúnda í eochair phríobháideach a chruthaíonn gur leatsa d’airgead digiteach agus a ligeann duit é a chaitheamh, amhail UAP do do chuntas. NÁ ROINN É.", + "poap-term": "POAP", + "poap-definition": "Úsáidtear Prótacal Cruthúnas Tinrimh chun inbhailithe digiteach (NFT) a chruthú a chruthaíonn gur fhreastail tú ar imeacht nó ar ghníomhaíocht ar leith.", + "pos-term": "Cruthúnas-de-gealláil (PoS)", + "pos-definition": "Modh trína bhfuil sé mar aidhm ag prótacal criptea-airgeadra blocshlabhra comhthola a bhaint amach. Iarrann PoS ar úsáideoirí úinéireacht a chruthú ar mhéid áirithe criptea-airgeadra (a \"geallta\" sa líonra) d'fhonn a bheith in ann páirt a ghlacadh i mbailíochtú na n-idirbheart. Tuilleadh faoi chruthúnas.", + "pow-term": "Cruthúnas-de-oibre (PoW)", + "pow-definition": "Meicníocht slándála le haghaidh blocshlabhra a éilíonn nóid fuinneamh a chaitheamh i bhfoirm ríomh chun luach áirithe a fháil.", + "public-goods-term": "Earraí poiblí", + "public-goods-definition": "Is féidir le gach duine earraí poiblí a úsáid saor in aisce, mar pháirceanna nó aer glan, agus ní chuireann sé bac ar dhaoine eile iad a úsáid freisin. Is minic a sholáthraíonn rialtais iad seo mar ní gnách le gnólachtaí, mar ní féidir leo táille a ghearradh go héasca ar dhaoine as iad a úsáid.", + "public-key-term": "Eochair phoiblí", + "public-key-definition": "Is éard atá in eochair phoiblí ná sraith carachtar a ligeann do dhaoine eile airgeadra digiteach a sheoladh chugat go slán, amhail seoladh ríomhphoist ar airgead.", + "quadratic-voting-term": "Vótáil chearnach", + "quadratic-voting-definition": "Is modh vótála é ina gcuireann vótálaithe in iúl cé chomh láidir agus a mhothaíonn siad faoi cheisteanna. Ligeann sé do vótálaithe ní hamháin tosaíocht a thaispeáint, ach freisin déine a rogha.", + "recovery-phrase-term": "Frása síolta/frása aisghabhála", + "recovery-phrase-definition": "Liosta focal a thugtar duit nuair a chruthaíonn tú sparán digiteach. Feidhmíonn sé mar fhocal faire a chuideoidh leat dul ar ais isteach i do sparán má chailleann tú rochtain, ag cinntiú nach gcaillfidh tú do chuid airgid digiteach nó comharthaí.", + "rollups-term": "Rollups", + "rollups-definition": "Cineál ciseal 2 réitigh scálaithe a bhaisceann idirbhearta iolracha agus a chuireann faoi bhráid príomhshlabhra Ethereum in aon idirbheart amháin. Ligeann sé seo do laghduithe ar chostais gáis agus méaduithe ar thréchur idirbheart. Tá rolladh suas dóchasach agus nialais eolais ann a úsáideann modhanna slándála éagsúla chun na gnóthachain inscálaithe seo a thairiscint. Tuilleadh maidir le rolladh suas.", + "rpc-term": "Glao ar nós imeachta cianda (RPC)", + "rpc-definition": "Ligeann RPC do ríomhaire amháin sonraí nó gníomh a iarraidh ó dhuine eile thar líonra, amhail faisnéis a iarraidh le cianrialtán.", + "sequencer-term": "Seicheamhóir", + "sequencer-definition": "Is clár é seicheamhóir atá freagrach as idirbhearta a ordú i líonra blocshlabhra.", + "smart-contract-term": "Conradh cliste", + "smart-contract-definition": "Is clár é conradh cliste a fhorghníomhaíonn go huathoibríoch comhaontuithe ar blocshlabhra, cosúil le conradh digiteach féin-fhorfheidhmithe. Réamhrá ar chonarthaí cliste.", + "stablecoin-term": "Stablecoin", + "stablecoin-definition": "Is cineál criptea-airgeadra é stablecoin atá deartha chun luach cobhsaí a bheith aige, go minic pegáilte chuig airgeadra nó tráchtearraí (cosúil le dollar SAM), chun luaineacht praghsanna a íoslaghdú. Tuilleadh ar bhoinn stáblaí.", + "staking-term": "Geallchur", + "staking-definition": "Cainníocht éitear (do gheall) a thaisceadh le bheith i do bhailitheoir agus an líonra a dhaingniú. Seiceálann bailíochtóir idirbhearta agus molann sé bloic faoi shamhail cruthúnas-de-gealláil. Tugann geallála dreasacht eacnamaíoch duit chun gníomhú ar mhaithe le leas an líonra. Gheobhaidh tú luaíochtaí as do chuid dualgas bhailíochtóir a dhéanamh, ach caillfidh tú méideanna éagsúla ETH mura ndéanann tú é. Tuilleadh faoi geallála Ethereum.", + "staking-pool-term": "Linn snámha geallála", + "staking-pool-definition": "An ETH comhcheangailte de níos mó ná gealltóir Ethereum amháin, a úsáidtear chun an 32 ETH a theastaíonn chun sraith eochracha bailíochtóra a ghníomhachtú a bhaint amach. Úsáideann oibritheoir nóid na heochracha seo chun páirt a ghlacadh i gcomhthoil agus roinntear na bloc luaíochtaí idir na geallsealbhóirí rannpháirteacha. Ní ó dhúchas do phrótacal Ethereum ná linnte cruachta nó stacáil a tharmligean, ach tá go leor réitigh tógtha ag an bpobal. Tuilleadh maidir le geallta comhthiomsaithe.", + "sybil-attack-term": "Sybil ionsaí", + "sybil-attack-definition": "Tagraíonn ionsaithe Sybil do dhaoine aonair a bheith ag breacadh síos córas chun smaoineamh gur daoine iolracha iad chun a dtionchar a mhéadú.", + "terminal-total-difficulty-term": "Deacracht iomlán críochfoirt (TTD)", + "terminal-total-difficulty-definition": "Is é an deacracht iomlán suim deacracht mianadóireachta Ethash do gach bloc suas go pointe áirithe sa blockchain. Is ionann deacracht iomlán an chríochfoirt agus luach sonrach don deacracht iomlán a úsáideadh mar thruicear do chliaint fhorghníomhaithe chun a bhfeidhmeanna mianadóireachta agus blocála a mhúchadh, rud a chuir ar chumas an líonra aistriú go dtí cruthúnas ar an gceist. Níl sé ábhartha a thuilleadh toisc gur bhog Ethereum go cruthúnas i gceist.", + "transaction-fee-term": "Táille idirbhirt", + "transaction-fee-definition": "Táille a chaithfidh tú a íoc aon uair a úsáideann tú líonra Ethereum. I measc na samplaí tá cistí a sheoladh ó do sparán nó idirghníomhú dapp, amhail comharthaí a mhalartú nó ceann inbhailithe a cheannach. Is féidir leat smaoineamh air seo mar tháille seirbhíse. Athróidh an táille seo bunaithe ar cé chomh gnóthach is atá an líonra. Tá sé seo amhlaidh toisc gur dócha go dtabharfaidh bhailitheoirí, na daoine atá freagrach as d’idirbheart a phróiseáil, tús áite d’idirbhearta a bhfuil táillí níos airde orthu – mar sin cuireann brú tráchta an praghas in airde.

Ar leibhéal teicniúil, baineann do tháille idirbhirt le cé mhéad gás atá de dhíth ar d’idirbheart.

is ábhar do tháillí an idirbhirt an ceart anois. Féach Ciseal 2.", + "trust-assumptions-term": "Toimhdí muiníne", + "trust-assumptions-definition": "Is bunchreidimh iad boinn tuisceana iontaobhais faoi shábháilteacht agus spleáchas córais, a threoraíonn an méid a bhfuil muinín againn as le go bhfeidhmeoidh an córas.", + "validator-term": "Bailitheoir", + "validator-definition": "Nód nód i gcóras cruthúnas-de-gealláil atá freagrach as sonraí a stóráil, idirbhearta a phróiseáil agus as bloic nua a chur leis an mblocshlabhra. Chun bogearraí bailíochtaithe a ghníomhachtú, ní mór duit a bheith in ann gealláil 32 ETH. Níos mó faoi geallála i Ethereum.", + "validity-proof-term": "Cruthúnas bailíochta", + "validity-proof-definition": "Múnla slándála do réitigh áirithe ciseal 2 ina ndéantar, chun luas a mhéadú, idirbhearta a rolladh suas i mbaisceanna agus a chur faoi bhráid Ethereum in aon idirbheart amháin. Déantar ríomh an idirbhirt as slabhra agus ansin cuirtear ar fáil don phríomhshlabhra é le cruthúnas ar a mbailíocht. Méadaíonn an modh seo líon na n-idirbheart is féidir agus slándáil á chothabháil. Úsáideann roinnt rollups calaois proof. Tuilleadh ar rollups eolas nialais.", + "wallet-term": "Sparán", + "wallet-definition": "Is uirlis dhigiteach é sparán chun airgeadra digiteach a stóráil, a sheoladh agus a fháil, cosúil le sparán fíorúil le haghaidh do chuid airgid ar líne. Tuilleadh ar sparán Ethereum.", + "web2-term": "Web2", + "web2-definition": "An bhfuil an t-idirlíon reatha, dírithe ar ábhar arna ghiniúint ag úsáideoirí agus ar na meáin shóisialta atá á rialú ag beagán cuideachtaí. Is creideamh criptea é Web3 gur cheart d'úsáideoirí a gcuid sonraí agus a n-idirbheart a rialú ina ionad sin.", + "web3-term": "Web3", + "web3-definition": "Is é Web3 an t-idirlíon nua le blocshlabhra, áit a rialaíonn úsáideoirí a gcuid sonraí agus idirbhearta, ní cuideachtaí. Ní gá aon fhaisnéis phearsanta a roinnt. Tuilleadh ar web3.", + "wei-term": "Wei", + "wei-definition": "An t-ainmníocht éitear is lú. 1018 wei = 1 éitear.", + "zk-proof-term": "Cruthúnas nialais-eolais", + "zk-proof-definition": "Is modh cripteagrafach é cruthúnas nial-eolais a ligeann do dhuine aonair a chruthú go bhfuil ráiteas fíor gan aon fhaisnéis bhreise a thabhairt. Tuilleadh ar rolladh suas eolas nialais." +} diff --git a/src/intl/ga/page-community.json b/src/intl/ga/page-community.json new file mode 100644 index 00000000000..6ffe05d49b7 --- /dev/null +++ b/src/intl/ga/page-community.json @@ -0,0 +1,61 @@ +{ + "page-community-card-1-title": "Glac páirt i bpobal ar líne", + "page-community-card-1-description": "Aimsigh do threibh agus páirt a ghlacadh i bpobal le díograiseoirí Ethereum eile.", + "page-community-card-2-title": "Imeachtaí Ethereum", + "page-community-card-2-description": "Aimsigh agus glac páirt i gcomhdháil Ethereum, hackathon, nó cruinniú.", + "page-community-card-3-title": "Cuir le tionscadal", + "page-community-card-3-description": "Breathnaigh ar an gcaoi le bheith páirteach le haghaidh liosta bealaí inar féidir leat cur leis bunaithe ar do scileanna agus do chúlra gairmiúil.", + "page-community-card-4-title": "Cuardaigh deontais", + "page-community-card-4-description": "Tá deontais mhaoinithe ar fáil chun cabhrú leat tionscadal a chur ar bun.", + "page-community-contribute": "Cur le ethereum.org", + "page-community-contribute-button": "Tuilleadh faoi rannchuidiú", + "page-community-contribute-description": "I gcás go leor daoine, is é ethereum.org a gcéad chéim isteach san éiceachóras. Coinníonn na mílte ranníocóirí foinse oscailte é cothrom le dáta agus cruinn. Ag iarraidh cabhrú? Léigh ár dtreoir maidir le rannchuidiú, nó cuir ceist ar ár GitHub.", + "page-community-contribute-secondary-button": "Amharc ar GitHub", + "page-community-daos-callout-title": "Eagraíochtaí Uathrialacha Díláraithe (DAOnna)", + "page-community-daos-callout-description": "Úsáideann na grúpaí seo teicneolaíocht Ethereum chun eagrú agus comhoibriú a éascú. Mar shampla, chun ballraíocht a rialú, vótáil ar thograí, nó sócmhainní comhthiomsaithe a bhainistiú.", + "page-community-explore-dapps": "Foghlaim faoi dhaipeanna", + "page-community-explore-dapps-alt": "Foghlaim faoi dhaipeanna", + "page-community-explore-dapps-description": "Is feidhmchláir iad Dappanna a tógadh ar Ethereum. Tá Dapps ag cur isteach ar mhúnlaí gnó reatha agus ag cumadh cinn nua.", + "page-community-explore-dapps-title": "Bain triail as roinnt daipeanna", + "page-community-explore-grants": "Deontais a iniúchadh", + "page-community-find-a-job": "Faigh post", + "page-community-get-eth": "Faigh ETH", + "page-community-get-eth-alt": "Faigh roinnt ETH", + "page-community-get-eth-description": "Is é ETH airgeadra dúchais Ethereum. Beidh roinnt ETH de dhíth ort i do sparán chun feidhmchláir Ethereum a úsáid.", + "page-community-get-eth-title": "Faigh roinnt ETH", + "page-community-get-involved-title": "Conas is féidir liom a bheith páirteach?", + "page-community-get-involved-description": "Tá go leor bealaí ann chun páirt a ghlacadh sa phobal Ethereum atá ag fás go tapa; is féidir leat a bheith páirteach i gceann de na pobail ar líne a bhfuil tóir orthu, freastal ar imeacht, páirt a ghlacadh i ngrúpa cruinnithe, cur le tionscadal, nó páirt a ghlacadh i gceann de na fóraim ar líne iomadúla faoi Ethereum.", + "page-community-get-involved-image-alt": "Glac páirt", + "page-community-hero-alt": "Mol pobail Ethereum", + "page-community-hero-header": "Fáilte chuig an mol pobail Ethereum", + "page-community-hero-subtitle": "Tá pobal Ethereum ina bhaile do na céadta mílte forbróirí, teicneolaithe, dearthóirí, úsáideoirí, HODLers agus díograiseoirí.", + "page-community-hero-title": "Bí ar an bpobal", + "page-community-meetuplist-no-meetups": "Níl aon cruinnithe againn a mheaitseálann an cuardach seo. Bhfuil aon ealas agat ar cheann?", + "page-community-meta-title": "Mol Pobail", + "page-community-meta-description": "Cur síos ar leathanach baile an phobail", + "page-community-open-source": "Cruthaitheoir? Tógálaí? Faigh íoctha as do chuid oibre.", + "page-community-open-source-description": "An bhfuil tú ag tógáil ar Ethereum, nó ar mhaith leat? Tá na mílte ról teicniúil agus neamhtheicniúil á bhfostú ag cuideachtaí. An bhfuil smaoineamh agat féin? Déan iarracht deontas a aimsiú chun do thionscadal a chur ar bun.", + "page-community-open-source-image-alt": "Faigh íoctha as do chuid oibre", + "page-community-please-add-to-page": "Cuir leis an leathanach seo é le do thoil!", + "page-community-support": "Tacaíocht Ethereum", + "page-community-support-alt": "Tacaíocht", + "page-community-support-button": "Faigh tacaíocht", + "page-community-support-description": "Tacaíocht uait? Níl aon tacaíocht oifigiúil Ethereum ann, ach tá na céadta pobal cabhrach ar fáil chun cabhrú leat rath a fháil ar Ethereum.", + "page-community-try-ethereum": "Bain triail as Ethereum duit féin", + "page-community-upcoming-events-no-events": "Níl a fhios againn aon imeachtaí atá le teacht. Bhfuil aon eolas agat ar cheann?", + "page-community-upcoming-events-load-more": "Luchtaigh níos mó", + "page-community-upcoming-events-view-event": "Amharc ar imeacht", + "page-community-why-get-involved-title": "Cén fáth a bheith páirteach?", + "page-community-why-get-involved-card-1-title": "Aimsigh do threibh", + "page-community-why-get-involved-card-1-description": "Tá treibh ann do gach duine. Aimsigh agus déan teagmháil le daoine ar aon intinn leo chun Ethereum a phlé, a mheas agus a cheiliúradh le chéile.", + "page-community-why-get-involved-card-2-title": "Saol a thuilleamh", + "page-community-why-get-involved-card-2-description": "Tá billí le híoc ag gach duine. Ceadaíonn Ethereum duit obair bhríoch a fháil, agus íocaíocht mhaith a fháil chun é a dhéanamh.", + "page-community-why-get-involved-card-3-title": "Déan difríocht", + "page-community-why-get-involved-card-3-description": "Ligeann baint le Ethereum duit a bheith i do pháirtí leasmhar gníomhach i dteicneolaíocht a bhfuil tionchar dearfach aici ar na milliúin daoine.", + "page-index-internet-image-alt": "Léiriú de ríomhaire todhchaíoch a cuireadh ar bun, faoi thiomáint ag criostail Ethereum.", + "page-index-get-started-image-alt": "Léaráid de dhuine ag obair ar ríomhaire.", + "page-index-get-started-wallet-image-alt": "Léaráid de róbat le cruinneachán mar chorp, a léiríonn sparán Ethereum.", + "page-index-get-started-eth-image-alt": "Léaráid de ghrúpa daoine ag déanamh iontais faoi glif éitear (ETH) le hiontas.", + "page-index-get-started-dapps-image-alt": "Léaráid de doge ag baint úsáide as ríomhaire.", + "page-index-get-started-devs-image-alt": "Léaráid de lámh a chruthaíonn lógó ETH déanta as brící lego." +} diff --git a/src/intl/ga/page-dapps.json b/src/intl/ga/page-dapps.json index ceaf0d0b728..300e4de00a6 100644 --- a/src/intl/ga/page-dapps.json +++ b/src/intl/ga/page-dapps.json @@ -90,6 +90,7 @@ "page-dapps-dapp-description-ipfs": "Prótacal hipirmheáin idir comhghleacaithe atá deartha chun eolas an chine dhaonna a chaomhnú agus a mhéadú tríd an ngréasán a dhéanamh in‑uasghrádaithe, athléimneach agus níos oscailte.", "page-dapps-dapp-description-radicle": "Comhoibriú cóid a dhaingniú idir comhghleacaithe gan idirghabhálaithe.", "page-dapps-dapp-description-kyberswap": "Babhtáil agus tuilleamh ar na rátaí is fearr.", + "page-dapps-dapp-description-kiwinews": "Faigh nuacht shuimiúil Ethereum, ailt, agus táirgí coimeádta do thógálaithe ag tógálaithe. Déan iad a phlé le comhfhorbróirí, bunaitheoirí, agus infheisteoirí.", "page-dapps-dapp-description-lido": "Geallchur simplithe agus slán do shócmhainní digiteacha.", "page-dapps-dapp-description-loopring": "Ardán trádála idir comhghleacaithe tógtha le haghaidh luais.", "page-dapps-dapp-description-marble-cards": "Déan cártaí digiteacha uathúla bunaithe ar URLanna a chruthú agus a thrádáil.", @@ -97,6 +98,7 @@ "page-dapps-dapp-description-meeds": "Moil pobail Web3 le haghaidh aois na hoibre díláraithe. Tabhair luach saothair cothrom agus trédhearcach do ranníocaíochtaí tábhachtacha.", "page-dapps-dapp-description-mirror": "Tógtha ar web3 le haghaidh web3, brúnn ardán láidir foilsitheoireachta Mirror teorainneacha na scríbhneoireachta ar líne", "page-dapps-dapp-description-multichain": "An ródaire deiridh do web3. Is bonneagar é a forbraíodh le haghaidh idirghníomhaíochtaí treallach tras‑slabhra.", + "page-dapps-dapp-description-nifty-gateway": "Ceannaigh saothair onchain ó na healaíontóirí is fearr, na lúthchleasaithe, na brandaí agus na cruthaitheoirí.", "page-dapps-dapp-description-summerfi": "Trádáil, iasacht agus sábháil le Dai, stablecoin de chuid Ethereum.", "page-dapps-dapp-description-opensea": "Déan earraí eagrán teoranta a cheannach, a dhíol, a fhiosrú agus a thrádáil.", "page-dapps-dapp-description-opera": "Seol crypto ó do bhrabhsálaí chuig ceannaithe, úsáideoirí eile agus aipeanna.", @@ -196,6 +198,7 @@ "page-dapps-hero-header": "Uirlisí agus seirbhísí faoi thiomáint Ethereum", "page-dapps-hero-subtitle": "Is gluaiseacht méadaithe d’fheidhmchláir iad Daipeanna a úsáideann Ethereum chun cur isteach ar mhúnlaí gnó nó chun múnlaí nua gnó a chumadh.", "page-dapps-how-dapps-work-p1": "Tá a gcód inneall (conarthaí cliste) ag daipeanna a ritheann ar líonra díláraithe agus ní ar fhreastalaí láraithe. Úsáideann siad blocshlabhra Ethereum chun sonraí a stóráil agus conarthaí cliste dá loighic aipeanna.", + "page-dapps-how-dapps-work-p2": "Is ionann conradh cliste agus sraith rialacha a mhaireann ar shlabhra le go bhfeicfidh gach duine iad agus go bhfeidhmíonn siad go díreach de réir na rialacha sin. Samhlaigh meaisín díola: má sholáthraíonn tú dóthain airgid dó agus an rogha ceart, gheobhaidh tú an t-earra atá uait. Agus cosúil le meaisíní díola, is féidir le conarthaí cliste cistí a shealbhú cosúil le do chuntas Ethereum. Ligeann sé seo don chód idirghabháil a dhéanamh ar chomhaontuithe agus idirbhearta.", "page-dapps-how-dapps-work-p3": "Nuair a bhíonn daipeanna úsáidte ar líonra Ethereum ní féidir leat iad a athrú. Is féidir daipeanna a dhílárú toisc go bhfuil siad á rialú ag an loighic atá scríofa sa chonradh, ní ag duine aonair nó ag cuideachta.", "page-dapps-how-dapps-work-title": "Conas a oibríonn Dapps", "page-dapps-ipfs-logo-alt": "Lógó IPFS", @@ -277,6 +280,7 @@ "page-wallets-get-some": "Faigh roinnt ETH", "page-dapps-dapp-description-curve": "Is dex dírithe ar stablecoins é Curve", "page-dapps-curve-image-alt": "Lógó Curve", + "page-dapps-dapp-description-dodo": "Is soláthraí leachtachta ar slabhra é DODO, a ghiaráil algartam an Déantóra Margaidh Réamhghníomhach (PMM)", "page-dapps-dodo-image-alt": "Lógó DODO", "page-dapps-dapp-description-artblocks": "Tá Art Blocks tiomanta do shaothair láidre ealaíne giniúna comhaimseartha a thabhairt chun beatha", "page-dapps-artblocks-image-alt": "Lógó Art Blocks", diff --git a/src/intl/ga/page-developers-index.json b/src/intl/ga/page-developers-index.json index 9fff53e8407..7ae11ba0096 100644 --- a/src/intl/ga/page-developers-index.json +++ b/src/intl/ga/page-developers-index.json @@ -59,6 +59,7 @@ "page-developers-networks-link": "Líonraí", "page-developers-node-clients-desc": "Conas a dhéantar bloic agus idirbhearta a fhíorú sa líonra", "page-developers-node-clients-link": "Nóid agus cliaint", + "page-developers-oracle-desc": "Sonraí offchain a chur isteach i do chonarthaí cliste", "page-developers-oracles-link": "Oracail", "page-developers-play-code": "Seinn le cód", "page-developers-read-docs": "Léigh na doiciméid", diff --git a/src/intl/ga/page-get-eth.json b/src/intl/ga/page-get-eth.json index 95c294e5217..e284d943e6c 100644 --- a/src/intl/ga/page-get-eth.json +++ b/src/intl/ga/page-get-eth.json @@ -21,7 +21,7 @@ "page-get-eth-daos-link-desc": "Foghlaim faoi DAOnna", "page-get-eth-cex-link-desc": "Féach ar liosta de na malartáin", "page-get-eth-staking-link-desc": "Foghlaim tuilleadh faoi gheallchur", - "page-get-eth-dexs": "Malartuithe díláraithe (DEXanna)", + "page-get-eth-dexs": "Malartáin díláraithe (DEXanna)", "page-get-eth-dexs-desc": "Is margaí oscailte iad malartáin dhíláraithe le haghaidh ETH agus comharthaí eile. Ceanglaíonn siad ceannaitheoirí agus díoltóirí go díreach.", "page-get-eth-dexs-desc-2": "In ionad tríú páirtí iontaofa a úsáid chun cistí a chosaint san idirbheart, úsáidtear cód. Ní dhéanfar ETH an díoltóra a aistriú ach amháin nuair a ráthaítear íocaíocht. Tugtar conradh cliste ar an gcineál seo cód.", "page-get-eth-dexs-desc-3": "Leis sin fágtar go bhfuil níos lú srianta geografacha ann ná mar atá le roghanna láraithe. Má tá duine éigin ag díol a bhfuil uait agus ag glacadh le modh íocaíochta is féidir leat a thabhairt dó, is féidir libh beirt an beart a dhéanamh.", diff --git a/src/intl/ga/page-index.json b/src/intl/ga/page-index.json index cdfdb05b698..f75d6466914 100644 --- a/src/intl/ga/page-index.json +++ b/src/intl/ga/page-index.json @@ -2,6 +2,7 @@ "page-index-activity-description": "Gníomhaíocht ó gach líonra Ethereum", "page-index-activity-tag": "Gníomhaíocht", "page-index-activity-header": "An t-éiceachóras is láidre", + "page-index-activity-action": "Níos mó gníomhaíochta Ethereum", "page-index-bento-header": "Bealach nua chun an tIdirlíon a úsáid", "page-index-bento-assets-action": "Tuilleadh faoi NFTanna", "page-index-bento-assets-content": "Is féidir ealaín, teastais nó fiú eastát réadach a théacschomharthú. Is féidir rud ar bith a bheith ina chomhartha intrádála. Úinéireacht phoiblí agus infhíoraithe atá i gceist.", @@ -99,6 +100,7 @@ "page-index-values-privacy-legacy-content-0": "Ní féidir linn a bheith ag súil go dtabharfaidh rialtais, corparáidí nó eagraíochtaí móra anaithnide eile príobháideacht dúinn dá stuaim féin.", "page-index-values-privacy-legacy-content-1": "Bailíonn formhór na n-aipeanna an oiread de do chuid faisnéise pearsanta agus is féidir ar mhaithe le díriú ort le margaíocht shaincheaptha.", "page-index-values-privacy-ethereum-label": "Dírithe ar Phríobháideacht", + "page-index-values-privacy-ethereum-content-0": "Tá meas ag pobal Ethereum ar phríobháideachas. Tá sé de cheart agat aipeanna a úsáid gan tú féin nó do chuid faisnéise teagmhála a nochtadh.", "page-index-values-integration-legacy-label": "Ilroinnte", "page-index-values-integration-legacy-content-0": "Cuireann an chuid is mó d’aipeanna brú ort cuntais ar leith a chruthú, rud a fhágann go bhfuil sé deacair cuimhneamh ar do shonraí logála isteach agus do chlárúcháin go léir.", "page-index-values-integration-ethereum-label": "Comhtháite", @@ -110,6 +112,7 @@ "page-index-values-censorship-legacy-label": "Oscailte don chinsireacht", "page-index-values-censorship-legacy-content-0": "Is minic a athraítear ardáin nua-aimseartha agus a gcuid rialacha. Féadfaidh geallsealbhóirí, bainistíocht chuideachta nó réimis leatromacha fiú tionchar a imirt orthu.", "page-index-values-censorship-ethereum-label": "Friotaíoch in aghaidh na Cinsireachta", + "page-index-values-censorship-ethereum-content-0": "Is príomhphrionsabal de chuid Ethereum é frithsheasmhacht in aghaidh cos ar bholg. Ba cheart go bhfanfadh a fheidhmiúlacht cothrom agus neamhchlaonta i gcónaí.", "page-index-values-censorship-ethereum-content-1": "Ní féidir le haon náisiún-stát, cuideachta nó duine aonair Ethereum a rialú.", "page-index-values-open-legacy-label": "Dúnta don chuid is mó", "page-index-values-open-legacy-content-0": "Cosnaíonn cuideachtaí a maoin intleachtúil agus ní roinneann siad í. Ní féidir le duine ar bith lasmuigh den chuideachta a fheiceáil conas a oibríonn rudaí, fadhbanna a shocrú, nó feabhsuithe a dhéanamh. Tá sé deacair do dhaoine uirlisí nua a chruthú nó a shaincheapadh.", diff --git a/src/intl/ga/page-layer-2-learn.json b/src/intl/ga/page-layer-2-learn.json index f1a5b08e9ce..dd43e3291bc 100644 --- a/src/intl/ga/page-layer-2-learn.json +++ b/src/intl/ga/page-layer-2-learn.json @@ -1,31 +1,55 @@ { "page-layer-2-learn-meta-title": "Cad é ciseal 2?", "page-layer-2-learn-title": "Cad é ciseal 2?", - "page-layer-2-learn-description": "Scálú Ethereum le haghaidh glactha mais", + "page-layer-2-learn-description": "Scálú Ethereum le haghaidh meall a ghlacadh", "page-layer-2-learn-button-1-label": "Cad é ciseal 2?", "page-layer-2-learn-button-2-label": "Úsáid ciseal 2", "page-layer-2-learn-what-is-layer-2-title": "Cad é ciseal 2?", "page-layer-2-learn-what-is-layer-2-1": "Is téarma comhchoiteann é Sraith 2 (L2) chun cur síos a dhéanamh ar shraith shonrach de réitigh scálaithe Ethereum. Is blocshlabhra ar leith í sraith 2 a leathnaíonn Ethereum agus a oidhríonn na ráthaíochtaí slándála atá ag Ethereum.", "page-layer-2-learn-what-is-layer-2-2": "Anois déanaimis tochailt isteach ann beagán níos mó. Chun seo a dhéanamh ní mór dúinn ciseal 1 (L1) a mhíniú ar dtús.", "page-layer-2-learn-what-is-layer-1-title": "Cad é ciseal 1?", + "page-layer-2-learn-what-is-layer-1-1": "Is iad blocshlabhraí Chiseal 1, ar nós Ethereum agus Bitcoin, an bunús a thógann tionscadail ciseal 2 ar a bharr. I measc na samplaí de thionscadail Chiseal 2 tá rollaí eolais nialasach agus rollaí dóchasach ar Ethereum agus ar an Líonra Soilsithe ar bharr Bitcoin.", + "page-layer-2-learn-what-is-layer-1-2": "Feidhmíonn Ethereum freisin mar chiseal infhaighteachta sonraí do Chiseal 2s, agus má tá aon díospóidí ann faoi idirbhearta roimhe seo soláthraítear sonraí ó Ethereum do na díospóidí sin.", "page-layer-2-learn-layer-1-list-title": "Áirítear le Ethereum mar chiseal 1:", - "page-layer-2-learn-layer-1-list-1": "líonra oibreoirí nód chun an líonra a dhéanamh slán agus bhailíochtú", + "page-layer-2-learn-layer-1-list-1": "líonra oibreoirí nód chun an líonra a dhéanamh slán agus é a bhailíochtú", "page-layer-2-learn-layer-1-list-2": "líonra de tháirgeoirí bloc", "page-layer-2-learn-layer-1-list-3": "an blockchain é féin agus stair na sonraí idirbhirt", + "page-layer-2-learn-layer-1-list-4": "an meicníocht chomhthoil don líonra", "page-layer-2-learn-why-do-we-need-layer-2-title": "Cén fáth a bhfuil ciseal 2 de dhíth orainn?", + "page-layer-2-learn-why-do-we-need-layer-2-1": "Is iad na trí airíonna inmhianaithe atá ag blocshlabhra ná go bhfuil sé díláraithe, slán agus inscálaithe. Deir an aincheist thrialach blocshlabhra nach féidir le hailtireacht blocshlabhra simplí ach dhá cheann as gach triúr a bhaint amach. An dteastaíonn uait blocshlabhra slán agus díláraithe? Ní mór duit inscálaitheacht a íobairt. Seo an áit a dtagann líonraí ciseal 2 isteach.", + "page-layer-2-learn-why-do-we-need-layer-2-2": "Tá cumas reatha an líonra bainte amach ag Ethereum le 1 + milliún idirbheart in aghaidh an lae, agus tá éileamh ard ar gach ceann de na hidirbhearta seo. Mar gheall ar rath Ethereum agus an t-éileamh ar é a úsáid tá ardú suntasach ar phraghsanna gáis. Dá bhrí sin tá an gá atá le réitigh scálaithe níos airde chomh maith.", "page-layer-2-learn-why-do-we-need-layer-2-scalability": "Inscálaitheacht", + "page-layer-2-learn-why-do-we-need-layer-2-scalability-1": "Is é príomhsprioc na hinscálaitheachta luas idirbhirt a mhéadú (críochnaitheacht níos tapúla), agus tréchur idirbheart (idirbhearta ard in aghaidh an tsoicind), gan dílárú ná slándáil a íobairt (tuilleadh ar Fís Ethereum).", + "page-layer-2-learn-why-do-we-need-layer-2-scalability-2": "Tá seasamh láidir glactha ag pobal Ethereum nach ndéanfadh sé dílárú nó slándáil a chaitheamh amach ar mhaithe le scála. Go dtí go ndéanfar é a roinnt, ní bheidh Ethereum Príomhlíonra (ciseal 1) in ann ach thart ar 15 idirbheart in aghaidh an tsoicind a phróiseáil. Nuair a bhíonn an t-éileamh ar Ethereum ard, cruthaíonn sé seo brú tráchta líonra, ag méadú táillí idirbhirt, agus ag praghsáil dóibh siúd nach bhfuil in acmhainn é a úsáid as Ethereum a úsáid go dtí go laghdaítear na táillí. Sin é an áit a dtagann ciseal 2 isteach chun Ethereum a scála inniu.", "page-layer-2-learn-layer2Cards-1-title": "Táillí níos ísle", + "page-layer-2-learn-layer2Cards-1-description": "Trí idirbhearta iolracha a chomhcheangal in idirbheart amháin ar chiseal 1, laghdaítear táillí idirbhirt go mór, rud a fhágann go bhfuil Ethereum níos inrochtana do chách.", "page-layer-2-learn-layer2Cards-2-title": "Slándáil a chothabháil", + "page-layer-2-learn-layer2Cards-2-description": "Socraíonn blocshlabhraí sraith 2 a n-idirbheart ar Príomhlíonra Ethereum, rud a ligeann d’úsáideoirí a úsáideann iad leas a bhaint as slándáil líonra Ethereum.", "page-layer-2-learn-layer2Cards-3-title": "Cásanna úsáide a leathnú", "page-layer-2-learn-layer2Cards-3-description": "Le hidirbhearta níos airde in aghaidh an tsoicind, táillí níos ísle, agus teicneolaíocht nua, leathnófar tionscadail ina bhfeidhmchláir nua le taithí úsáideora feabhsaithe.", "page-layer-2-learn-how-does-layer-2-work-title": "Conas a oibríonn ciseal 2?", - "page-layer-2-learn-how-does-layer-2-work-1": "Mar a luadh thuas, is téarma comhchoiteann é ciseal 2 le haghaidh réitigh scálaithe Ethereum a láimhseálann idirbhearta as ciseal Ethereum 1 agus iad fós ag baint leasa as slándáil dhíláraithe láidir Ethereum ciseal 1.Is blocchain ar leith é ciseal 2 a leathnaíonn Ethereum. Conas a oibríonn sé sin?", - "page-layer-2-learn-how-does-layer-2-work-2": "Tá cineálacha éagsúla ciseal 2 ann, agus tá a gcuid samhlacha comhbhabhtála agus slándála féin ag gach ceann acu. Tógann ciseal 2s an t-ualach idirbheartaíochta ar shiúl ó chiseal 1, rud a ligeann dó éirí níos lú plódaithe, agus éiríonn gach rud níos inscálaithe.", + "page-layer-2-learn-how-does-layer-2-work-1": "Mar a luadh thuas, is téarma comhchoiteann é ciseal 2 le haghaidh réitigh scálaithe Ethereum a láimhseálann idirbhearta as ciseal Ethereum 1 agus iad fós ag baint leasa as slándáil dhíláraithe láidir Ethereum ciseal 1. Is blocshlabhra ar leith é ciseal 2 a leathnaíonn Ethereum. Conas a oibríonn sé sin?", + "page-layer-2-learn-how-does-layer-2-work-2": "Tá cineálacha éagsúla ciseal 2 ann, agus tá a gcuid samhlacha comhbhabhtála agus slándála féin ag gach ceann acu. Tógann ciseal 2 an t-ualach idirbheartaíochta ar shiúl ó chiseal 1, rud a ligeann dó éirí níos lú plódaithe, agus éiríonn gach rud níos inscálaithe.", "page-layer-2-learn-how-does-layer-2-work-rollups-title": "Rollups", + "page-layer-2-learn-how-does-layer-2-work-rollups-1": "Cuachta Rollups (nó 'rolladh suas') na céadta idirbheart isteach in idirbheart amháin ar ciseal 1. Dáileann sé seo na táillí idirbhirt L1 thar gach duine sa rolladh suas, rud a fhágann go bhfuil sé níos saoire do gach úsáideoir.", "page-layer-2-learn-how-does-layer-2-work-rollups-2": "Cuirtear na sonraí idirbhirt sa rolladh isteach chuig ciseal 1, ach déanann an rolladh é a fhorghníomhú ar leithligh. Trí shonraí idirbhirt a chur isteach i gciseal 1, faigheann rolladh suas slándáil Ethereum mar oidhreacht. Tá sé seo mar gheall ar a luaithe a uaslódáiltear na sonraí go ciseal 1, is gá Ethereum a thabhairt ar ais le hidirbheart rolladh suas. Tá dhá chur chuige éagsúla ann maidir le rolladh suas: dóchasach agus eolas nialasach - tá difríocht mhór acu maidir leis an gcaoi a gcuirtear na sonraí idirbhirt seo isteach chuig L1.", "page-layer-2-learn-rollupCards-optimistic-title": "Rollaí Optamacha", + "page-layer-2-learn-rollupCards-optimistic-description": "Úsáideann rollaí suas dóchasach cruthúnais lochtanna sa chás go nglactar leis go bhfuil idirbhearta bailí, ach is féidir agóid a dhéanamh ina leith má tá amhras ann faoi idirbheart neamhbhailí. Má tá amhras ann faoi idirbheart neamhbhailí, reáchtálfar cruthúnas lochta féachaint an bhfuil sé seo déanta.", "page-layer-2-learn-rollupCards-optimistic-childSentence": "Tuilleadh faoi rolladh suas dóchasach", + "page-layer-2-learn-rollupCards-zk-title": "Rollaí suas eolais nialasach", + "page-layer-2-learn-rollupCards-zk-description": "Úsáideann rollaí suas Eolais nialasach cruthúnais bailíochta nuair a ríomhtar ríomhanna na n-idirbheart as slabhra, agus ansin cuirtear na sonraí seo ar fáil do Ethereum Príomhlíonra le cruthúnas ar a mbailíocht.", + "page-layer-2-learn-rollupCards-zk-childSentence": "Tuilleadh faoi rollaí suas-zk", + "page-layer-2-learn-dyor-title": "Déan do chuid taighde féin: Rioscaí ciseal 2", + "page-layer-2-learn-dyor-1": "Toisc go n-oidhríonn slabhraí ciseal 2 slándáil ó Ethereum, i ndomhan idéalach, tá siad chomh sábháilte le L1 Ethereum. Mar sin féin, tá go leor de na tionscadail fós óg agus beagán turgnamhach. Tar éis blianta de T&F, chuaigh go leor de na teicneolaíochtaí L2 a scálfaidh Ethereum beo i 2021. Ní hé seo le rá nach bhfuil na L2s slán, ach amháin nach bhfuil ciseal 2 chomh hullmhaithe don chath agus Ethereum Príomhlíonra. Déan do chuid taighde féin i gcónaí agus cinntigh an bhfuil tú compordach le haon rioscaí a bhaineann leis.", + "page-layer-2-learn-dyor-2": "Le haghaidh tuilleadh faisnéise ar theicneolaíocht, rioscaí agus boinn tuisceana iontaoibh ciseal 2s, molaimid seiceáil amach L2BEAT, a sholáthraíonn creat measúnaithe riosca cuimsitheach do gach tionscadal.", "page-layer-2-learn-dyor-link": "Téigh go L2BEAT", + "page-layer-2-learn-note-on-alt-l1-title": "Nóta ar alt L1anna, slabhraí taobh, agus validiums", + "page-layer-2-learn-note-on-alt-l1-1": "Tá tréchur níos airde ag ciseal 1anna malartacha agus tá táillí idirbhirt níos ísle ná Ethereum. B'éigean do na Alt L1anna seo íobairt a dhéanamh ar urrús nó ar dhílárú chun idirbhearta níos airde in aghaidh an tsoicind a bhaint amach agus táillí níos ísle. Tá éiceachóras Ethereum ailínithe go daingean gurb é scálú ciseal 2 an t-aon bhealach chun an aincheist thrialach inscálaitheachta a réiteach agus fanacht díláraithe agus slán", + "page-layer-2-learn-note-on-alt-l1-2": "Is blocshlabhraí iad slabhraí taoibh agus validiums a ligeann do shócmhainní ó blocshlabhraí amháin a líonadh agus a úsáid ar slabhraí taoibh eile. Ritheann slabhraí taoibh agus validiums go comhthreomhar leis an bpríomhshlabhra, agus idirghníomhaíonn siad leis an bpríomhshlabhra trí dhroichid, ach ní fhaigheann siad a slándáil ná a n-infhaighteacht sonraí ón bpríomhshlabhra. Scálaíonn siad mar an gcéanna le sraitheanna 2s, ach tá boinn tuisceana iontaobhais éagsúla acu. Cuireann siad táillí idirbhirt níos ísle ar fáil, agus tréchur idirbheart níos airde. Tuilleadh faoi slabhraí taoibh agus validiums.", + "page-layer-2-learn-callout-1-title": "Cad iad na buntáistí?", + "page-layer-2-learn-callout-1-description": "Déan iniúchadh ar an tionchar praiticiúil atá ag réitigh ciseal 2 ar thaithí an úsáideora.", "page-layer-2-learn-learn-more": "Foghlaim níos mó", + "page-layer-2-learn-callout-2-title": "Déan iniúchadh ar líonraí éagsúla", + "page-layer-2-learn-callout-2-description": "Foghlaim conas a bhíonn líonraí difriúil óna chéile agus cé chomh fada agus atá siad ina bhforbairt.", "page-layer-2-learn-explore-networks": "Cuir eolas ar líonraí" } diff --git a/src/intl/ga/page-layer-2-networks.json b/src/intl/ga/page-layer-2-networks.json new file mode 100644 index 00000000000..3bc6be8ce05 --- /dev/null +++ b/src/intl/ga/page-layer-2-networks.json @@ -0,0 +1,85 @@ +{ + "page-layer-2-networks-hero-description": "Ciallaíonn úsáid Ethereum inniu idirghníomhú leis na céadta líonraí agus aipeanna éagsúla. Faigheann gach ceann acu tacaíocht ó Ethereum mar chnámh droma bhunúsach.", + "page-layer-2-networks-meta-title": "Ethereum Ciseal 2: Fiosraigh líonraí", + "page-layer-2-networks-more-advanced-title": "Ag lorg forbhreathnú níos forbartha?", + "page-layer-2-networks-more-advanced-descripton-1": "Tá go leor de na tionscadail", + "page-layer-2-networks-more-advanced-descripton-2": "go fóill óg agus beagán trialach.", + "page-layer-2-networks-more-advanced-descripton-3": "Chun tuilleadh faisnéise a fháil ar theicneolaíocht, rioscaí agus boinn tuisceana na líonraí seo, molaimid seiceáil a dhéanamh ar L2BEAT, a sholáthraíonn creat cuimsitheach measúnaithe riosca do gach tionscadal agus creat fáis le haghaidh anailíse sonraí ginearálta.", + "page-layer-2-networks-more-advanced-link-1": "Tabhair cuairt ar l2beat.com", + "page-layer-2-networks-more-advanced-link-2": "Tabhair cuairt ar growthepie.xyz", + "page-layer-2-networks-callout-1-title": "Cad iad na buntáistí?", + "page-layer-2-networks-callout-1-description": "Soláthraíonn neart agus slándáil Ethereum ardán chun cur leis na líonraí eile.", + "page-layer-2-networks-callout-2-title": "Spéis agat i níos mó sonraí?", + "page-layer-2-networks-callout-2-description": "Aisteach mar gheall ar an teicneolaíocht agus na cúiseanna atá leis an gcur chuige scálaithe seo? Níos mó a fhoghlaim faoin smaoineamh agus cineálacha cur chuige teicneolaíochta éagsúla.", + "page-layer-2-networks-n/a-label": "N/A", + "page-layer-2-networks-n/a-description": "Ní bhaineann le Ethereum príomhlíonra.", + "page-layer-2-networks-robust-label": "Láidir", + "page-layer-2-networks-robust-description": "Líonra slán díláraithe go hiomlán nach féidir le haon duine aonair nó grúpa, lena n-áirítear a chruthaitheoirí, cur isteach air nó a stopadh.\n\nIs líonra é seo a chomhlíonann fís Ethereum maidir le dílárú.", + "page-layer-2-networks-maturing-label": "Aibíocht", + "page-layer-2-networks-maturing-description": "Líonra atá ag aistriú go dtí a bheith díláraithe. Seans go mbeidh grúpa aisteoirí fós in ann an líonra a stopadh i gcásanna foircneacha.", + "page-layer-2-networks-developing-label": "Ag forbairt", + "page-layer-2-networks-developing-description": "Reáchtálann oibreoir láraithe an líonra ach cuireann sé gnéithe sábháilte gan teip chun rioscaí láraithe a laghdú.", + "page-layer-2-networks-emerging-label": "Ag teacht chun cinn", + "page-layer-2-networks-emerging-description": "Reáchtálann oibreoir láraithe an líonra. Tá na sonraí le feiceáil go poiblí ar Ethereum chun a fhíorú an bhfuil an t-oibreoir ag feidhmiú ar bhealach macánta.", + "page-layer-2-networks-network-maturity": "Aibíocht líonra", + "page-layer-2-networks-network-maturity-with-colon": "Aibíocht líonra:", + "page-layer-2-networks-network-maturity-description": "Breathnaítear ar an gcéim forbartha, ar na rioscaí a bhaineann le húsáid an líonra agus ar mhéid éiceachórais an ghréasáin.", + "page-layer-2-networks-summary-metric": "Méadracht achoimre é seo bunaithe ar anailís riosca arna déanamh ag", + "page-layer-2-networks-no-results-title": "Gan torthaí", + "page-layer-2-networks-no-results-description": "Níl aon líonraí ann a mheaitseálann do chritéir, bain triail as roinnt scagairí a chur leis", + "page-layer-2-networks-reset-filters": "Athshocraigh na scagairí", + "page-layer-2-networks-age": "Aois", + "page-layer-2-networks-show-how-long": "Léiríonn sé cé chomh fada is atá na líonraí ag feidhmiú.", + "page-layer-2-networks-data-from": "Sonraí ó", + "page-layer-2-networks-period": ".", + "page-layer-2-networks-wallet-support": "Tacaíocht sparáin", + "page-layer-2-networks-how-many-wallet-support": "Léiríonn sé cé mhéad aip sparáin a thacaíonn le húsáid an líonra.", + "page-layer-2-networks-active-address": "Seoltaí gníomhacha", + "page-layer-2-networks-active-address-weekly": "Seoltaí gníomhacha (seachtainiúla)", + "page-layer-2-networks-active-address-number": "Líon na seoltaí gníomhacha ar an líonra le 7 lá anuas.", + "page-layer-2-networks-fee-token": "Dearbhán táille", + "page-layer-2-networks-token-used-to-pay": "An dearbhán a úsáidtear chun íoc as idirbhearta agus úsáid an líonra.", + "page-layer-2-networks-network-usage": "Úsáid líonra", + "page-layer-2-networks-network-usage-overview": "Forbhreathnú ar úsáid líonra. Déanann comhaireamh idirbheart i réimsí faoi seach laistigh de na 30 lá anuas.", + "page-layer-2-networks-no-data-available": "Níl aon sonraí ar fáil", + "page-layer-2-networks-links": "Naisc", + "page-layer-2-networks-official-website": "Láithreán gréasáin oifigiúil", + "page-layer-2-networks-risk-analysis": "Anailís riosca", + "page-layer-2-networks-assessment-by-l2beat": "Measúnú ag L2BEAT", + "page-layer-2-networks-detailed-analytics": "Anailísíocht mhionsonraithe", + "page-layer-2-networks-assessment-by-growthepie": "Measúnú ag growthepie", + "page-layer-2-networks-bridge-to": "Droichead chun", + "page-layer-2-networks-view-apps": "Féachaint ar aipeanna", + "page-layer-2-networks-select-wallet": "Roghnaigh sparán", + "page-layer-2-networks-search-wallets": "Cuardach sparáin...", + "page-layer-2-networks-no-wallet-found": "Níor aimsíodh aon sparán", + "page-layer-2-networks-robust-description-1": "Líonra slán díláraithe go hiomlán nach féidir le haon duine aonair nó grúpa, lena n-áirítear a chruthaitheoirí, cur isteach air nó a stopadh.", + "page-layer-2-networks-robust-description-2": "Is líonra é seo a chomhlíonann fís Ethereum maidir le dílárú.", + "page-layer-2-networks-developing-description-1": "Tá an líonra á rith ag oibreoir aonair le infheictheacht sonraí poiblí ar mhaithe le trédhearcacht.", + "page-layer-2-networks-emerging-description-1": "Tá an líonra á rith ag oibreoir aonair go príobháideach agus oibríonn sé i dtreo na trédhearcachta.", + "page-layer-2-networks-networks-showing": "Líonraí ag taispeáint", + "page-layer-2-networks-market-share": "Sciar den mhargadh", + "page-layer-2-networks-market-share-description": "Luach iomlán faoi ghlas i gconarthaí escrow ar Ethereum.", + "page-layer-2-networks-avg-transaction-fee": "Meán táille idirbhirt", + "page-layer-2-networks-transaction-fee": "Táille idirbhirt", + "page-layer-2-networks-transaction-fee-description": "Meánchostas an idirbhirt le haghaidh aistrithe, babhtálacha, mionú agus gníomhaíochtaí eile.", + "page-layer-2-networks-transaction-see-networks": "Féach líonraí", + "page-layer-2-network-maturity-component-1": "Déanaimid athbhreithniú ar dhul chun cinn an líonra i dtreo", + "page-layer-2-network-maturity-component-2": "Ailíniú Ethereum", + "page-layer-2-network-maturity-component-3": "luach iomlán faoi ghlas (TVL)", + "page-layer-2-network-maturity-component-4": "am beo i dtáirgeadh", + "page-layer-2-network-maturity-component-5": "agus breithnithe riosca", + "page-layer-2-network-maturity-component-6": "Cuidíonn na leibhéil seo le forbairt líonra a rianú agus cuireann siad bealach caighdeánaithe ar fáil don phobal chun dul chun cinn a mheas.", + "page-layer-2-network-maturity-component-7": "Ní leor dul chun cinn teicniúil amháin, tá uchtú agus aois na n-úsáideoirí ina gcuid ríthábhachtach de neart agus aibíocht iomlán líonra ar bith.", + "page-layer-2-network-maturity-component-8": "Aibíocht", + "page-layer-2-network-maturity-component-9": "Riachtanais", + "page-layer-2-network-maturity-component-10": "• Céim 2", + "page-layer-2-network-maturity-component-11": "• $1B TVL ar a laghad", + "page-layer-2-network-maturity-component-12": "• Céim 1", + "page-layer-2-network-maturity-component-13": "• Ar a laghad $150M TVL", + "page-layer-2-network-maturity-component-14": "• Tá 6+ mhí beo i dtáirgeadh", + "page-layer-2-network-maturity-component-15": "• Céim 0", + "page-layer-2-network-maturity-component-16": "• Measúnú riosca: 3/5 (L2beat)", + "page-layer-2-network-maturity-component-17": "• Measúnú riosca: 2/5 (L2beat)", + "page-layer-2-network-maturity-component-18": "• Tá ar a laghad $150M TVL nó 6+ mhí beo i dtáirgeadh" +} diff --git a/src/intl/ga/page-layer-2.json b/src/intl/ga/page-layer-2.json index 0967ef424bc..54878be1935 100644 --- a/src/intl/ga/page-layer-2.json +++ b/src/intl/ga/page-layer-2.json @@ -1 +1,58 @@ -{} +{ + "page-layer-2-hero-title": "Ciseal 2", + "page-layer-2-hero-header": "Líonraí Ethereum", + "page-layer-2-hero-description": "Bain úsáid as Ethereum le haghaidh codán den chostas.", + "page-layer-2-hero-button-2-content": "Foghlaim níos mó", + "page-layer-2-period": ".", + "page-layer-2-calloutCard-1-title": "Táillí $0.01", + "page-layer-2-calloutCard-1-description": "Is féidir leat trádáil, airgead a sheoladh go domhanda, nó feidhmchláir a úsáid gan a bheith buartha faoi chostais arda.", + "page-layer-2-calloutCard-2-title": "Idirbhearta ar an toirt, nach mór", + "page-layer-2-calloutCard-2-description": "Cibé an bhfuil tú ag déanamh íocaíocht thapa nó ag gabháil d’airgeadas díláraithe (DeFi), ní thógann gach idirbheart ach cúpla soicind.", + "page-layer-2-calloutCard-3-title": "Le tacaíocht Ethereum", + "page-layer-2-calloutCard-3-description": "Feidhmíonn blocshlabhra ama-chruthaithe agus díláraithe Ethereum mar an ciseal socraíochta do líonraí níos nuaí eile.", + "page-layer-2-meta-title": "Intreoir d'Ethereum Ciseal 2: buntáistí agus úsáidí", + "page-layer-2-meta-description": "Foghlaim faoi líonraí Ethereum ciseal 2", + "page-layer-2-powered-by-ethereum-title": "Cumhachtaithe ag Ethereum", + "page-layer-2-powered-by-ethereum-description-1": "Ní líonra amháin é Ethereum a thuilleadh.", + "page-layer-2-powered-by-ethereum-description-2": "Leis na céadta blocshlabhra anois tógtha ar a bharr, tá Ethereum tar éis éirí níos cost-éifeachtaí, níos tapúla agus níos inrochtana le húsáid laethúil.", + "page-layer-2-powered-by-ethereum-description-3": "Glac leis an todhchaí trí bheith páirteach i gceann de na líonraí iomadúla atá á gcumhachtú ag Ethereum!", + "page-layer-2-man-and-dog-alt": "Fear agus madra ag imirt", + "page-layer-2-blockchain-transaction-cost": "Meánchostas idirbhirt ar an mblocshlabhra Ethereum", + "page-layer-2-networks-transaction-cost": "Meánchostas idirbhirt ar líonraí le tacaíocht Ethereum", + "page-layer-2-network-of-networks-title": "Líonra na líonraí", + "page-layer-2-network-of-networks-description": "Soláthraíonn neart agus slándáil Ethereum ardán do líonraí eile chun cur leo. Le cuntas amháin, tá gach rud comhoiriúnach agus nascann sé gan stró.", + "page-layer-2-ethereum-logo-alt": "Ethereum", + "page-layer-2-ready-to-start-title": "Réidh le tosú?", + "page-layer-2-ready-to-start-description": "Féach ar na gréasáin éagsúla atá ar fáil duit.", + "page-layer-2-ready-to-start-button": "Cuir eolas ar líonraí", + "page-layer-2-go": "Téigh", + "page-layer-2-walking-alt": "Ag siúl", + "page-layer-2-why-do-we-need-multiple-networks-1": "Cén fáth a bhfuil gá againn le líonraí iolracha ar Ethereum?", + "page-layer-2-why-do-we-need-multiple-networks-2": "Cén fáth go bhfuil na líonraí seo go léir agus ní hamháin líonra Ethereum amháin?", + "page-layer-2-faq-title": "Ceisteanna coitianta", + "page-layer-2-faq-ExpandableCard-1-title": "Conas a bheidh a fhios agam go bhfuil líonra mar chuid de Ethereum?", + "page-layer-2-faq-ExpandableCard-1-description-1": "Tá go leor bealaí éagsúla ar féidir le duine líonraí a chatagóiriú maidir le Ethereum. Maíonn go leor líonraí go bhfuil siad ag scálú Ethereum chun tóir a bhailiú. Mar sin féin, is é dearcadh soiléir amháin ná an stórálann an líonra a chuid sonraí ar phríomhghréasán Ethereum. Cuireann sé seo go mór le slándáil an úsáideora agus fís gan chead Ethereum. Is minic a dtugtar “rollups” ar thionscadail dá leithéid. Má stóráiltear sonraí áit éigin eile, ní síneadh díreach Ethereum é an tionscadal agus tá sé sách neamhspleách. Amharc ar chuid de na cinn is coitianta", + "page-layer-2-faq-ExpandableCard-1-description-2": "D’fhéadfadh sé nach mbeadh dlúthchaidreamh díreach den sórt sin ag teastáil ó thionscail áirithe, lena n-áirítear cearrbhachas nó feidhmeanna neamhairgeadais nuair is fearr a oireann teicneolaíochtaí éagsúla.", + "page-layer-2-faq-ExpandableCard-2-title": "An bhfuil na líonraí seo go léir sábháilte?", + "page-layer-2-faq-ExpandableCard-2-description-1": "Cé go bhfuil siad deartha go ginearálta le gnéithe slándála láidre, braitheann a sábháilteacht ar an teicneolaíocht bhunúsach, slándáil conartha cliste, agus", + "page-layer-2-faq-ExpandableCard-2-link": "aibíocht an líonra", + "page-layer-2-faq-ExpandableCard-2-description-2": "Ba cheart d’úsáideoirí dícheall cuí a dhéanamh, ag tosú le hidirbhearta beaga agus ag coinneáil ar an eolas faoi fhorbairtí chun úsáid shlán a chinntiú.", + "page-layer-2-faq-ExpandableCard-3-title": "Cén fáth nach féidir le Ethereum a slabhra féin a scála in áit a bheith ag brath ar na líonraí seo?", + "page-layer-2-faq-ExpandableCard-3-description": "Ní féidir le Ethereum a phríomhshlabhra féin a scála go héasca mar ní mór dó fanacht slán agus díláraithe. Dá ndéanfaí an príomhshlabhra níos tapúla d'fhéadfaí é a dhéanamh níos sábháilte agus níos láraithe. Cuidíonn líonraí Ethereum trí idirbhearta a phróiseáil as an bpríomhshlabhra agus ansin an príomhshlabhra a úsáid le haghaidh slándála, rud a ligeann do Ethereum níos mó idirbhearta a láimhseáil gan slándáil nó dílárú a chailliúint.", + "page-layer-2-faq-ExpandableCard-4-title": "Cén fáth nach bhfuil aon líonraí Ethereum 'oifigiúla' ann?", + "page-layer-2-faq-ExpandableCard-4-description": "Díreach mar nach bhfuil aon chliant Ethereum 'oifigiúil' ann, níl aon chiseal Ethereum 'oifigiúil' 2. Níl cead ag Ethereum - go teicniúil is féidir le duine ar bith ciseal 2 a chruthú! Cuirfidh foirne iolracha a leagan de chiseal 2 i bhfeidhm, agus bainfidh an t-éiceachóras ina iomláine leas as éagsúlacht cur chuige dearaidh atá optamaithe le haghaidh cásanna úsáide éagsúla. Cosúil go bhfuil cliaint Ethereum iolracha againn arna bhforbairt ag foirne iolracha chun éagsúlacht a bheith againn sa líonra, is é seo an chaoi a bhforbróidh ciseal 2s amach anseo freisin.", + "page-layer-2-callout-1-title": "Amharc ar líonraí éagsúla", + "page-layer-2-callout-1-description": "Foghlaim conas a bhíonn líonraí difriúil óna chéile agus cé chomh fada agus atá siad ina bhforbairt.", + "page-layer-2-callout-2-title": "Spéis agat i níos mó sonraí?", + "page-layer-2-callout-2-description": "Aisteach mar gheall ar an teicneolaíocht agus na cúiseanna atá leis an gcur chuige scálaithe seo? Níos mó a fhoghlaim faoin smaoineamh agus cineálacha cur chuige teicneolaíochta éagsúla.", + "page-layer-2-arbitrum-description": "Is Rollup dóchasach ilchuspóireach é Arbitrum One arna thógáil ag Offchain Labs agus á rialú ag Arbitrum DAO.", + "page-layer-2-base-description": "Is Rollup Dóchasach é Base a tógadh leis an OP Stack. Tairgeann sé bealach ar chostas íseal agus atá neamhdhíobhálach don tógálaí do dhuine ar bith, áit ar bith, chun onchain a thógáil.", + "page-layer-2-optimism-description": "Is Rollup Dóchasach EVM é OP Príomhlíonra. Tá sé mar aidhm aige a bheith tapa, simplí agus slán.", + "page-layer-2-blast-description": "Is Rollup Dóchasach atá comhoiriúnach le EVM é Blast a thacaíonn le toradh dúchasach.", + "page-layer-2-zksync2-description": "Is ZK Rollup ilchuspóireach é ZKsync Era le comhoiriúnacht iomlán EVM.", + "page-layer-2-linea-description": "Is Rollup ZK é Linea faoi thiomáint ag Consensys zkEVM, atá deartha chun líonra Ethereum a scála.", + "page-layer-2-scroll-description": "Scrollaigh é ZK Rollup a leathnaíonn cumais Ethereum trí chomhoiriúnacht ZK tech agus EVM.", + "page-layer-2-starknet-description": "Is ZK Rollup cuspóir ginearálta é Starknet bunaithe ar STARKs agus an Cairo VM.", + "page-layer-2-mode-description": "Is éard atá i Mód ná Stack OP Rollup Dóchasach a thógann geilleagar AFI.", + "page-layer-2-taiko-description": "Is rolladh ZK-EVM díláraithe, coibhéiseach Ethereum é Taiko a chuireann ar chumas cumarsáid trasshlabhra gan uaim." +} diff --git a/src/intl/ga/page-staking.json b/src/intl/ga/page-staking.json index e9a73f37477..0b7ad569d54 100644 --- a/src/intl/ga/page-staking.json +++ b/src/intl/ga/page-staking.json @@ -10,6 +10,7 @@ "comp-withdrawal-comparison-new-link": "Téigh chuig Ardán Geallchuir", "comp-withdrawal-credentials-placeholder": "Innéacs bailíochtóra", "comp-withdrawal-credentials-error": "Úps! Seiceáil uimhir innéacs an bhailitheora agus bain triail eile as.", + "comp-withdrawal-credentials-upgraded-1": "Tá innéacs Validator {validatorIndex} réidh le tosú ar luaíochtaí a fháil!", "comp-withdrawal-credentials-upgraded-2": "Dintiúir aistarraingthe atá nasctha le seoladh forghníomhaithe:", "comp-withdrawal-credentials-not-upgraded-1": "Ní mór an bailíochtóir seo a nuashonrú.", "comp-withdrawal-credentials-not-upgraded-1-testnet": "Ní mór an bailíochtóir Holesky Testnet seo a uasghrádú.", diff --git a/src/intl/ga/page-upgrades-index.json b/src/intl/ga/page-upgrades-index.json index a7db37067d7..d868b5b54c6 100644 --- a/src/intl/ga/page-upgrades-index.json +++ b/src/intl/ga/page-upgrades-index.json @@ -25,7 +25,7 @@ "page-upgrade-article-title-sharding-consensus": "Comhdhearcadh roinnte", "page-upgrade-article-title-sharding-is-great": "Cén fáth go bhfuil sciartha iontach: na hairíonna teicniúla a shoiléiriú", "page-upgrade-article-title-rollup-roadmap": "Treochlár rolluithe-lárnach", - "page-upgrade-article-title-hitchhikers-guide-to-ethereum": "Treoir Hitchhikers Chun Ethereum", + "page-upgrade-article-title-hitchhikers-guide-to-ethereum": "Treoir an tSíobaire don Ethereum", "page-upgrade-article-title-eip-4844": "EIP-4844: Blob Idirbhearta Sciartha (Proto-Danksharding)", "page-upgrade-article-title-proto-danksharding-faq": "Ceisteanna Coitianta faoi Proto-Danksharding", "page-upgrade-article-title-sharding-das": "Míniú ar shampláil sciartha agus infhaighteacht sonraí (DAS)", @@ -97,6 +97,7 @@ "page-upgrades-question-6-answer-5": "Is féidir leat páirt a ghlacadh freisin sa phlé ar thaighde agus forbairt Ethereum ag ethresear.ch.", "page-upgrades-question-6-title": "Cad is gá dom a dhéanamh le mo dhapp?", "page-upgrades-question-6-desc": "Dearadh an Cumasc chun tionchar íosta a bheith aige ar fhorbróirí dapp, cé go raibh cúpla athruithe beaga ba chóir a thabhairt faoi deara.", + "page-upgrades-question-6-answer-1": "Ba chóir go mbeadh forbróirí Dapp atá eolach ar Ethereum réamh-chumasc ar an eolas faoi roinnt athruithe. Áirítear leis na hathruithe seo struchtúr agus uainiú na mbloc, roinnt athruithe opcode, foinsí randamacht ar shlabhra agus an coincheap maidir le epoch finalization.", "page-upgrades-question-6-answer-1-link": "Mar a chuaigh an Cumasc i gcion ar Chiseal Feidhmchláir Ethereum", "page-upgrades-question-6-answer-2": "Ní raibh aon tionchar beagnach ar fad ar iarratais.", "page-upgrades-question-7-desc": "Tá go leor foirne éagsúla ó gach cearn den phobal ag obair ar na huasghráduithe éagsúla Ethereum.", diff --git a/src/intl/ga/template-usecase.json b/src/intl/ga/template-usecase.json index 243e1f997fb..10ef3d785a2 100644 --- a/src/intl/ga/template-usecase.json +++ b/src/intl/ga/template-usecase.json @@ -1,4 +1,5 @@ { + "template-usecase-dropdown-ai-agents": "Gníomhairí AI", "template-usecase-dropdown-defi": "Airgeadas díláraithe (DeFi)", "template-usecase-dropdown-nft": "Comharthaí neamh-inmheasctha (NFTanna)", "template-usecase-dropdown-dao": "Eagraíochtaí uathrialaitheacha díláraithe (DAO)", From 8aff18bfc10e51417e73bc4ff61ac268247676e8 Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Thu, 1 May 2025 04:45:26 +0000 Subject: [PATCH 051/106] chore: import translations for hi --- .../translations/hi/enterprise/index.md | 161 ++++++++++++++++++ .../content/translations/hi/events/index.md | 24 +++ .../index.md | 73 ++++++++ public/content/translations/hi/web3/index.md | 6 +- src/intl/hi/glossary-tooltip.json | 65 +++++++ src/intl/hi/page-about.json | 34 +++- src/intl/hi/page-assets.json | 41 ++++- src/intl/hi/page-bug-bounty.json | 94 +++++----- src/intl/hi/page-learn.json | 9 +- src/intl/hi/page-upgrades-index.json | 4 +- src/intl/hi/template-usecase.json | 3 +- 11 files changed, 451 insertions(+), 63 deletions(-) create mode 100644 public/content/translations/hi/enterprise/index.md create mode 100644 public/content/translations/hi/events/index.md create mode 100644 public/content/translations/hi/how-to-create-an-ethereum-account/index.md create mode 100644 src/intl/hi/glossary-tooltip.json diff --git a/public/content/translations/hi/enterprise/index.md b/public/content/translations/hi/enterprise/index.md new file mode 100644 index 00000000000..3e883df7b88 --- /dev/null +++ b/public/content/translations/hi/enterprise/index.md @@ -0,0 +1,161 @@ +--- +title: एथेरियम मेननेट पर एंटरप्राइज़ +description: सार्वजनिक एथेरियम ब्लॉकचेन पर एंटरप्राइज़ एप्लिकेशन के बारे में गाइड, लेख और टूल्स +lang: hi +--- + +# एंटरप्राइज़ के लिए Ethereum {#ethereum-for-enterprise} + +एथेरियम कई प्रकार के व्यवसायों की मदद कर सकता है, जिसमें बड़ी कंपनियां भी शामिल हैं: + +- व्यावसायिक पक्षों के बीच विश्वास बढ़ाना और समन्वय की लागत कम करना +- व्यापार नेटवर्क की जवाबदेही और परिचालन दक्षता में सुधार करना +- नए व्यावसायिक मॉडल और मूल्य सृजन के अवसर बनाना +- प्रतिस्पर्धात्मक रूप से अपने संगठन को भविष्य के लिए तैयार करना + +शुरुआती वर्षों में, कई एंटरप्राइज़ ब्लॉकचेन एप्लिकेशन निजी अनुमति प्राप्त एथेरियम संगत ब्लॉकचेन या कंसोर्टियम चेन पर बनाए गए थे। आज, तकनीकी प्रगति के कारण जो अधिक थ्रूपुट, कम लेनदेन लागत और गोपनीयता को सक्षम बनाती है, एथेरियम तकनीक का उपयोग करने वाले अधिकांश एंटरप्राइज़ एप्लिकेशन सार्वजनिक एथेरियम मेननेट या [परत 2](/layer-2) चेन पर बनाए जा रहे हैं। + + +## संसाधन {#enterprise-resources} + +### अग्रिम पठन {#further-reading} + +व्यवसायों को एथेरियम से कैसे लाभ हो सकता है, यह समझने के लिए गैर-तकनीकी संसाधन + +- [ब्लॉकचेन व्यवसाय के लिए क्यों उपयोगी हैं?](https://entethalliance.org/why-are-blockchains-useful-for-business/) - _पूर्वानुमेयता के दृष्टिकोण से ब्लॉकचेन के मूल्य पर चर्चा करता है_ +- [एंटरप्राइज़ एथेरियम एलायंस 2023 बिजनेस रेडीनेस रिपोर्ट](https://entethalliance.org/eea-ethereum-business-readiness-report-2023/) - _व्यवसायों के लिए सार्वजनिक एथेरियम और व्यापक एथेरियम पारिस्थितिकी तंत्र की क्षमता और संभावनाओं का सर्वेक्षण करता है_ +- [_पॉल ब्रोडी द्वारा व्यवसाय के लिए एथेरियम_](https://www.uapress.com/product/ethereum-for-business/) - _संपत्ति प्रबंधन से लेकर भुगतान और आपूर्ति श्रृंखला तक के उपयोग मामलों के लिए एक सरल-अंग्रेजी गाइड है_ + +### संगठन {#organizations} + +विभिन्न संगठनों द्वारा एथेरियम को एंटरप्राइज़ के अनुकूल बनाने के लिए कुछ सहयोगात्मक प्रयास किए गए हैं + +- [एंटरप्राइज़ एथेरियम एलायंस](https://entethalliance.org/) - EEA संगठनों को अपने दैनिक व्यावसायिक संचालन में एथेरियम तकनीक को अपनाने और उपयोग करने में मदद करता है। इसका लक्ष्य पेशेवर और वाणिज्यिक समर्थन, वकालत और अनुसंधान, मानकों के विकास और पारिस्थितिकी तंत्र विश्वास सेवाओं के माध्यम से व्यावसायिक एथेरियम को तेज करना है। +- [ग्लोबल ब्लॉकचेन बिजनेस काउंसिल](https://www.gbbc.io/) - GBBC ब्लॉकचेन तकनीक पारिस्थितिकी तंत्र के लिए एक उद्योग संघ है। नीति निर्माताओं और नियामकों को शामिल करने, इवेंट्स और गहन चर्चाओं का क्यूरेशन करने, और अनुसंधान को आगे बढ़ाने के माध्यम से, GBBC अधिक सुरक्षित, समान और कार्यात्मक समाजों के निर्माण के लिए ब्लॉकचेन के और अधिक अपनाने के लिए समर्पित है। + + +## एंटरप्राइज़ डेवलपर संसाधन {#enterprise-developer-resources} + +### उत्पाद और सेवाएं {#products-and-services} + +- [4EVERLAND](https://www.4everland.org/) - _एथेरियम पर विकेन्द्रीकृत अनुप्रयोगों की होस्टिंग और विकेन्द्रीकृत भंडारण को सक्षम करने के लिए API, RPC सेवाएं और उपकरण प्रदान करता है_ +- [Alchemy](https://www.alchemy.com/) - _एथेरियम पर एप्लिकेशंस के निर्माण और निगरानी के लिए API सेवाएं और उपकरण प्रदान करता है_ +- [Blast](https://blastapi.io/) - _एक API प्लेटफॉर्म जो एथेरियम आर्काइव मेननेट और टेस्टनेट के लिए RPC/WSS API प्रदान करता है।_ +- [Blockapps](https://blockapps.net/) - _STRATO प्लेटफॉर्म बनाने वाले एंटरप्राइज़ एथेरियम प्रोटोकॉल, टूलिंग और API का कार्यान्वयन_ +- [Chainstack](https://chainstack.com/) - _सार्वजनिक और अलग-अलग ग्राहक क्लाउड में होस्ट किए गए मेननेट और टेस्टनेट एथेरियम इंफ्रास्ट्रक्चर_ +- [ConsenSys](https://consensys.io/) - _एथेरियम पर निर्माण के लिए उत्पादों और उपकरणों की एक श्रृंखला प्रदान करता है, साथ ही परामर्श और कस्टम विकास सेवाएं भी_ +- [Crossmint](http://crossmint.com/) _एंटरप्राइज़-ग्रेड web3 डेवलपमेंट प्‍लेटफॉर्म स्मार्ट अनुबंधों को तैनात करने, क्रेडिट-कार्ड और क्रॉस चेन भुगतानों को सक्षम करने, और NFT बनाने, वितरित करने, बेचने, संग्रहीत करने और संपादित करने के लिए API का उपयोग करने के लिए।_ +- [Envision Blockchain](https://envisionblockchain.com/) - _एथेरियम मेननेट में विशेषज्ञता वाली एंटरप्राइज़ केंद्रित परामर्श और विकास सेवाएं प्रदान करता है_ +- [EY OpsChain](https://blockchain.ey.com/products/contract-manager) - _आपके विश्वसनीय व्यावसायिक भागीदारों के नेटवर्क में RFQ, अनुबंध, खरीद आदेश और चालान जारी करके एक खरीद कार्यप्रवाह प्रदान करता है_ +- [Hyperledger Besu](https://www.hyperledger.org/use/besu) - _Apache 2.0 लाइसेंस के तहत विकसित और Java में लिखा गया एक एंटरप्राइज़ केंद्रित ओपन-सोर्स एथेरियम क्लाइंट_ +- [Infura](https://infura.io/) - _एथेरियम और IPFS नेटवर्क तक स्केलेबल API पहुंच_ +- [Kaleido](https://kaleido.io/) - _एक उद्यम-केंद्रित डेवलपमेंट प्‍लेटफॉर्म जो सरलीकृत ब्लॉकचेन और डिजिटल संपत्ति एप्लिकेशंस पेश करता है_ +- [NodeReal](https://nodereal.io/) - _Web3 पारिस्थितिकी तंत्र के लिए स्केलेबल ब्लॉकचेन बुनियादी ढांचा और API सेवा प्रदाता प्रदान करता है_ +- [Moralis](http://moralis.io/) - _SOC2 प्रकार 2 प्रमाणन के साथ एंटरप्राइज़ ग्रेड API और नोड्स_ +- [Provide](https://provide.services/) - _एंटरप्राइज़ शून्य-ज्ञान मध्यवर्ती_ +- [QuickNode](https://www.quicknode.com/) - _विश्वसनीय और तेज़ नोड्स प्रदान करता है जिनमें NFT API, टोकन API आदि जैसी उच्च-स्तरीय API हैं, जबकि एक एकीकृत उत्पाद सूट और एंटरप्राइज़-ग्रेड समाधान प्रदान करता है_ +- [Tenderly](https://tenderly.co) - _एक Web3 डेवलपमेंट प्लेटफॉर्म जो स्मार्ट अनुबंधों के विकास, परीक्षण, निगरानी और संचालन के लिए डीबगिंग, अवलोकन और बुनियादी ढांचा निर्माण ब्लॉक प्रदान करता है_ +- [Unibright](https://unibright.io/) - _व्यावसायिक प्रक्रियाओं और एकीकरण में 20+ वर्षों के अनुभव वाले ब्लॉकचेन विशेषज्ञों, आर्किटेक्ट्स, डेवलपर्स और सलाहकारों की एक टीम_ +- [Zeeve](https://www.zeeve.io/) - _एथेरियम पर निर्माण के लिए उत्पादों और उपकरणों की एक श्रृंखला प्रदान करता है, साथ ही एंटरप्राइज़ Web3 एप्लिकेशंस के लिए बुनियादी ढांचा और API भी।_ + +### टूलिंग और लाइब्रेरीज {#tooling-and-libraries} + +- [Baseline Project](https://www.baseline-protocol.org/) - _बेसलाइन प्रोटोकॉल उपकरणों और पुस्तकालयों का एक सेट है जो एंटरप्राइज़ को जटिल, बहु-पक्षीय व्यावसायिक प्रक्रियाओं और कार्यप्रवाहों को गोपनीयता के साथ समन्वित करने में मदद करता है जबकि डेटा को संबंधित रिकॉर्ड सिस्टम में रखता है। मानक दो या अधिक राज्य मशीनों को एक सामान्य संदर्भ ढांचे के रूप में एक नेटवर्क का उपयोग करके डेटा संगति और कार्यप्रवाह निरंतरता प्राप्त करने और बनाए रखने में सक्षम बनाता है।_ +- [Chainlens](https://www.chainlens.com/) - _Web3 Labs से SaaS और on-prem ब्लॉकचेन डेटा और विश्लेषण प्लेटफॉर्म_ +- [Ernst & Young's 'Nightfall'](https://github.com/EYBlockchain/nightfall_3) - _एक आशावादी रोलअप का उपयोग करके शून्य ज्ञान के तहत ERC20, ERC721 और ERC1155 एप्लिकेशंस को स्थानांतरित करने के लिए एक एप्लिकेशन_ + +### स्केलेबिलिटी समाधान {#scalability-solutions} + +अधिकांश नए ब्लॉकचेन एप्लिकेशन [परत 2](/layer-2) चेन पर बनाए जा रहे हैं। परत 2, ऐसी प्रौद्योगिकियों या सिस्टम का एक समूह है, जो एथेरियम (परत 1) के शीर्ष पर चलती हैं, परत 1 से सुरक्षा गुणों को विरासत में प्राप्त करती हैं, और परत 1 की तुलना में अधिक लेनदेन प्रसंस्करण क्षमता (थ्रूपुट), कम लेनदेन शुल्क (संचालन लागत), और तेज लेनदेन पुष्टिकरण प्रदान करती हैं। परत 2 स्केलिंग समाधान परत 1 द्वारा सुरक्षित हैं, लेकिन वे ब्लॉकचेन एप्लिकेशंस को कई अधिक एप्लिकेशन या कार्यों या डेटा को संभालने में सक्षम बनाते हैं जितने लेयर 1 समायोजित कर सकता था। उनमें से कई प्रदर्शन और सुरक्षा को अधिकतम करने के लिए क्रिप्टोग्राफी और शून्य-ज्ञान (ZK) प्रमाणों में हाल की प्रगति का लाभ उठाते हैं, और कुछ अतिरिक्त स्तर की गोपनीयता प्रदान करते हैं। + +## एथेरियम मेननेट पर एंटरप्राइज़ एप्लिकेशन {#enterprise-live-on-mainnet} + +यहां कुछ एंटरप्राइज़ एप्लिकेशन हैं जो पारंपरिक, गैर-ब्लॉकचेन आधारित कंपनियों द्वारा और उनके लिए सार्वजनिक एथेरियम मेननेट और L2s के ऊपर बनाए गए हैं। + +### भुगतान {#payments} + +- [Brave ब्राउज़र](https://basicattentiontoken.org/) - _उपयोगकर्ताओं को विज्ञापनों पर ध्यान देने के लिए भुगतान करता है और उपयोगकर्ता बेसिक अटेंशन टोकन के माध्यम से प्रकाशकों का समर्थन करने के लिए भुगतान कर सकते हैं_ +- [लुगानो शहर, स्विट्जरलैंड](https://bitcoinsuisse.com/news/city-of-lugano-accepts-crypto-payments) - _करों और अन्य नगरपालिका सेवाओं का भुगतान_ +- [EthereumAds](https://ethereumads.com/) - _वेबसाइट संचालकों को विज्ञापन स्थान बेचने और एथेरियम के माध्यम से भुगतान प्राप्त करने की अनुमति देता है_ +- [hCaptcha](https://www.hcaptcha.com/) - _बॉट रोकथाम CAPTCHA सिस्‍टम जो वेबसाइट संचालकों को मशीन लर्निंग के लिए डेटा को लेबल करने के लिए उपयोगकर्ताओं द्वारा किए गए कार्य के लिए भुगतान करता है। अब Cloudflare द्वारा तैनात_ +- [Opera MiniPay](https://www.opera.com/products/minipay) - _अफ्रीका में लोगों के लिए मोबाइल भुगतान को अधिक सुलभ और सुरक्षित बनाता है, एक गैर-कस्टोडियल वॉलेट के साथ और आसान लेनदेन के लिए फोन नंबरों का लाभ उठाता है_ +- [Roxpay](https://www.roxpay.ch/) - _पे-पर-यूज़ एसेट इनवॉइसिंग और भुगतान को स्वचालित करता है_ +- [SAP डिजिटल करेंसी हब](https://community.sap.com/t5/technology-blogs-by-sap/cross-border-payments-made-easy-with-digital-money-experience-the-future/ba-p/13560384) - _स्टेबलकॉइन के साथ सीमा पार भुगतान_ +- [Toku](https://www.toku.com/) - _पेरोल, टोकन अनुदान प्रशासन, कर अनुपालन, स्थानीय रोजगार, लाभ और वितरित HR समाधान_ +- [Xerof](https://www.xerof.com/) - _तेज और सस्ते अंतरराष्ट्रीय (सीमा पार) B2B भुगतान की सुविधा प्रदान करता है_ + +### वित्त {#finance} + +- [ABN AMRO](https://tokeny.com/tokeny-fuels-abn-amro-bank-in-tokenizing-green-bonds-on-polygon/) - _Tokeny के साथ, टोकनाइज्ड ग्रीन बॉन्ड_ +- [Crowdz](https://crowdz.io/) - _चालान/प्राप्य वित्तपोषण और फैक्टरिंग प्लेटफॉर्म_ +- [Mata Capita](https://consensys.io/blockchain-use-cases/finance/mata-capital)l - _रियल एस्टेट निवेश टोकनीकरण_ +- [Obligate](https://www.obligate.com/) - _विनियमित और KYC के ऑनचेन बॉन्ड और वाणिज्यिक पत्र_ +- [Siemens](https://press.siemens.com/global/en/pressrelease/siemens-issues-first-digital-bond-blockchain) - _बॉन्ड जारी करना_ +- [Sila](https://silamoney.com/) - _स्थिर मुद्रा का उपयोग करके बैंकिंग और ACH भुगतान इंफ्रास्ट्रक्चर-एज-ए-सर्विस_ +- [Societe Generale FORGE](https://www.sgforge.com/product/bonds/) - _बॉन्ड जारी करना_ +- [Taurus](https://www.taurushq.com/) - _टोकनाइज्ड प्रतिभूतियां जारी करता है_ + +### संपत्ति का टोकनाइज़ेशन {#tokenization} + +- [AgroToken](https://agrotoken.io/en/) - _कृषि वस्तुओं का टोकनीकरण और व्यापार_ +- [Bitbond](https://www.bitbond.com/) - _टोकनाइज़ेशन के साथ वित्तीय संपत्तियों के जारी करने, निपटान और अभिरक्षा में सुधार करता है_ +- [Blocksquare](https://blocksquare.io/) - _रियल एस्टेट के लिए टोकनीकरण इंफ्रास्ट्रक्चर_ +- [Centrifuge](https://centrifuge.io/) - _टोकनाइज्ड प्राप्य वित्तपोषण, ऋण और संपत्तियां_ +- [Clearmatics](https://www.clearmatics.com) - _टोकनाइज्ड मूल्य के p2p विनिमय के लिए विकेन्द्रीकृत नेटवर्क प्लेटफॉर्म बनाता है_ +- [dClimate](https://www.dclimate.net/) - _विकेन्द्रीकृत जलवायु सूचना पारिस्थितिकी तंत्र_ +- [Fabrica](https://www.fabrica.land/) - _रियल एस्टेट संपत्तियों को डिजिटाइज करने के लिए एक प्लेटफॉर्म, DeFi उधार और संपत्ति व्यापार को सक्षम करता है_ +- [Fasset](https://www.fasset.com/) - _टिकाऊ बुनियादी ढांचे का समर्थन करने के लिए एक प्लेटफॉर्म_ +- [Nori](https://nori.com/) - _कार्बन हटाने की परियोजनाओं को अपनी गतिविधि को मापने और मौद्रीकरण करने की अनुमति देने के लिए ओपन सोर्स बाजार इंफ्रास्ट्रक्चर_ +- [Propy](https://propy.com/) - _स्मार्ट अनुबंधों के साथ आवासीय रियल एस्टेट लेनदेन को स्वचालित करने के लिए एक प्लेटफॉर्म_ +- [RealT](https://realt.co/) - _दुनिया भर के निवेशक पूरी तरह से अनुपालन वाले, आंशिक, टोकनाइज्ड स्वामित्व के माध्यम से अमेरिकी रियल एस्टेट बाजार में खरीद सकते हैं_ +- [Rubey](https://www.rubey.be/) - _एक प्लेटफॉर्म जो उच्च-अंत कला को टोकनाइज करता है ताकि इसे खुदरा निवेशकों के लिए सुलभ बनाया जा सके_ +- [Swarm](https://swarm.com/) - _नियामक अनुपालन तरीके से वास्तविक दुनिया की संपत्तियों के डिजिटलीकरण और व्यापार पर केंद्रित एक प्लेटफॉर्म_ +- [Thallo](https://www.thallo.io/) - _व्यावसायिक लेनदेन में डिजिटल कार्बन क्रेडिट को एकीकृत करने के लिए एक प्लेटफॉर्म_ +- [Tokenchampions](https://tokenchampions.com/) - _यूरोपीय फुटबॉल खिलाड़ियों के छवि अधिकारों को टोकनाइज करता है_ + +### डेटा का नोटरीकरण {#notarization-of-data} + +- [ANSA](https://www.ansa.it/english/news/science_tecnology/2020/04/06/ansa-using-blockchain-to-help-readers_af820b4f-0947-439b-843e-52e114f53318.html) - _इतालवी समाचार एजेंसी फर्जी खबरों से लड़ती है और पाठकों को मेननेट पर उन्हें रिकॉर्ड करके समाचार कहानियों के मूल को सत्यापित करने में सक्षम बनाती है_ +- [Breitling](https://www.coindesk.com/breitling-arianee-all-new-watches-ethereum) - _एथेरियम पर घड़ियों के उत्पत्ति और मरम्मत इतिहास को रिकॉर्ड करता है_ +- [BRØK](https://www.xn--brk-1na.no/) - _नॉर्वेजियन सरकार द्वारा प्रदान किया गया सार्वजनिक पर असूचीबद्ध कंपनियों के लिए एक कैप टेबल्स प्लेटफॉर्म_ +- [Certifaction](https://certifaction.com/) - _गोपनीयता-द्वारा-डिजाइन के साथ कानूनी रूप से मान्य ई-हस्ताक्षर_ +- [EthSign](https://ethsign.xyz/) - _एथेरियम ब्लॉकचेन पर हस्ताक्षरित इलेक्ट्रॉनिक दस्तावेजों को रिकॉर्ड करता है_ +- [Stacktical](https://stacktical.com/) - _नेटिव एस्क्रोइंग क्षमताओं के साथ सेवा स्तर समझौतों (SLA) के सॉफ्टवेयर विकास, डिजिटल जारी करने और डिजिटल हस्ताक्षर को सक्षम करता है_ +- [Verizon](https://decrypt.co/46745/verizon-news-press-releases-ethereum-full-transparency) - _कॉर्पोरेट जवाबदेही और विश्वास सुनिश्चित करने के लिए एथेरियम पर प्रेस विज्ञप्तियों को लॉग करता है_ +- [WolfTown](https://www.mef.net/edge-view-blog/automated-secure-timely-sla-reporting-is-finally-a-reality/) - _MEF और Sage Management द्वारा दूरसंचार वाहकों के बीच सेवा स्तर समझौता रिपोर्टिंग को स्वचालित करता है_ + +### आपूर्ति श्रृंखला {#supply-chain} + +- [Birra Peroni](https://www.ey.com/en_gl/news/2021/05/birra-peroni-is-the-first-industrial-organization-to-mint-unique-non-fungible-tokens-using-ey-opschain-traceability) _बीयर के प्रत्येक नए बैच के लिए NFT मिंट करता है, जिससे अपनी आपूर्ति श्रृंखला में अधिक दृश्यता और दक्षता सक्षम होती है_ +- [CargoX](https://cargox.io/) - _शिपिंग के लिए इलेक्ट्रॉनिक बिल ऑफ लेडिंग और दस्तावेज़ स्थानांतरण प्रदाता_ +- [Circularize](https://www.circularise.com/) - _उत्पादों में बनाई गई कच्चे माल के लिए एक एंड-टू-एंड ट्रेसेबिलिटी समाधान_ +- [EY OpsChain Contract Manager](https://blockchain.ey.com/products/contract-manager) - _कंपनियों को व्यावसायिक भागीदारों के नेटवर्क में RFQ, अनुबंध, खरीद आदेश और चालान जारी करके खरीद कार्यप्रवाह में संलग्न होने में सक्षम बनाता है_ +- [Minespider](https://www.minespider.com/) - _आपूर्ति श्रृंखला ट्रैकिंग और उत्पत्ति, और CO2 उत्सर्जन ट्रैकिंग_ +- [Morpheus.network](https://morpheus.network/) - _आपूर्ति श्रृंखला स्वचालन प्लेटफॉर्म_ +- [StaTwig](https://statwig.com/) - _आपूर्ति श्रृंखला संचालन_ +- [TradeTrust](https://www.tradetrust.io/) - _अंतरराष्ट्रीय शिपिंग के लिए इलेक्ट्रॉनिक बिल्स ऑफ लेडिंग (eBLs) को सत्यापित करता है_ +- [Transmute](https://transmute.industries/) - _वैश्विक व्यापार के लिए डेटा विनिमय प्लेटफॉर्म; एथेरियम पर विकेन्द्रीकृत पहचान के साथ लेनदेन का समर्थन करता है_ + +### बीमा {#insurance} + +- [Arbol](https://www.arbolmarket.com/) - _मौसम संबंधी जोखिमों को कवर करने के लिए पैरामीट्रिक बीमा_ +- [Etherisc](https://etherisc.com/) - _विभिन्न प्रकार के जोखिमों के लिए विकेन्द्रीकृत बीमा_ +- [Nayms](https://www.nayms.com/) - _बीमा कार्यक्रमों के निर्माण, पूंजी जुटाने और व्यापार करने, जोखिम लिखने और प्रीमियम और दावा लेनदेन के लिए भुगतान रेल के लिए एक डिजिटल स्थान, AON के साथ निर्मित_ + +### पहचान, प्रमाणपत्र और प्रमाणन {#credentials} + +- [BCdiploma](https://www.bcdiploma.com/) - _डिप्लोमा, प्रमाणपत्र और माइक्रो-क्रेडेंशियल्स को डिजिटाइज और सत्यापित करता है_ +- [Hyland Credentials](https://www.hylandcredentials.com) - _डिजिटल डिप्लोमा और अन्य शिक्षा प्रमाणपत्र, लाइसेंस और प्रमाणपत्र_ +- [पलाऊ डिजिटल रेजिडेंसी प्रोग्राम](https://rns.id/) - _वैश्विक नागरिकों को कानूनी पलाऊ सरकार द्वारा जारी ID रखने की क्षमता प्रदान करता है_ +- [Spherity](https://www.spherity.com/) - _पारिस्थितिकी तंत्रों में डिजिटल विश्वास स्थापित करने के लिए डिजिटल पहचान प्रबंधन समाधान प्रदान करता है, विकेन्द्रीकृत पहचानों और सत्यापन योग्य क्रेडेंशियल्स पर ध्यान केंद्रित करता है_ +- [Zug Digital ID](https://ezug.ch/en/) - _स्विट्जरलैंड में एक ब्लॉकचेन-आधारित पहचान सिस्टम है, जो निवासियों को सरकारी सेवाओं तक डिजिटल पहुंच प्रदान करती है और ई-बाइक उधार लेने और नगरपालिका मतदान जैसी कार्यक्षमताओं का समर्थन करता है_ + +### मनोरंजन, NFT और लॉयल्टी + +- [Adidas Virtual Gear](https://www.adidas.com/metaverse) - _एक वर्चुअल गियर NFT संग्रह_ +- [The British Museum's Sandbox](https://decrypt.co/150405/british-museum-enter-metaverse-via-sandbox) - _एक NFT संग्रह_ +- [Fruitlab](https://fruitlab.com/) - _गेमर्स के लिए ऑनलाइन गेम देखने, साझा करने और खेलने से कमाई करने का एक प्लेटफॉर्म_ +- [Nike Swoosh](https://www.swoosh.nike/) - _एक NFT प्लेटफॉर्म_ +- [Sothbebys Metaverse](https://metaverse.sothebys.com/) - _Sothebys द्वारा एक डिजिटल कला NFT मार्केटप्लेस_ + +यदि आप इस सूची में जोड़ना चाहते हैं, तो कृपया [योगदान के लिए निर्देश देखें](/contributing/)। diff --git a/public/content/translations/hi/events/index.md b/public/content/translations/hi/events/index.md new file mode 100644 index 00000000000..165c6cc84ae --- /dev/null +++ b/public/content/translations/hi/events/index.md @@ -0,0 +1,24 @@ +--- +title: एथेरियम इवेंट्स +description: एथेरियम समुदाय में कैसे शामिल हों। +lang: hi +hideEditButton: true +--- + +# भविष्य में होने वाली इवेंट्स {#events} + +**हर महीने, दुनिया भर में एथेरियम की बड़ी इवेंट्स होते हैं।** अपने नज़दीक होने वाले किसी एक इवेंट में शामिल होने पर विचार करें, ताकि आप समुदाय के अधिक लोगों से मिल सकें, रोज़गार के अवसरों के बारे में जान सकें और नई क्षमताएं विकसित कर सकें। + + + +यह हमारे समुदाय द्वारा रखरखाव की जाने वाली एक गैर-विस्तृत सूची है। क्या आप इस सूची में जोड़ने के लिए किसी आगामी एथेरियम इवेंट्स के बारे में जानते हैं? [कृपया इसे जोड़ें](https://github.com/ethereum/ethereum-org-website/blob/dev/src/data/community-events.json)! + +## एथेरियम मीटअप्स {#meetups} + +क्या आपको ऐसा कोई इवेंट नहीं दिख रहा, जो आपके लिए उपयुक्त हो? किसी मीटअप में शामिल होने की कोशिश करें। मीटअप्स, एथेरियम के उत्साही समूहों द्वारा आयोजित छोटे इवेंट हैं - जिनमें एथेरियम में रुचि रखने वाले लोग एक साथ आते हैं, एथेरियम के बारे में बात करते हैं और हाल के विकासों के बारे में सीखते हैं।मीटअप्स + + + +क्‍या अपना खुद का मीटअप शुरू करने में आपकी रुचि है? [BUIDL नेटवर्क](https://consensys.net/developers/buidlnetwork/) पर नज़र डालें, जो एथेरियम के मीटअप समुदायों की सहायता करने के लिए, ConsenSys द्वारा शुरू की गई एक पहल है। + +यह हमारे समुदाय द्वारा बनाई गई एक गैर-विस्तृत सूची है। आप [और भी एथेरियम मीटअप्स यहां पा सकते हैं](https://www.meetup.com/topics/ethereum/)। क्‍या आप इस सूची में जोड़ने के लिए किसी सक्रिय मीटअप समूह के बारे में जानते हैं? [कृपया इसे जोड़ें](https://github.com/ethereum/ethereum-org-website/blob/dev/src/data/community-meetups.json)! diff --git a/public/content/translations/hi/how-to-create-an-ethereum-account/index.md b/public/content/translations/hi/how-to-create-an-ethereum-account/index.md new file mode 100644 index 00000000000..37605c7bed3 --- /dev/null +++ b/public/content/translations/hi/how-to-create-an-ethereum-account/index.md @@ -0,0 +1,73 @@ +--- +title: इथेरियम खाते को कैसे "बनाएं" +description: वॉलेट का इस्तेमाल करते हुए एथेरियम खाता बनाने पर एक चरण-दर-चरण गाइड। +lang: hi +--- + +# इथेरियम खाते को कैसे बनाएं + +**कोई भी एथेरियम खाता निःशुल्क बना सकता है।** आपको बस एक क्रिप्टो वॉलेट ऐप इंस्टॉल करना होगा। वॉलेट आपके एथेरियम खाते को बनाते और प्रबंधित करते हैं। वे लेनदेन भेज सकते हैं, आपकी शेष राशि की जांच कर सकते हैं और आपको एथेरियम पर निर्मित अन्य ऐप से कनेक्ट कर सकते हैं। + +वॉलेट से आप किसी भी टोकन एक्सचेंज, गेम्स, [NFT](/glossary/#nft) मार्केटप्लेस में तुरंत लॉग इन कर सकते हैं। व्यक्तिगत पंजीकरण की कोई आवश्यकता नहीं है, क्यूंकि एथेरियम पर निर्मित सभी ऐप्स के लिए एक खाता साझा किया जाता है। + +## चरण 1: एक वॉलेट चुनें + +वॉलेट एक ऐप है जो आपके इथेरियम खाते को मैनेज करने में आपकी मदद करता है। चुनने के लिए दर्जनों अलग-अलग वॉलेट हैं: मोबाइल, डेस्कटॉप, या यहां तक कि ब्राउज़र एक्सटेंशन। + + + + वॉलेट की सूची + + +अगर आप नए है, तो वॉलेट चुनने के लिए आप "वॉलेट ढूंढे" पेज पर "क्रिप्टो पर नए" फिल्टर को चुन सकते है, जिसमे शुरुआती नए लोगो के लिए उपयुक्त जरूरी सभी सुविधाएं शामिल होनी चाहिए। + +!['वॉलेट ढूंढें' पेज पर फ़िल्टर चयन](./wallet-box.png) + +आपकी ज़रूरतों को पूरा करने वाले और भी दूसरे प्रोफ़ाइल फिल्टर है। ये कुछ आम तौर पर इस्तेमाल किए जाने वाले वॉलेट के उदाहरण - किसी भी सॉफ्टवेयर पर भरोसा करने से पहले आपको अपना शोध खुद करना चाहिए। + +## चरण 2: वॉलेट ऐप डाउनलोड और इंस्टॉल करें + +एक बार जब आप एक विशिष्ट वॉलेट का चुनाव कर लें, तो आप उनकी आधिकारिक वेबसाइट या ऐप स्टोर पर जाए और उसे डाउनलोड और इंस्टॉल करें। वे सभी मुफ्त होने चाहिए। + +## चरण 3: ऐप खोलें और अपना एथेरियम खाता बनाएं + +जब पहली बार अपना नया वॉलेट खोलते है, तो आपसे नया खाता बनाने या फिर मौजूद को आयात करने के लिए कहा जाता है। नया खाता बनाने के विकल्प पर क्लिक करें। **यह वह चरण है जिसके दौरान वॉलेट सॉफ़्टवेयर आपका एथेरियम खाता जनरेट करता है।** + +## चरण 4: अपना रिकवरी फ़्रेज़ स्टोर करें + +कुछ ऐप्स आपसे एक गुप्त "पुनर्प्राप्ति वाक्यांश" (कभी-कभी "बीज वाक्यांश" या "निमोनिक" कहा जाता है) को सहेजने का अनुरोध करेंगे। इस वाक्यांश को सुरक्षित रखना अत्यंत महत्वपूर्ण है! इसका उपयोग आपके एथेरियम खाते को जनरेट करने के लिए किया जाता है और इसका उपयोग लेनदेन सबमिट करने के लिए किया जा सकता है। + +**कोई भी व्यक्ति जो वाक्यांश जानता है, वह सारे फंड का नियंत्रण ले सकता है।** इसे कभी भी किसी के साथ साझा न करें। इस वाक्यांश में 12 से 24 रैंडम तरीके से जनरेट किए गए शब्द होने चाहिए (शब्दों का क्रम मायने रखता है)। + +
+ +
इंस्टॉल किया गया वॉलेट?
इसका उपयोग करने का तरीका सीखें।
+ + वॉलेट का उपयोग कैसे करें + +
+
+ +अन्य गाइड में रुचि रखते हैं? हमारी [चरण-दर-चरण मार्गदर्शिकाओं](/guides/) की जांच करें + +## अक्सर पूछे जाने वाले सवाल + +### क्या मेरा वॉलेट और मेरा इथेरियम खाता एक ही हैं? + +नहीं। वॉलेट एक मैनेजमेंट टूल है जो आपके खाते का प्रबंधन करने में मदद करता है। एक एकल वॉलेट कई खातों तक पहुंच सकता है, और एक ही खाते को कई वॉलेट द्वारा एक्सेस किया जा सकता है। पुनर्प्राप्ति वाक्यांश का उपयोग खाता बनाने के लिए किया जाता है और एसेट का प्रबंधन करने के लिए वॉलेट ऐप को अनुमति देता है। + +### क्या मैं bitcoin एक इथेरियम के पते पर भेज सकता हूं या इथर को एक Bitcoin के पते पर? + +नहीं, आप ऐसा नहीं कर सकते। Bitcoin और ईथर दो अलग-अलग नेटवर्क (यानी अलग-अलग ब्लॉकचेन) पर मौजूद हैं, जिनमें से प्रत्येक का अपना बहीखाता और पता प्रारूप है। दो अलग-अलग नेटवर्कों को साथ में जोड़ने के कई प्रयास किए गए हैं, जिनमें से सबसे सक्रिय वर्तमान में [रैप्ड Bitcoin या WBTC ](https://www.bitcoin.com/get-started/what-is-wbtc/) है। यह कोई समर्थन नहीं है, क्योंकि WBTC एक संरक्षक समाधान है (जिसका अर्थ है कि लोगों का एक समूह कुछ महत्वपूर्ण कार्यों को नियंत्रित करता है) और यहां केवल सूचनात्मक उद्देश्यों के लिए प्रदान किया गया है। + +### अगर मैं ETH पते का मालिक हूं, क्या मैं दूसरी ब्लॉकचेन पर भी समान पते का मालिक हूं? + +आप उन सभी ब्लॉकचेन पर समान [पते](/glossary/#address) का उपयोग कर सकते हैं, जो एथेरियम के समान अंतर्निहित सॉफ़्टवेयर का उपयोग करते हैं (जिसे 'EVM-संगत' के रूप में जाना जाता है)। यह [सूची](https://chainlist.org/) आपको दिखाएगी कि आप समान पते के साथ और कौन सी ब्लॉकचेन का इस्तेमाल कर सकते है। कुछ ब्लॉकचैन, जैसे Bitcoin, नेटवर्क नियमो का पूरा अलग सेट लागू करते है और आपको अलग पता प्रारूप के साथ अलग पते की ज़रूरत होगी। यदि आपके पास एक स्मार्ट अनुबंध वॉलेट है, तो आपको अधिक जानकारी के लिए इसकी उत्पाद वेबसाइट की जांच करनी चाहिए, जिस पर ब्लॉकचेन समर्थित हैं क्योंकि आमतौर पर उनके पास सीमित लेकिन अधिक सुरक्षित गुंजाइश होती है। + +### क्या मेरे पास खुद का मेरा वॉलेट होना मेरे फंड का एक्सचेंज पर रखना ज्यादा सुरक्षित है? + +आपका स्वयं का वॉलेट होने का मतलब है कि आप अपनी संपत्ति की सुरक्षा की जिम्मेदारी लेते है। बदकिस्मती से कई विफल एक्सचेंज के उदाहरण है जिन्होंने उनके ग्राहकों का धन खोया है। एक वॉलेट का मालिक (एक पुनर्प्राप्ति वाक्यांश के साथ) आपके एसेट रखने के लिए कुछ इकाई पर भरोसा करने से जुड़े जोखिम को हटा देता है। हालांकि, आपको इसे अपने दम पर सुरक्षित करना होगा और फ़िशिंग घोटालों से बचना होगा, गलती से लेनदेन को मंजूरी देने या पुनर्प्राप्ति वाक्यांश को प्रदर्शित करने, नकली वेबसाइट और अन्य आत्म-हिरासत जोखिमों के साथ बातचीत करने से बचना होगा। जोखिम और फायदे अलग-अलग हैं। + +### अगर मैं फोन/हार्डवेयर वॉलेट को खो देता हूं, तो क्या मुझे खोए हुए फंड की वसूली के लिए समान वॉलेट ऐप का इस्तेमाल करने की ज़रूरत होगी? + +नहीं, आप एक अलग वॉलेट इस्तेमाल कर सकते हैं। जब तक आपके पास बीज वाक्यांश है आप इसे अधिकतर वॉलेट में डाल सकते है और वे आपका खाता रीस्टोर कर देंगे। अगर आपको यह कभी भी करने की आवश्यकता पड़े तो सावधानी रहें: सबसे अच्छा यहीं होगा कि आप सुनिश्चित करें कि जब अपना वॉलेट रीस्टोर कर रहे हो तब इंटरनेट से जुड़े नहीं हो, ताकि आपका बीज वाक्यांश गलती से लीक न हो जाए। बीज वाक्यांश के बिना, खोए हुए धन को पुनर्प्राप्त करना अक्सर असंभव होता है। diff --git a/public/content/translations/hi/web3/index.md b/public/content/translations/hi/web3/index.md index c776345ec96..8c300eacc02 100644 --- a/public/content/translations/hi/web3/index.md +++ b/public/content/translations/hi/web3/index.md @@ -6,6 +6,10 @@ lang: hi # Web3 का परिचय {#introduction} +
+ +
+ केंद्रीकरण की मदद से अरबों लोग वर्ल्ड वाइड वेब से जुड़े है और इसके स्थिर, मजबूत बुनियादी ढांचे का निर्माण किया है जिस पर यह जीवित है। साथ ही, वर्ल्ड वाइड वेब के बड़े हिस्से पर कुछ केंद्रीकृत संस्थाओं का दबदबा है, जो एक तरफा निर्णय लेते हैं कि क्या अनुमति दी जानी चाहिए और क्या नहीं। Web3 इस दुविधा का उत्तर है। बड़ी तकनीकी कंपनियों के एकाधिकार वाले वेब के बजाय, Web3 विकेंद्रीकरण को अपनाता है और इसका निर्माण, संचालन और स्वामित्व इसके उपयोगकर्ता द्वारा किया जाता है। Web3 सत्ता को निगमों के बजाय लोगो के हाथों में देता है। Web3 के बारे में बात करने के पहले, आइए जानें कि हम यहां तक कैसे पहुंचे। @@ -82,7 +86,7 @@ Web3 पर, आपका डाटा ब्लॉकचेन में रह Web3 में अपने डेटा के मालिक बनने के साथ ही, आप समूह के रूप में प्लेटफ़ॉर्म के मालिक भी बन सकते हैं, जहाँ टोकन उसी तरह से काम करते हैं जैसे कि किसी कंपनी के शेयर। DAO आपको एक मंच के विकेंद्रीकृत स्वामित्व का समन्वय करने और उसके भविष्य के बारे में निर्णय लेने देते हैं। -डीएओ को तकनीकी रूप से सहमत [स्मार्ट अनुबंध](/glossary/#smart-contract) के रूप में परिभाषित किया गया है जो संसाधनों के एक पूल (टोकन) पर विकेंद्रीकृत निर्णय लेने को स्वचालित करता है। टोकन वाले उपयोगकर्ता इस पर वोट करते हैं कि संसाधन कैसे खर्च किए जाते हैं, और कोड स्वचालित रूप से वोटिंग परिणाम निष्पादित करता है। +डीएओ को तकनीकी रूप से सहमत [स्मार्ट अनुबंध](/glossary/#smart-contract) स्मार्ट अनुबंध के रूप में परिभाषित किया गया है जो संसाधनों के एक पूल (टोकन) पर विकेंद्रीकृत निर्णय लेने को स्वचालित करता है। टोकन वाले उपयोगकर्ता इस पर वोट करते हैं कि संसाधन कैसे खर्च किए जाते हैं, और कोड स्वचालित रूप से वोटिंग परिणाम निष्पादित करता है। हालांकि, लोग Web3 समुदायों को भी बहुत से DAO के रूप में परिभाषित करते हैं। इन सभी समुदायों में कोड द्वारा विकेंद्रीकरण और स्वचालन के विभिन्न स्तर हैं। वर्तमान में, हम यह पता लगा रहे हैं कि DAO क्या हैं और वे भविष्य में कैसे विकसित हो सकते हैं। diff --git a/src/intl/hi/glossary-tooltip.json b/src/intl/hi/glossary-tooltip.json new file mode 100644 index 00000000000..d23570feed6 --- /dev/null +++ b/src/intl/hi/glossary-tooltip.json @@ -0,0 +1,65 @@ +{ + "51%-attack-term": "51% हमला", + "51%-attack-definition": "एक प्रकार का हमला जहां एक समूह अधिकांश नोड्स का नियंत्रण प्राप्त कर लेता है। यह उन्हें लेनदेन को उलटकर और ईथर और अन्य टोकन को दोहरा खर्च करके ब्लॉकचेन को धोखा देने की अनुमति देगा।", + "account-definition": "एक एथेरियम खाता एथेरियम ब्लॉकचेन पर एक डिजिटल पहचान है, जो उपयोगकर्ताओं को ईथर या अन्य डिजिटल संपत्तियों को भेजने, प्राप्त करने और स्मार्ट अनुबंधों के साथ बातचीत करने की अनुमति देता है।", + "address-definition": "एक एथेरियम पता एक अद्वितीय पहचानकर्ता है जिसका उपयोग टोकन प्राप्त करने के लिए किया जाता है, क्रिप्टोकरेंसी के लिए बैंक खाता संख्या के समान कार्य करता है। इसका उपयोग आपके एथेरियम खाते की पहचान करने के लिए किया जाता है।", + "block-term": "ब्लॉक", + "block-definition": "एक ब्लॉक वह है जहां लेनदेन या डिजिटल कार्यों को संग्रहीत किया जाता है। जब एक ब्लॉक भर जाता है, तो यह पिछले वाले से जुड़ जाता है, ब्लॉकों की एक श्रृंखला या \"ब्लॉकचेन\" बनाता है। ब्लॉक के बारे में अधिक।", + "blockchain-term": "ब्लॉकचेन", + "blockchain-definition": "एक ब्लॉकचेन लेनदेन का एक डेटाबेस है, जो नेटवर्क में सभी कंप्यूटरों पर डुप्लिकेट और साझा किया जाता है, यह सुनिश्चित करता है कि डेटा को पूर्वव्यापी रूप से बदला नहीं जा सकता।", + "bridge-term": "ब्रिज", + "bridge-definition": "एक ब्लॉकचेन ब्रिज का उपयोग एक ब्लॉकचेन नेटवर्क से दूसरे में संपत्तियों को स्थानांतरित करने के लिए किया जाता है।", + "consensus-term": "आम सहमति", + "consensus-layer-term": "आम सहमति परत", + "cryptoeconomics-term": "क्रिप्टोइकॉनॉमिक्स", + "cryptography-definition": "यह संचार को निजी और सुरक्षित बनाने की प्रक्रिया है ताकि केवल वे लोग जिनके लिए जानकारी अभिप्रेत है, उसे पढ़ सकें।", + "dao-definition": "एक DAO एक डिजिटल संगठन है जो ब्लॉकचेन पर कोडित नियमों द्वारा चलाया जाता है, जहां निर्णय केंद्रीय प्राधिकरण द्वारा नहीं, बल्कि सदस्य मतों द्वारा लिए जाते हैं। विकेंद्रीकृत स्वायत्त संगठनों (DAOs) के बारे में अधिक।", + "dapp-definition": "एक dApp एक विकेंद्रीकृत एप्लिकेशन है जो एक ब्लॉकचेन नेटवर्क पर चलता है, जो किसी केंद्रीय नियंत्रण प्राधिकरण के बिना सेवाएं प्रदान करता है। विकेंद्रीकृत एप्लिकेशन के बारे में अधिक।", + "data-availability-term": "डेटा की उपलब्धता", + "defi-term": "DeFi", + "ens-definition": "एथेरियम नेम सर्विस एथेरियम पतों के लिए इंटरनेट फोनबुक की तरह है। लंबे वॉलेट पतों का उपयोग करने के बजाय, ENS आपको \"john.eth\" जैसे सरल नामों का उपयोग करने की सुविधा देता है डिजिटल धन और संपत्तियों को भेजने और प्राप्त करने के लिए।", + "epoch-term": "युग", + "erc-definition": "ERC (एथेरियम रिक्वेस्ट फॉर कमेंट्स) एक प्रकार का तकनीकी दस्तावेज है जिसका उपयोग एथेरियम समुदाय द्वारा एथेरियम नेटवर्क के उपयोग के लिए नए मानकों का प्रस्ताव देने के लिए किया जाता है।", + "erc-1155-term": "ERC-1155", + "erc-1155-definition": "एक प्रकार का एथेरियम टोकन मानक जो NFT (जैसे अद्वितीय संग्रहणीय वस्तुएं) के समान है जो एक ही स्मार्ट अनुबंध के भीतर परस्पर विनिमेय वस्तुएं (जैसे मुद्रा) बनाने की भी अनुमति देता है।", + "erc-20-term": "ERC-20", + "erc-20-definition": "यह मानक नियमों का एक समूह है जिसके साथ एथेरियम नेटवर्क पर अधिकांश टोकन बनाए जाते हैं।", + "erc-721-term": "ERC-721", + "erc-721-definition": "NFT (नॉन फंजिबल टोकन) बनाने के लिए उपयोग किए जाने वाले नियमों का एक मानक समूह।", + "ether-term": "इथर", + "events-term": "आयोजन", + "execution-layer-term": "निष्पादन परत", + "finality-term": "अन्तिम स्थिति", + "gas-term": "गैस", + "gwei-term": "ग्वेई", + "holographic-consensus-definition": "इसका संदर्भ है कि कैसे एक बड़े समूह का निर्णय प्रतिनिधि लोगों के एक छोटे समूह को मतदान करने की अनुमति देकर लिया जाता है। फिर बाकी सभी लोग इसे स्वीकार करने के लिए सहमत होते हैं, जब तक कि वे छोटे समूह पर भरोसा करते हैं कि उन्होंने अच्छा काम किया।", + "key-definition": "एथेरियम के संदर्भ में, कुंजियाँ डिजिटल कोड हैं: लेनदेन प्राप्त करने के लिए एक सार्वजनिक कुंजी और धन तक पहुंचने और भेजने के लिए एक निजी कुंजी।", + "layer-2-term": "परत 2", + "liquidity-tokens-definition": "लिक्विडिटी टोकन (LT) डिजिटल टोकन हैं जो उन प्रतिभागियों को जारी किए जाते हैं जो लिक्विडिटी पूल में संपत्तियां जमा करते हैं, जो एक स्मार्ट अनुबंध में लॉक किए गए धन का संग्रह है और एक विकेंद्रीकृत एक्सचेंज (DEX) पर व्यापार की सुविधा के लिए उपयोग किया जाता है।", + "mainnet-term": "मेननेट", + "mev-term": "MEV", + "mev-definition": "एक तंत्र जो शुल्क के लिए ब्लॉकचेन पर कुछ कार्यों को प्राथमिकता देता है, परिणामों और लेनदेन के क्रम को प्रभावित करता है।", + "multisig-term": "एक से अधिक हस्ताक्षर", + "multisig-definition": "मल्टीसिग (बहु हस्ताक्षर) एक डिजिटल वॉलेट या खाते को संदर्भित करता है जिसे लेनदेन निष्पादित करने के लिए कई हस्ताक्षरों या अनुमोदनों की आवश्यकता होती है, जो सुरक्षा को बढ़ाता है।", + "onchain-term": "ऑनचेन", + "onchain-definition": "उन कार्यों या लेनदेन को संदर्भित करता है जो ब्लॉकचेन पर होते हैं और सार्वजनिक रूप से उपलब्ध होते हैं।", + "peer-to-peer-network-definition": "कंप्यूटरों (पीयर्स) का एक नेटवर्क जो सामूहिक रूप से केंद्रीकृत, सर्वर-आधारित सेवाओं की आवश्यकता के बिना कार्यक्षमताओं को निष्पादित करने में सक्षम है।", + "permissionless-term": "अनुमति रहित", + "permissionless-definition": "एथेरियम जैसे सिस्टम का उपयोग करने के लिए किसी अनुमति या स्वीकृति की आवश्यकता नहीं है और कोई भी आपको इसका उपयोग करने से नहीं रोक सकता। यह सभी के भाग लेने के लिए 24/7 खुला है।", + "private-key-term": "निजी कुंजी", + "pos-term": "हिस्सेदारी का सबूत (PoS)", + "pow-term": "काम का सबूत (PoW)", + "public-key-term": "सार्वजनिक कुंजी", + "rollups-term": "रोलअप्स", + "sequencer-term": "सीक्वेंसर", + "sequencer-definition": "एक सीक्वेंसर एक प्रोग्राम है जो ब्लॉकचेन नेटवर्क में लेनदेन को क्रमबद्ध करने के लिए जिम्मेदार है।", + "smart-contract-term": "स्मार्ट अनुबंध", + "staking-term": "स्टेकिंग", + "sybil-attack-definition": "सिबिल हमलों से तात्पर्य है व्यक्तिगत मनुष्य एक सिस्टम को धोखा देकर यह सोचने में मजबूर करते हैं कि वे कई लोग हैं, ताकि उनका प्रभाव बढ़ सके।", + "trust-assumptions-term": "विश्वास की धारणाएँ", + "validator-term": "सत्यापनकर्ता", + "wallet-term": "वॉलेट", + "web2-term": "Web2", + "web3-term": "Web3", + "wei-term": "वेई" +} diff --git a/src/intl/hi/page-about.json b/src/intl/hi/page-about.json index 948756e1b84..87f55c33811 100644 --- a/src/intl/hi/page-about.json +++ b/src/intl/hi/page-about.json @@ -1,3 +1,35 @@ { - "page-what-is-ethereum-energy-consumption-chart-legend": "टेरावॉट/वर्ष में वार्षिक उर्जा खपत" + "page-about-h2": "एक सुविधा का अनुरोध करें", + "page-about-h3": "कार्य प्रगति पर है", + "page-about-h3-1": "लागू की गई सुविधाएँ", + "page-about-h3-2": "नियोजित सुविधाएँ", + "page-about-li-1": "चालू", + "page-about-li-2": "नियोजित", + "page-about-li-3": "कार्यान्वित", + "page-about-li-4": "कार्यान्वित", + "page-about-link-1": "इस भंडार का स्रोत कोड MIT लाइसेंस के तहत लाइसेंस प्राप्त है", + "page-about-link-2": "GitHub", + "page-about-link-3": "Github पर जारी कार्यों की पूरी सूची देखें", + "page-about-link-4": "हमारे Discord सर्वर से जुड़ें", + "page-about-link-5": "Twitter पर हमसे संपर्क करें", + "page-about-link-6": "Github पर कार्यान्वित कार्यों की पूरी सूची देखें", + "page-about-link-7": "Github पर एक मुद्दा बनाएँ", + "page-about-p-1": "Ethereum.org के लॉन्च के बाद से, हम इस बारे में पारदर्शी होने का प्रयास करते हैं कि हम कैसे काम करते हैं। यह हमारे मूल मूल्यों में से एक है क्योंकि हमारा मानना ​​है कि इथेरियम की सफलता के लिए पारदर्शिता महत्वपूर्ण है।", + "page-about-p-2": "हम हमारे", + "page-about-p-3": "प्राथमिक परियोजना प्रबंधन उपकरण के रूप में उपयोग करते हैं। हम अपने कार्यों को 3 श्रेणियों में व्यवस्थित करते हैं:", + "page-about-p-4": " हम समुदाय को यह बताने की पूरी कोशिश करते हैं कि किसी विशिष्ट कार्य की स्थिति क्या है।", + "page-about-p-5": "वे कार्य, जिन्हें हम कार्यान्वित कर रहे हैं।", + "page-about-p-6": "वे कार्य, जिन्हें हमने आगे कार्यान्वित करने के लिए कतारबद्ध किया हुआ है।", + "page-about-p-7": "हाल में पूरे किए गए कार्य।", + "page-about-p-8": "क्या आपके पास इस बारे में कोई विचार है कि ethereum.org को कैसे बेहतर बनाया जाए? हम आपके साथ सहयोग करना पसंद करेंगे!", + "page-what-is-ethereum-energy-consumption-chart-legend": "TWh/वर्ष में वार्षिक उर्जा खपत", + "energy-consumption-chart-global-data-centers-label": "वैश्विक डेटा केंद्र", + "energy-consumption-chart-airbnb-label": "AirBnB", + "energy-consumption-gold-mining-cbeci-label": "गोल्ड माइनिंग", + "energy-consumption-chart-btc-pow-label": "BTC PoW", + "energy-consumption-chart-netflix-label": "Netflix", + "energy-consumption-chart-eth-pow-label": "ETH PoW", + "energy-consumption-chart-gaming-us-label": "अमेरिका में गेमिंग", + "energy-consumption-chart-paypal-label": "PayPal", + "energy-consumption-chart-eth-pos-label": "ETH PoS" } diff --git a/src/intl/hi/page-assets.json b/src/intl/hi/page-assets.json index a2e84b88a7d..0a25f770903 100644 --- a/src/intl/hi/page-assets.json +++ b/src/intl/hi/page-assets.json @@ -1,21 +1,27 @@ { - "page-assets-bazaar": "इथेरियम बाजार", + "page-assets-bazaar": "एथेरियम बाजार", + "page-assets-beacon-chain": "बीकन चेन", "page-assets-blocks": "बिल्डिंग ब्लॉक", - "page-assets-doge": "डेप्स का उपयोग करने वाला Doge", + "page-assets-dao": "डीएओ", + "page-assets-defi": "DeFi", + "page-assets-merge": "मर्ज", + "page-assets-doge": "dapps का उपयोग करने वाला Doge", "page-assets-download-artist": "कलाकार:", "page-assets-download-download": "डाउनलोड करें", "page-assets-enterprise": "एंटरप्राइज़ इथेरियम", "page-assets-eth": "ईथर (ETH)", - "page-assets-eth-diamond-color": "ETH हीरा (रंग)", + "page-assets-eth-diamond-color": "ETH डायमंड (रंग)", "page-assets-eth-diamond-glyph": "ETH डायमंड (ग्लिफ़)", "page-assets-eth-diamond-gray": "ETH डायमंड (ग्रे)", "page-assets-eth-diamond-purple": "ETH डायमंड (बैंगनी)", "page-assets-eth-diamond-white": "ETH डायमंड (सफेद)", - "page-assets-eth-glyph-video-dark": "ETH ग्लिफ़ वीडियो (गहरा)", + "page-assets-eth-diamond-colored": "ETH डायमंड (रंग भरे हैं)", + "page-assets-eth-diamond-colored-svg": "ETH डायमंड (रंग भरे हैं, SVG)", + "page-assets-eth-glyph-video-dark": "ETH ग्लिफ़ वीडियो (डार्क)", "page-assets-eth-glyph-video-light": "ETH ग्लिफ़ वीडियो (हल्का)", "page-assets-eth-logo-landscape-gray": "ETH लोगो लैंडस्केप (ग्रे)", - "page-assets-eth-logo-landscape-purple": "ETH लोगो परिदृश्य (बैंगनी)", - "page-assets-eth-logo-landscape-white": "ETH लोगो परिदृश्य (सफेद)", + "page-assets-eth-logo-landscape-purple": "ETH लोगो लैंडस्केप (बैंगनी)", + "page-assets-eth-logo-landscape-white": "ETH लोगो लैंडस्केप (सफेद)", "page-assets-eth-logo-portrait-gray": "ETH लोगो पोर्ट्रेट (ग्रे)", "page-assets-eth-logo-portrait-purple": "ETH लोगो पोर्ट्रेट (बैंगनी)", "page-assets-eth-logo-portrait-white": "ETH लोगो पोर्ट्रेट (सफेद)", @@ -23,14 +29,33 @@ "page-assets-eth-wordmark-purple": "ETH वर्डमार्क (बैंगनी)", "page-assets-eth-wordmark-white": "ETH वर्डमार्क (सफेद)", "page-assets-ethereum-brand-assets": "इथेरियम \"ब्रांड\" संपत्ति", + "page-assets-finance": "वित्त", + "page-assets-future": "भविष्य", "page-assets-h1": "ethereum.org संपत्ति", "page-assets-hero": "ethereum.org नायक", + "page-assets-hero-panda": "ethereum.org hero हीरो विथ मर्ज पांडा", + "page-assets-merge-panda": "मर्ज़ पांडा", + "page-assets-merge-panda-svg": "मर्ज़ पांडा SVG", "page-assets-hero-particles": "ETH कण छवि", "page-assets-historical-artwork": "ऐतिहासिक कलाकृति", "page-assets-illustrations": "चित्रण", - "page-assets-meta-desc": "इथेरियम और ethereum.org ब्रांड संपत्ति, चित्र और मीडिया खोजें और डाउनलोड करें।", + "page-assets-impact": "प्रभाव", + "page-assets-infrastructure": "ढांचा", + "page-assets-leslie-the-rhino": "लेस्ली द राइनो", + "page-assets-meta-desc": "इथेरियम और ethereum.org ब्रांड संपत्ति, चित्रण और मीडिया खोजें और डाउनलोड करें।", "page-assets-meta-title": "इथेरियम ब्रांड की संपत्ति", + "page-assets-mainnet": "मेननेट", "page-assets-page-assets-solid-background": "ठोस पृष्ठभूमि", "page-assets-page-assets-transparent-background": "पारदर्शी पृष्ठभूमि", - "page-assets-robot": "रोबोट वॉलेट" + "page-assets-robot": "रोबोट वॉलेट", + "page-assets-sharding": "शार्डिंग", + "page-assets-hackathon": "हैकथॉन", + "page-assets-learn-hero-name": "भविष्य की विश्वविद्यालय", + "page-assets-community-hero-name": "सामुदायिक सभा", + "page-assets-quizzes-hero-name": "असीमित खेल का मैदान", + "page-assets-developers-hero-name": "भविष्य का निर्माण", + "page-assets-garden-name": "गार्डन ऑफ एथेरियम", + "page-assets-roadmap-hero-name": "भविष्य की राहें", + "page-assets-layer-2-hero-name": "एथेरियम का निर्माण", + "page-assets-guides-hero-name": "एथेरियम प्रयोगशाला" } diff --git a/src/intl/hi/page-bug-bounty.json b/src/intl/hi/page-bug-bounty.json index 39681614907..e6a19528298 100644 --- a/src/intl/hi/page-bug-bounty.json +++ b/src/intl/hi/page-bug-bounty.json @@ -3,29 +3,31 @@ "page-upgrades-bug-bounty-annotations": "निम्नलिखित एनोटेशन की जाँच करना उपयोगी हो सकता है:", "page-upgrades-bug-bounty-client-bugs": "क्लाइंट बग", "page-upgrades-bug-bounty-client-bugs-desc": "क्लाइंट एथेरियम नेटवर्क चलाते हैं और उन्हें विनिर्देश में निर्धारित तर्क का पालन करना और संभावित हमलों से सुरक्षित रहना होगा। हम जो बग ढूँढना चाहते हैं, वे प्रोटोकॉल के लागू होने से संबंधित हैं।", - "page-upgrades-bug-bounty-client-bugs-desc-2": "बग बाउंटी प्रोग्राम में वर्तमान में निष्पादन परत क्लाइंट (बेसु, एरिगॉन, गेथ और नेदरमाइंड) और सहमति परत क्लाइंट (लाइटहाउस, लोडस्टार, निम्बस, टेकू और प्रिज़्म) शामिल हैं। ऑडिट पूरा करने और उत्पादन के लिए तैयार होने के बाद और क्लाइंट जोड़े जाएँगे।", + "page-upgrades-bug-bounty-client-bugs-desc-2": "वर्तमान में निष्पादन परत क्लाइंट्स (बेसु, एरिगोन, गेथ, नेदरमाइंड और रेथ) और सहमति परत क्लाइंट्स (लाइटहाउस, लोडस्टार, निम्बस, टेकू और प्रिज़्म) बग बाउंटी प्रोग्राम में शामिल हैं। अधिक क्लाइंट्स को ऑडिट पूरा करने और प्रोडक्शन के लिए तैयार होने के बाद जोड़ा जा सकता है।", "page-upgrades-bug-bounty-clients": "बाउंटी में प्रदर्शित किए गए क्लाइंट", "page-upgrades-bug-bounty-clients-type-1": "विनिर्देश गैर-अनुपालन की समस्याएँ", "page-upgrades-bug-bounty-clients-type-2": "अप्रत्याशित क्रैश, RCE या सेवा से इनकार (DOS) की भेद्यताएँ", "page-upgrades-bug-bounty-clients-type-3": "किसी भी समस्या के कारण अपूरणीय सहमति शेष नेटवर्क से अलग हो जाती है", - "page-upgrades-bug-bounty-misc-bugs": "सॉलिडिटी बग", - "page-upgrades-bug-bounty-misc-bugs-desc": "इस स्कोप में क्या शामिल है, इसके बारे में अधिक जानकारी के लिए सॉलिडिटी SECURITY.MD देखें।", - "page-upgrades-bug-bounty-misc-bugs-desc-2": "अविश्वसनीय इनपुट के संकलन के संबंध में सॉलिडिटी सुरक्षा की गारंटी नहीं देती है– और हम दुर्भावनापूर्ण रूप से जेनरेट किए गए डेटा पर सॉल्क कंपाइलर के क्रैश के लिए पुरस्कार जारी नहीं करते हैं।", + "page-upgrades-bug-bounty-misc-bugs": "भाषा संकलक बग्स", + "page-upgrades-bug-bounty-misc-bugs-desc": "Solidity और Vyper संकलक बग बाउंटी प्रोग्राम के स्कोप में हैं। कृपया जोखिम को प्रस्तुत करने के लिए आवश्‍यक समस्त विवरण शामिल करें जैसे कि: बग को ट्रिगर करने वाला इनपुट प्रोग्राम, प्रभावित संकलक संस्करण, लक्षित EVM संस्करण, फ्रेमवर्क/IDE यदि लागू हो, EVM निष्पादन वातावरण/क्लाइंट यदि लागू हो और ऑपरेटिंग सिस्टम। कृपया जितना संभव हो सके बग को पुनः उत्पन्न करने के लिए चरणों को शामिल करें।", + "page-upgrades-bug-bounty-misc-bugs-desc-2": "Solidity और Vyper अविश्वसनीय इनपुट के संकलन के संबंध में सुरक्षा गारंटी नहीं रखते हैं – और हम जानबूझकर उत्पन्न डेटा पर संकलक के क्रैश के लिए पुरस्कृत नहीं करते।", "page-upgrades-bug-bounty-deposit-bugs": "जमा अनुबंध बग", "page-upgrades-bug-bounty-deposit-bugs-desc": "बीकन चेन जमा अनुबंध के विनिर्देश और स्रोत कोड बग बाउंटी प्रोग्राम का हिस्सा हैं।", + "page-upgrades-bug-bounty-dependency-bugs": "डिपेंडेंसी बग्स", + "page-upgrades-bug-bounty-dependency-bugs-desc": "कुछ डिपेंडेंसीज एथेरियम नेटवर्क के कामकाज के लिए महत्वपूर्ण हैं, और इनमें से कुछ को बग बाउंटी प्रोग्राम में जोड़ा गया है। वर्तमान में, बग बाउंटी प्रोग्राम में शामिल डिपेंडेंसीज की सूची में C-KZG-4844 और Go-KZG-4844 शामिल हैं।", "page-upgrades-bug-bounty-docking": "मर्ज करें", - "page-upgrades-bug-bounty-email-us": "हमें इमेल करें:", + "page-upgrades-bug-bounty-email-us": "हमें ईमेल करें:", "page-upgrades-bug-bounty-help-links": "उपयोगी लिंक", "page-upgrades-bug-bounty-hunting": "बग तलाशने के नियम", - "page-upgrades-bug-bounty-hunting-desc": "बग बाउंटी प्रोग्राम हमारे सक्रिय एथेरियम समुदाय के लिए एक प्रयोगात्मक और विवेकाधीन पुरस्कार प्रोग्राम है, जो उन लोगों को प्रोत्साहित करने और पुरस्कृत करने के लिए है, जो प्लेटफ़ॉर्म को बेहतर बनाने में मदद कर रहे हैं। यह कोई प्रतियोगिता नहीं है। आपको पता होना चाहिए कि हम किसी भी समय प्रोग्राम को रद्द कर सकते हैं, और पुरस्कार Ethereum फाउंडेशन बग बाउंटी पैनल के एकमात्र विवेक पर निर्भर हैं। इसके अलावा, हम उन व्यक्तियों को पुरस्कार जारी करने में सक्षम नहीं हैं, जो प्रतिबंध सूची में हैं या जो प्रतिबंध सूची (जैसे उत्तर कोरिया, ईरान आदि) वाले देशों में हैं। स्थानीय कानूनों के अनुसार हमें आपकी पहचान का प्रमाण माँगने की ज़रूरत हो सकती है। आप सभी करों के भुगतान के लिए उत्तरदायी होंगे। सभी पुरस्कार लागू कानून के अधीन हैं। अंत में, आपके परीक्षण को किसी भी कानून का उल्लंघन नहीं करना चाहिए या ऐसे किसी भी डेटा से छेड़छाड़ नहीं करनी चाहिए, जो आपका नहीं है और स्थानीय रनिंग टेस्टनेट पर होना चाहिए।", + "page-upgrades-bug-bounty-hunting-desc": "बग बाउंटी प्रोग्राम हमारे सक्रिय एथेरियम समुदाय के लिए एक प्रयोगात्मक और विवेकाधीन पुरस्कार प्रोग्राम है, जो उन लोगों को प्रोत्साहित करने और पुरस्कृत करने के लिए है, जो प्लेटफ़ॉर्म को बेहतर बनाने में मदद कर रहे हैं। यह कोई प्रतियोगिता नहीं है। आपको पता होना चाहिए कि हम किसी भी समय प्रोग्राम को रद्द कर सकते हैं, और पुरस्कार Ethereum फाउंडेशन बग बाउंटी पैनल के एकमात्र विवेक पर निर्भर हैं। इसके अलावा, हम उन व्यक्तियों को पुरस्कार जारी करने में सक्षम नहीं हैं, जो प्रतिबंध सूची में हैं या जो प्रतिबंध सूची (जैसे उत्तर कोरिया, ईरान आदि) वाले देशों में हैं। स्थानीय कानून हमें आपकी पहचान का प्रमाण मांगना आवश्‍यक बनाते हैं। आप सभी करों के भुगतान के लिए उत्तरदायी होंगे। सभी पुरस्कार लागू कानून के अधीन हैं। अंत में, आपके परीक्षण को किसी भी कानून का उल्लंघन नहीं करना चाहिए या ऐसे किसी भी डेटा से छेड़छाड़ नहीं करनी चाहिए, जो आपका नहीं है और स्थानीय रनिंग टेस्टनेट पर होना चाहिए।", "page-upgrades-bug-bounty-hunting-leaderboard": "सहमति परत बग बाउंटी लीडरबोर्ड", "page-upgrades-bug-bounty-hunting-execution-leaderboard": "निष्पादन परत बग बाउंटी लीडरबोर्ड", "page-upgrades-bug-bounty-hunting-leaderboard-subtitle": "इस लीडरबोर्ड में जोड़े जाने के लिए सहमति परत बग ढूँढें", "page-upgrades-bug-bounty-hunting-execution-leaderboard-subtitle": "इस लीडरबोर्ड में जोड़े जाने के लिए निष्पादन परत बग ढूँढें", - "page-upgrades-bug-bounty-hunting-li-1": "POC के बिना समस्याएँ या ऐसी समस्याएँ, जो पहले से ही किसी अन्य उपयोगकर्ता द्वारा सबमिट की गई हैं या पहले से ही विनिर्देश में ज्ञात हैं और क्लाइंट अनुरक्षक बाउंटी पुरस्कार के लिए योग्य नहीं हैं।", - "page-upgrades-bug-bounty-hunting-li-2": "किसी भेद्यता का सार्वजनिक प्रकटीकरण पुरस्कार के लिए अयोग्य बनाता है।", + "page-upgrades-bug-bounty-hunting-li-1": "POC के बिना समस्याएँ या ऐसी समस्याएँ, जो पहले से ही किसी अन्य यूज़र द्वारा सबमिट की गई हैं या पहले से ही विनिर्देश में ज्ञात हैं और क्लाइंट अनुरक्षक बाउंटी पुरस्कार के लिए योग्य नहीं हैं।", + "page-upgrades-bug-bounty-hunting-li-2": "किसी कमजोरी का सार्वजनिक खुलासा करना या पूर्व सहमति के बिना इसे अन्य पक्षों को रिपोर्ट करना इसे बाउंटी के लिए अयोग्य बना देता है।", "page-upgrades-bug-bounty-hunting-li-3": "Ethereum फाउंडेशन के कर्मचारी और ठेकेदार या बाउंटी प्रोग्राम के स्कोप में आने वाली क्लाइंट टीम केवल पॉइंट के संकलन के लिए प्रोग्राम में भाग ले सकती है और मौद्रिक पुरस्कार नहीं मिलेंगे।", - "page-upgrades-bug-bounty-hunting-li-4": "एथेरियम बाउंटी प्रोगाम रिवॉर्ड का निर्धारण करने में कई वेरिएबल पर विचार करता है। अवार्ड से संबंधित पात्रता, स्कोर और सभी शर्तें Ethereum फाउंडेशन बग बाउंटी पैनल के एकमात्र और अंतिम विवेक पर हैं।", + "page-upgrades-bug-bounty-hunting-li-4": "एथेरियम बाउंटी प्रोगाम पुरस्कार का निर्धारण करने में कई वेरिएबल पर विचार करता है। अवार्ड से संबंधित पात्रता, स्कोर और सभी शर्तें Ethereum फाउंडेशन बग बाउंटी पैनल के एकमात्र और अंतिम विवेक पर हैं।", "page-upgrades-bug-bounty-leaderboard": "पूरा लीडरबोर्ड देखें", "page-upgrades-bug-bounty-leaderboard-list": "बग बाउंटी लीडरबोर्ड", "page-upgrades-bug-bounty-leaderboard-points": "पॉइंट", @@ -34,7 +36,7 @@ "page-upgrades-bug-bounty-meta-description": "एथेरियम बग बाउंटी प्रोग्राम का अवलोकन: कैसे शामिल हों और पुरस्कार संबंधी जानकारी।", "page-upgrades-bug-bounty-meta-title": "एथेरियम बग बाउंटी प्रोग्राम", "page-upgrades-bug-bounty-not-included": "स्कोप से बाहर", - "page-upgrades-bug-bounty-not-included-desc": "Only the targets listed under in-scope are part of the Bug Bounty Program. This means that for example our infrastructure; such as webpages, dns, email etc, are not part of the bounty-scope. ERC20 contract bugs are typically not included in the bounty scope. However, we can help reach out to affected parties, such as authors or exchanges in such cases. ENS is maintained by the ENS foundation, and is not part of the bounty scope. Vulnerabilities requiring the user to have publicly exposed an API, such as JSON-RPC or the Beacon API, is out of scope of the bug bounty program.", + "page-upgrades-bug-bounty-not-included-desc": "केवल इन-स्कोप के तहत सूचीबद्ध लक्ष्य ही बग बाउंटी प्रोग्राम का हिस्सा हैं। इसका मतलब है कि उदाहरण के लिए हमारा इन्फ्रास्ट्रक्चर; जैसे वेबपेज, dns, ईमेल आदि, बाउंटी-स्कोप का हिस्सा नहीं हैं। ERC20 कॉन्ट्रैक्ट बग्स आमतौर पर बाउंटी स्कोप में शामिल नहीं होते हैं। हालांकि, हम ऐसे मामलों में प्रभावित पक्षों, जैसे लेखकों या एक्सचेंजों तक पहुंचने में मदद कर सकते हैं। ENS का रखरखाव ENS फाउंडेशन द्वारा किया जाता है, और यह बाउंटी स्कोप का हिस्सा नहीं है। यूज़र द्वारा सार्वजनिक रूप से एक API को उजागर करने की आवश्यकता वाली कमजोरियां, जैसे JSON-RPC या बीकन API, बग बाउंटी प्रोग्राम के स्कोप से बाहर हैं।", "page-upgrades-bug-bounty-owasp": "OWASP विधि देखें", "page-upgrades-bug-bounty-points": "EF इस आधार पर भी पुरस्कार प्रदान करेगा:", "page-upgrades-bug-bounty-points-error": "डेटा लोड करने में त्रुटि हुई... कृपया रीफ़्रेश करें।", @@ -44,7 +46,7 @@ "page-upgrades-bug-bounty-points-point": "1 पॉइंट", "page-upgrades-bug-bounty-points-rights-desc": "Ethereum फाउंडेशन के पास बिना पूर्व सूचना के इसे बदलने का अधिकार सुरक्षित है।", "page-upgrades-bug-bounty-points-usd": "2 USD", - "page-upgrades-bug-bounty-quality": "विवरण की गुणवत्ता", + "page-upgrades-bug-bounty-quality": "वर्णन की गुणवत्ता", "page-upgrades-bug-bounty-quality-desc": ": स्पष्ट, अच्छी तरह से लिखित प्रस्तुतियों के लिए पुरस्कारों का अधिक भुगतान किया जाता है।", "page-upgrades-bug-bounty-quality-fix": "सुधार की गुणवत्ता, यदि शामिल है: इस समस्या को ठीक करने के स्पष्ट विवरण वाले सबमिशन के लिए पुरस्कारों का अधिक भुगतान किया जाता है।", "page-upgrades-bug-bounty-quality-repro": "पुनः प्रस्तुत करने की गुणवत्ता", @@ -57,11 +59,11 @@ "page-upgrades-bug-bounty-specs-docs": "विनिर्देश दस्तावेज़", "page-upgrades-bug-bounty-submit": "एक बग सबमिट करें", "page-upgrades-bug-bounty-submit-desc": "प्रत्येक मान्य बग के लिए आपको पुरस्कार मिलेंगे। प्रदान किए गए पुरस्कारों की मात्रा गंभीरता के आधार पर अलग-अलग होगी। एथेरियम नेटवर्क और संभावना पर प्रभाव के आधार पर OWASP जोखिम रेटिंग मॉडल के अनुसार गंभीरता की गणना की जाती है।", - "page-upgrades-bug-bounty-subtitle": "एथेरियम नेटवर्क को प्रभावित करने वाले प्रोटोकॉल, क्लाइंट और सॉलिडिटी बग ढूँढकर 250,000 USD तक कमाएँ और लीडरबोर्ड पर जगह बनाएँ।", + "page-upgrades-bug-bounty-subtitle": "एथेरियम नेटवर्क को प्रभावित करने वाले प्रोटोकॉल, क्लाइंट और भाषा संकलक बग्स का पता लगाकर 250,000 USD और एक लीडरबोर्ड पर स्थान प्राप्त करें।", "page-upgrades-bug-bounty-title": "प्रस्तुतियों के लिए खुला है", "page-upgrades-bug-bounty-title-1": "बीकन चेन", - "page-upgrades-bug-bounty-title-2": "फ़ॉर्क चॉइस", - "page-upgrades-bug-bounty-title-3": "सॉलिडिटी जमा अनुबंध", + "page-upgrades-bug-bounty-title-2": "कांटा विकल्प", + "page-upgrades-bug-bounty-title-3": "Solidity जमा अनुबंध", "page-upgrades-bug-bounty-title-4": "पीयर-टू-पीयर नेटवर्किंग", "page-upgrades-bug-bounty-type-1": "सुरक्षा/फ़ाइनलिटी ब्रेकिंग बग", "page-upgrades-bug-bounty-type-2": "सेवा से इनकार (DOS) वेक्टर", @@ -69,7 +71,7 @@ "page-upgrades-bug-bounty-type-4": "गणना या पैरामीटर विसंगतियाँ", "page-upgrades-bug-bounty-types": "बग के प्रकार", "page-upgrades-bug-bounty-validity": "स्कोप में", - "page-upgrades-bug-bounty-validity-desc": "हमारा बग बाउंटी प्रोग्राम शुरू से अंत तक फैला हुआ है: प्रोटोकॉल की मज़बूती से (जैसे ब्लॉकचेन सहमति मॉडल, वायर और p2p प्रोटोकॉल, हिस्सेदारी का सबूत, आदि) और नेटवर्क सुरक्षा तथा हिस्सेदारी का सबूत अखंडता के लिए प्रोटोकॉल/कार्यान्वयन अनुपालन। क्लासिकल क्लाइंट सुरक्षा के साथ-साथ क्रिप्टोग्राफिक प्रीमिटिव की सुरक्षा भी प्रोग्राम का हिस्सा है। जब संदेह हो, तो bounty@ethereum.org पर एक ईमेल भेजें और हमसे पूछें।", + "page-upgrades-bug-bounty-validity-desc": "हमारा बग बाउंटी प्रोग्राम एंड-टू-एंड फैला हुआ है: प्रोटोकॉल की मजबूती से लेकर (जैसे ब्लॉकचेन कंसेंसस मॉडल, वायर और p2p प्रोटोकॉल, हिस्सेदारी का सबूत, आदि) और प्रोटोकॉल/कार्यान्वयन अनुपालन से लेकर नेटवर्क सुरक्षा और कंसेंसस अखंडता तक। क्लासिकल क्लाइंट सुरक्षा के साथ-साथ क्रिप्टोग्राफिक प्रिमिटिव्स की सुरक्षा भी प्रोग्राम का हिस्सा है। जब संदेह हो, तो bounty@ethereum.org पर एक ईमेल भेजें और हमसे पूछें। आप सीधे bounty@ethereum.org पर एक खुलासा/कमजोरी भी सबमिट कर सकते हैं, जिस स्थिति में हम आपसे अनुरोध करते हैं कि आप हमारी PGP कुंजी का उपयोग करके संदेश को एन्क्रिप्ट करें", "page-upgrades-bug-bounty-card-critical": "गंभीर", "page-upgrades-bug-bounty-card-critical-risk": "गंभीर जोखिम वाला बग सबमिट करें", "page-upgrades-bug-bounty-card-h2": "मध्यम", @@ -101,36 +103,36 @@ "page-upgrades-bug-bounty-card-text-2": "हमलावर नेटवर्क के बड़े हिस्से को सफलतापूर्वक विभाजित कर सकता है, और हमलावर के लिए भेद्यता को ट्रिगर करना आसान है", "page-upgrades-bug-bounty-card-text-3": "हमलावर ज़्यादातर क्लाइंट में सफलतापूर्वक रिमोट कोड निष्पादन कर सकता है, और हमलावर के लिए भेद्यता को ट्रिगर करना आसान है", "page-upgrades-question-title": "अक्सर पूछे जाने वाले सवाल", - "bug-bounty-faq-q1-title": "What should a good vulnerability submission look like?", - "bug-bounty-faq-q1-contentPreview": "See a real example of a quality vulnerability submission.", - "bug-bounty-faq-q1-content-1": "Description: Remote Denial-of-service using non-validated blocks", - "bug-bounty-faq-q1-content-2": "Attack scenario: An attacker can send blocks that may require a high amount of computation (the maximum gasLimit) but has no proof-of-work. If the attacker sends blocks continuously, the attacker may force the victim node to 100% CPU utilization.", - "bug-bounty-faq-q1-content-3": "Impact: An attacker can abuse CPU utilization on remote nodes, possibly causing full DoS.", - "bug-bounty-faq-q1-content-4": "Components: Go client version v0.6.8", - "bug-bounty-faq-q1-content-5": "Reproduction: Send a block to a Go node that contains many txs but no valid PoW.", - "bug-bounty-faq-q1-content-6": "Details: Blocks are validated in the method Process(Block, dontReact). This method performs expensive CPU-intensive tasks, such as executing transactions (sm.ApplyDiff) and afterward it verifies the proof-of-work (sm.ValidateBlock()). This allows an attacker to send blocks that may require a high amount of computation (the maximum gasLimit) but has no proof-of-work. If the attacker sends blocks continuously, the attacker may force the victim node to 100% CPU utilization.", - "bug-bounty-faq-q1-content-7": "Fix: Invert the order of the checks.", - "bug-bounty-faq-q2-title": "Is the bug bounty program is time limited?", + "bug-bounty-faq-q1-title": "एक अच्छी कमजोरी सबमिशन कैसी दिखनी चाहिए?", + "bug-bounty-faq-q1-contentPreview": "एक गुणवत्तापूर्ण कमजोरी सबमिशन का एक वास्तविक उदाहरण देखें।", + "bug-bounty-faq-q1-content-1": "वर्णन: गैर-मान्य ब्लॉकों का उपयोग करके रिमोट डिनायल-ऑफ-सर्विस", + "bug-bounty-faq-q1-content-2": "आक्रमण परिदृश्य: एक हमलावर ऐसे ब्लॉक भेज सकता है जिनके लिए उच्च मात्रा में कंप्यूटेशन की आवश्यकता हो सकती है (अधिकतम gasLimit) लेकिन जिनमें कोई काम-का-सबूत नहीं है। यदि हमलावर लगातार ब्लॉक भेजता है, तो हमलावर पीड़ित नोड को 100% CPU उपयोग पर मजबूर कर सकता है।", + "bug-bounty-faq-q1-content-3": "प्रभाव: एक हमलावर दूरस्थ नोड्स पर CPU उपयोग का दुरुपयोग कर सकता है, संभवतः पूर्ण DoS का कारण बन सकता है।", + "bug-bounty-faq-q1-content-4": "कंपोनेंट्स: Go क्लाइंट संस्करण v0.6.8", + "bug-bounty-faq-q1-content-5": "पुनरुत्पादन: एक Go नोड को एक ऐसा ब्लॉक भेजें जिसमें कई txs हों लेकिन कोई मान्य PoW न हो।", + "bug-bounty-faq-q1-content-6": "विवरण: ब्लॉकों को Process(Block, dontReact) विधि में मान्य किया जाता है। यह विधि महंगे CPU-गहन कार्य करती है, जैसे लेनदेन निष्पादित करना (sm.ApplyDiff) और बाद में यह काम का सबूत को सत्यापित करती है (sm.ValidateBlock())। यह एक हमलावर को ऐसे ब्लॉक भेजने की अनुमति देता है जिनके लिए उच्च मात्रा में कंप्यूटेशन की आवश्यकता हो सकती है (अधिकतम gasLimit) लेकिन जिनमें कोई काम का सबूत नहीं है। यदि हमलावर लगातार ब्लॉक भेजता है, तो हमलावर पीड़ित नोड को 100% CPU उपयोग पर मजबूर कर सकता है।", + "bug-bounty-faq-q1-content-7": "फिक्स: जांचों के क्रम को उलट दें।", + "bug-bounty-faq-q2-title": "क्या बग बाउंटी प्रोग्राम समय सीमित है?", "bug-bounty-faq-q2-contentPreview": "नहीं।", - "bug-bounty-faq-q2-content-1": "No end date is currently set. See the Ethereum Foundation blog for the latest news.", - "bug-bounty-faq-q3-title": "How are bounties paid out?", - "bug-bounty-faq-q3-contentPreview": "Rewards are paid out in ETH or DAI.", - "bug-bounty-faq-q3-content-1": "Rewards are paid out in ETH or DAI after the submission has been validated, usually a few days later. Local laws require us to ask for proof of your identity. In addition, we will need your ETH address.", - "bug-bounty-faq-q4-title": "Can I donate my reward to charity?", - "bug-bounty-faq-q4-contentPreview": "Yes!", - "bug-bounty-faq-q4-content-1": "We can donate your reward to an established charitable organization of your choice.", - "bug-bounty-faq-q5-title": "I reported an issue / vulnerability but have not received a response!", - "bug-bounty-faq-q5-contentPreview": "Please allow a few days for someone to respond to your submission.", - "bug-bounty-faq-q5-content-1": "We aim to respond to submissions as fast as possible. Feel free to email us at bounty@ethereum.org if you have not received a response within a day or two.", - "bug-bounty-faq-q6-title": "I want to be anonymous / I do not want my name on the leader board.", - "bug-bounty-faq-q6-contentPreview": "You can do this, but it might make you ineligble for rewards.", - "bug-bounty-faq-q6-content-1": "Submitting anonymously or with a pseudonym is OK, but will make you ineligible for ETH/DAI rewards. To be eligible for ETH/DAI rewards, we require your real name and a proof of your identity. Donating your bounty to a charity doesn’t require your identity.", - "bug-bounty-faq-q6-content-2": "Please let us know if you do not want your name/nick displayed on the leader board.", - "bug-bounty-faq-q7-title": "What are the points in the leaderboard?", - "bug-bounty-faq-q7-contentPreview": "Every found vulnerability / issue is assigned a score", - "bug-bounty-faq-q7-content-1": "Every found vulnerability / issue is assigned a score. Bounty hunters are ranked on our leaderboard by total points.", - "bug-bounty-faq-q8-title": "Do you have a PGP key?", - "bug-bounty-faq-q8-contentPreview": "Yes. Expand for details.", - "bug-bounty-faq-q8-content-1": "Please use AE96 ED96 9E47 9B00 84F3 E17F E88D 3334 FA5F 6A0A", - "bug-bounty-faq-q8-PGP-key": "PGP Key" + "bug-bounty-faq-q2-content-1": "वर्तमान में कोई समाप्ति तिथि निर्धारित नहीं है। नवीनतम समाचारों के लिए Ethereum फाउंडेशन ब्लॉग देखें।", + "bug-bounty-faq-q3-title": "पुरस्कारों का भुगतान कैसे किया जाता है?", + "bug-bounty-faq-q3-contentPreview": "पुरस्कार ETH या DAI में भुगतान किए जाते हैं।", + "bug-bounty-faq-q3-content-1": "पुरस्कार ETH या DAI में सबमिशन के मान्य होने के बाद भुगतान किए जाते हैं, आमतौर पर कुछ दिनों बाद। स्थानीय कानून हमें आपकी पहचान का प्रमाण मांगना आवश्‍यक बनाते हैं। इसके अलावा, हमें आपके ETH पते की आवश्यकता होगी।", + "bug-bounty-faq-q4-title": "क्या मैं अपना पुरस्कार दान कर सकता हूं?", + "bug-bounty-faq-q4-contentPreview": "हां।", + "bug-bounty-faq-q4-content-1": "हम आपके पुरस्कार को आपकी पसंद के एक स्थापित धर्मार्थ संगठन को दान कर सकते हैं।", + "bug-bounty-faq-q5-title": "मैंने एक समस्या / कमजोरी की रिपोर्ट की है लेकिन मुझे कोई प्रतिक्रिया नहीं मिली है!", + "bug-bounty-faq-q5-contentPreview": "कृपया किसी को आपके सबमिशन का जवाब देने के लिए कुछ दिनों की प्रतीक्षा करें।", + "bug-bounty-faq-q5-content-1": "हम सबमिशन का जवाब जल्द से जल्द देने का प्रयास करते हैं। यदि आपको एक या दो दिनों के भीतर कोई प्रतिक्रिया नहीं मिली है तो बेझिझक हमें bounty@ethereum.org पर ईमेल करें।", + "bug-bounty-faq-q6-title": "मैं गुमनाम रहना चाहता हूं / मैं नहीं चाहता कि मेरा नाम लीडरबोर्ड पर हो।", + "bug-bounty-faq-q6-contentPreview": "आप ऐसा कर सकते हैं, लेकिन इससे आप पुरस्कारों के लिए अयोग्य हो सकते हैं।", + "bug-bounty-faq-q6-content-1": "गुमनाम रूप से या छद्म नाम से सबमिट करना ठीक है, लेकिन इससे आप ETH/DAI पुरस्कारों के लिए अयोग्य हो जाएंगे। ETH/DAI पुरस्कारों के लिए पात्र होने के लिए, हमें आपका वास्तविक नाम और आपकी पहचान का प्रमाण चाहिए। अपना बाउंटी किसी धर्मार्थ संस्था को दान करने के लिए आपकी पहचान की आवश्यकता नहीं है।", + "bug-bounty-faq-q6-content-2": "कृपया हमें बताएं यदि आप नहीं चाहते कि आपका नाम/उपनाम लीडरबोर्ड पर प्रदर्शित किया जाए।", + "bug-bounty-faq-q7-title": "लीडरबोर्ड में पॉइंट क्या हैं?", + "bug-bounty-faq-q7-contentPreview": "हर पाई गई कमजोरी / समस्या को एक स्कोर दिया जाता है", + "bug-bounty-faq-q7-content-1": "हर पाई गई कमजोरी / समस्या को एक स्कोर दिया जाता है। बाउंटी हंटर्स को हमारे लीडरबोर्ड पर कुल पॉइंट के आधार पर रैंक किया जाता है।", + "bug-bounty-faq-q8-title": "क्या आपके पास PGP कुंजी है?", + "bug-bounty-faq-q8-contentPreview": "हां। विस्तार के लिए विवरण देखें।", + "bug-bounty-faq-q8-content-1": "कृपया AE96 ED96 9E47 9B00 84F3 E17F E88D 3334 FA5F 6A0A का उपयोग करें", + "bug-bounty-faq-q8-PGP-key": "PGP कुंजी" } diff --git a/src/intl/hi/page-learn.json b/src/intl/hi/page-learn.json index f1a9f2c1d6d..48156516a2c 100644 --- a/src/intl/hi/page-learn.json +++ b/src/intl/hi/page-learn.json @@ -10,6 +10,7 @@ "hero-header": "इथेरियम के बारे में जानें", "hero-subtitle": "इथेरियम की दुनिया तक के सफर में आपका शैक्षिक मार्गदर्शक। जानें कि इथेरियम कैसे काम करता है और इसको कैसे कनेक्ट करते हैं। इस पृष्ठ में तकनीकी और गैर-तकनीकी लेख, मार्गदर्शिकाएँ और संसाधन शामिल हैं।", "hero-button-lets-get-started": "आइए शुरू करते हैं", + "page-learn-meta-title": "एथेरियम: सीखने की एक विस्तृत मार्गदर्शिका", "what-is-crypto-1": "आपने क्रिप्टोकरेंसी, ब्लॉकचेन और Bitcoin के बारे में सुना होगा। निचे मौजूद लिंक आपको यह सीखने में सहायता करेंगे कि वे क्या हैं और वो इथेरियम से कैसे सम्बंधित हैं।", "what-is-crypto-2": "बिटकॉइन जैसी क्रिप्टोकरेंसी किसी को भी वैश्विक स्तर पर धन हस्तांतरित करने में सक्षम बनाती है। एथेरियम भी ऐसा करता है, लेकिन यह कोड भी चला सकता है जो लोगों को ऐप्स और संगठन बनाने में सक्षम बनाता है। यह लचीला और फ्लेक्सिबल दोनों है: कोई भी कंप्यूटर प्रोग्राम एथेरियम पर चल सकता है। शुरुआत करने के तरीके के बारे में और अधिक जानें:", "what-is-ethereum-card-title": "इथिरीयम क्या है?", @@ -33,9 +34,9 @@ "find-a-wallet-card-title": "वॉलेट खोजें", "find-a-wallet-card-description": "आपके लिए मायने रखने वाली सुविधाओं के आधार पर वॉलेट ब्राउज करें।", "find-a-wallet-button": "वॉलेट की सूची", - "crypto-security-basics-card-title": "सुरक्षा की मूल बातें", - "crypto-security-basics-card-description": "जानें कि कैसे घोटालों की पहचान करें और कैसे सबसे आम चालों से बचें।", - "crypto-security-basics-card-button": "सुरक्षित रहें", + "ethereum-networks-card-title": "एथेरियम नेटवर्क्स", + "ethereum-networks-card-description": "सस्ते और तेज़ एथेरियम एक्सटेंशनों का उपयोग करके पैसे बचाएं।", + "ethereum-networks-card-button": "नेटवर्क चुनें", "things-to-consider-banner-title": "इथेरियम का इस्तेमाल करते वक्त ध्यान देने योग्य बातें", "things-to-consider-banner-1": "हर इथेरियम ट्रांजेक्शन में ETH के रूप में शुल्क की आवश्यकता होती है, भले ही आपको इथेरियम पर बनाए गए विभिन्न टोकन जैसे स्टेबलकॉइन USDC या DAI को स्थानांतरित करने की आवश्यकता है।", "things-to-consider-banner-2": "अगर एक ही समय पर बहुत लोग इथेरियम का इस्तेमाल करने की कोशिश कर रहे हों, शुल्क ज़्यादा हो सकता है, इसलिए हम ये सलाह देते हैं", @@ -85,7 +86,7 @@ "ethereum-whitepaper-card-button": "व्हाइटपेपर पढ़ें", "more-on-ethereum-protocol-title": "इथेरियम प्रोटोकॉल पर अधिक जानकारी", "more-on-ethereum-protocol-ethereum-for-developers": "डेवलपर के लिए इथेरियम", - "more-on-ethereum-protocol-consensus": "इथेरियम का हिस्सेदारी का सबूत आम सहमति तंत्र पर आधारित है", + "more-on-ethereum-protocol-consensus": "एथेरियम का हिस्सेदारी का सबूत आम सहमति तंत्र पर आधारित है", "more-on-ethereum-protocol-evm": "इथेरियम के एम्बेडेड कंप्यूटर (EVM)", "more-on-ethereum-protocol-nodes-and-clients": "इथेरियम के नोड और क्लाइंट", "ethereum-community-description": "इथेरियम की सफलता के लिए इसकी अविश्वसनीय रूप से समर्पित समुदाय का धन्यवाद। हजारों प्रेरक और प्रेरित लोग इथेरियम के दृष्टिकोण को आगे बढ़ाने में मदद करते है, साथ ही हिस्सेदारी और शासन के माध्यम से नेटवर्क को सुरक्षा भी प्रदान करते है। आओ और हमसे जुड़ो!", diff --git a/src/intl/hi/page-upgrades-index.json b/src/intl/hi/page-upgrades-index.json index 9916dd678bb..198a3795f0d 100644 --- a/src/intl/hi/page-upgrades-index.json +++ b/src/intl/hi/page-upgrades-index.json @@ -97,7 +97,7 @@ "page-upgrades-question-6-answer-5": "आप ethresear.ch पर एथेरियम अनुसंधान और विकास पर चर्चा में भी शामिल हो सकते हैं।", "page-upgrades-question-6-title": "मुझे अपने dapp के साथ क्या करने की आवश्यकता है?", "page-upgrades-question-6-desc": "मर्ज को dapp डेवलपर पर कम से कम प्रभाव डालने के लिए डिज़ाइन किया गया था, हालाँकि इसमें ध्यान देने योग्य कुछ छोटे बदलाव भी हुए थे।", - "page-upgrades-question-6-answer-1": "प्री-मर्ज एथेरियम से परिचित dapp डेवलपर को कुछ बदलावों के बारे में पता होना चाहिए। इन बदलावों में ब्लॉक संरचना और समय, कुछ ऑपकोड बदलाव, ऑन-चेन रैंडमनेस के स्रोत और युग को अंतिम रूप देने की अवधारणा शामिल है।", + "page-upgrades-question-6-answer-1": "प्री-मर्ज एथेरियम से परिचित Dapp डेवलपर्स को कुछ बदलावों के बारे में पता होना चाहिए। इन बदलावों में ब्लॉक संरचना और समय, कुछ ऑपकोड बदलाव, ऑन-चेन रैंडमनेस के स्रोत और युग को अंतिम रूप देने की अवधारणा शामिल है।", "page-upgrades-question-6-answer-1-link": "मर्ज ने एथेरियम के एप्लिकेशन लेयर को कैसे प्रभावित किया", "page-upgrades-question-6-answer-2": "एप्लिकेशन लगभग पूरी तरह से अप्रभावित थे।", "page-upgrades-question-7-desc": "सभी समुदाय की कई अलग-अलग टीमें अलग-अलग एथेरियम अपग्रेड पर काम कर रही हैं।", @@ -124,7 +124,7 @@ "page-upgrades-question-9-answer-1": "सबसे सक्रिय भूमिका जो आप निभा सकते हैं, वह है अपने ETH को स्टेक करना।", "page-upgrades-question-9-answer-2": "आप क्लाइंट विविधता को बेहतर बनाने के लिए कोई दूसरा क्लाइंट चलाने की अपेक्षा भी कर सकते हैं।", "page-upgrades-question-9-answer-3": "अगर आप अधिक तकनीकी हैं, तो आप नए क्लाइंट में बग को पकड़ने में मदद कर सकते हैं।", - "page-upgrades-question-9-answer-4": "आप ethresear.ch पर एथेरियम शोधकर्ताओं के साथ तकनीकी चर्चाओं पर भी विचार कर सकते हैं।", + "page-upgrades-question-9-answer-4": "आप etheresear.ch पर एथेरियम शोधकर्ताओं के साथ तकनीकी चर्चाओं पर भी विचार कर सकते हैं।", "page-upgrades-question-9-desc": "योगदान करने के लिए आपका टेक्निकल होना आवश्यक नहीं है। समुदाय, सभी प्रकार के कौशल से योगदान की तलाश कर रहा है।", "page-upgrades-question-9-stake-eth": "स्टेक ETH", "page-upgrades-question-9-title": "मैं एथेरियम अपग्रेड में कैसे योगदान करूँ?", diff --git a/src/intl/hi/template-usecase.json b/src/intl/hi/template-usecase.json index da216ca7b5b..93715cfd533 100644 --- a/src/intl/hi/template-usecase.json +++ b/src/intl/hi/template-usecase.json @@ -2,6 +2,7 @@ "template-usecase-dropdown-defi": "विकेंद्रीकृत वित्त (DeFi)", "template-usecase-dropdown-nft": "अपूरणीय टोकन (NFT)", "template-usecase-dropdown-dao": "विकेंद्रीकृत स्वायत्त संगठन (DAO)", + "template-usecase-dropdown-payments": "एथेरियम भुगतान", "template-usecase-dropdown-social-networks": "विकेंद्रीकृत सोशल नेटवर्क", "template-usecase-dropdown-identity": "डिसेंट्रलाइज आइडेंटिटी", "template-usecase-dropdown-desci": "विकेंद्रीत विज्ञान (DeSci)", @@ -10,4 +11,4 @@ "template-usecase-banner": "एथेरियम का उपयोग हमेशा विकसित और बढ़ रहा है। कोई भी जानकारी जोड़ें जो आपको लगता है कि चीजों को स्पष्ट या अद्यतित कर देगा।", "template-usecase-edit-link": "पेज संपादित करें", "template-usecase-dropdown-aria": "केस ड्रॉपडाउन मेनू का उपयोग करें" -} +} \ No newline at end of file From 4bd85eb88ab67bcfa8b555c858f403d4532426cb Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Thu, 1 May 2025 04:45:29 +0000 Subject: [PATCH 052/106] chore: import translations for hu --- .../translations/hu/code-of-conduct/index.md | 77 +++++++ .../translations/hu/community/online/index.md | 9 +- .../hu/community/research/index.md | 10 +- .../translations/hu/contributing/index.md | 7 +- .../contributing/translation-program/index.md | 6 +- .../hu/decentralized-identity/index.md | 6 +- public/content/translations/hu/desci/index.md | 2 +- .../hu/developers/docs/bridges/index.md | 12 +- .../pos/attack-and-defense/index.md | 69 +++--- .../consensus-mechanisms/pos/keys/index.md | 4 + .../pos/rewards-and-penalties/index.md | 4 +- .../index.md | 2 +- .../docs/data-availability/index.md | 5 +- .../patricia-merkle-trie/index.md | 30 +-- .../hu/developers/docs/design-and-ux/index.md | 189 +++++++++++++-- .../network-addresses/index.md | 4 +- .../networking-layer/portal-network/index.md | 2 +- .../hu/developers/docs/oracles/index.md | 10 +- .../formal-verification/index.md | 2 +- .../docs/smart-contracts/testing/index.md | 6 +- .../docs/standards/tokens/erc-223/index.md | 6 +- .../docs/standards/tokens/erc-4626/index.md | 18 +- .../docs/standards/tokens/erc-777/index.md | 45 ++++ .../translations/hu/enterprise/index.md | 2 +- .../content/translations/hu/events/index.md | 24 ++ .../index.md | 73 ++++++ public/content/translations/hu/web3/index.md | 4 + .../translations/hu/whitepaper/index.md | 4 +- .../translations/hu/withdrawals/index.md | 218 ++++++++++++++++++ .../hu/zero-knowledge-proofs/index.md | 16 +- src/intl/hu/common.json | 14 +- src/intl/hu/glossary-tooltip.json | 2 +- ...-translation-program-acknowledgements.json | 2 +- src/intl/hu/page-get-eth.json | 2 +- src/intl/hu/page-index.json | 7 +- src/intl/hu/page-learn.json | 9 +- src/intl/hu/page-run-a-node.json | 1 + src/intl/hu/page-upgrades-index.json | 2 +- src/intl/hu/page-wallets-find-wallet.json | 2 +- src/intl/hu/page-what-is-ethereum.json | 11 +- src/intl/hu/template-usecase.json | 4 +- 41 files changed, 777 insertions(+), 145 deletions(-) create mode 100644 public/content/translations/hu/code-of-conduct/index.md create mode 100644 public/content/translations/hu/developers/docs/standards/tokens/erc-777/index.md create mode 100644 public/content/translations/hu/events/index.md create mode 100644 public/content/translations/hu/how-to-create-an-ethereum-account/index.md create mode 100644 public/content/translations/hu/withdrawals/index.md diff --git a/public/content/translations/hu/code-of-conduct/index.md b/public/content/translations/hu/code-of-conduct/index.md new file mode 100644 index 00000000000..043e7b01a6e --- /dev/null +++ b/public/content/translations/hu/code-of-conduct/index.md @@ -0,0 +1,77 @@ +--- +title: Magatartási szabályok +description: Alapvető szabályok az ethereum.org oldalain. +lang: hu +--- + +# Magatartási szabályok {#code-of-conduct} + +## Misszió {#mission} + +A legátfogóbb és legelérhetőbb tudásközpont kifejlesztése és fenntartása az Ethereum számára. + +## Értékek {#values} + +Az ethereum.org közösség arra törekszik, hogy: + +- tanító jellegű legyen, mindenkinek segít megérteni az Ethereumot +- befogadó legyen +- elérhető legyen +- közösség által vezérelt legyen +- az Ethereum mögötti technológiákra és alkalmazási területekre fókuszál +- az Ethereumhoz kapcsolódó koncepciókra és dizájnelvekre fókuszál + +## Nem vagyunk {#what-we-are-not} + +- Az Ethereum Alapítvány weboldala +- Olyan platform, ahol befektetéseket vagy bármilyen profitszerzést támogatunk +- Olyan platform, ahol egyéni projekteket vagy szervezeteket mutatunk be vagy hagyunk jóvá +- Decentralizált tőzsde (DEX), centralizált tőzsde (CEX) vagy bármilyen már pénzügyi platform +- Olyan platform, amely bármilyen pénzügyi vagy jogi tanácsot ad + +## Magatartási szabályok {#code-of-conduct} + +### Vállalás {#pledge} + +Az ethereum.org világképének lényege a nyitott részvétel. Ezt a weboldalt és közösséget ezernyi közreműködő tartja fenn, és ez csak úgy lehetséges, ha egy befogadó, részvételt támogató környezetet tartunk fenn. A közreműködők vállalják, hogy olyan környezetet teremtenek, melynek nem része a bántás vagy bosszantás, a ethereum.org minden platformját és közösségi terét beleértve. Az ethereum.org közösség mindenkit örömmel fogad és értékel, aki konstruktív és barátságos módon részt akar venni, és ebben nem számít a kor, bármilyen alkalmatlanság, etnikum, nemi identitás, tapasztalat, a szakértelem területe, tanulmányok, szociogazdasági státusz, nemzetiség, megjelenés, faj, vallás vagy a diverzitás bármelyik dimenziója. + +### Érvényességi terület {#scope} + +Ez a magatartási szabályzat minden ethereum.org helyre érvényes (mint amilyen a GitHub, Discord, Figma Crowdin, Twitter és más online platformok), és amikor a közösség találkozik a valóságban különféle eseményeken, konferenciákon. + +### Irányelveink {#our-standards} + +A pozitív környezethez hozzájáruló viselkedések például: + +- Befogadó nyelvezetet használunk +- A különböző nézeteket és tapasztalatokat tisztelettel kezeljük +- A konstruktív kritikát örömmel vesszük és együttérzően adjuk +- A konfliktusok és ellentétek esetén nyugodtan és professzionálisan közelítünk +- A többi tag felé empátiával és toleranciával fordulunk +- Bátorítjuk az új hangokat a közösségben + +Az elfogadhatatlan viselkedések például: + +- Fizikai erőszak, azzal való fenyegetés vagy támogatása bármilyen formában +- Szexualitással kapcsolatos beszéd vagy kép használata, illetve ilyen jellegű közeledés +- Egy másik ember megszemélyesítése, vagy rosszhiszeműen azt állítani, hogy egy személlyel vagy szervezettel kapcsolatban áll valaki +- Zavaró, derogáló kommentek, személyes vagy politikai támadások +- Más tag zaklatása nyilvános vagy privát csatornákon +- Mások privát információinak nyilvánossá tétele, mint fizikai vagy elektronikus cím, kifejezett kérése nélkül +- Pszichológiai manipuláció, csalás vagy más jellegű befolyásolása a tagoknak +- Bármilyen befektetés, token, projekt hirdetése személyes haszonszerzés céljából, legyen az pénzügyi vagy nem +- A szerverek teleszemetelése nem odavaló tartalommal +- A közösségi moderátorok kérését vagy figyelmeztetését nem venni figyelembe +- Bármilyen viselkedés, ami nem tekinthető megfelelőnek egy professzionális helyzetben + +### Jelentés {#reporting} + +A magatartási szabályok megsértése általában látható a közösségnek, mivel mindent nyitott, nyilvános csatornákon kezelünk, hogy a tagok maguk vigyázzák a rendet. + +Ha úgy véli, hogy valami figyelmet igényelne, akkor szóljon egy moderátornak (pl. discord-vezető), így segíthetnek a kivizsgálásban és a megfelelő válasz megtételében. + +A jelentésnél minden részletet adjon meg, példákkal és időpontokkal. Ez segít, hogy igazságos eredmény születhessen. + +### Szankciók {#enforcement} + +Az eset súlyosságától függően figyelmeztetések, átmeneti kizárások és végleges kizárások várhatók az ethereum.org közösségeitől. diff --git a/public/content/translations/hu/community/online/index.md b/public/content/translations/hu/community/online/index.md index f93382c295f..789cd262faa 100644 --- a/public/content/translations/hu/community/online/index.md +++ b/public/content/translations/hu/community/online/index.md @@ -55,13 +55,14 @@ Ha úgy gondolja, hogy egy közösséget hozzá kellene adni vagy el kellene tá Solidity Gitter – solidity fejlesztésről (Gitter) szóló csevegés Solidity Matrix – solidity fejlesztősről (Matrix) szóló csevegés Ethereum Stack Exchange *–kérdések és válaszok fóruma* -Peeranha *– decentralizált kérdések és válaszok fóruma* +Peera Community Forum *– decentralizált kérdések és válaszok fóruma* -## YouTube és Twitter {#youtube-and-twitter} +## YouTube és X (korábban Twitter) {#youtube-and-twitter} Ethereum Alapítvány – legyen napra kész az Ethereum Alapítvány újdonságaival kapcsolatban -@ethereum – az Ethereum Alapítvány hivatalos profilja -@ethdotorg – portál az Ethereumhoz, a növekvő globális közösségünk számára +@ethereum – fő Ethereum-számla a közösség számára +@ethereumfndn – az Ethereum Alapítvány hivatalos profilja +@ethdotorg – portál az Ethereumhoz, a növekvő globális közösségünk számára Nagy befolyással bíró Ethereum Twitter-fiókok listája diff --git a/public/content/translations/hu/community/research/index.md b/public/content/translations/hu/community/research/index.md index f5b68e42663..d301c0e1677 100644 --- a/public/content/translations/hu/community/research/index.md +++ b/public/content/translations/hu/community/research/index.md @@ -111,7 +111,7 @@ Jelenleg több második blokkláncréteg (L2) protokoll létezik, ami az Ethereu #### Jelenlegi kutatás {#recent-research-2} - [A helyes sorbarendezés a szekvenszereknél az Arbitrumnál](https://eprint.iacr.org/2021/1465) -- [ethresear.ch L2](https://ethresear.ch/c/layer-2/32) +- [Ethresear.ch második blokkláncréteg (L2)](https://ethresear.ch/c/layer-2/32) - [Rollupra fókuszáló ütemterv](https://ethereum-magicians.org/t/a-rollup-centric-ethereum-roadmap/4698) - [L2Beat](https://l2beat.com/) @@ -189,7 +189,7 @@ Az Ethereum-tárcák lehetnek böngészőkiterjesztések, asztali gépen és mob - [Bevezetés a tárcákba](/wallets/) - [Bevezetés a tárcabiztonságba](/security/) -- [ethresear.ch biztonság](https://ethresear.ch/tag/security) +- [Ethresear.ch biztonság](https://ethresear.ch/tag/security) - [EIP-2938 Számlaabsztrakció](https://eips.ethereum.org/EIPS/eip-2938) - [EIP-4337 Számlaabsztrakció](https://eips.ethereum.org/EIPS/eip-4337) @@ -358,7 +358,7 @@ Az Ethereum-fejlesztők eszközei gyorsan fejlődnek. Ezen a területen is sok a ### Orákulumok {#oracles} -Az orákulumok importálják be a láncon kívüli adatokat a blokkláncra egy engedélymentes és decentralizált módon. Mivel ez az adat a láncon belül van, ezért a dappok képesek lekövetni a világ változásait, mint a valódi eszközök árfluktuációja, a láncon kívüli alkalmazások adatai vagy akár az időjárásváltozás. +Az orákulumok importálják be a láncon kívüli adatokat a blokkláncra egy engedélymentes és decentralizált módon. Mivel ez az adat a láncon belül van, ezért a dappok képesek lekövetni a világ változásait, mint a valódi eszközök árfluktuációja, a láncon kívüli alkalmazások adatai vagy akár az időjárás-változás. #### Háttérolvasmányok {#background-reading-18} @@ -377,11 +377,11 @@ Az Ethereum elleni támadások általában az egyéni alkalmazások gyenge pontj - [Féreglyuk-kihasználási jelentés](https://blog.chainalysis.com/reports/wormhole-hack-february-2022/) - [Az Ethereum-szerződések meghackelésének vizsgálatai](https://forum.openzeppelin.com/t/list-of-ethereum-smart-contracts-post-mortems/1191) -- [Rekt hírek](https://twitter.com/RektHQ?s=20\&t=3otjYQdM9Bqk8k3n1a1Adg) +- [Rekt hírek](https://twitter.com/RektHQ?s=20&t=3otjYQdM9Bqk8k3n1a1Adg) #### Jelenlegi kutatás {#recent-research-19} -- [ethresear.ch alkalmazások](https://ethresear.ch/c/applications/18) +- [Ethresear.ch alkalmazások](https://ethresear.ch/c/applications/18) ### Technológiai stack {#technology-stack} diff --git a/public/content/translations/hu/contributing/index.md b/public/content/translations/hu/contributing/index.md index e8d145dbd9b..49aaf5f5fba 100644 --- a/public/content/translations/hu/contributing/index.md +++ b/public/content/translations/hu/contributing/index.md @@ -19,13 +19,12 @@ Ez egy befogadó közösség, mely segít fejlődni és megismerni az Ethereum - [Dolgozzon egy meglévő problémán](https://github.com/ethereum/ethereum-org-website/issues) – Olyan feladatot találhat, melyet szükségesnek látunk megoldani **Dizájn** -- [Segítsen a honlap dizájnjában](/contributing/design/) Bármilyen szinten is ért hozzá, be tud segíteni a honlap dizájnjába +- [Segítsen a honlap dizájnjában](/contributing/design/) – Bármilyen szinten is ért hozzá, be tud segíteni a honlap dizájnjába **Tartalom** - [Hozzon létre vagy szerkessze a tartalmat](/contributing/#how-to-update-content) – Javasoljon új oldalakat vagy fejlessze a meglévőket - [Javasoljon közösségi forrásokat](/contributing/content-resources/) – Adjon hasznos cikket vagy forrást egy adott oldalhoz - [Javasoljon dizájnforrást](/contributing/design/adding-design-resources/) – Adjon hozzá, frissítsen és töröljön a dizájnforrások közül -- [Javasoljon kifejezést a szószedethet](/contributing/adding-glossary-terms/) – Segítsen kiterjeszteni az Ethereum [szószedetet](/glossary/) - [Kvízek](/contributing/quizzes/) – Adjon hozzá, frissítse és töröljön a kvízkérdésekből, melyek egy adott oldalhoz tartoznak **Új jellemzőkre vonatkozó ötletek** @@ -90,11 +89,11 @@ A GitHub könyvtárban megtalálja azokat a könnyen érthető feladatokat, mely Ha a munkáját beolvasztják az ethereum.org-ba, akkor kérhet egy különleges oklevelet a [Galxe-n](https://app.galxe.com/quest/ethereumorg) keresztül. A láncon belüli eredménytoken (OAT) egy tanúsítvány, hogy jobbá tette az ökoszisztémát. -[Bővebben az OAT-okról](https://help.galxe.com/en/articles/7067290-galxe-oats-reward-and-celebrate-achievements) +[Bővebben az OAT-okról](https://help.galxe.com/en/articles/9645630-create-quest-rewards#h_1c5d63ba03) ### Hogyan kell kérni 1. Csatlakozzon a [Discord szerverhez](https://discord.gg/ethereum-org). -2. Másolja be a közreműködését a ` #🥇 | proof-of-contribution` csatornába +2. Másolja be a közreműködését a ` #🥇 | proof-of-contribution` csatornába. 3. Ezután csapatunk elküldi az OAT-hoz tartozó linket. 4. Szerezze meg az OAT-ot! diff --git a/public/content/translations/hu/contributing/translation-program/index.md b/public/content/translations/hu/contributing/translation-program/index.md index f96ca43b5ca..125d3216789 100644 --- a/public/content/translations/hu/contributing/translation-program/index.md +++ b/public/content/translations/hu/contributing/translation-program/index.md @@ -36,9 +36,9 @@ Tudjon meg többet az ethereum.org fordítási program [missziójáról és víz ### Eddigi eredményeink {#our-progress} -- [**Több mint 6000** fordító](/contributing/translation-program/contributors/) -- **62** nyelv elérhető a honlapon -- [**3 millió** szó került lefordításra 2023-ban](/contributing/translation-program/acknowledgements/) +- [**Több mint 6900** fordító](/contributing/translation-program/contributors/) +- **68** nyelv elérhető a honlapon +- [**2,89 millió** szó került lefordításra 2024-ben](/contributing/translation-program/acknowledgements/) diff --git a/public/content/translations/hu/decentralized-identity/index.md b/public/content/translations/hu/decentralized-identity/index.md index 3b3d473c38d..c5b99dd999d 100644 --- a/public/content/translations/hu/decentralized-identity/index.md +++ b/public/content/translations/hu/decentralized-identity/index.md @@ -119,9 +119,9 @@ A decentralizált azonosítók elengedhetetlenek abban is, hogy megvédjék a sz A tanúsítások tárolása és visszakeresése az Ethereumon alapuló, identitáshoz kötődő ökoszisztémában eltérően működik, mint a hagyományos identitáskezelés. Különféle megközelítések léteznek, hogyan állítják ki, tárolják és igazolják a tanúsításokat a decentralizált identitást biztosító rendszerekben: -### Blokkláncon kívüli tanúsítások {#off-chain-attestations} +### Blokkláncon kívüli tanúsítások {#offchain-attestations} -A blokkláncon való tanúsítástárolással kapcsolatban felmerül az a konszern, hogy olyan információkat tartalmazhat, melyeket az egyének privát módon szeretnének kezelni. Az ilyen tanúsítások tárolása az Ethereum-blokkláncon, annak nyilvános természete miatt nem előnyös. +A blokkláncon való tanúsítástárolással kapcsolatban felmerül az az aggodalom, hogy olyan információkat tartalmazhat, melyeket az egyének privát módon szeretnének kezelni. Az ilyen tanúsítások tárolása az Ethereum-blokkláncon, annak nyilvános természete miatt nem előnyös. Erre az a megoldás, hogy a kiállított tanúsításokat a felhasználók láncon kívül tartják digitális tárcákban, de azok alá vannak írva a kiállító decentralizált azonosítójával (DID), mely a láncon belül elérhető. Ezeket a tanúsításokat [JSON Web Tokenként](https://en.wikipedia.org/wiki/JSON_Web_Token) kódolják, és tartalmazzák a kiállító digitális aláírását – így a láncon kívüli azonosítási igényeket könnyedén igazolni tudja. @@ -151,7 +151,7 @@ A következő példa bemutatja, hogyan működik a láncon belüli tanúsítás ### Egyénhez kötött tokenek és identitás {#soulbound} -Az [egyénhez kötött tokeneket](https://vitalik.eth.limo/general/2022/01/26/soulbound.html) ([nem átadható NFT-k](/glossary/#nft)) arra lehet használni, hogy egy adott tárcához tartozó egyedi információkat gyűjtsenek. Ez gyakorlatilag létrehoz egy egyedi, láncon belüli identitást, amely egy adott Ethereum-címhez kötődik, és eredményeket (mint egy online tanfolyam elvégzése vagy egy játékban elért szint) vagy közösségi részvételt jelentő tokeneket foglal magába. +Az [egyénhez kötött tokeneket](https://vitalik.eth.limo/general/2022/01/26/soulbound.html) ([nem átadható NFT-k](/glossary/#nft)) arra lehet használni, hogy egy adott tárcához tartozó egyedi információkat gyűjtsenek. Ez gyakorlatilag létrehoz egy egyedi, láncon belüli identitást, amely egy adott Ethereum-címhez kötődik, és eredményeket (mint egy online tanfolyam elvégzése vagy egy játékban elért szint) vagy közösségi részvételt jelentő tokeneket foglal magában. ## Használjon decentralizált identitást {#use-decentralized-identity} diff --git a/public/content/translations/hu/desci/index.md b/public/content/translations/hu/desci/index.md index 026acb08c2a..585e3f006ce 100644 --- a/public/content/translations/hu/desci/index.md +++ b/public/content/translations/hu/desci/index.md @@ -126,7 +126,7 @@ Fedezze fel a projekteket és csatlakozzon a DeSci közösségéhez. - [DeSci: a kutatás jövője – Samuel Akinosho](https://lucidsamuel.medium.com/desci-the-future-of-research-b76cfc88c8ec) - [A tudomány finanszírozása (Epilógus: a DeSci és az új kriptoalapok) – Nadia](https://nadia.xyz/science-funding) - [A decentralizáció megbontja a gyógyszerfejlesztést](https://medium.com/id-theory/decentralisation-is-disrupting-drug-development-28b5ba5d447f) -- [Mi az a DeSci, azaz a decentralizált tudomány?](​https://usadailytimes.com/2022/09/12/what-is-desci-decentralized-science/) +- [Mi az a DeSci, azaz a decentralizált tudomány?](https://usadailytimes.com/2022/09/12/what-is-desci-decentralized-science/) ### Videók {#videos} diff --git a/public/content/translations/hu/developers/docs/bridges/index.md b/public/content/translations/hu/developers/docs/bridges/index.md index 06f59eb954b..7a7411f1eaa 100644 --- a/public/content/translations/hu/developers/docs/bridges/index.md +++ b/public/content/translations/hu/developers/docs/bridges/index.md @@ -121,12 +121,14 @@ A láncok szerződéses tevékenységének nyomon követéséhez a fejlesztők a - [Tenderly](https://tenderly.co/) ## További olvasnivaló {#further-reading} - - [Blokklánc-hidak](/bridges/) – ethereum.org -- [Blokklánc-hidak: Kriptohálózatok hálózatának kiépítése](https://medium.com/1kxnetwork/blockchain-bridges-5db6afac44f8) 2021. szeptember 8. – Dmitriy Berenzon -- [Az interoperabilitási trilemma](https://blog.connext.network/the-interoperability-trilemma-657c2cf69f17) 2021. október 1. – Arjun Bhuptani -- [Clusters: Hogyan alakítják a bizalomigénytől mentes és a minimális bizalomigényű hidak a többláncos képet?](https://blog.celestia.org/clusters/) 2021. október 4. – Mustafa Al-Bassam -- [LI.FI: A hidaknál a bizalomigény széles tartománya van jelen](https://blog.li.fi/li-fi-with-bridges-trust-is-a-spectrum-354cd5a1a6d8) 2022. április 28. – Arjun Chand +- [Az L2Beat hidak kockázatáról szóló keretrendszere](https://l2beat.com/bridges/summary) +- [Blokklánchidak: Kriptohálózatok hálózatának kiépítése](https://medium.com/1kxnetwork/blockchain-bridges-5db6afac44f8) – 2021. szeptember 8. – Dmitriy Berenzon +- [Az interoperabilitási trilemma](https://blog.connext.network/the-interoperability-trilemma-657c2cf69f17) – 2021. október 1. – Arjun Bhuptani +- [Clusters: Hogyan alakítják a bizalomigénytől mentes és a minimális bizalomigényű hidak a többláncos képet?](https://blog.celestia.org/clusters/) – 2021. október 4. – Mustafa Al-Bassam +- [LI.FI: A hidaknál a bizalomigény széles tartománya van jelen](https://blog.li.fi/li-fi-with-bridges-trust-is-a-spectrum-354cd5a1a6d8) – 2022. április 28. – Arjun Chand +- [Az összevont tranzakciók interoperabilitási megoldásainak státusza](https://research.2077.xyz/the-state-of-rollup-interoperability) – 2024. június 20. – Alex Hook +- [A közös biztonság kihasználása a biztonságos láncközi interoperabilitás érdekében: Lagrange státuszbizottságok és további megoldások](https://research.2077.xyz/harnessing-shared-security-for-secure-blockchain-interoperability) – 2024. június 12. – Emmanuel Awosika Ezen kívül [James Prestwich](https://twitter.com/_prestwich) tanulságos előadásai segíthetnek a hidak mélyebb megértésében: diff --git a/public/content/translations/hu/developers/docs/consensus-mechanisms/pos/attack-and-defense/index.md b/public/content/translations/hu/developers/docs/consensus-mechanisms/pos/attack-and-defense/index.md index c686a96a185..b776e646995 100644 --- a/public/content/translations/hu/developers/docs/consensus-mechanisms/pos/attack-and-defense/index.md +++ b/public/content/translations/hu/developers/docs/consensus-mechanisms/pos/attack-and-defense/index.md @@ -4,15 +4,15 @@ description: Ismerje meg a proof-of-stake Ethereum elleni ismert támadási vekt lang: hu --- -A tolvajok és szabotőrök folyamatosan keresik a lehetőséget, hogy megtámadják az Ethereum kliensszoftverét. Ez az oldal ismerteti az Ethereum konszenzusrétegét érő ismert támadási vektorokat, és felvázolja, hogyan lehet ezeket a támadásokat kivédeni. Az ezen az oldalon található információk egy [hosszabb változatból](https://mirror.xyz/jmcook.eth/YqHargbVWVNRQqQpVpzrqEQ8IqwNUJDIpwRP7SS5FXs) származnak. +A tolvajok és szabotőrök folyamatosan keresik a lehetőséget, hogy megtámadják az Ethereum kliensszoftverét. Ez az oldal ismerteti az Ethereum konszenzusrétegét érő ismert támadási vektorokat, és felvázolja, hogyan lehet ezeket a támadásokat kivédeni. Az ezen az oldalon található információk egy [hosszabb változatból származnak](https://mirror.xyz/jmcook.eth/YqHargbVWVNRQqQpVpzrqEQ8IqwNUJDIpwRP7SS5FXs). ## Előfeltételek {#prerequisites} -A [proof-of-stake](/developers/docs/consensus-mechanisms/pos/) alapszintű ismerete szükséges. Hasznos lesz továbbá, ha alapszintű ismeretekkel rendelkezik az Ethereum [ösztönzési réteg](/developers/docs/consensus-mechanisms/pos/rewards-and-penalties) és az elágazásválasztási algoritmus, az [LMD-GHOST](/developers/docs/consensus-mechanisms/pos/gasper) működéséről. +A [proof-of-stake](/developers/docs/consensus-mechanisms/pos/) alapszintű ismerete szükséges. Hasznos lesz továbbá, ha alapszintű ismeretekkel rendelkezik az Ethereum [ösztönzési rétegének](/developers/docs/consensus-mechanisms/pos/rewards-and-penalties) és az elágazásválasztási algoritmusának [LMD-GHOST](/developers/docs/consensus-mechanisms/pos/gasper) működéséről. ## Mit akarnak a támadók? {#what-do-attackers-want} -Gyakori tévhit, hogy egy sikeres támadó képes új ethert generálni, vagy tetszőleges számlákról ethert lehívni. Egyik sem lehetséges, mivel minden tranzakciót a hálózat összes végrehajtási kliense hajtja végre. A tranzakcióknak meg kell felelniük az érvényesség alapvető feltételeinek (például a tranzakciókat a feladó privát kulcsa írja alá, a feladónak elegendő egyenleggel kell rendelkeznie stb. Az eredménynek három osztálya van, amelyet egy támadó reálisan megcélozhat: átszervezés, dupla véglegesség vagy a véglegesség késleltetése. +Gyakori tévhit, hogy egy sikeres támadó képes új ethert generálni, vagy tetszőleges számlákról ethert lehívni. Egyik sem lehetséges, mivel minden tranzakciót a hálózat összes végrehajtási kliense hajt végre. A tranzakcióknak meg kell felelniük az érvényesség alapvető feltételeinek (például a tranzakciókat a feladó privát kulcsa írja alá, a feladónak elegendő egyenleggel kell rendelkeznie stb.), különben visszafordulnak. Az eredménynek három osztálya van, amelyet egy támadó reálisan megcélozhat: átszervezések, dupla véglegesség vagy a véglegesség késleltetése. Az **átszervezés** a blokkok új sorrendbe rendezése, esetleg a kanonikus láncban lévő blokkok hozzáadásával vagy kivonásával. Egy rosszindulatú átszervezés biztosíthatja, hogy bizonyos blokkok bekerüljenek vagy kikerüljenek, lehetővé téve a dupla költést vagy az értékkivonást előre és hátra futó tranzakciókkal (MEV). Az átszervezés arra is felhasználható, hogy bizonyos tranzakciókat ne lehessen felvenni a kanonikus láncba, ami a cenzúra egy formája. Az átszervezés legszélsőségesebb formája a „véglegesítés visszaállítása”, amely eltávolítja vagy helyettesíti a korábban véglegesített blokkokat. Ez csak akkor lehetséges, ha a támadó a teljes feltett ether több mint ⅓-át megsemmisíti – ez a garancia az úgynevezett „gazdasági véglegesség” (erről később még lesz szó). @@ -31,17 +31,20 @@ Miután megállapítottuk került, hogy egy ellenség miért támadhatja meg az Először is, azok a személyek, akik nem vesznek részt aktívan az Ethereumban (a kliensszoftver futtatásával), a társadalmi réteget (0. réteg) célozva támadhatnak. A 0. réteg az alap, amelyre az Ethereum épül, és mint ilyen, potenciális támadási felületet jelent, amelynek következményei a stack többi részére is kihatnak. Néhány példa: - Egy félretájékoztató kampány alááshatja a közösség bizalmát az Ethereum ütemtervét, fejlesztőcsapatokat, alkalmazásokba stb. illetően. Ez pedig csökkentheti a hálózat biztosításában résztvevők számát, ami rontja a decentralizációt és a kriptogazdasági biztonságot. + - Célzott támadások és/vagy fenyegetés a fejlesztői közösség ellen. Ez a fejlesztők önkéntes kilépéséhez vezethet, és lelassíthatja az Ethereum fejlődését. - A túlbuzgó szabályozás a 0. réteg elleni támadásnak is tekinthető, mivel gyorsan visszavetheti a részvételt és az elfogadást. + - Hozzáértő, de rosszindulatú szereplők beszivárgása a fejlesztői közösségbe, akiknek célja a fejlődés lelassítása a megbeszélések megzavarásával, a fontos döntések késleltetésével, szemeteléssel (spam) stb. + - Az Ethereum ökoszisztéma kulcsszereplőinek adott kenőpénzek, hogy ezzel befolyásolják a döntéshozatalt. Ezeket a támadásokat az teszi különösen veszélyessé, hogy sok esetben nagyon kevés tőkére vagy technikai tudásra van szükség. Egy 0. rétegbeli támadás egy kriptogazdasági támadás multiplikátora lehet. Ha például a cenzúrát vagy a véglegesség visszaállítását egy rosszindulatú többségi érdekelt fél érné el, a szociális réteg aláásása megnehezíthetné a sávon kívüli közösségi válaszlépések koordinálását. -A 0. rétegbeli támadások elleni védekezés valószínűleg nem egyszerű, de néhány alapelvet fel lehet állítani. Az egyik az Ethereummal kapcsolatos nyilvános információk magas jel-zaj arányának fenntartása, amelyeket a közösség becsületes tagjai hoznak létre és terjesztenek blogokon, Discord szervereken, kommentált specifikációkon, könyveken, podcastokon és Youtube-on keresztül. Itt az ethereum.org-on is igyekszünk pontos információkat fenntartani és a lehető legtöbb nyelvre lefordítani. A tér minőségi információkkal és mémekkel való elárasztása hatékony védekezés a félretájékoztatás ellen. +A 0. rétegbeli támadások elleni védekezés valószínűleg nem egyszerű, de néhány alapelvet fel lehet állítani. Az egyik az Ethereummal kapcsolatos nyilvános információk magas jel-zaj arányának fenntartása, amelyeket a közösség becsületes tagjai hoznak létre és terjesztenek blogokon, Discord-szervereken, kommentált specifikációkon, könyveken, podcastokon és Youtube-on keresztül. Itt az ethereum.org-on is igyekszünk pontos információkat fenntartani és a lehető legtöbb nyelvre lefordítani. A tér minőségi információkkal és mémekkel való elárasztása hatékony védekezés a félretájékoztatás ellen. -Egy másik fontos megerősítés a társadalmi réteg támadásaival szemben az egyértelmű küldetésnyilatkozat és az irányítási protokoll. Az Ethereum a decentralizáció és a biztonság bajnokaként pozicionálta magát az L1-es okosszerződések között, miközben nagyra értékeli a skálázhatóságot és a fenntarthatóságot is. Bármilyen nézeteltérések merülnek fel az Ethereum közösségben, ezek az alapelvek minimálisan sérülnek. A narratíva értékelése ezen alapelvek alapján és a felülvizsgálat egymást követő fordulóin keresztül az EIP (Ethereum Fejlesztési Javaslatok) folyamatában segíthet a közösségnek megkülönböztetni a jó és a rossz szereplőket, illetve korlátozhatja a rosszindulatú szereplők lehetőségét az Ethereum jövőbeli irányának befolyásolására. +Egy másik fontos megerősítés a társadalmi réteg támadásaival szemben az egyértelmű küldetésnyilatkozat és az irányítási protokoll. Az Ethereum a decentralizáció és a biztonság bajnokaként pozicionálta magát az L1-es okosszerződések között, miközben nagyra értékeli a skálázhatóságot és a fenntarthatóságot is. Bármilyen nézeteltérések merülnek fel az Ethereum közösségében, ezek az alapelvek minimálisan sérülnek. A narratíva értékelése ezen alapelvek alapján és a felülvizsgálat egymást követő fordulóin keresztül az EIP (Ethereum-fejlesztési javaslatok) folyamatában segíthet a közösségnek megkülönböztetni a jó és a rossz szereplőket, illetve korlátozhatja a rosszindulatú szereplők lehetőségét az Ethereum jövőbeli irányának befolyásolására. Végezetül fontos, hogy az Ethereum-közösség nyitott és befogadó maradjon minden résztvevő számára. A zártkörű közösségek különösen sebezhetők a társadalmi támadásokkal szemben, mivel könnyű „mi és ők” narratívákat építeni. A törzsiség és a mérgező maximalizmus árt a közösségnek és aláássa a 0. réteg biztonságát. A hálózat biztonságában érdekelt Ethereum-tagoknak úgy kell tekinteni az online és személyes találkozásokra, mint ami közvetlenül hozzájárul az Ethereum 0. rétegének biztonságához. @@ -53,47 +56,47 @@ Alapvetően minden kis letétes támadás a validátor kétféle hibás viselked ### Kis mennyiségű ETH-t használó támadások {#attacks-by-small-stakeholders} -#### Átszervezések (reorg) {#reorgs} +#### átszervezések {#reorgs} -Több cikk is ismertette az Ethereum elleni olyan támadásokat, amelyek a teljes feltett ether csak kis hányadával érnek el reorgokat vagy végleges késleltetést. Ezek a támadások általában arra épülnek, hogy a támadó visszatart valamilyen információt a többi validátor elől, majd valamilyen árnyalt módon és/vagy egy alkalmas pillanatban kiadja azt. Céljuk általában az, hogy kiszorítsanak egy vagy több becsületes blokkot a kanonikus láncból. Egy tanulmány, [Neuder et al 2020](https://arxiv.org/pdf/2102.02247.pdf), megmutatta, hogy egy támadó validátor hogyan hozhat létre és tanúsíthat egy blokkot (`B`) egy adott `n+1` slothoz, de tartózkodhat attól, hogy azt a hálózat más csomópontjainak továbbítsa. Ehelyett a következő `n+2` slotig megtartják az igazolt blokkot. Egy becsületes validátor egy blokkot (`C`) javasol az `n+2` slotba. Ezzel szinte egyidejűleg a támadó kiadhatja a visszatartott blokkját (`B`) és az arra vonatkozó visszatartott tanúsítványait, és az `n+2` slotra leadott szavazataival azt is tanúsíthatja, hogy `B` a lánc feje, ezzel gyakorlatilag tagadva a becsületes `C` blokk létezését. Amikor a becsületes `D` blokk felszabadul, az elágazásválasztó algoritmus úgy látja, hogy a `B` tetejére épülő `D` nehezebb, mint a `C`-re épülő `D`. A támadónak tehát sikerült eltávolítania az `n+2` slotban lévő becsületes `C` blokkot a kanonikus láncból egy 1 blokkos ex ante reorg segítségével. [Egy támadónak a tét 34%-ával](https://www.youtube.com/watch?v=6vzXwwk12ZE) nagyon jó esélye van arra, hogy sikerrel járjon ebben a támadásban, amint azt [ebben a jegyzetben](https://notes.ethereum.org/plgVdz-ORe-fGjK06BZ_3A#Fork-choice-by-block-slot-pair) kifejtettük. Elméletileg azonban ezt a támadást kisebb letétekkel is meg lehetne kísérelni. [Neuder et al 2020](https://arxiv.org/pdf/2102.02247.pdf) leírta, hogy ez a támadás 30%-os letét mellett is működik, de később kimutatták, hogy [2%-os letét mellett is életképes](https://arxiv.org/pdf/2009.04987.pdf), majd [egyetlen validátor](https://arxiv.org/abs/2110.10086#) esetén is, a következő fejezetben vizsgált kiegyensúlyozási technikák segítségével. +Több cikk is ismertette az Ethereum elleni olyan támadásokat, amelyek a teljes feltett ether csak kis hányadával érnek el átszervezéseket vagy végleges késleltetést. Ezek a támadások általában arra épülnek, hogy a támadó visszatart valamilyen információt a többi validátor elől, majd valamilyen árnyalt módon és/vagy egy alkalmas pillanatban kiadja azt. Céljuk általában az, hogy kiszorítsanak egy vagy több becsületes blokkot a kanonikus láncból. Egy tanulmány, [Neuder et al 2020](https://arxiv.org/pdf/2102.02247.pdf), megmutatta, hogy egy támadó validátor hogyan hozhat létre és tanúsíthat egy blokkot („B”) egy adott „n+1” slothoz, de tartózkodhat attól, hogy azt a hálózat más csomópontjainak továbbítsa. Ehelyett a következő „n+2” slotig megtartják az igazolt blokkot. Egy becsületes validátor egy blokkot („C”) javasol az „n+2” slotba. Ezzel szinte egyidejűleg a támadó kiadhatja a visszatartott blokkját („B”) és az arra vonatkozó visszatartott tanúsítványait, és az „n+2” slotra leadott szavazataival azt is tanúsíthatja, hogy „B” a lánc feje, ezzel gyakorlatilag tagadva a becsületes „C” blokk létezését. Amikor a becsületes „D” blokk felszabadul, az elágazásválasztó algoritmus úgy látja, hogy a „B” tetejére épülő „D” nehezebb, mint a „C”-re épülő „D”. A támadónak tehát sikerült eltávolítania az „n+2” slotban lévő becsületes „C” blokkot a kanonikus láncból egy 1 blokkos ex ante átszervezés segítségével. [Egy támadónak a tét 34%-ával](https://www.youtube.com/watch?v=6vzXwwk12ZE) nagyon jó esélye van arra, hogy sikerrel járjon ebben a támadásban, amint azt [ebben a jegyzetben kifejtettük](https://notes.ethereum.org/plgVdz-ORe-fGjK06BZ_3A#Fork-choice-by-block-slot-pair). Elméletileg azonban ezt a támadást kisebb letétekkel is meg lehetne kísérelni. [Neuder et al 2020](https://arxiv.org/pdf/2102.02247.pdf) leírta, hogy ez a támadás 30%-os letét mellett is működik, de később kimutatták, hogy [2%-os letét](https://arxiv.org/pdf/2009.04987.pdf) mellett is életképes, majd [egyetlen validátor](https://arxiv.org/abs/2110.10086#) esetén is, a következő fejezetben vizsgált kiegyensúlyozási technikák segítségével. -![ex-ante reorg](reorg-schematic.png) +![ex-ante re-org](reorg-schematic.png) A fent leírt egyblokkos átszervezési támadás koncepcionális ábrája (a https://notes.ethereum.org/plgVdz-ORe-fGjK06BZ_3A#Fork-choice-by-block-slot-pair oldalról átvéve) -Egy kifinomultabb támadás a becsületes validátorok halmazát különálló csoportokra oszthatja, amelyeknek különböző nézeteik vannak a lánc fejéről. Ezt nevezik **kiegyenlítő támadásnak**. A támadó megvárja az esélyt, hogy egy blokkot javasoljon, és amikor az megérkezik, kétértelműsíti, és kettőt javasol. Az egyik blokkot a becsületes validátorok felének, a másik blokkot pedig a másik felének. Az elágazásválasztó algoritmus észlelné a kétértelműséget, és a blokkot javaslót megbüntetné és kidobná a hálózatból, de a két blokk továbbra is létezne, és a validátorok körülbelül fele tanúsítaná mindkét elágazást. Eközben a fennmaradó rosszindulatú validátorok visszatartják tanúsításaikat. Ezután az egyik vagy másik elágazást előnyben részesítő tanúsítások szelektív felszabadításával éppen elég validátornak adják át a tanúsítások felhalmozott súlyát az egyik vagy másik elágazás javára, amint az elágazásválasztó algoritmus lefut, így a tanúsítások felhalmozott súlyát az egyik vagy másik elágazás javára billentik. Ez a végtelenségig folytatódhat, a támadó validátorok pedig fenntartják a validátorok egyenletes elosztását a két elágazás között. Mivel egyik elágazás sem tud 2/3-os szupertöbbséget szerezni, a hálózat nem kerülne véglegesítésre. +Egy kifinomultabb támadás a becsületes validátorok halmazát különálló csoportokra oszthatja, amelyeknek különböző nézeteik vannak a lánc fejéről. Ezt nevezik **kiegyenlítő támadásnak**. A támadó megvárja az esélyt, hogy egy blokkot javasoljon, és amikor az megérkezik, kétértelműsíti, és kettőt javasol. Az egyik blokkot elküldi a becsületes validátorok felének, a másik blokkot pedig a másik felének. Az elágazásválasztó algoritmus észlelné a kétértelműséget, és a blokkot javaslót megbüntetné és kidobná a hálózatból, de a két blokk továbbra is létezne, és a validátorok körülbelül fele tanúsítaná mindkét elágazást. Eközben a fennmaradó rosszindulatú validátorok visszatartják tanúsításaikat. Ezután az egyik vagy másik elágazást előnyben részesítő tanúsítások szelektív felszabadításával éppen elég validátornak adják át a tanúsítások felhalmozott súlyát az egyik vagy másik elágazás javára, amint az elágazásválasztó algoritmus lefut, így a tanúsítások felhalmozott súlyát az egyik vagy másik elágazás javára billentik. Ez a végtelenségig folytatódhat, a támadó validátorok pedig fenntartják a validátorok egyenletes elosztását a két elágazás között. Mivel egyik elágazás sem tud 2/3-os szupertöbbséget szerezni, a hálózat nem kerülne véglegesítésre. -**A pattogó (bouncing) támadások** hasonlóak. A szavazatokat a támadó validátorok ismét visszatartják. Ahelyett, hogy a szavazatokat úgy adnák le, hogy a két elágazás között egyenletes legyen a felosztás, a megfelelő pillanatokban arra használják a szavazataikat, hogy olyan ellenőrzőpontokat igazoljanak, amelyek felváltva váltakoznak az A és a B elágazás között. A tanúsításnak ez a két elágazás közötti felcserélése megakadályozza, hogy olyan igazolt forrás- és célellenőrzési pontok párjai legyenek, amelyek bármelyik láncban véglegesíthetők, ami megállítja a véglegesítést. +**A pattogó (bouncing) támadások** hasonlók. A szavazatokat a támadó validátorok ismét visszatartják. Ahelyett, hogy a szavazatokat úgy adnák le, hogy a két elágazás között egyenletes legyen a felosztás, a megfelelő pillanatokban arra használják a szavazataikat, hogy olyan ellenőrzőpontokat igazoljanak, amelyek felváltva váltakoznak az A és a B elágazás között. A tanúsításnak ezen két elágazás közötti felcserélése megakadályozza, hogy olyan igazolt forrás- és célellenőrzési pontok párjai legyenek, amelyek bármelyik láncban véglegesíthetők, ami megállítja a véglegesítést. -A pattogó (bouncing) és a kiegyenlítő (balancing) támadás is arra épül, hogy a támadó kifinomult irányítással rendelkezik az üzenetek időzítése felett a hálózaton keresztül, ami nem valószínű. Mindazonáltal a protokollba védelmet építettek be a gyors üzeneteknek a lassú üzenetekkel szemben adott többletsúlyozás formájában. Ez az úgynevezett [javaslattevő-súlynövelés (proposer-weight boosting)](https://github.com/ethereum/consensus-specs/pull/2730). A pattogó támadások elleni védekezés érdekében az elágazásválasztó algoritmust úgy frissítették, hogy a legutóbbi igazolt ellenőrzőpont csak [az adott korszak slotjainak első 1/3-ában](https://ethresear.ch/t/prevention-of-bouncing-attack-on-ffg/6114) válthat át egy alternatív láncra. Ez a feltétel megakadályozza, hogy a támadó szavazatokat gyűjtsön a későbbi használatra – az elágazásválasztó algoritmus egyszerűen hű marad ahhoz az ellenőrzőponthoz, amelyet a korszak első 1/3-ában választott, amely idő alatt a legtöbb becsületes validátor szavazott volna. +A pattogó (bouncing) és a kiegyenlítő (balancing) támadás is arra épül, hogy a támadó kifinomult irányítással rendelkezik az üzenetek időzítése felett a hálózaton keresztül, ami nem valószínű. Mindazonáltal a protokollba védelmet építettek be a gyors üzeneteknek a lassú üzenetekkel szemben adott többletsúlyozás formájában. Ez az úgynevezett [javaslattevő-súlynövelés (proposer-weight boosting)](https://github.com/ethereum/consensus-specs/pull/2730). A pattogó támadások elleni védekezés érdekében az elágazásválasztó algoritmust úgy frissítették, hogy a legutóbbi igazolt ellenőrző pont csak az [adott korszak slotjainak első 1/3-ában](https://ethresear.ch/t/prevention-of-bouncing-attack-on-ffg/6114) válthat át egy alternatív láncra. Ez a feltétel megakadályozza, hogy a támadó szavazatokat gyűjtsön a későbbi használatra – az elágazásválasztó algoritmus egyszerűen hű marad ahhoz az ellenőrző ponthoz, amelyet a korszak első 1/3-ában választott, amely idő alatt a legtöbb becsületes validátor szavazott volna. Együttesen ezek az intézkedések olyan forgatókönyvet hoznak létre, amelyben egy becsületes blokkajánló nagyon gyorsan kibocsátja blokkját a slot kezdete után, majd egy kb. 1/3 slotnyi (4 másodperc) időszak következik, amikor az új blokk miatt az elágazásválasztó algoritmus egy másik láncra válthat. Ugyanezen határidő után a lassú validátoroktól érkező tanúsításokat a korábban érkezett tanúsításokhoz képest lefelé súlyozzák. Ez nagymértékben kedvez a gyors ajánlattevőknek és a validátoroknak a lánc fejének meghatározásakor, és jelentősen csökkenti a sikeres kiegyenlítő (balancing) vagy pattogó (bouncing) támadás valószínűségét. -Érdemes megjegyezni, hogy a javaslattevő erősítése önmagában csak az „olcsó reorgok” ellen véd, vagyis kis letétellel rendelkező támadó esetén. Valójában az előterjesztő-erősítés önmagában is kijátszható a nagyobb érdekeltek által. E [bejegyzés](https://ethresear.ch/t/change-fork-choice-rule-to-mitigate-balancing-and-reorging-attacks/11127) szerzői leírják, hogy egy támadó, aki a letét 7%-ával rendelkezik, hogyan vetheti be a szavazatait stratégiailag, hogy becsületes validátorok becsapásával a saját elágazására építsen, és egy becsületes blokkot átszervezzen. Ezt a támadást ideális késleltetési feltételeket feltételezve dolgozták ki, ami nagyon valószínűtlen. A támadónak kedveznek az esélyek, de a nagyobb letét nagyobb tőkekockázatot és erősebb gazdasági visszatartó erőt is jelent. +Érdemes megjegyezni, hogy a javaslattevő erősítése önmagában csak az „olcsó átszervezések” ellen véd, vagyis kis letétellel rendelkező támadó esetén. Valójában az előterjesztő-erősítés önmagában is kijátszható a nagyobb érdekeltek által. [E bejegyzés](https://ethresear.ch/t/change-fork-choice-rule-to-mitigate-balancing-and-reorging-attacks/11127) szerzői leírják, hogy egy támadó, aki a letét 7%-ával rendelkezik, hogyan vetheti be a szavazatait stratégiailag, hogy becsületes validátorok becsapásával a saját elágazására építsen, és egy becsületes blokkot átszervezzen. Ezt a támadást ideális késleltetési feltételeket feltételezve dolgozták ki, ami nagyon valószínűtlen. A támadónak kedveznek az esélyek, de a nagyobb letét nagyobb tőkekockázatot és erősebb gazdasági visszatartó erőt is jelent. -Javasoltak egy [kiegyenlítő támadást is, amely kifejezetten az LMD-szabályt célozza](https://ethresear.ch/t/balancing-attack-lmd-edition/11853), és amely a előterjesztő-erősítés ellenére is életképesnek bizonyult. Egy támadó két versengő láncot hoz létre úgy, hogy a blokkjavaslatát egyenlővé teszi, és minden egyes blokkot a hálózat egy-egy felére terjeszti el, így megközelítőleg egyensúlyt hoz létre az elágazások között. Ezután az összejátszó validátorok kiegyenlítik a szavazataikat, úgy időzítve, hogy a hálózat fele az `A` elágazásra kapja meg először a szavazatát, a másik fele pedig a `B` elágazásra. Mivel az LMD-szabály elveti a második tanúsítást, és csak az elsőt tartja meg minden egyes validátor számára, a hálózat egyik fele csak az `A`-ra adott szavazatokat látja, a `B`-re adottakat nem; a másik fele csak a `B`-re adott szavazatokat látja, az `A`-ra adottakat nem. A szerzők leírják, hogy az LMD-szabály „figyelemre méltó hatalmat” ad az ellenségnek a kiegyenlítő támadáshoz. +Javasoltak egy [kiegyenlítő támadást is, amely kifejezetten az LMD-szabályt célozza](https://ethresear.ch/t/balancing-attack-lmd-edition/11853), és amely a előterjesztő-erősítés ellenére is életképesnek bizonyult. Egy támadó két versengő láncot hoz létre úgy, hogy a blokkjavaslatát egyenlővé teszi, és minden egyes blokkot a hálózat egy-egy felére terjeszti el, így megközelítőleg egyensúlyt hoz létre az elágazások között. Ezután az összejátszó validátorok kiegyenlítik a szavazataikat, úgy időzítve, hogy a hálózat fele az „A” elágazásra kapja meg először a szavazatát, a másik fele pedig a „B” elágazásra. Mivel az LMD-szabály elveti a második tanúsítást, és csak az elsőt tartja meg minden egyes validátor számára, a hálózat egyik fele csak az „A”-ra adott szavazatokat látja, a „B”-re adottakat nem; a másik fele csak a „B”-re adott szavazatokat látja, az „A”-ra adottakat nem. A szerzők leírják, hogy az LMD-szabály „figyelemre méltó hatalmat” ad az ellenségnek a kiegyenlítő támadáshoz. -Ezt az LMD támadási vektort a [az elágazásválasztó algoritmus frissítésével](https://github.com/ethereum/consensus-specs/pull/2845) zárták le úgy, hogy az elágazásválasztásnál az egyenlőtlen validátorokat teljesen kizárja a megfontolásból. Az egyenlőtlen validátorok jövőbeli befolyását az elágazásválasztó algoritmus kihagyja a számításból. Ez megakadályozza a fent vázolt kiegyenlítő támadást, miközben a lavinatámadásokkal szembeni ellenállóképességet is fenntartja. +Ezt az LMD támadási vektort az [elágazásválasztó algoritmus frissítésével](https://github.com/ethereum/consensus-specs/pull/2845) zárták le úgy, hogy az elágazásválasztásnál az egyenlőtlen validátorokat teljesen kizárja a megfontolásból. Az egyenlőtlen validátorok jövőbeli befolyását az elágazásválasztó algoritmus kihagyja a számításból. Ez megakadályozza a fent vázolt kiegyenlítő támadást, miközben a lavinatámadásokkal szembeni ellenálló képességet is fenntartja. -A támadások egy másik osztályát, az úgynevezett [**lavinatámadásokat**](https://ethresear.ch/t/avalanche-attack-on-proof-of-stake-ghost/11854/3) egy [2022 márciusában megjelent tanulmányban](https://arxiv.org/pdf/2203.01315.pdf) írták le. A lavinatámadáshoz a támadónak több egymást követő blokkajánlót kell irányítania. A támadó minden egyes blokkjavaslati slotban visszatartja a blokkját, és addig gyűjti azokat, amíg az őszinte lánc el nem éri a visszatartott blokkokkal azonos részfa súlyát. Ezután a visszatartott blokkok felszabadulnak úgy, hogy maximálisan kiegyenlítődnek. A szerzők szerint a előterjesztő-erősítés – az elsődleges védelem a kiegyenlítő és pattogó támadások ellen – nem véd a lavinatámadás egyes változatai ellen. A szerzők azonban a támadást csak az Ethereum elágazásválasztó algoritmusának egy erősen idealizált változatán mutatták be (a GHOST-ot használták LMD nélkül). +A támadások egy másik osztályát, az úgynevezett [**lavinatámadásokat**](https://ethresear.ch/t/avalanche-attack-on-proof-of-stake-ghost/11854/3) egy [2022 márciusában megjelent tanulmányban](https://arxiv.org/pdf/2203.01315.pdf) írták le. A lavinatámadáshoz a támadónak több egymást követő blokkajánlót kell irányítania. A támadó minden egyes blokkjavaslati slotban visszatartja a blokkját, és addig gyűjti azokat, amíg az őszinte lánc el nem éri a visszatartott blokkokkal azonos részfa súlyát. Ezután a visszatartott blokkok felszabadulnak úgy, hogy maximálisan kiegyenlítődnek. A szerzők szerint az előterjesztő-erősítés – az elsődleges védelem a kiegyenlítő és pattogó támadások ellen – nem véd a lavinatámadás egyes változatai ellen. A szerzők azonban a támadást csak az Ethereum elágazásválasztó algoritmusának egy erősen idealizált változatán mutatták be (a GHOST-ot használták LMD nélkül). A lavinatámadást az LMD-GHOST elágazásválasztó algoritmus LMD része enyhíti. Az LMD jelentése a „legutolsó üzenet által vezérelt” (latest-message-driven), és az egyes validátorok által vezetett táblázatra utal, amely a többi validátortól kapott legfrissebb üzenetet tartalmazza. Ez a mező csak akkor frissül, ha az új üzenet későbbi időpontból származik, mint a táblázatban egy adott validátort illetően már szereplő üzenet. A gyakorlatban ez azt jelenti, hogy minden egyes slotban az első fogadott üzenet az, amelyet a rendszer elfogadott, és minden további üzenet kétértelműség, amelyet figyelmen kívül kell hagyni. Másképpen fogalmazva, a konszenzuskliensek nem veszik figyelembe a kétértelműséget – a validátoroktól elsőként érkező üzenetet használják, a kétértelműséget elvetik, megelőzve ezzel a lavinatámadásokat. -Az elágazásválasztási szabály számos más lehetséges jövőbeli frissítése is létezik, amelyek növelhetik a előterjesztő-erősítés által nyújtott biztonságot. Az egyik a [nézetösszevonás](https://ethresear.ch/t/view-merge-as-a-replacement-for-proposer-boost/13739), ahol a tanúsítók `n` másodperccel egy slot kezdete előtt befagyasztják az elágazásválasztásról alkotott nézetüket, és a javaslattevő ezután segít szinkronizálni a lánc nézetét a hálózaton. Egy másik lehetséges fejlesztés az [ egy sloton belüli véglegesség (single-slot finality)](https://notes.ethereum.org/@vbuterin/single_slot_finality), amely az üzenet időzítésén alapuló támadások ellen véd azáltal, hogy a láncot egyetlen slot után véglegesíti. +Az elágazásválasztási szabály számos más lehetséges jövőbeli frissítése is létezik, amelyek növelhetik a előterjesztő-erősítés által nyújtott biztonságot. Az egyik a [nézetösszevonás](https://ethresear.ch/t/view-merge-as-a-replacement-for-proposer-boost/13739), ahol a tanúsítók „n” másodperccel egy slot kezdete előtt befagyasztják az elágazásválasztásról alkotott nézetüket, és a javaslattevő ezután segít szinkronizálni a lánc nézetét a hálózaton. Egy másik lehetséges fejlesztés az [egy sloton belüli véglegesség (single-slot finality)](https://notes.ethereum.org/@vbuterin/single_slot_finality), amely az üzenet időzítésén alapuló támadások ellen véd azáltal, hogy a láncot egyetlen slot után véglegesíti. #### Véglegesség késleltetése {#finality-delay} -[Az a cikk](https://econcs.pku.edu.cn/wine2020/wine2020/Workshop/GTiB20_paper_8.pdf), amely először írta le az alacsony költségű, egyetlen blokkot érintő reorg támadást, leírt egy végső késleltetés (liveness failure) nevű támadást is, amely arra támaszkodik, hogy a támadó egy korszakkal határos blokk javaslattevője. Ez azért kritikus, mert ezek a korszakhatárblokkok lesznek az ellenőrzőpontok, amelyeket a Casper FFG a lánc egyes részeinek véglegesítéséhez használ. A támadó egyszerűen visszatartja a blokkját, amíg elegendő becsületes validátor nem használja FFG-szavazatát az előző korszakhatárblokk javára, mint az aktuális véglegesítési cél. Ezután kiadja a visszatartott blokkot. Tanúsítja a blokkját, és a fennmaradó becsületes validátorok is ezt teszik, különböző célellenőrzési pontokkal rendelkező elágazásokat létrehozva. Ha jól időzített, akkor megakadályozza a véglegességet, mert nem lesz 2/3-os szupertöbbség, amely bármelyik elágazást tanúsítaná. Minél kisebb a letét, annál pontosabb időzítésre van szükség, mivel a támadó kevesebb tanúsítást ellenőriz közvetlenül, és annál kisebb az esélye annak, hogy a támadó ellenőrzi a validátort, amely a korszakhatárblokkot javasolja. +[Az a cikk](https://econcs.pku.edu.cn/wine2020/wine2020/Workshop/GTiB20_paper_8.pdf), amely először írta le az alacsony költségű, egyetlen blokkot érintő átszervezési támadást, leírt egy végső késleltetés (liveness failure) nevű támadást is, amely arra támaszkodik, hogy a támadó egy korszakkal határos blokk javaslattevője. Ez azért kritikus, mert ezek a korszakhatárblokkok lesznek az ellenőrző pontok, amelyeket a Casper FFG a lánc egyes részeinek véglegesítéséhez használ. A támadó egyszerűen visszatartja a blokkját, amíg elegendő becsületes validátor nem használja FFG-szavazatát az előző korszakhatárblokk javára, mint az aktuális véglegesítési cél. Ezután kiadja a visszatartott blokkot. Tanúsítja a blokkját, és a fennmaradó becsületes validátorok is ezt teszik, különböző célellenőrzési pontokkal rendelkező elágazásokat létrehozva. Ha jól időzített, akkor megakadályozza a véglegességet, mert nem lesz 2/3-os szupertöbbség, amely bármelyik elágazást tanúsítaná. Minél kisebb a letét, annál pontosabb időzítésre van szükség, mivel a támadó kevesebb tanúsítást ellenőriz közvetlenül, és annál kisebb az esélye annak, hogy a támadó ellenőrzi a validátort, amely a korszakhatárblokkot javasolja. #### Nagy hatótávolságú támadások {#long-range-attacks} -Létezik egy, a proof-of-stake blokkláncokra jellemző támadási osztály is, amelynek lényege, hogy a genezisblokkban részt vevő validátor fenntartja a blokklánc egy különálló elágazását a helyes blokklánc mellett, és végül meggyőzi az őszinte validátorhalmazt, hogy később egy alkalmas időpontban váltson át rá. Ez a fajta támadás nem lehetséges az Ethereumon, mivel a véglegességi eszköz (finality gadget) biztosítja, hogy az összes validátor rendszeres időközönként (ellenőrzőpontok) megegyezzen a becsületes lánc állapotáról. Ez az egyszerű mechanizmus semlegesíti a nagy hatótávolságú támadókat, mivel az Ethereum kliensei egyszerűen nem fogják a véglegesített blokkokat újraszervezni. A hálózathoz csatlakozó új csomópontok úgy teszik ezt, hogy keresnek egy megbízható legutóbbi állapot hasht (egy [gyenge szubjektivitás](https://blog.ethereum.org/2014/11/25/proof-stake-learned-love-weak-subjectivity/) ellenőrzőpontot), és azt használják pszeudo-genezis blokk-ként, amelyre építkeznek. Ez egy „bizalmi bejáratot” hoz létre a hálózatba belépő új csomópont számára, mielőtt az elkezdené ellenőrizni az információkat saját maga számára. +Létezik egy, a proof-of-stake blokkláncokra jellemző támadási osztály is, amelynek lényege, hogy a genezisblokkban részt vevő validátor fenntartja a blokklánc egy különálló elágazását a helyes blokklánc mellett, és végül meggyőzi az őszinte validátorhalmazt, hogy később egy alkalmas időpontban váltson át rá. Ez a fajta támadás nem lehetséges az Ethereumon, mivel a véglegességi eszköz (finality gadget) biztosítja, hogy az összes validátor rendszeres időközönként (ellenőrző pontok) megegyezzen a becsületes lánc állapotáról. Ez az egyszerű mechanizmus semlegesíti a nagy hatótávolságú támadókat, mivel az Ethereum kliensei egyszerűen nem fogják a véglegesített blokkokat átszervezni. A hálózathoz csatlakozó új csomópontok úgy teszik ezt, hogy keresnek egy megbízható legutóbbi állapot hasht (egy [gyenge szubjektivitás](https://blog.ethereum.org/2014/11/25/proof-stake-learned-love-weak-subjectivity/) ellenőrző pontot), és azt használják pszeudo-genezis blokk-ként, amelyre építkeznek. Ez egy „bizalmi bejáratot” hoz létre a hálózatba belépő új csomópont számára, mielőtt az elkezdené ellenőrizni az információkat saját maga számára. #### Szolgáltatásmegtagadás (DoS) {#denial-of-service} -Az Ethereum proof-of-stake mechanizmusa minden egyes slotban egyetlen validátort választ ki a teljes validátorkészletből, aki blokkajánló lesz. Ezt egy nyilvánosan ismert függvény segítségével lehet kiszámítani, és egy támadó számára lehetséges, hogy a következő blokkelőterjesztőt beazonosítsa. Ezután a támadó eláraszthatja szeméttel (spam) a blokkelőterjesztőt, hogy megakadályozza, hogy információt cseréljen a társaival. A hálózat többi része számára úgy tűnne, hogy a blokkelőterjesztő offline, és a slot egyszerűen üresen marad. Ez egyfajta cenzúra lehet bizonyos validátorokkal szemben, megakadályozva őket abban, hogy információt adjanak hozzá a blokklánchoz. Az egyetlen, titkos vezetőválasztás (SSLE) vagy az egynél több titkos vezetőválasztás megvalósítása csökkenti a szolgáltatásmegtagadás (DoS) kockázatát, mivel mindig csak a blokkelőterjesztő tudja, hogy kiválasztották, és nem deríthető ki előre. Ez még nem valósult meg, de a [kutatás-fejlesztési](https://ethresear.ch/t/secret-non-single-leader-election/11789) terület aktívan foglalkozik vele. +Az Ethereum proof-of-stake mechanizmusa minden egyes slotban egyetlen validátort választ ki a teljes validátorkészletből, aki blokkajánló lesz. Ezt egy nyilvánosan ismert függvény segítségével lehet kiszámítani, és egy támadó számára lehetséges, hogy a következő blokkelőterjesztőt beazonosítsa. Ezután a támadó eláraszthatja szeméttel (spam) a blokkelőterjesztőt, hogy megakadályozza, hogy információt cseréljen a társaival. A hálózat többi része számára úgy tűnne, hogy a blokkelőterjesztő offline, és a slot egyszerűen üresen marad. Ez egyfajta cenzúra lehet bizonyos validátorokkal szemben, megakadályozva őket abban, hogy információt adjanak hozzá a blokklánchoz. Az egyetlen titkos vezetőválasztás (SSLE) vagy az egynél több titkos vezetőválasztás megvalósítása csökkenti a szolgáltatásmegtagadás (DoS) kockázatát, mivel mindig csak a blokkelőterjesztő tudja, hogy kiválasztották, és nem deríthető ki előre. Ez még nem valósult meg, de a [kutatás-fejlesztési terület](https://ethresear.ch/t/secret-non-single-leader-election/11789) aktívan foglalkozik vele. Mindezek alapján elmondható, hogy kis letétekkel nehéz sikeresen megtámadni az Ethereumot. Az itt leírt életképes támadásokhoz idealizált elágasztásválasztó algoritmusra, valószínűtlen hálózati körülményekre van szükség, vagy a támadási vektorokat már lezárták az kliensszoftver-javításokkal. Ez nem zárja ki a lehetőséget, de a kisebbségi letéttel rendelkező támadó hatékonyságát meghatározza az, hogy milyen szintű technikai képességekkel bír, a konszenzusréteg ismerete és a szerencse. A támadó szempontjából az lehet a legjobb megoldás, ha minél több ethert halmoz fel, és a teljes letét többségi hányadával próbál elérni valamit. @@ -101,11 +104,11 @@ Mindezek alapján elmondható, hogy kis letétekkel nehéz sikeresen megtámadni Az eddig említett összes támadás sikerének valószínűsége megnő, ha a támadónak több letétbe helyezett ether áll rendelkezésére, amivel szavazhat, és több validátort választhat, akik blokkokat javasolhatnak az egyes slotokban. Egy rosszindulatú validátor ezért arra törekedhet, hogy minél több letétbe helyezett ethert irányítson. -A feltett ether 33%-a egy támadó számára viszonyítási alap, mivel egy ennél nagyobb összeggel képesek megakadályozni a lánc véglegesítését anélkül, hogy a többi validátor tevékenységét irányítaniuk kellene. Egyszerűen mindannyian együtt eltűnhetnek. Ha a letétbe helyezett ether legalább 1/3-a rosszindulatúan vagy nem tanúsít, akkor a 2/3-os szupertöbbség nem állhat fenn, és a lánc nem véglegesíthető. Ez ellen az inaktivitás elszivárgással védekeznek. Az inaktivitás elszivárgás azonosítja azokat a validátorokat, akik nem vagy a többséggel ellentétesen tanúsítanak. A nem tanúsító validátorok által birtokolt letétbe helyezett ether fokozatosan elvezetésre kerül, míg végül együttesen a teljes mennyiség kevesebb mint 1/3-át képviselik, így a lánc újra véglegesedhet. +A feltett ether 33%-a egy támadó számára viszonyítási alap, mivel egy ennél nagyobb összeggel képesek megakadályozni a lánc véglegesítését anélkül, hogy a többi validátor tevékenységét irányítaniuk kellene. Egyszerűen mindannyian együtt eltűnhetnek. Ha a letétbe helyezett ether legalább 1/3-a rosszindulatúan vagy nem tanúsít, akkor a 2/3-os szupertöbbség nem állhat fenn, és a lánc nem véglegesíthető. Ez ellen az inaktivitási elszivárgással védekeznek. Az inaktivitási elszivárgás azonosítja azokat a validátorokat, akik nem vagy a többséggel ellentétesen tanúsítanak. A nem tanúsító validátorok által birtokolt letétbe helyezett ether fokozatosan elvezetésre kerül, míg végül együttesen a teljes mennyiség kevesebb mint 1/3-át képviselik, így a lánc újra véglegesedhet. -Az inaktivitási elszivárgás célja, hogy a lánc ismét véglegesedjen. A támadó azonban a letétbe helyezett ether egy részét is elveszíti. A teljes letétbe helyezett ether 33%-át kitevő validátorok tartós inaktivitása nagyon drága, még akkor is, ha nem is kapnak súlyos és kizárással járó büntetést. +Az inaktivitáselszivárgás célja, hogy a lánc ismét véglegesedjen. A támadó azonban a letétbe helyezett ether egy részét is elveszíti. A teljes letétbe helyezett ether 33%-át kitevő validátorok tartós inaktivitása nagyon drága, még akkor is, ha nem is kapnak súlyos és kizárással járó büntetést. -Feltételezve, hogy az Ethereum-hálózat aszinkron (az üzenetek küldése és fogadása között késések vannak), egy támadó, aki a teljes letét 34%-át ellenőrzi, kétszeres véglegesítést okozhat. Ez azért van, mert a támadó kétértelművé teheti, ha őt választják blokkelőterjesztőnek, majd duplán szavazhat az összes validátorával. Ez olyan helyzetet teremt, amelyben a blokkláncnak egy olyan elágazása létezik, amely mellett a letétbe helyezett ether 34%-a szavazott. Mindkét elágazásra csak a fennmaradó validátorok 50%-ának kell szavaznia, hogy mindkét elágazást szupertöbbség támogassa, és így mindkét lánc véglegesíthető (mivel a támadó validátorok 34%-a + a fennmaradó 66% fele = 67% mindkét elágazásnál). Az egymással versengő blokkokat a becsületes validátorok kb. 50%-ának kellene megkapnia, így ez a támadás csak akkor életképes, ha a támadónak bizonyos fokú ellenőrzése van a hálózaton terjedő üzenetek időzítése felett, így a becsületes validátorok felét rá tudja kényszeríteni az egyes láncokra. A támadónak szükségszerűen el kellene pusztítania a teljes letétjét (kb. 10 millió ether 34%-a a mai validátorhalmazt figyelembe véve), hogy elérje ezt a kettős véglegességet, mivel a validátorok 34%-a egyszerre kétszer szavazna – ez egy súlyos és kizárással járó büntetés maximális korrelációval. Ezzel a támadással szemben az a magas költség áll, hogy a teljes letétbe helyezett ether 34%-át el kell pusztítani. A támadásból való kilábaláshoz az Ethereum közösségnek „sávon kívül” kell koordinálnia, és meg kellene állapodnia abban, hogy az egyik elágazást követi, a másikat pedig figyelmen kívül hagyja. +Feltételezve, hogy az Ethereum-hálózat aszinkron (az üzenetek küldése és fogadása között késések vannak), egy támadó, aki a teljes letét 34%-át ellenőrzi, kétszeres véglegesítést okozhat. Ez azért van, mert a támadó kétértelművé teheti, ha őt választják blokkelőterjesztőnek, majd duplán szavazhat az összes validátorával. Ez olyan helyzetet teremt, amelyben a blokkláncnak egy olyan elágazása létezik, amely mellett a letétbe helyezett ether 34%-a szavazott. Mindkét elágazásra csak a fennmaradó validátorok 50%-ának kell szavaznia, hogy mindkét elágazást szupertöbbség támogassa, és így mindkét lánc véglegesíthető (mivel a támadó validátorok 34%-a + a fennmaradó 66% fele = 67% mindkét elágazásnál). Az egymással versengő blokkokat a becsületes validátorok kb. 50%-ának kellene megkapnia, így ez a támadás csak akkor életképes, ha a támadónak bizonyos fokú ellenőrzése van a hálózaton terjedő üzenetek időzítése felett, így a becsületes validátorok felét rá tudja kényszeríteni az egyes láncokra. A támadónak szükségszerűen el kellene pusztítania a teljes letétjét (kb. 10 millió ether 34%-a a mai validátorhalmazt figyelembe véve), hogy elérje ezt a kettős véglegességet, mivel a validátorok 34%-a egyszerre kétszer szavazna – ez egy súlyos és kizárással járó büntetés maximális korrelációval. Ezzel a támadással szemben az a magas költség áll, hogy a teljes letétbe helyezett ether 34%-át el kell pusztítani. A támadásból való kilábaláshoz az Ethereum közösségének „sávon kívül” kell koordinálnia, és meg kellene állapodnia abban, hogy az egyik elágazást követi, a másikat pedig figyelmen kívül hagyja. ### A támadók a teljes letét kb. 50%-át használják {#attackers-with-50-stake} @@ -117,7 +120,7 @@ A teljes letét >50%-ánál a támadó uralni tudta az elágazásválasztó algo ### A támadók a teljes letét >=66%-át használják {#attackers-with-66-stake} -Egy támadó, aki az összes letétbe helyezett ether 66%-ával vagy többel rendelkezik, véglegesítheti a preferált láncot anélkül, hogy a becsületes validátorokat kényszerítenie kellene. A támadók egyszerűen megszavazhatják a preferált elágazást, majd véglegesíthetik azt, mert tisztességtelen szupertöbbséggel szavazhatnak. A szupertöbbség birtokosaként a támadó irányítaná a véglegesített blokkok tartalmát, hatalmában állna költeni, visszatekerni és újrakölteni, cenzúrázni bizonyos tranzakciókat és tetszés szerint átszervezni a láncot. Azzal, hogy a támadó további ethert vásárol, hogy 51% helyett 66%-ot ellenőrizzen, megszerzi a képességet, hogy utólagos reorgokat és végleges visszafordításokat hajtson végre (azaz megváltoztassa a múltat és ellenőrizze a jövőt is). Az egyetlen igazi védekezés a hatalmas költség, a teljes letétbe helyezett ether 66%-a, és a közösségi rétegre támaszkodva egy alternatív elágazás elfogadásának koordinálása. Ezt a következő részben részletesebben is megvizsgáljuk. +Egy támadó, aki az összes letétbe helyezett ether 66%-ával vagy többel rendelkezik, véglegesítheti a preferált láncot anélkül, hogy a becsületes validátorokat kényszerítenie kellene. A támadók egyszerűen megszavazhatják a preferált elágazást, majd véglegesíthetik azt, mert tisztességtelen szupertöbbséggel szavazhatnak. A szupertöbbség birtokosaként a támadó irányítaná a véglegesített blokkok tartalmát, hatalmában állna költeni, visszatekerni és újrakölteni, cenzúrázni bizonyos tranzakciókat és tetszés szerint átszervezni a láncot. Azzal, hogy a támadó további ethert vásárol, hogy 51% helyett 66%-ot ellenőrizzen, megszerzi a képességet, hogy utólagos átszervezéseket és végleges visszafordításokat hajtson végre (azaz megváltoztassa a múltat és irányítsa a jövőt is). Az egyetlen igazi védekezés a hatalmas költség, a teljes letétbe helyezett ether 66%-a, és a közösségi rétegre támaszkodva egy alternatív elágazás elfogadásának koordinálása. Ezt a következő részben részletesebben is megvizsgáljuk. ## Emberek: az utolsó védelmi vonal {#people-the-last-line-of-defense} @@ -127,15 +130,15 @@ Az Ethereum proof-of-stake konszenzusának egyik erőssége, hogy a közösség A támadóra kiszabott büntetéstől függetlenül a közösségnek közösen kell döntenie arról is, hogy a tisztességtelen lánc – annak ellenére, hogy az Ethereum-kliensekbe kódolt elágazásválasztó algoritmus előnyben részesíti – valójában érvénytelen, és a közösségnek inkább a tisztességes láncra kellene építenie. A becsületes validátorok megállapodhatnak, hogy az Ethereum blokklánc közösség által elfogadott elágazására építenek, amely például a támadás megkezdése előtt elágazhatott a kanonikus láncról, vagy a támadók validátorait eltávolíthatják. A becsületes validátorok ösztönzést kapnának arra, hogy erre a láncra építsenek, mert elkerülhetnék a büntetést, amit azért kapnának, ha (jogosan) nem tanúsítanák a támadó láncát. Az Ethereumra épülő tőzsdék, on-rampok és alkalmazások inkább a helyes láncon szeretnének lenni, és követnék a becsületes validátorokat a helyes blokkláncra. -Ez azonban jelentős vezetési kihívást jelentene. Néhány felhasználó és validátor kétségtelenül veszítene a helyes láncra való visszaváltás következtében, a támadás után validált blokkokban lévő tranzakciókat potenciálisan visszavonnák, megzavarva az alkalmazási réteget, és ez aláássa egyes felhasználók etikai elképzeléseit, akik hajlamosak azt hinni, hogy „a kód a törvény”. A tőzsdék és az alkalmazások valószínűleg összekapcsolták a láncon kívüli műveleteket a láncon belüli tranzakciókkal, amelyeket most vissza lehet göngyölíteni, elindítva a visszavonások és felülvizsgálatok tömkelegét, amelyet nehéz lenne tisztességesen kibogozni, különösen, ha a jogtalanul szerzett nyereségeket összekeverték, DeFi-ba vagy más származékos termékekbe helyezték, amelyek másodlagos hatásokkal járnak a tisztességes felhasználók számára. Kétségtelen, hogy néhány felhasználó, talán még az intézményiek is, hasznot húztak volna a tisztességtelen láncból, ravaszságból vagy szerencsés véletlenből, és elleneznék az elágazást, hogy megvédjék a hasznukat. Elpróbálták a >51%-os támadásokra adott közösségi válaszlépéseket, hogy egy észszerű, összehangolt választ gyorsan végre lehessen hajtani. A témáról tekintse meg Vitalik hasznos eszmecseréit az ethresear.ch oldalon [itt](https://ethresear.ch/t/timeliness-detectors-and-51-attack-recovery-in-blockchains/6925) és [itt](https://ethresear.ch/t/responding-to-51-attacks-in-casper-ffg/6363), valamint a Twitteren [itt](https://twitter.com/skylar_eth/status/1551798684727508992?s=20&t=oHZ1xv8QZdOgAXhxZKtHEw). Az összehangolt társadalmi reakció célja a támadó megbüntetése és a többi felhasználóra gyakorolt hatások minimalizálása kell, hogy legyen. +Ez azonban jelentős vezetési kihívást jelentene. Néhány felhasználó és validátor kétségtelenül veszítene a helyes láncra való visszaváltás következtében, a támadás után validált blokkokban lévő tranzakciókat potenciálisan visszavonnák, megzavarva az alkalmazási réteget, és ez aláássa egyes felhasználók etikai elképzeléseit, akik hajlamosak azt hinni, hogy „a kód a törvény”. A tőzsdék és az alkalmazások valószínűleg összekapcsolták a láncon kívüli műveleteket a láncon belüli tranzakciókkal, amelyeket most vissza lehet göngyölíteni, elindítva a visszavonások és felülvizsgálatok tömkelegét, amelyet nehéz lenne tisztességesen kibogozni, különösen, ha a jogtalanul szerzett nyereségeket összekeverték, DeFi-ba vagy más származékos termékekbe helyezték, amelyek másodlagos hatásokkal járnak a tisztességes felhasználók számára. Kétségtelen, hogy néhány felhasználó, talán még az intézményiek is, hasznot húztak volna a tisztességtelen láncból, ravaszságból vagy szerencsés véletlenből, és elleneznék az elágazást, hogy megvédjék a hasznukat. Elpróbálták a >51%-os támadásokra adott közösségi válaszlépéseket, hogy egy észszerű, összehangolt választ gyorsan végre lehessen hajtani. Vitalik hasznos beszélgetést folytat az ethresear.ch oldalon [itt](https://ethresear.ch/t/timeliness-detectors-and-51-attack-recovery-in-blockchains/6925) és [itt](https://ethresear.ch/t/responding-to-51-attacks-in-casper-ffg/6363), valamint a Twitteren itt. Az összehangolt társadalmi reakció célja a támadó megbüntetése és a többi felhasználóra gyakorolt hatások minimalizálása kell, hogy legyen. -A vezetés már önmagában is bonyolult téma. Egy tisztességtelen véglegesítő láncra adott 0. rétegbeli vészreakció kezelése kihívást jelentene az Ethereum közösség számára, de ez már [megtörtént](/history/#dao-fork-summary) – [kétszer](/history/#tangerine-whistle) – az Ethereum történetében. +A vezetés már önmagában is bonyolult téma. Egy tisztességtelen véglegesítő láncra adott 0. rétegbeli vészreakció kezelése kihívást jelentene az Ethereum közössége számára, de ez [már megtörtént](/history/#dao-fork-summary) – [kétszer](/history/#tangerine-whistle) – az Ethereum történetében. Mindazonáltal van valami kielégítő abban, hogy a végső megoldás a való világban található. Végső soron, még e fenomenális technológiai rendszer ellenére is, ha a legrosszabb valaha is bekövetkezne, a valódi embereknek kellene koordinálniuk a kiutat. -## Összegzés {#summary} +## Összefoglaló {#summary} -Ez az oldal azt vizsgálta, hogy a támadók milyen módon próbálhatják meg kihasználni az Ethereum proof-of-stake konszenzus protokollját. A reorgokat és a véglegesítés késleltetését a teljes letétbe helyezett ether növekvő arányú támadók esetében vizsgáltuk. Összességében a gazdagabb támadóknak nagyobb esélyük van a sikerre, mivel a letétjük szavazati joggal jár, amellyel befolyásolni tudják a jövőbeli blokkok tartalmát. Bizonyos küszöbértékeknél a támadó ereje növekszik: +Ez az oldal azt vizsgálta, hogy a támadók milyen módon próbálhatják meg kihasználni az Ethereum proof-of-stake konszenzus protokollját. Az átszervezéseket és a véglegesítés késleltetését a teljes letétbe helyezett ether növekvő arányú támadók esetében vizsgáltuk. Összességében a gazdagabb támadóknak nagyobb esélyük van a sikerre, mivel a letétjük szavazati erővel jár, amellyel befolyásolni tudják a jövőbeli blokkok tartalmát. Bizonyos küszöbértékeknél a támadó ereje növekszik: 33%: késleltetett véglegesség @@ -149,15 +152,15 @@ Létezik egy sor kifinomultabb támadás is, amelyekhez kis mennyiségű letétb Összességében, ezen potenciális támadási vektorok ellenére a sikeres támadás kockázata alacsony, minden bizonnyal alacsonyabb, mint a proof-of-worknél. Mivel a támadó, aki a becsületes validátorok szavazati erejével elnyomja a becsületes validátorokat, a letétbe helyezett ether költségét kockáztatja. A beépített „jutalmazás-büntetés” ösztönző réteg megvéd a legtöbb visszaéléstől, különösen az alacsony letéttel rendelkező támadóktól. A kifinomultabb pattogó és kiegyenlítő támadások szintén nem valószínű, hogy sikerrel járnak, mivel a valós hálózati feltételek miatt nehéz elérni az üzenetek kézbesítésének szabályozását a validátorok meghatározott részhalmazaihoz, és a klienscsapatok egyszerű javításokkal lezárták az ismert pattogó, kiegyenlítő és lavinatámadási vektorokat. -A 34%-os, 51%-os vagy 66%-os támadások sávon kívüli társadalmi koordinációt igényelnek a megoldásához. Bár ez valószínűleg fájdalmas lenne a közösség számára, a sávon kívüli válaszadás képessége erős visszatartó erőt jelent a támadóknak. Az Ethereum közösségi rétege a végső biztosíték – egy technikailag sikeres támadást még mindig ki lehet iktatni azzal, hogy a közösség elfogad egy becsületes elágazást. A támadó és az Ethereum közösség versenyt futna – a 66%-os támadásra költött dollármilliárdokat egy sikeres közösségi koordináció eltörölné, ha elég gyorsan végzik, így a támadó rengeteg nem likvid etherrel maradna egy tisztességtelen láncon, amelyet az Ethereum közösség figyelmen kívül hagy. Alacsony a valószínűsége, hogy ez a támadónak végül nyereséget hoz, ezért hatékony visszatartóerőt jelent. Ezért olyan fontos a szorosan összehangolt értékekkel rendelkező, összetartó közösségi réteg fenntartása. +A 34%-os, 51%-os vagy 66%-os támadások sávon kívüli társadalmi koordinációt igényelnek a megoldásához. Bár ez valószínűleg fájdalmas lenne a közösség számára, a sávon kívüli válaszadás képessége erős visszatartó erőt jelent a támadóknak. Az Ethereum közösségi rétege a végső biztosíték – egy technikailag sikeres támadást még mindig ki lehet iktatni azzal, hogy a közösség elfogad egy becsületes elágazást. A támadó és az Ethereum-közösség versenyt futna – a 66%-os támadásra költött dollármilliárdokat egy sikeres közösségi koordináció eltörölné, ha elég gyorsan végzik, így a támadó rengeteg nem likvid etherrel maradna egy tisztességtelen láncon, amelyet az Ethereum-közösség figyelmen kívül hagy. Alacsony a valószínűsége, hogy ez a támadónak végül nyereséget hoz, ezért hatékony visszatartóerőt jelent. Ezért olyan fontos a szorosan összehangolt értékekkel rendelkező, összetartó közösségi réteg fenntartása. ## További olvasnivaló {#further-reading} -- [A jelen írás részletesebb változata](https://mirror.xyz/jmcook.eth/YqHargbVWVNRQqQpVpzrqEQ8IqwNUJDIpwRP7SS5FXs) +- [A jelen oldal hosszabb verziója](https://mirror.xyz/jmcook.eth/YqHargbVWVNRQqQpVpzrqEQ8IqwNUJDIpwRP7SS5FXs) - [Vitalik az elszámolási véglegességről](https://blog.ethereum.org/2016/05/09/on-settlement-finality/) -- [Az LMD GHOST leírása](https://arxiv.org/abs/2003.03052) -- [A Casper-FFG leírása](https://arxiv.org/abs/1710.09437) -- [A Gasper leírása](https://arxiv.org/pdf/2003.03052.pdf) -- [A javaslattevő-erősítéses konszenzus specifikációi](https://github.com/ethereum/consensus-specs/pull/2730) +- [LMD GHOST-dokumentáció](https://arxiv.org/abs/2003.03052) +- [Casper-FFG dokumentáció](https://arxiv.org/abs/1710.09437) +- [Gasper-dokumentáció](https://arxiv.org/pdf/2003.03052.pdf) +- [A javaslattevő-súlynövelés (proposer-weight boosting) konszenzus dokumentációja](https://github.com/ethereum/consensus-specs/pull/2730). - [Pattogó támadások az ethresear.ch oldalon](https://ethresear.ch/t/prevention-of-bouncing-attack-on-ffg/6114) - [SSLE-kutatás](https://ethresear.ch/t/secret-non-single-leader-election/11789) diff --git a/public/content/translations/hu/developers/docs/consensus-mechanisms/pos/keys/index.md b/public/content/translations/hu/developers/docs/consensus-mechanisms/pos/keys/index.md index bc2fcecc6fb..1e0dfa3fbca 100644 --- a/public/content/translations/hu/developers/docs/consensus-mechanisms/pos/keys/index.md +++ b/public/content/translations/hu/developers/docs/consensus-mechanisms/pos/keys/index.md @@ -56,6 +56,8 @@ A validátorkulcsok és az Ethereum-számlakulcsok szétválasztása lehetővé ![validátorkulcs ábrája](validator-key-schematic.png) +**Megjegyzés**: A letétbe helyezésből való kilépéshez és a validátor egyenlegének visszavonásához jelenleg egy [önkéntes kilépési üzenet (VEM)](https://mirror.xyz/ladislaus.eth/wmoBbUBes2Wp1_6DvP6slPabkyujSU7MZOFOC3QpErs&1) aláírása szükséges a validátorkulccsal. Az [EIP-7002](https://eips.ethereum.org/EIPS/eip-7002) azonban egy olyan javaslat, amely lehetővé teszi a felhasználó számára, hogy a jövőben a kilépési üzeneteknek a kivételi kulccsal történő aláírásával elindítsa a validátor kilépését és kivegye az egyenlegét. Ez csökkenti a bizalomigényt, mivel azok a letétesek, akik az ETH-t [letétbe helyezési szolgáltatóknak](https://ethereum.org/en/staking/saas/#what-is-staking-as-a-service) delegálják, továbbra is ellenőrzésük alatt tarthatják pénzeszközeiket. + ## Kulcsok származtatása egy kulcsmondatból {#deriving-keys-from-seed} Ha minden 32 ETH feltöltéséhez 2 független kulcsból álló új készletre lenne szükség, a kulcskezelés nehézkessé válna, különösen a több validátort futtató felhasználók számára. Ehelyett több validátorkulcsot lehet egyetlen titokból levezetni, és ennek a titoknak a tárolása lehetővé teszi a hozzáférést több validátorkulcshoz. @@ -94,3 +96,5 @@ Az egyes ágakat `/` választja el egymástól, így `m/2` azt jelenti, hogy a m - [Ethereum Alapítvány blogbejegyzés Carl Beekhuizentől](https://blog.ethereum.org/2020/05/21/keys/) - [EIP-2333 BLS12-381 kulcsgenerálás](https://eips.ethereum.org/EIPS/eip-2333) +- [EIP-7002: A végrehajtási réteg által indított kilépések](https://research.2077.xyz/eip-7002-unpacking-improvements-to-staking-ux-post-merge) +- [Kulcskezelés méretarányosan](https://docs.ethstaker.cc/ethstaker-knowledge-base/scaled-node-operators/key-management-at-scale) diff --git a/public/content/translations/hu/developers/docs/consensus-mechanisms/pos/rewards-and-penalties/index.md b/public/content/translations/hu/developers/docs/consensus-mechanisms/pos/rewards-and-penalties/index.md index d8fadbe143f..626c7ae691a 100644 --- a/public/content/translations/hu/developers/docs/consensus-mechanisms/pos/rewards-and-penalties/index.md +++ b/public/content/translations/hu/developers/docs/consensus-mechanisms/pos/rewards-and-penalties/index.md @@ -74,7 +74,7 @@ Ha ezeket a műveleteket észlelik, a validátort súlyosan megbüntetik. Ez azt ## Inaktivitási elszivárgás {#inactivity-leak} -Ha a konszenzusréteg több mint négy korszakot tölt el véglegesítés nélkül, akkor egy „inaktivitási szivárgás” vészhelyzeti protokoll aktiválódik. Az inaktivitási elszivárgás célja, hogy megteremtse a lánc véglegessé válásához szükséges feltételeket. A véglegességhez a teljes feltett ether 2/3-os többsége szükséges ahhoz, hogy a forrás- és célellenőrzési pontok megegyezzenek. Ha a validátorok több mint 1/3-a offline állapotba kerül, vagy nem küld helyes tanúsításokat, akkor nem lehetséges, hogy a 2/3-os szupertöbbség véglegesítse az ellenőrzési pontokat. Az inaktivitási elszivárgás lehetővé teszi, hogy az inaktív validátorok letétje fokozatosan elszivárogjon addig, amíg a hozzájuk tartozó letét 1/3 alá csökkent, így a megmaradt aktív validátorok véglegesíthetik a láncot. Bármilyen nagy is legyen az inaktív validátorok csoportja, a megmaradó aktív validátorok végül a letét >2/3-át birtokolják. A letét elvesztése erősen ösztönzi az inaktív érvényesítőket arra, hogy minél hamarabb újra aktiválódjanak! A Medalla teszthálózaton életbe lépett már az inaktivitási elszivárgás, amikor is az aktív validátorok \<66%-a képes volt konszenzusra jutni a blokklánc aktuális fejével kapcsolatban. Az inaktivitási elszivárgás aktiválódott, és a véglegesség végül helyreállt! +Ha a konszenzusréteg több mint négy korszakot tölt el véglegesítés nélkül, akkor egy „inaktivitási szivárgás” vészhelyzeti protokoll aktiválódik. Az inaktivitási elszivárgás célja, hogy megteremtse a lánc véglegessé válásához szükséges feltételeket. A véglegességhez a teljes feltett ether 2/3-os többsége szükséges ahhoz, hogy a forrás- és célellenőrzési pontok megegyezzenek. Ha a validátorok több mint 1/3-a offline állapotba kerül, vagy nem küld helyes tanúsításokat, akkor nem lehetséges, hogy a 2/3-os szupertöbbség véglegesítse az ellenőrzési pontokat. Az inaktivitási elszivárgás lehetővé teszi, hogy az inaktív validátorok letétje fokozatosan elszivárogjon addig, amíg a hozzájuk tartozó letét 1/3 alá csökkent, így a megmaradt aktív validátorok véglegesíthetik a láncot. Bármilyen nagy is legyen az inaktív validátorok csoportja, a megmaradó aktív validátorok végül a letét >2/3-át birtokolják. A letét elvesztése erősen ösztönzi az inaktív érvényesítőket arra, hogy minél hamarabb újra aktiválódjanak! A Medalla teszthálózaton életbe lépett már az inaktivitási elszivárgás, amikor is az aktív validátorok <66%-a képes volt konszenzusra jutni a blokklánc aktuális fejével kapcsolatban. Az inaktivitási elszivárgás aktiválódott, és a véglegesség végül helyreállt! A konszenzusmechanizmus jutalom-, büntetés- és súlyos büntetési konstrukciója arra ösztönzi a validáltorokat, hogy jóhiszeműen viselkedjenek. Ezekből a tervezési döntésekből következik, hogy a rendszer érdekében a validátoroknak egyenlően kell megoszlaniuk a kliens között, és fel kell oldani az egyklienses dominanciát. @@ -84,6 +84,8 @@ A konszenzusmechanizmus jutalom-, büntetés- és súlyos büntetési konstrukci - [Ösztönzők az Ethereum hibrid Casper-protokolljában](https://arxiv.org/pdf/1903.04205.pdf) - [Vitalik jegyzetekkel ellátott specifikációja](https://github.com/ethereum/annotated-spec/blob/master/phase0/beacon-chain.md#rewards-and-penalties-1) - [Eth2 – a súlyos büntetés elkerülésének módjai](https://medium.com/prysmatic-labs/eth2-slashing-prevention-tips-f6faa5025f50) +- [EIP-7251 magyarázata: A validátorok maximális effektív egyenlegének növelése](https://research.2077.xyz/eip-7251_Increase_MAX_EFFECTIVE_BALANCE) +- [Súlyos büntetés és kizárás elemzése az EIP-7251 kapcsán](https://ethresear.ch/t/slashing-penalty-analysis-eip-7251/16509) _Források_ diff --git a/public/content/translations/hu/developers/docs/data-availability/blockchain-data-storage-strategies/index.md b/public/content/translations/hu/developers/docs/data-availability/blockchain-data-storage-strategies/index.md index c7b8f49436f..358f3b7d69f 100644 --- a/public/content/translations/hu/developers/docs/data-availability/blockchain-data-storage-strategies/index.md +++ b/public/content/translations/hu/developers/docs/data-availability/blockchain-data-storage-strategies/index.md @@ -63,7 +63,7 @@ A calldata azokat a bájtokat jelenti, melyeket a tranzakció részeként külde Így lehet a legolcsóbban adatot tenni a blokkba állandó tárolásra. A bájtonkénti költsége 4 végrehajtási gáz (ha a bájt nulla) vagy 16 gáz (minden más értéknél). Ha az adat tömörítve van, ami egy bevett gyakorlat, akkor minden bájtérték ugyanolyan valószínű, így az átlagköltség kb. 15,95 gáz bájtonként. -A jelen írás idején az ár 12 gwei/gáz és 2300 $/ETH, mely szerint a költség kb. 45 cent kilóbájtonként. Mivel az EIP-4844 előtt ez volt a legolcsóbb módszer, ezért a rollupok így tárolták a tranzakciós információkat, hogy azok elérhetők legyenek a [hiba kivizsgálásra](https://docs.optimism.io/stack/protocol/overview#fault-proofs), de nem kell azokat közvetlenül elérni a láncon. +A jelen írás idején az ár 12 gwei/gáz és 2300 $/ETH, mely szerint a költség kb. 45 cent kilobájtonként. Mivel az EIP-4844 előtt ez volt a legolcsóbb módszer, ezért a rollupok így tárolták a tranzakciós információkat, hogy azok elérhetők legyenek a [hiba kivizsgálásra](https://docs.optimism.io/stack/protocol/overview#fault-proofs), de nem kell azokat közvetlenül elérni a láncon. A következőben láthatóak azok a címek, melyekre néhány ismert rollup posztolja a tranzakciókat. diff --git a/public/content/translations/hu/developers/docs/data-availability/index.md b/public/content/translations/hu/developers/docs/data-availability/index.md index bcf0000a064..f9f81c6d038 100644 --- a/public/content/translations/hu/developers/docs/data-availability/index.md +++ b/public/content/translations/hu/developers/docs/data-availability/index.md @@ -74,11 +74,12 @@ Az Ethereum alapprotokollja elsősorban az adatelérhetőséggel foglalkozik, ne - [Mi az az adatelérhetőség?](https://medium.com/blockchain-capital-blog/wtf-is-data-availability-80c2c95ded0f) - [Mit jelent az adatelérhetőség?](https://coinmarketcap.com/alexandria/article/what-is-data-availability) -- [Az Ethereum-láncon kívüli adatelérhetőségi helyzete](https://blog.celestia.org/ethereum-off-chain-data-availability-landscape/) +- [Az Ethereum-láncon kívüli adatelérhetőségi helyzete](https://blog.celestia.org/ethereum-offchain-data-availability-landscape/) - [Az adatelérhetőség ellenőrzésére vonatkozó útmutató](https://dankradfeist.de/ethereum/2019/12/20/data-availability-checks.html) - [A sharding + DAS javaslat magyarázata](https://hackmd.io/@vbuterin/sharding_proposal#ELI5-data-availability-sampling) - [Megjegyzés az adatelérhetőségről és a törlési kódolásról](https://github.com/ethereum/research/wiki/A-note-on-data-availability-and-erasure-coding#can-an-attacker-not-circumvent-this-scheme-by-releasing-a-full-unavailable-block-but-then-only-releasing-individual-bits-of-data-as-clients-query-for-them) - [Adatelérhetőségi bizottságok.](https://medium.com/starkware/data-availability-e5564c416424) - [Proof-of-stake típusú adatelérhetőségi bizottságok.](https://blog.matter-labs.io/zkporter-a-breakthrough-in-l2-scaling-ed5e48842fbf) - [Megoldások az adatvisszakereshetőségi problémára](https://notes.ethereum.org/@vbuterin/data_sharding_roadmap#Who-would-store-historical-data-under-sharding) -- [Adatelérhetőség vagy hogyan tanulták meg az összevont tranzakciók, hogy ne aggódjanak és szeressék az Ethereumot](https://ethereum2077.substack.com/p/data-availability-in-ethereum-rollups) +- [Adatelérhetőség vagy hogyan tanulták meg az összevont tranzakciók, hogy ne aggódjanak és szeressék az Ethereumot](https://research.2077.xyz/data-availability-or-how-rollups-learned-to-stop-worrying-and-love-ethereum) +- [EIP-7623: A Calldata-költség növelése](https://research.2077.xyz/eip-7623-increase-calldata-cost) diff --git a/public/content/translations/hu/developers/docs/data-structures-and-encoding/patricia-merkle-trie/index.md b/public/content/translations/hu/developers/docs/data-structures-and-encoding/patricia-merkle-trie/index.md index 255ceabf37f..36fbac640a3 100644 --- a/public/content/translations/hu/developers/docs/data-structures-and-encoding/patricia-merkle-trie/index.md +++ b/public/content/translations/hu/developers/docs/data-structures-and-encoding/patricia-merkle-trie/index.md @@ -34,33 +34,33 @@ Különbség van aközött, hogy valamit a fában vagy az alapjául szolgáló k A radix-fák frissítési és törlési műveletei a következőképpen definiálhatók: ``` - def update(node,path,value): - curnode = db.get(node) if node else [ NULL ] * 17 + def update(node_hash, path, value): + curnode = db.get(node_hash) if node_hash else [ NULL ] * 17 newnode = curnode.copy() if path == '': newnode[-1] = value else: - newindex = update(curnode[path[0]],path[1:],value) + newindex = update(curnode[path[0]], path[1:], value) newnode[path[0]] = newindex - db.put(hash(newnode),newnode) + db.put(hash(newnode), newnode) return hash(newnode) - def delete(node,path): - if node is NULL: + def delete(node_hash, path): + if node_hash is NULL: return NULL else: - curnode = db.get(node) + curnode = db.get(node_hash) newnode = curnode.copy() if path == '': newnode[-1] = NULL else: - newindex = delete(curnode[path[0]],path[1:]) + newindex = delete(curnode[path[0]], path[1:]) newnode[path[0]] = newindex if all(x is NULL for x in newnode): return NULL else: - db.put(hash(newnode),newnode) + db.put(hash(newnode), newnode) return hash(newnode) ``` @@ -137,10 +137,10 @@ Példák: Ez a Merkle Patricia-fa egy csomópontjának megadásához szükséges bővített kód: ``` - def get_helper(node,path): - if path == []: return node - if node = '': return '' - curnode = rlp.decode(node if len(node) < 32 else db.get(node)) + def get_helper(node_hash,path): + if path == []: return node_hash + if node_hash == '': return '' + curnode = rlp.decode(node_hash if len(node_hash) < 32 else db.get(node_hash)) if len(curnode) == 2: (k2, v2) = curnode k2 = compact_decode(k2) @@ -151,13 +151,13 @@ Ez a Merkle Patricia-fa egy csomópontjának megadásához szükséges bővítet elif len(curnode) == 17: return get_helper(curnode[path[0]],path[1:]) - def get(node,path): + def get(node_hash,path): path2 = [] for i in range(len(path)): path2.push(int(ord(path[i]) / 16)) path2.push(ord(path[i]) % 16) path2.push(16) - return get_helper(node,path2) + return get_helper(node_hash,path2) ``` ### Példa fa {#example-trie} diff --git a/public/content/translations/hu/developers/docs/design-and-ux/index.md b/public/content/translations/hu/developers/docs/design-and-ux/index.md index a87a3031daf..288a7745a27 100644 --- a/public/content/translations/hu/developers/docs/design-and-ux/index.md +++ b/public/content/translations/hu/developers/docs/design-and-ux/index.md @@ -21,32 +21,173 @@ A hatékony tervezés túlmutat a vizuálisan vonzó felhasználói felületek l Ez a web3-ban végzett felhasználói kutatások válogatott listája, amely segíthet a tervezési és termékdöntésekben, vagy inspirációként szolgálhat saját tanulmányok készítéséhez. -| Fókuszterület | Név | -|:----------------------------------------------------------------- |:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Bevezetés a kriptóba | [The WalletConnect Pulse 2024: Crypto fogyasztói hangulat & használat](https://walletconnect.com/pulse-2024-crypto-consumer-report) | -| Bevezetés a kriptóba | [CRADL: UX a kriptovaluták világában](https://docs.google.com/presentation/d/1s2OPSH5sMJzxRYaJSSRTe8W2iIoZx0PseIV-WeZWD1s/edit?usp=sharing) | -| Bevezetés a kriptóba | [CRADL: Bevezetés a kriptovaluták világába](https://docs.google.com/presentation/d/1R9nFuzA-R6SxaGCKhoMbE4Vxe0JxQSTiHXind3LVq_w/edit?usp=sharing) | -| Bevezetés a kriptóba | [Bitcoin UX riport](https://github.com/patestevao/BitcoinUX-report/blob/master/report.md) | -| Bevezetés a kriptóba | [ConSensys: A web3 helyzete világszerte 2023-ban](https://consensys.io/insight-report/web3-and-crypto-global-survey-2023) | -| Bevezetés a kriptóba | [NEAR: Az elfogadás felé vezető út felgyorsítása](https://drive.google.com/file/d/1VuaQP4QSaQxR5ddQKTMGI0b0rWdP7uGn/view) | -| Letétbe helyezés | [OpenUX: Rocket Pool csomópont-operátor UX](https://storage.googleapis.com/rocketpool/RocketPool-NodeOperator-UX-Report-Jan-2024.pdf) | -| Letétbe helyezés | [Staking: Főbb trendek, tanulságok és előrejelzések – Eth Staker](https://lookerstudio.google.com/u/0/reporting/cafcee00-e1af-4148-bae8-442a88ac75fa/page/p_ja2srdhh2c?s=hmbTWDh9hJo) | -| Letétbe helyezés | [Többalkalmazásos letétbe helyezés](https://github.com/threshold-network/UX-User-Research/blob/main/Multi-App%20Staking%20(MAS)/iterative-user-study/MAS%20Iterative%20User%20Study.pdf) | -| DAO | [2022-es DAO-kutatás frissítése: Mire van szüksége a DAO-építőknek?](https://blog.aragon.org/2022-dao-research-update/) | -| DeFi | [A DeFi helyzete 2024-ben](https://stateofdefi.org/) (folyamatos felmérés) | -| DeFi | [Fedezeti alapok](https://github.com/threshold-network/UX-User-Research/tree/main/Keep%20Coverage%20Pool) | -| DeFi | [ConSensys: DeFi felhasználói kutatási riport 2022-ben](https://cdn2.hubspot.net/hubfs/4795067/ConsenSys%20Codefi-Defi%20User%20ResearchReport.pdf) | -| Metaverzum | [Metaverse: Felhasználói kutatási riport](https://www.politico.com/f/?id=00000187-7685-d820-a7e7-7e85d1420000) | -| Metaverzum | [Szafarira megyünk: Felhasználók kutatása a Metaverzumban](https://archive.devcon.org/archive/watch/6/going-on-safari-researching-users-in-the-metaverse/?tab=YouTube) (videó, 27 perc) | -| Az Ethereum.org UX-statisztikái | [Használhatósági és felhasználói elégedettségi felmérés – Ethereum.org](https://lookerstudio.google.com/reporting/0a189a7c-a890-40db-a5c6-009db52c81c9) | + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Fókuszterület + + Név +
+ Bevezetés a kriptóba + + The Reown Pulse 2024: Fogyasztói hangulat a kriptó világában & használat +
+ Bevezetés a kriptóba + + CRADL: UX a kriptovaluták világában +
+ Bevezetés a kriptóba + + CRADL: Bevezetés a kriptovaluták világába +
+ Bevezetés a kriptóba + + Bitcoin UX riport +
+ Bevezetés a kriptóba + + ConSensys: A web3 helyzete világszerte 2023-ban +
+ Bevezetés a kriptóba + + NEAR: Az elfogadás felé vezető út felgyorsítása +
+ Letétbe helyezés + + OpenUX: Rocket Pool csomópont-operátor UX +
+ Letétbe helyezés + + Staking: Főbb trendek, tanulságok és előrejelzések – Eth Staker +
+ Letétbe helyezés + + Többalkalmazásos letétbe helyezés +
+ DAO + + 2022-es DAO-kutatás frissítése: Mire van szüksége a DAO-építőknek? +
+ DeFi + + Fedezeti alapok +
+ DeFi + + ConSensys: DeFi felhasználói kutatási riport 2022-ben +
+ Metaverzum + + Metaverse: Felhasználói kutatási riport +
+ Metaverzum + + Szafarira megyünk: Felhasználók kutatása a Metaverzumban (videó, 27 perc) +
+ Az Ethereum.org UX-statisztikái + + Használhatósági és felhasználói elégedettségi felmérés – Ethereum.org +
## Web3-tervezés {#design-for-web3} - [Web3 UX tervezési kézikönyv](https://web3ux.design/) - Gyakorlati útmutató a web3 alkalmazások tervezéséhez - [Web3-tervezési alapelvek](https://medium.com/@lyricalpolymath/web3-design-principles-f21db2f240c1) – UX-szabályok keretrendszere a blokkláncalapú dappok számára - [Blokklánc dizájnelvek](https://medium.com/design-ibm/blockchain-design-principles-599c5c067b6e) – Az IBM-blokklánc tervezői csapatának tanulságai -- [Web3 tervezési minták](https://www.web3designpatterns.io/) – Valódi web3 termékekből származó tervezési minták gyűjteménye -- [W3design.io](https://w3design.io/) – Az ökoszisztéma különböző projektjeinek UI-folyamataiból összeállított könyvtár - [Neueux.com](https://neueux.com/apps) – UI-könyvtár felhasználói folyamatok változatos szűrési lehetőségekkel - [A web3 használhatóságának válsága: Amit tudnia kell!](https://www.youtube.com/watch?v=oBSXT_6YDzg) – Panelbeszélgetés a fejlesztőközpontú projektépítés buktatóiról (videó, 34 perc) @@ -58,7 +199,6 @@ Ez a web3-ban végzett felhasználói kutatások válogatott listája, amely seg ## Web3-tervezési esettanulmányok {#design-case-studies} - [Deep Work Studio](https://deepwork.studio/case-studies/) -- [A Crypto UX kézikönyve](https://www.cryptouxhandbook.com/) - [NFT eladás az OpenSea platformon](https://builtformars.com/case-studies/opensea) - [Wallet UX-kibontás a tárcák megváltoztatásáról](https://www.youtube.com/watch?v=oTpuxYj8JWI&ab_channel=ETHDenver) (videó, 20 perc) @@ -74,18 +214,17 @@ Vegyen részt a szakmai közösség által irányított szervezetekben, vagy csa - [Vectordao.com](https://vectordao.com/) - [Deepwork.studio](https://www.deepwork.studio/) -- [Designer-dao.xyz](https://www.designer-dao.xyz/) - [We3.co](https://we3.co/) - [Openux.xyz](https://openux.xyz/) - [Nyílt forráskódú Web3Design](https://www.web3designers.org/) -## Tervezési rendszerek {#design-systems} +## Dizájnrendszerek és más dizájnforrások {#design-systems-and-resources} -- [Optimism Design](https://www.figma.com/@optimism) (Figma) +- [Optimizmustervezés](https://www.figma.com/@optimism) (Figma) - [Ethereum.org tervezési rendszer](https://www.figma.com/@ethdotorg) (Figma) - [Finity – a Polygon tervezési rendszere](https://www.figma.com/community/file/1073921725197233598/finity-design-system) (Figma) - [Kleros tervezési rendszer](https://www.figma.com/community/file/999852250110186964/kleros-design-system) (Figma) -- [Safe Design System](https://www.figma.com/community/file/1337417127407098506/safe-design-system) (Figma) +- [Biztonságos tervezési rendszer](https://www.figma.com/community/file/1337417127407098506/safe-design-system) (Figma) - [ENS tervezési rendszer](https://thorin.ens.domains/) - [Mirror tervezési rendszer](https://degen-xyz.vercel.app/) diff --git a/public/content/translations/hu/developers/docs/networking-layer/network-addresses/index.md b/public/content/translations/hu/developers/docs/networking-layer/network-addresses/index.md index 79417cf574c..4857b452f31 100644 --- a/public/content/translations/hu/developers/docs/networking-layer/network-addresses/index.md +++ b/public/content/translations/hu/developers/docs/networking-layer/network-addresses/index.md @@ -35,4 +35,6 @@ Az Ethereum Node Records (ENR) a hálózati címek szabványosított formátuma ## További olvasnivaló {#further-reading} -[EIP-778: Ethereum Node Records (ENR)](https://eips.ethereum.org/EIPS/eip-778) [Hálózati címek az Ethereumban](https://dean.eigenmann.me/blog/2020/01/21/network-addresses-in-ethereum/) [LibP2P: Multiaddr-Enode-ENR?!](https://consensys.net/diligence/blog/2020/09/libp2p-multiaddr-enode-enr/) +- [EIP-778: Ethereum-csomópontfeljegyzések (ENR)](https://eips.ethereum.org/EIPS/eip-778) +- [Hálózati címek az Ethereumban](https://dean.eigenmann.me/blog/2020/01/21/network-addresses-in-ethereum/) +- [LibP2P: Multiaddr-Enode-ENR?!](https://consensys.net/diligence/blog/2020/09/libp2p-multiaddr-enode-enr/) diff --git a/public/content/translations/hu/developers/docs/networking-layer/portal-network/index.md b/public/content/translations/hu/developers/docs/networking-layer/portal-network/index.md index 8bd27eb3b43..4dd32ec7631 100644 --- a/public/content/translations/hu/developers/docs/networking-layer/portal-network/index.md +++ b/public/content/translations/hu/developers/docs/networking-layer/portal-network/index.md @@ -82,7 +82,7 @@ A több független kliensimplementáció növeli az Ethereum-hálózat rugalmass Ha az egyik kliensnél problémák vagy sebezhetőségek merülnek fel, a többi kliens zavartalanul működhet tovább, megelőzve az egyetlen hibapont kialakulását. Emellett az eltérő klienshasználat elősegíti az innovációt és a versenyt, ösztönzi a fejlesztéseket és csökkenti a monokultúra kockázatát az ökoszisztémán belül. -## További olvasnivaló {#futher-reading} +## További olvasnivaló {#further-reading} - [A Portal Network (Piper Merriam előadása a Devconon, Bogotában)](https://www.youtube.com/watch?v=0stc9jnQLXA). - [A Portal Network Discord csatornája](https://discord.gg/CFFnmE7Hbs) diff --git a/public/content/translations/hu/developers/docs/oracles/index.md b/public/content/translations/hu/developers/docs/oracles/index.md index 4d5be1d51fb..eb6703731b6 100644 --- a/public/content/translations/hu/developers/docs/oracles/index.md +++ b/public/content/translations/hu/developers/docs/oracles/index.md @@ -200,7 +200,7 @@ contract Oracle { Az orákulum-csomópont az orákulumszolgáltatás láncon kívüli összetevője. Információkat szerez külső forrásokból, például harmadik fél szerverein tárolt API-okból, és a láncon belülre helyezi, hogy az okosszerződések felhasználhassák azokat. Az orákulum-csomópontok figyelik a láncon belüli orákulumszerződés eseményeit, és folytatják a naplóban leírt feladat elvégzését. -Az orákulum-csomópontok gyakori feladata, hogy [HTTP GET](https://www.w3schools.com/tags/ref_httpmethods.asp) kérést küldjenek egy API-szolgáltatáshoz, elemezzék a választ a releváns adatok kinyeréséhez, formázzák az adatokat a blokklánc által olvasható kimenetté, és elküldjék a láncon belül egy tranzakcióba foglalva az orákulumszerződéshez. Az orákulum-csomópontnak a benyújtott információk érvényességét és sértetlenségét „hitelességi bizonyítékok” segítségével is igazolnia kell, amelyeket később vizsgálunk meg. +Az orákulum-csomópontok gyakori feladata, hogy [HTTP GET](https://www.w3schools.com/tags/ref_httpmethods.asp) kérést küldjenek egy API-szolgáltatásnak, elemezzék a választ a releváns adatok kinyeréséhez, formázzák az adatokat a blokklánc által olvasható kimenetté, és elküldjék a láncon belül egy tranzakcióba foglalva az orákulumszerződéshez. Az orákulum-csomópontnak a benyújtott információk érvényességét és sértetlenségét „hitelességi bizonyítékok” segítségével is igazolnia kell, amelyeket később vizsgálunk meg. A számítási orákulumok a láncon kívüli csomópontokra is támaszkodnak olyan számítási feladatok elvégzésében, amelyeket a láncon belül nem lenne célszerű végrehajtani, tekintettel a gázköltségekre és a blokkméretkorlátokra. Az orákulum-csomópont feladata lehet például egy ellenőrizhetően véletlenszerű szám előállítása (például blokkláncalapú játékok esetében). @@ -264,7 +264,7 @@ A decentralizált orákulumok bizonyos osztályai megkövetelik, hogy az orákul #### Az információk konszenzusalapú validálása {#consensus-based-validation-of-information} -A centralizált orákulumok az igazság egyetlen forrására támaszkodnak, amikor adatokat szolgáltatnak az okosszerződéseknek, ami magában hordozza a pontatlan információk közzétételének lehetőségét. A decentralizált orákulumok úgy oldják meg ezt a problémát, hogy több orákulum-csomópontra támaszkodva kérdezik le a láncon kívüli információkat. A több forrásból származó adatok összehasonlításával a decentralizált orákulumok csökkentik azt a kockázatot, hogy az érvénytelen információkat adnak a láncon belüli szerződéseknek. +A centralizált orákulumok az igazság egyetlen forrására támaszkodnak, amikor adatokat szolgáltatnak az okosszerződéseknek, ami magában hordozza a pontatlan információk közzétételének lehetőségét. A decentralizált orákulumok úgy oldják meg ezt a problémát, hogy több orákulum-csomópontra támaszkodva kérdezik le a láncon kívüli információkat. A több forrásból származó adatok összehasonlításával a decentralizált orákulumok csökkentik azt a kockázatot, hogy érvénytelen információkat adjanak a láncon belüli szerződéseknek. A decentralizált orákulumoknak azonban kezelniük kell a több, láncon kívüli forrásból származó információk közötti eltéréseket. Az információkülönbségek minimalizálása és annak biztosítása érdekében, hogy az orákulumszerződéshez továbbított adatok az orákulum-csomópontok kollektív véleményét tükrözzék, a decentralizált orákulumok a következő mechanizmusokat használják: @@ -284,7 +284,7 @@ Ennek egyik korai ötlete volt a [SchellingCoin](https://blog.ethereum.org/2014/ Bár SchellingCoin ma még nem létezik, számos decentralizált orákulum – nevezetesen a [Maker Protocol's Oracles](https://docs.makerdao.com/smart-contract-modules/oracle-module) – használja a schelling-pont mechanizmust az orákulumadatok pontosságának javítására. Minden Maker Oracle csomópont két komponensből áll: a csomópontok („közvetítők” és „ellátók/betáplálók”) láncon kívüli peer-to-peer (P2P) hálózatból, amelyek a biztosítéki eszközök piaci árait megadják, valamint egy láncon belüli „Medianizer” szerződésből, amely kiszámítja a megadott értékek mediánját. A megadott késleltetési időszak lejártával ez a mediánérték lesz a kapcsolódó eszköz új referenciaára. -További példák a Schelling-pont mechanizmusokat használó orákulumokra: [Chainlink Off-Chain Reporting](https://docs.chain.link/docs/off-chain-reporting/) és [Witnet](https://witnet.io/). Mindkét rendszerben a peer-to-peer hálózat orákulum-csomópontjaitól érkező válaszokat egyetlen összesített értékké, például átlagértékké vagy mediánná aggregálják. A csomópontokat aszerint jutalmazzák vagy büntetik, hogy válaszaik milyen mértékben igazodnak az összesített értékhez vagy térnek el attól. +További példák a Schelling-pont mechanizmusokat használó orákulumokra: [Chainlink Off-Chain Reporting](https://docs.chain.link/docs/offchain-reporting/) és [Witnet](https://witnet.io/). Mindkét rendszerben a peer-to-peer hálózat orákulum-csomópontjaitól érkező válaszokat egyetlen összesített értékké, például átlagértékké vagy mediánná aggregálják. A csomópontokat aszerint jutalmazzák vagy büntetik, hogy válaszaik milyen mértékben igazodnak az összesített értékhez vagy térnek el attól. A Schelling-pont mechanizmusok azért vonzók, mert minimalizálják a láncon belüli lábnyomot (egy tranzakció kell hozzá), miközben garantálják a decentralizációt. Ez utóbbi azért lehetséges, mert a csomópontoknak alá kell írniuk a benyújtott válaszok listáját, mielőtt az bekerül az átlag/középértéket előállító algoritmusba. @@ -388,6 +388,8 @@ Többféle orákulumalkalmazást is integrálhat az Ethereum dappba: **[Chainlink](https://chain.link/)** – _A Chainlink decentralizált orákulumhálózatok hamisításbiztos bemeneteket, kimeneteket és számításokat biztosítanak a fejlett okosszerződések támogatásához bármely blokkláncon._ +**[RedStone Oracles](https://redstone.finance/)** - _A RedStone egy decentralizált moduláris orákulum, amely gázoptimalizált adatátvitelt biztosít. A cég arra specializálódott, hogy árfolyam-előfizetéseket kínáljon a feltörekvő eszközökhöz, mint például a likvid letéti tokenek (LST), likvid újraletétbe helyezési tokenek (LRT) és Bitcoin letéti derivatívák._ + **[Chronicle](https://chroniclelabs.org/)** - _A Chronicle megoldja a láncon belüli adatátvitel jelenlegi korlátait azáltal, hogy valóban skálázható, költséghatékony, decentralizált és ellenőrizhető orákulumokat készít._ **[Witnet](https://witnet.io/)** – _A Witnet egy engedély nélküli, decentralizált és cenzúrának ellenálló orákulum, amely segíti az okosszerződéseket, hogy erős kriptogazdasági garanciákkal reagáljanak a valós világ eseményeire._ @@ -404,7 +406,7 @@ Többféle orákulumalkalmazást is integrálhat az Ethereum dappba: **[API3 DAO](https://www.api3.org/)** – _Az API3 DAO olyan, első féltől származó orákulummegoldásokat kínál, amelyek nagyobb forrásátláthatóságot, biztonságot és skálázhatóságot biztosítanak egy decentralizált megoldásában az okosszerződések számára._ -**[Supra](https://supra.com/)** - Egy vertikálisan integrált eszközrendszer a láncok közötti megoldások számára, amely összekapcsolja az összes blokkláncot, legyen az publikus (L1-ek és L2-k) vagy privát (vállalati), decentralizáltorákulum-árfolyamadatokat biztosítva, melyet láncon belüli és kívüli projektek is használhatnak. +**[Supra](https://supra.com/)** – Egy vertikálisan integrált eszközrendszer a láncok közötti megoldások számára, amely összekapcsolja az összes blokkláncot, legyen az publikus (L1-ek és L2-k) vagy privát (vállalati), decentralizáltorákulum-árfolyamadatokat biztosítva, melyet láncon belüli és kívüli projektek is használhatnak. ## További olvasnivaló {#further-reading} diff --git a/public/content/translations/hu/developers/docs/smart-contracts/formal-verification/index.md b/public/content/translations/hu/developers/docs/smart-contracts/formal-verification/index.md index fe656d69d52..0bed3dc1c62 100644 --- a/public/content/translations/hu/developers/docs/smart-contracts/formal-verification/index.md +++ b/public/content/translations/hu/developers/docs/smart-contracts/formal-verification/index.md @@ -70,7 +70,7 @@ Az alacsony szintű formális specifikációkat Hoare-stílusú tulajdonságokk ### Hoare-stílusú tulajdonságok {#hoare-style-properties} -A [Hoare-logika](https://en.wikipedia.org/wiki/Hoare_logic) egy sor formális szabályt biztosít a programok, köztük az okosszerződések helyességére vonatkozó érveléshez. Egy Hoare-stílusú tulajdonságot egy Hoare-hármas `{P}c{Q}` reprezentál, ahol `c` egy program, `P` és `Q` állítások a `c` státuszára (a programra) vonatkozóan, amelyeket formálisan _előfeltételekkel_ és _utófeltételekkel_ írunk le. +A [Hoare-logika](https://en.wikipedia.org/wiki/Hoare_logic) egy sor formális szabályt biztosít a programok, köztük az okosszerződések helyességére vonatkozó érveléshez. Egy Hoare-stílusú tulajdonságot egy Hoare-hármas \{_P_}_c_\{_Q_} reprezentál, ahol a _c_ egy program, _P_ és _Q_ állítások a _c_ státuszára (a programra) vonatkozóan, amelyeket formálisan _előfeltételekkel_ és _utófeltételekkel_ írunk le. Az előfeltétel egy állítás, amely leírja a függvény helyes végrehajtásához szükséges feltételeket; a szerződést meghívó felhasználóknak meg kell felelniük ennek a követelménynek. Az utófeltétel egy állítás, amely azt a feltételt írja le, amelyet egy függvény helyesen végrehajtva állít fel; a felhasználók elvárhatják, hogy ez a feltétel igaz legyen a függvény meghívása után. A _konstans_ a Hoare-logikában olyan állítás, amely egy függvény végrehajtása során megmarad (nem változik). diff --git a/public/content/translations/hu/developers/docs/smart-contracts/testing/index.md b/public/content/translations/hu/developers/docs/smart-contracts/testing/index.md index 18fa6d86692..a11430e4aa7 100644 --- a/public/content/translations/hu/developers/docs/smart-contracts/testing/index.md +++ b/public/content/translations/hu/developers/docs/smart-contracts/testing/index.md @@ -130,7 +130,7 @@ Sok egységtesztelési keretrendszer lehetővé teszi, hogy állításokat hozzo ##### 3. Kódlefedettség mérése -A [kódlefedettség](https://en.m.wikipedia.org/wiki/Code_coverage) egy tesztelési metrika, amely a tesztek során végrehajtott ágak, sorok és utasítások számát követi a kódban. A teszteknek jó kódlefedettséggel kell rendelkezniük, különben előfordulhat, hogy „hamis negatív eredményt” kapunk, amikor a szerződés átmegy az összes teszten, de a kódban még vannak sebezhetőségek. A magas kódlefedettség rögzítése biztosítékot ad arra, hogy az okosszerződésben szereplő összes utasítást/függvényt megfelelően tesztelték a helyesség szempontjából. +A [kódlefedettség](https://en.m.wikipedia.org/wiki/Code_coverage) egy tesztelési metrika, amely a tesztek során végrehajtott ágak, sorok és utasítások számát követi a kódban. A teszteknek jó kódlefedettséggel kell rendelkezniük, hogy minimalizálják a feltáratlan sebezhetőségek kockázatát. Megfelelő kódlefedettség nélkül azt hiheti, hogy a szerződése biztonságos, mert átmegy az összes teszten, de a kódban még vannak sebezhetőségek a nem tesztelt útvonalakon. A magas kódlefedettség rögzítése biztosítékot ad arra, hogy az okosszerződésben szereplő összes utasítást/függvényt megfelelően tesztelték a helyesség szempontjából. ##### 4. Jól kidolgozott tesztelési keretrendszerek használata @@ -213,7 +213,7 @@ A szerződések futtatása egy helyi blokkláncon hasznos lehet a manuális inte ### Szerződések tesztelése a teszthálózatokon {#testing-contracts-on-testnets} -A teszthálózat pontosan úgy működik, mint az Ethereum fő hálózat, azzal a különbséggel, hogy a használt ethernek (ETH) nincs valós értéke. Ha a szerződést egy [teszthálózatra](/developers/docs/networks/#ethereum-testnets) telepíti, akkor bárki kapcsolatba léphet azzal (például a dapp felületén keresztül) anélkül, hogy pénzeszközt kockáztatna. +A teszthálózat pontosan úgy működik, mint az Ethereum fő hálózata, azzal a különbséggel, hogy a használt ethernek (ETH) nincs valós értéke. Ha a szerződést egy [teszthálózatra](/developers/docs/networks/#ethereum-testnets) telepíti, akkor bárki kapcsolatba léphet azzal (például a dapp felületén keresztül) anélkül, hogy pénzeszközt kockáztatna. A manuális tesztelés ezen formája hasznos az alkalmazás teljes folyamatának kiértékeléséhez a felhasználó szemszögéből. Itt a béta tesztelők próbafuttatásokat is végezhetnek, és jelenthetik a szerződés üzleti logikájával és általános funkcionalitásával kapcsolatos problémákat. @@ -259,7 +259,7 @@ A fő különbség az, hogy a hibavadász-programok nyitottak a szélesebb fejle - **[Brownie unit testing framework](https://eth-brownie.readthedocs.io/en/v1.0.0_a/tests.html)** – _A Brownie a Pytest-et használja, amely egy funkciógazdag tesztelési keretrendszert, és amely lehetővé teszi kis tesztek írását minimális kóddal, jól skálázható nagyobb projektekhez és nagymértékben bővíthető._ -- **[Foundry Tests](https://github.com/foundry-rs/foundry/tree/master/forge)** – _A Foundry a Forge megoldást kínálja, amely egy gyors és rugalmas Ethereum tesztelési keretrendszert, és amely képes egyszerű egységtesztek, gázoptimalizálási ellenőrzések és szerződés fuzzing végrehajtására._ +- **[Foundry Tests](https://github.com/foundry-rs/foundry/tree/master/crates/forge)** – _A Foundry a Forge megoldást kínálja, amely egy gyors és rugalmas Ethereum-tesztelési keretrendszer, és amely képes egyszerű egységtesztek, gázoptimalizálási ellenőrzések és szerződés fuzzing végrehajtására._ - **[Hardhat Tests](https://hardhat.org/hardhat-runner/docs/guides/test-contracts)** – _Keretrendszer az ethers.js, Mocha és Chai alapú okosszerződések tesztelésére._ diff --git a/public/content/translations/hu/developers/docs/standards/tokens/erc-223/index.md b/public/content/translations/hu/developers/docs/standards/tokens/erc-223/index.md index a779631bcb6..18750200db6 100644 --- a/public/content/translations/hu/developers/docs/standards/tokens/erc-223/index.md +++ b/public/content/translations/hu/developers/docs/standards/tokens/erc-223/index.md @@ -128,7 +128,7 @@ contract RecipientContract is IERC223Recipient { { // It is important to understand that within this function // msg.sender is the address of a token that is being received, - // msg.value is always 0 as the token contract does not own or send Ether in most cases, + // msg.value is always 0 as the token contract does not own or send ether in most cases, // _from is the sender of the token transfer, // _value is the amount of tokens that was deposited. require(msg.sender == tokenA); @@ -154,7 +154,7 @@ Ha ERC-20 tokent küldenek a „RecipientContract” szerződésnek, akkor az á ### Mi van, ha szeretnénk függvényt végrehajtani, miután a token letét végbement? {#function-execution} -Ennek többféle módja van. Ebben a példában megnézzük a metódust, amitől az ERC-223 átadás egyenértékű lesz az ether-küldéssel: +Ennek többféle módja van. Ebben a példában megnézzük a metódust, amitől az ERC-223-átadás egyenértékű lesz az ether-küldéssel: ```solidity contract RecipientContract is IERC223Recipient { @@ -177,7 +177,7 @@ contract RecipientContract is IERC223Recipient { } ``` -Amikor a „RecipientContract” kap egy ERC-223 tokent, a szerződés a token tranzakció „_data” paramétereként kódolt függvényt hajt végre, ugyanúgy, ahogy az ether-tranzakciók kódolják a függvényhívásokat a tranzakció „data” paramétereként. Tekintse meg [az adatmezőt](https://ethereum.org/en/developers/docs/transactions/#the-data-field) további információért. +Amikor a „RecipientContract” kap egy ERC-223 tokent, a szerződés a token tranzakció „_data” paramétereként kódolt függvényt hajt végre ugyanúgy, ahogy az ether-tranzakciók kódolják a függvényhívásokat a tranzakció „data” paramétereként. Tekintse meg [az adatmezőt](https://ethereum.org/en/developers/docs/transactions/#the-data-field) további információért. A fenti példában az ERC-223 tokent a „RecipientContract” címre a „transfer(address,uin256,bytes calldata _data)” függvénnyel kell küldeni. Ha az adatparaméter „0xc2985578” (ami a „foo()” függvény jele), akkor a foo() függvény indul el a token letétbe helyezése után, és a Foo() eseményt adja. diff --git a/public/content/translations/hu/developers/docs/standards/tokens/erc-4626/index.md b/public/content/translations/hu/developers/docs/standards/tokens/erc-4626/index.md index 7c566a69bcb..82934bc5124 100644 --- a/public/content/translations/hu/developers/docs/standards/tokens/erc-4626/index.md +++ b/public/content/translations/hu/developers/docs/standards/tokens/erc-4626/index.md @@ -16,6 +16,22 @@ Az ERC-4626 a hozamtartó értékmegőrzőkben csökkenti az integrációs erőf Az ERC-4626 token teljes körű leírását az [EIP-4626](https://eips.ethereum.org/EIPS/eip-4626) tartalmazza. +**Aszinkron értékmegőrző-bővítés (ERC-7540)** + +Az ERC-4626 az atomi befizetésekre és visszaváltásokra van optimalizálva egy bizonyos határértékig. Ha a limitet elérte, nem lehet új befizetéseket vagy visszaváltásokat benyújtani. Ez a korlátozás nem működik jól olyan okosszerződés-rendszerek esetében, amelyeknél az aszinkron műveletek vagy késleltetések előfeltételei az értékmegőrzővel való kapcsolódásnak (pl. valós világbeli eszközprotokollok, alulbiztosított hitelezési protokollok, láncközi hitelezési protokollok, likvid tétes tokenek vagy biztosítási biztonsági modulok). + +Az ERC-7540 kiterjeszti az ERC-4626 értékmegőrzők hasznosságát aszinkron felhasználási esetekre. A meglévő értékmegőrző-interfészt (`deposit`/`withdraw`/`mint`/`redeem`) használják az aszinkron kérésekre. + +Az ERC-7540 bővítésének teljes körű leírását az [ERC-7540](https://eips.ethereum.org/EIPS/eip-7540) tartalmazza. + +**Több eszközös értékmegőrző-bővítés (ERC-7575)** + +Az ERC-4626 által nem támogatott egyik felhasználási eset a több eszközzel vagy belépési ponttal rendelkező értékmegőrzők, például a likviditásszolgáltató (LP) tokenek. Ezek általában nehézkesek vagy nem megfelelők, mivel az ERC-4626 követelménye, hogy maga is ERC-20 legyen. + +Az ERC-7575 támogatja a több eszközzel rendelkező értékmegőrzőket az ERC-20 token implementációjának az ERC-4626 implementációból történő kiszervezésével. + +Az ERC-7575 bővítésének teljes körű leírását az [ERC-7575](https://eips.ethereum.org/EIPS/eip-7575) tartalmazza. + ## Előfeltételek {#prerequisites} Az oldal könnyebben megértéséhez javasoljuk, hogy tekintse át a [Tokenszabványok](/developers/docs/standards/tokens/) és az [ERC-20](/developers/docs/standards/tokens/erc-20/) című cikkeket. @@ -176,7 +192,7 @@ Visszaadja az `owner` által jelenleg birtokolt értékmegőrző-részvények te #### Letétbe helyezési esemény -Akkor **KELL** kiadni, amikor tokeneket helyeznek el az értékmegőrzőben a [`mint`](#mint) és a [`deposit`](#deposit) metódusokon keresztül +Akkor **KELL** kiadni, amikor tokeneket helyeznek el az értékmegőrzőben a [`mint`](#mint) és a [`deposit`](#deposit) metódusokon keresztül. ```solidity event Deposit( diff --git a/public/content/translations/hu/developers/docs/standards/tokens/erc-777/index.md b/public/content/translations/hu/developers/docs/standards/tokens/erc-777/index.md new file mode 100644 index 00000000000..e422570aac0 --- /dev/null +++ b/public/content/translations/hu/developers/docs/standards/tokens/erc-777/index.md @@ -0,0 +1,45 @@ +--- +title: ERC-777-tokenszabvány +description: null +lang: hu +--- + +## Figyelmeztetés {#warning} + +**ERC-777-et nehéz megfelelően megvalósítani, mivel [érzékeny a támadások különböző formáira](https://github.com/OpenZeppelin/openzeppelin-contracts/issues/2620). Helyette ajánlott az [ERC-20](/developers/docs/standards/tokens/erc-20/) használata.** Ez az oldal historikus okokból van itt. + +## Bevezetés? {#introduction} + +Az ERC-777 egy helyettesíthető tokenszabvány, amely a meglévő [ERC-20](/developers/docs/standards/tokens/erc-20/) szabványt javítja. + +## Előfeltételek {#prerequisites} + +Az oldal könnyebb megértéséhez javasoljuk, hogy tekintse át az [ERC-20] (/developers/docs/standards/tokens/erc-20/) cikket. + +## Milyen fejlesztéseket javasol az ERC-777 az ERC-20-hoz képest? {#-erc-777-vs-erc-20} + +Az ERC-777 a következő fejlesztéseket nyújtja az ERC-20-hoz képest. + +### Horgok {#hooks} + +A hook vagy horog az okosszerződés kódjában leírt funkciót jelent. Akkor kerülnek meghívásra, amikor a szerződésen keresztül tokeneket küldenek vagy fogadnak. Ez lehetővé teszi, hogy az okosszerződés reagáljon a bejövő vagy kimenő tokenekre. + +A horgokat az [ERC-1820](https://eips.ethereum.org/EIPS/eip-1820) szabvány segítségével regisztrálják és fedezik fel. + +#### Miért nagyszerűek a horgok? {#why-are-hooks-great} + +1. A horgok lehetővé teszik a tokenek szerződésbe küldését és a szerződés értesítését egyetlen tranzakcióban, ellentétben az [ERC-20]-szal(https://eips.ethereum.org/EIPS/eip-20), amely kettős hívást igényel (approve/transferFrom) ennek eléréséhez. +2. Azok a szerződések, amelyek nem regisztrálták a horgokat, nem kompatibilisek az ERC-777-tel. A küldő szerződés megszakítja a tranzakciót, ha a fogadó szerződés nem regisztrált ilyet. Ez megakadályozza a nem ERC-777-es okosszerződésekre történő véletlen átutalásokat. +3. A horgok elutasíthatják a tranzakciókat. + +### Decimálisok {#decimals} + +A szabvány megoldja az ERC-20-ban a „decimálisok” körül kialakult zavart is. Ez az egyértelműség javítja a fejlesztői élményt. + +### Visszamenőleges kompatibilitás az ERC-20-szal {#backwards-compatibility-with-erc-20} + +Az ERC-777-es szerződésekkel úgy lehet interakcióba lépni, mintha ERC-20-as szerződések lennének. + +## További olvasnivaló {#further-reading} + +[EIP-777: tokenszabvány](https://eips.ethereum.org/EIPS/eip-777) diff --git a/public/content/translations/hu/enterprise/index.md b/public/content/translations/hu/enterprise/index.md index 41f49c4ccac..2cb23b05504 100644 --- a/public/content/translations/hu/enterprise/index.md +++ b/public/content/translations/hu/enterprise/index.md @@ -89,7 +89,7 @@ A legtöbb új blokklánc-alkalmazás az [L2](/layer-2) láncokra épül. A más - [ABN AMRO](https://tokeny.com/tokeny-fuels-abn-amro-bank-in-tokenizing-green-bonds-on-polygon/) - _a Tokeny révén tokenizált, zöld kötvények_ - [Crowdz](https://crowdz.io/) - _platform számlák/követelések pénzügyi kezelésére és faktoringjára_ - [Mata Capital](https://consensys.io/blockchain-use-cases/finance/mata-capital) - _ingatlanbefektetések tokenizálása_ -- [Obligate](https://www.obligate.com/) - _szabályozott és ellenőrzött (KYC) láncon belüli kötvények és kereskedelmi papírok_ +- [Obligate](https://www.obligate.com/) – _szabályozott és ellenőrzött (KYC) láncon belüli kötvények és kereskedelmi papírok_ - [Siemens](https://press.siemens.com/global/en/pressrelease/siemens-issues-first-digital-bond-blockchain) - _kötvénykibocsátás_ - [Sila](https://silamoney.com/) - _bankolásra és ACH-fizetésre szolgáló infrastruktúra mint szolgáltatás egy stabil érmét használva_ - [Societe Generale FORGE](https://www.sgforge.com/product/bonds/) - _kötvénykibocsátás_ diff --git a/public/content/translations/hu/events/index.md b/public/content/translations/hu/events/index.md new file mode 100644 index 00000000000..0b564281725 --- /dev/null +++ b/public/content/translations/hu/events/index.md @@ -0,0 +1,24 @@ +--- +title: Ethereum események +description: Hogyan lehet bekapcsolódni az Ethereum közösségébe. +lang: hu +hideEditButton: true +--- + +# Közelgő események {#events} + +**Minden hónapban részt vehet Ethereum-eseményeken a világ bármely pontján.** Vegyen részt egy Önhöz közel eső eseményen, hogy találkozzon a közösség tagjaival, megismerje a munkalehetőségeket és új képességeket fejlesszen. + + + +A lista nem teljeskörű, a közösség tagjai frissítik. Tudomása van egy tervezett Ethereum-eseményről? [Kérjük, adja hozzá](https://github.com/ethereum/ethereum-org-website/blob/dev/src/data/community-events.json)! + +## Ethereum-találkozók {#meetups} + +Nem talál olyan eseményt, amely jó lenne Önnek? Próbáljon meg elmenni egy találkozóra. Ezek kisebb események, melyeket az Ethereum-rajongók szerveznek, hogy az Ethereum iránt érdeklődők összegyűljenek, beszélgessenek az Ethereumról, megismerjék az új fejlesztéseket. + + + +Saját találkozót szeretne szervezni? Nézze meg a [BUIDL Network-öt](https://consensys.net/developers/buidlnetwork/), ami a ConsesSys kezdeményezése, hogy támogassa az Ethereum találkozókat. + +Ez a lista nem teljeskörű, a közösség tagjai írják. [Több Ethereum találkozót](https://www.meetup.com/topics/ethereum/) találhat itt. Ismer olyan találkozót szervező csoportot, amelyik nincs a listán? [Kérjük, adja hozzá!](https://github.com/ethereum/ethereum-org-website/blob/dev/src/data/community-meetups.json) diff --git a/public/content/translations/hu/how-to-create-an-ethereum-account/index.md b/public/content/translations/hu/how-to-create-an-ethereum-account/index.md new file mode 100644 index 00000000000..de9e1a61daf --- /dev/null +++ b/public/content/translations/hu/how-to-create-an-ethereum-account/index.md @@ -0,0 +1,73 @@ +--- +title: Hogyan lehet Ethereum számlát „létrehozni” +description: Részletes útmutató az Ethereum-számla létrehozásától egy tárca segítségével. +lang: hu +--- + +# Hogyan lehet Ethereum számlát létrehozni + +**Bárki nyithat Ethereum-számlát, bármikor és ingyenesen.** Ehhez csak egy kriptotárca alkalmazást kell telepítenie. A tárca egy olyan alkalmazás, amely létrehozza és kezeli az Ethereum-számlát. Tranzakciókat tud küldeni, megnézheti az egyenlegeket és kapcsolódhat a többi alkalmazással, melyek az Ethereumra épültek. + +A tárcával azonnal részt vehet tokenátváltásban, játékban és [NFT](/glossary/#nft)-piactereken is megjelenthet. Nincs szükség arra, hogy egyesével regisztráljon ezekre, mert egy számlával használhatja az összes Ethereumra épített alkalmazást. + +## 1. lépés: A tárca kiválasztása + +A tárca egy olyan alkalmazás, amely segíti az Ethereum-számla kezelését. Tucatnyi különböző tárca közül választhat: mobil-, asztali alkalmazásokkal vagy akár böngészőbővítményekkel működő tárcák is léteznek. + + + + A tárcák listája + + +Ha Ön most ismerkedik ezzel a területtel, akkor választhatja a „Kezdő a kripto világában” szűrőt a „Tárca keresése” oldalon, hogy olyan termékek közül választhasson, amelyek kifejezetten a kezdők számára fontos funkciókat kínálni. + +![Szűrési lehetőségek a „Tárca keresése” oldalon](./wallet-box.png) + +Egyéb profilszűrők is elérhetők, hogy saját igényeire szabhassa a keresést. Íme néhány példa a leggyakrabban használt tárcák közül – mindig vizsgálja meg Ön is az adott szolgáltatást, mielőtt bármilyen szoftvert kiválaszt. + +## 2. lépés: A tárcaalkalmazás letöltése és telepítése + +Miután kiválasztotta a tárcát, a hivatalos webhelyéről vagy az alkalmazás-áruházból töltse le és telepítse azt. Mindegyiknek ingyenesnek kell lennie. + +## 3. lépés: Nyissa meg az alkalmazást, és hozza létre Ethereum-fiókját + +A tárca első megnyitásakor a rendszer megkérdezheti, hogy egy új számlát kíván létrehozni vagy egy meglévőt szeretne importálni. Válassza az új számla létrehozása lehetőséget. **Ennél a lépésnél állítja fel a tárcaszoftver az Ön Ethereum számláját.** + +## 4. lépés: Visszaállítási kulcsmondat eltárolása + +Néhány alkalmazás arra kéri Önt, hogy tároljon el egy titkos kulcsmondatot („kulcskifejezés” vagy „mnemonika”). Rendkívül fontos, hogy ezt a kulcsmondatot biztonságban tartsa! A kulcsmondat hozza létre az Ethereum-számlát és tranzakciók végrehajtására használható. + +**Aki a kulcsmondatot birtokolja, az rendelkezik kontrollal a pénzeszközei felett.** Soha ne ossza meg senkivel! A kulcsmondat 12–24 véletlenszerűen kiválasztott szót tartalmaz (melyek sorrendje fontos). + +
+ +
A tárca elkészült?
Tanulja meg használni azt.
+ + Hogyan használja a tárcát + +
+
+ +Érdeklik további útmutatók? Tekintse meg a [Részletes útmutatókat](/guides/) + +## Gyakran ismételt kérdések + +### A tárcám és az Ethereum számlám ugyanaz? + +Nem. A tárca egy olyan eszköz, amely segít kezelni a számlát. Egy tárca több számlához is hozzáférést biztosíthat, és egy számlát több tárcából is el lehet érni. A kulcsmondat révén lehet számlákat létrehozni és felhatalmazást adni a tárcaalkalmazásnak, hogy az kezelje a pénzeszközöket. + +### Tudok küldeni Bitcoint Ethereum-számlára, vagy ethert Bitcoin-címre? + +Nem, ez nem lehetséges. A Bitcoin és az ether két teljesen elkülönült hálózaton létezik (azaz különálló blokkláncok), saját könyveléssel és címformátummal. Számos kezdeményezés volt, amellyel megpróbálták áthidalni e két hálózatot, melyek közül jelenleg a legaktívabb a [becsomagolt bitcoin vagy WBTC](https://www.bitcoin.com/get-started/what-is-wbtc/). Mivel a WBTC egy felügyeleti megoldást (egy csoport irányít bizonyos kritikus funkciókat), ezért itt csak információs céllal szerepel. + +### Ha rendelkezek ETH-címmel, akkor ugyanazt a címet más blokkláncokon is használhatom? + +Ugyanazt a [címet](/glossary/#address) használhatja minden olyan blokkláncon, amely az Ethereumhoz hasonló mögöttes szoftvert használ („EVM-kompatibilis”). Ez a [lista](https://chainlist.org/) megmutatja, hogy melyik blokkláncokon működik ugyanaz a cím. Néhány blokklánc, mint a Bitcoin, teljesen más hálózati szabályok alapján üzemel, ezért ott egy másik címre van szükség, amely más formátummal is bír. Ha okosszerződéses tárcával rendelkezik, akkor a terméktájékoztatóból kiderül, hogy melyik blokkláncokat támogatja, mivel ezek korlátozottabb, de biztonságosabb területen működnek. + +### A tárcám biztonságosabb, mint a pénzeszközeimet a tőzsdén tartani? + +A saját tárca azt jelenti, hogy Ön felelősséget vállal a pénzeszközeinek biztonságáért. Sajnos számtalan esetben omlott már össze tőzsde, elveszítve a vevők pénzét. A saját tárca (a kulcsmondattal együtt) csökkenti annak kockázatát, hogy egy másik entitásra kell bízni az eszközök felügyeletét. Ugyanakkor Önnek biztonságba kell helyeznie a kulcsait, elkerülni a csalásokat, nem szabad véletlenül jóváhagynia tranzakciót vagy feltárni a kulcsokat valaki előtt, hamis weboldalakat használni vagy hasonló kockázatot vállalni. A kockázatok és hasznok különböznek. + +### Ha elvesztettem a mobil/hardver tárcámat, akkor ugyanazt a tárcaalkalmazást használjam, hogy visszaszerezzem a pénzeszközeimet? + +Nem feltétlen, más tárcát is használhat. Amíg tudja a kulcsmondatot, bármelyik tárcába beteheti azt és visszaállítja a számláját. Ügyeljen arra, hogy ne kapcsolódjon az internethez, amikor visszaállítja a tárcáját, nehogy véletlenül kiszivárogjon a kulcsmondata. Az elveszett pénzeszközöket gyakran nem lehet visszaszerezni a kulcsmondat nélkül. diff --git a/public/content/translations/hu/web3/index.md b/public/content/translations/hu/web3/index.md index 383332ec940..883541cee7c 100644 --- a/public/content/translations/hu/web3/index.md +++ b/public/content/translations/hu/web3/index.md @@ -6,6 +6,10 @@ lang: hu # Bevezetés a Web3 világába {#introduction} +
+ +
+ A centralizáció segített abban, hogy emberek milliárdjai használják az internetet, és megalapozta annak stabil, robosztus infrastruktúráját. Eközben néhány centralizált entitás tartja a kezében az internet nagy részét, és egyoldalúan eldönti, hogy mit szabad és mit nem. A Web3 a válasz erre a dilemmára. Ahelyett, hogy a web nagy technológiai cégek monopóliuma lenne, a web3 lényege a decentralizáció, így a felhasználók építik, működtetik és birtokolják. A Web3 az egyének kezébe helyezi a hatalmat a cégek helyett. Mielőtt mélyebben elmerülünk a Web3 világában, nézzük meg, hogyan jutottunk el idáig. diff --git a/public/content/translations/hu/whitepaper/index.md b/public/content/translations/hu/whitepaper/index.md index e05849c4fc2..aa08d4d214c 100644 --- a/public/content/translations/hu/whitepaper/index.md +++ b/public/content/translations/hu/whitepaper/index.md @@ -91,7 +91,7 @@ A blokkok érvényességét ellenőrző algoritmust az alábbi paradigma szerint Lényegében a blokkban szereplő minden tranzakciónak érvényes státuszváltozást kell biztosítania a tranzakció lefutása előtti kanonikus állapotból egy új állapotba. Fontos megjegyezni, hogy a státusz nincs belekódolva a blokkba; pusztán absztrakció, amelyre a hálózat érvényesítő résztvevőjének emlékeznie kell, és bármely blokkra (biztonságosan) csak akkor számítható ki, ha a kezdeti státuszból indulunk ki, és minden tranzakciót egymás után lefuttatunk minden blokkban. Továbbá meg kell jegyezni, hogy az is számít, hogy a bányász a tranzakciókat milyen sorrendben helyezte el a blokkban; ha van két olyan A és B tranzakció a blokkban, ahol B az A által létrehozott UTXO-t költi el, a blokk akkor lesz érvényes, ha A előbb van mint B, fordítva nem. -A fenti listában szereplő érvényességi feltételek közül egyedül a "munkabizonyíték" szükségessége nem található meg más rendszereknél. A pontos feltétel pedig az, hogy minden blokk dupla-SHA256 hashének, melyet egy 256 bites számként kezelünk, kisebbnek kell lennie, mint egy dinamikusan beállított célérték, mely ennek az anyagnak a megírása közben 2187. Ennek a célja, hogy a blokk létrehozása számítási szempontból "nehéz" legyen, és hogy ezáltal megakadályozza a sybil-támadókat, hogy átalakítsák a teljes blokkláncot a saját érdekükben. Mivel az SHA256-ot úgy tervezték, hogy egy teljesen megjósolhatatlan álvéletlen (pszeudo-random) függvény legyen, így a blokk létrehozásának egyetlen módja a próbaszerencse (trial and error), vagyis ismételten növelni kell a nonce-t és figyelni, hogy az új hash megfelelő-e. +A fenti listában szereplő érvényességi feltételek közül egyedül a "munkabizonyíték" szükségessége nem található meg más rendszereknél. A pontos feltétel pedig az, hogy minden blokk dupla-SHA256 hashének, melyet egy 256 bites számként kezelünk, kisebbnek kell lennie, mint egy dinamikusan beállított célérték, mely ennek az anyagnak a megírása közben 2187. Ennek a célja, hogy a blokk létrehozása számítási szempontból "nehéz" legyen, és hogy ezáltal megakadályozza a sybil-támadókat, hogy átalakítsák a teljes blokkláncot a saját érdekükben. Mivel az SHA256-ot úgy tervezték, hogy egy teljesen megjósolhatatlan álvéletlen (pszeudorandom) függvény legyen, így a blokk létrehozásának egyetlen módja a próbaszerencse (trial and error), vagyis ismételten növelni kell a nonce-t és figyelni, hogy az új hash megfelelő-e. A jelenlegi 2187-es cél esetében, a hálózatnak átlagosan \~269 próbálkozást kell tennie, mielőtt valaki egy érvényes blokkot találna; általánosságban a hálózat minden 2016 blokk után újrakalibrálja a célt azért, hogy a hálózat egy résztvevője átlagosan minden tizedik percben egy új blokkot hozzon létre. Azért, hogy a bányászok kompenzálva legyenek ezért a számítási munkáért, minden blokk bányászát megilleti, hogy egy olyan tranzakciót tegyen a blokkba, amiben jóváír magának 12.5 BTC-t a semmiből. Továbbá ha bármely tranzakciónak nagyobb bemeneti egysége van, mint kimeneti, akkor a különbség a bányászokhoz került, mint egy "tranzakciós díj". Tulajdonképpen ez a BTC kibocsátásának egyetlen módja; a kezdeti állapot egyáltalán nem tartalmazott érméket. @@ -268,7 +268,7 @@ def send(to, value): self.storage[to] = self.storage[to] + value ``` -Ez lényegében a „bankrendszer” státuszváltozási függvényének szó szerinti megvalósítását jelenti, amely ebben a dokumentumban fentebb már le lett írva. Néhány extra kódsort hozzá kell adni, hogy biztosítsuk a pénzegységek elosztásának kezdeti lépését, néhány másik szélsőséges esetben is, és ideális esetben egy függvényt is hozzáadunk, ami lehetővé teszi másik szerződéseknek, hogy lekérdezzék egy cím számlaegyenlegét. De ennyi az egész. Elméletileg a pénznemként működő Ethereum-alapú tokenrendszerek tartalmazhatnak egy másik fontos jellemzőt, ami a Bitcoin-alapú blokkláncon található pénzeszközöknél hiányzik: a tranzakciós díjak közvetlen fizetése ugyanabban a pénznemben. Ez úgy lehetne megvalósítható, hogy a szerződés fenntartana egy ether egyenleget, amelyből visszatérítené a feladónak a díjakra használt ethert, és ezt úgy töltené fel, hogy összegyűjti a díjakra beszedett belső valutaegységeket, és egy folyamatosan futó aukción továbbértékesíti azokat. A felhasználóknak tehát etherrel kellene „aktiválniuk” a számláikat, de onnantól, hogy az ether ott van, újrafelhasználható, mert a szerződés minden alkalommal visszatérítené. +Ez lényegében a „bankrendszer” státuszváltozási függvényének szó szerinti megvalósítását jelenti, amely ebben a dokumentumban fentebb már le lett írva. Néhány extra kódsort hozzá kell adni, hogy biztosítsuk a pénzegységek elosztásának kezdeti lépését, néhány másik szélsőséges esetben is, és ideális esetben egy függvényt is hozzáadunk, ami lehetővé teszi másik szerződéseknek, hogy lekérdezzék egy cím számlaegyenlegét. De ennyi az egész. Elméletileg a pénznemként működő, Ethereum-alapú tokenrendszerek tartalmazhatnak egy másik fontos jellemzőt, amely a Bitcoin-alapú blokkláncon található pénzeszközöknél hiányzik: a tranzakciós díjak közvetlen fizetése ugyanabban a pénznemben. Ez úgy lehetne megvalósítható, hogy a szerződés fenntartana egy ether egyenleget, amelyből visszatérítené a feladónak a díjakra használt ethert, és ezt úgy töltené fel, hogy összegyűjti a díjakra beszedett belső valutaegységeket, és egy folyamatosan futó aukción továbbértékesíti azokat. A felhasználóknak tehát etherrel kellene „aktiválniuk” a számláikat, de onnantól, hogy az ether ott van, újrafelhasználható, mert a szerződés minden alkalommal visszatérítené. ### Pénzügyi derivatívák és stabil értékű valuták {#financial-derivatives-and-stable-value-currencies} diff --git a/public/content/translations/hu/withdrawals/index.md b/public/content/translations/hu/withdrawals/index.md new file mode 100644 index 00000000000..85c19d15b1d --- /dev/null +++ b/public/content/translations/hu/withdrawals/index.md @@ -0,0 +1,218 @@ +--- +title: A letétbe helyezés visszavonása +description: A letétvisszavonás működésének és a jutalmak megszerzésének áttekintése +lang: hu +template: staking +image: /images/staking/leslie-withdrawal.png +alt: Leslie, a rinocérosz a letétbe helyezésből származó jutalmaival +sidebarDepth: 2 +summaryPoints: + - A Shanghai/Capella frissítés lehetővé tette a letétek visszavonását az Ethereumon + - A validátor operátorainak meg kell adni ehhez egy visszavonási címet + - A jutalmakat néhány naponta automatikusan átkerülnek + - A validátorok, akik teljesen kiszállnak a letétből, a maradék egyenleget visszakapják +--- + + +A letétek visszavonását a 2023. április 12-i Shanghai/Capella frissítés tette lehetővé. Bővebben a Shanghai/Capella frissítésről + + +**A letétek visszavonása** azt jelenti, hogy a validátorszámla ETH-egyenlege, ami az Ethereum konszenzusrétegén található (Beacon-lánc), áthelyezésre kerül a végrehajtási rétegre, ahol fel lehet használni. + +**A jutalmak kifizetése** 32 ETH felett automatikusan és rendszeresen megtörténik az egyes validátorokhoz tartozó visszavonási címre, ahogy azt a felhasználó beállította. A felhasználó **teljesen kiszállhat a letétbe helyezésből**, felszabadítva a teljes validátoregyenleget. + +## A letétbe helyezésből eredő jutalmak {#staking-rewards} + +Az aktív validátorszámlákra a jutalmak kifizetése automatikusan megtörténik, és maximum 32 ETH egyenleg marad azokon. + +A 32 ETH feletti összeg nem adódik hozzá az alaphoz, nem növeli a validátor súlyát a hálózaton, így automatikusan visszavonásra kerül jutalomként néhány naponta. A visszavonási címet rögzíteni kell, de ezen kívül a validátor működtetőjének nincs több teendője. Ez a konszenzusrétegen zajlik, ezért nincs gáz/tranzakciós díj vonzata egyik lépésnél sem. + +### Hogyan jutottunk el idáig? {#how-did-we-get-here} + +Az elmúlt években az Ethereum számos hálózati fejlesztésen esett át, hogy a hálózatot az ETH biztosítsa, és ne az erőforrás-igényes bányászás (mining). A konszenzusban való részvétel az Ethereumon a letétbe helyezés (staking), mivel a tagok önként lekötötték az ETH-t, hogy a hálózatban részt tudjanak venni. A szabályokat követő felhasználók jutalmakat nyernek, a visszaélést pedig bünteti a rendszer. + +A letétbe helyezési szerződés létrehozásával (2020. november) néhány bátor Ethereum-úttörő önként zárolta a pénzeszközeit, hogy validátorokként működjenek – ezek olyan különleges számlák, melyek hivatalosan tanúsíthatnak és javasolhatnak blokkot a hálózat szabályait követve. + +A Shanghai/Capella frissítés előtt nem lehetett használni vagy elérni ezt a lekötött ETH-t. Most azonban automatikusan áthelyeződnek a jutalmak a kiválasztott számlára, és a lekötést is bármikor fel lehet oldani. + +### Hogyan tudok erre felkészülni? {#how-do-i-prepare} + + + +### Fontos figyelmeztetések {#important-notices} + +A visszavonási cím megadása szükséges ahhoz, hogy a validátorszámla egyenlegéből ETH visszavonás történjen. + + + Minden validátorszámlához egyszer, egyetlen visszavonási cím adható meg. Amint ezt a címet kiválasztották és elküldték a konszenzus rétegnek, nem lehet visszahívni vagy megváltoztatni. Ellenőrizze le a cím tulajdonosát és pontosságát, mielőtt elküldi azt. + + +Eközben a pénzeszközöket nem fenyegeti veszély, ha nem adja meg a címet, feltéve, hogy a mnemonikus/kulcsmondat biztonságban van offline, és nincs kitéve veszélynek. Amíg nem tudja megadni a visszavonási adatokat, addig az ETH egyszerűen a validátorszámlán marad. + +## A letétbe helyezés felbontása {#exiting-staking-entirely} + +A visszavonási számlára van szükség ahhoz, _bármilyen_ pénzeszközt ki lehessen utalni a validátorszámla egyenlegéből. + +Azoknak a felhasználóknak, akik teljesen ki akarnak lépni a letétbe helyezéből és a teljes egyenleget vissza akarják vonni, a validátorkulcsokkal alá kell írniuk és ki kell adniuk egy önként kiszállok üzenetet, ezzel elindul a lezárás folyamata. Ezt a validátorkliens végzi és a konszenzus csomópontjára küldi el, így nem kell hozzá gáz/díj. + +A kilépés változó ideig tart, attól függően, hogy hányan akarnak ugyanakkor kiszállni. Amint végbemegy, ez a számla már nem végez validátori feladatokat, nem jár neki ezért jutalom, és a kapcsolódó ETH nincs letétbe helyezve. Ekkora a számla teljesen „visszavonhatóként” lesz megjelölve. + +Ha a visszavonható jelölés megtörtént és a visszavonási adatok meg lettek adva, akkor nincs több teendő. A blokkot javaslók automatikusan és folyamatosan ellenőrzik, mondhatni söprik a számlákat a kilépő pénzeszközöket vizsgálva, így a számla egyenlege teljes mértékben átvezetésre kerül a következő söprésnél. + +## Mikortól elérhető a letétek visszavonása? {#when} + +A letétek visszavonása elérhető! A funkcionalitást a Shanghai/Capella frissítés tette elérhetővé 2023. április 12-én. + +Ennek következtében a korábban letétbe helyezett ETH-t vissza lehet vonni a normális Ethereum-számlákra. Ez lezárta a letétek likviditásának témáját, és az Ethereumot egy lépéssel közelebb vitte a céljához, ami egy fenntartható, skálázható, biztonságot, decentralizált ökoszisztéma. + +- [Bővebben az Ethereum történetéről](/history/) +- [Bővebben az Ethereum fejlesztési terveiről](/roadmap/) + +## Hogyan működik a visszavonási kifizetés? {#how-do-withdrawals-work} + +A validátorszámla státusza mondja meg, hogy egy validátor jogosult-e a visszavonásra vagy sem. Nincs szükség a felhasználó közreműködésére, hogy a számla visszavonásra kerül-e vagy sem – a teljes folyamat automatikusan üzemel a konszenzus réteg által, egy állandóan működő ciklusban. + +### Ön inkább vizuális típus? {#visual-learner} + +Nézze meg az Ethereum letétvisszavonásról szóló magyarázatát a Finematics-tól: + + + +### Validátor-ellenőrzés vagy söprés {#validator-sweeping} + +Amikor egy adott validátor be van ütemezve, hogy a következő blokkot ő fogja javasolni, akkor készítenie kell egy 16 tételből álló visszavonási listát. Kezdve a 0 validátorindexel, meghatározza, hogy az adott számla a protokoll szabályai szerint visszavonásra jogosult-e, és ha igen, akkor beteszi a listába. A validátorcsoport ott száll be, ahol az előző abbahagyta és a végtelenségig folytatja. + + +Képzeljen el egy analóg módon működő órát. Az óramutató egy irányba halad és sorban végigmegy minden számon, majd miután elérte az utolsó számot, visszaér a kezdőpontra.

+Tegyük fel 1–12 helyett 0-n található (ahol n a validátor számlák teljes száma, amelyek a konszenzus rétegen regisztrálva lettek; több mint 500 000 2023. januárjában).

+Az óramutató a következő validátorra mutat, hogy leellenőrizze azt visszavonás szempontjából. A 0-nál kezdi és végigmegy az összes számlán. Amikor eléri az utolsó validátort, akkor a ciklus újra elindul. +
+ +#### A számlák ellenőrzése visszavonási szempontból {#checking-an-account-for-withdrawals} + +Miközben a blokk javaslója a validátorokat ellenőrzi a lehetséges visszavonások miatt, minden validátornál néhány kérdéssel ellenőrzi, hogy kell-e visszavonást indítani, és mennyi ETH-t érint ez. + +1. **Van visszavonási cím megadva?** Ha nincs, akkor kihagyja a számlát, és nem lehet visszavonást kezdeményezni. +2. **A validátor kiszállt és visszavonható a számlája?** Ha a validátor kiszállt, és a számlája „visszavonhatóvá” vált, akkor egy teljes visszavonás történik. A teljes egyenlege átkerül a visszavonási címre. +3. **Az érvényes egyenleg 32 ETH?** Ha a számla rendelkezik visszavonási adatokkal, nem lépett ki a letétbe helyezésből, de jutalmak vannak a 32 ETH összegen túl, akkor egy részleges visszavonás indul, ami a 32 ETH feletti jutalmakat áthelyezi a visszavonási címre. + +Csak két döntés vagy cselekvés van, amit a validátor üzemeltetője meglép a validátor életciklusa során, és ezt a folyamatot közvetlenül befolyásolja: + +- A visszavonási adatok biztosítása, hogy bármit át lehessen vezetni +- A hálózatból való kilépés, ami egy teljes visszavonást indít el + +### Gáz/díjmentes {#gas-free} + +A letétek visszavonása anélkül zajlik, hogy a letétesnek tranzakciót kellene indítania, amiben adott mennyiségű ETH-t von ki. Ezért **nincs gáz/tranzakciós díj**, a visszavonások pedig nem versenyeznek, hogy bekerüljenek a végrehajtási réteg blokkjába. + +### Milyen gyakran kapom meg a letéti jutalmakat? {#how-soon} + +Egy blokkban maximum 16 visszavonást lehet végrehajtani. Ez alapján 115 200 validátor-visszavonást lehet egy nap alatt teljesíteni (ha minden slot eredményes). A visszavonásra nem jogosult validátárokat átugorják, ezért a teljes ellenőrzés kevesebb ideig tart. + +Ezt a kalkulációt kiterjesztve megbecsülhetjük, hogy egy adott számú visszavonást mennyi idő alatt lehet teljesíteni: + + + +| Visszavonások száma | Időszükséglet | +| :-------------------: | :--------------: | +| 400 000 | 3,5 nap | +| 500 000 | 4,3 nap | +| 600 000 | 5,2 nap | +| 700 000 | 6,1 nap | +| 800 000 | 7,0 nap | + + + +Ahogy látható, a feldolgozás lelassul, ahogy egyre több validátor van a hálózaton. A kihagyott slotok száma arányosan le tudja lassítani a folyamatot, de ez a lassabb verzióját mutatja a lehetséges kimenetnek. + +## Gyakran ismételt kérdések {#faq} + + +Nem, a visszavonási adatok megadása egyszeri, nem lehet változtatni azokon. + + + +A végrehajtási réteg visszavonási cím megadásával a validátor visszavonási adatai örökre megváltoztak. A korábbi adatok már nem működnek, az újak pedig a végrehajtási réteg számlájára mutatnak. + +A visszavonási cím lehet okosszerződés (melyet a programkódja irányít) vagy egy külső tulajdonú számla (EOA, melyet a privát kulcsa kontrollál). Ezek a számlák jelenleg nem tudnak üzenetet küldeni a konszenzusrétegnek, amely megváltoztatná a validátor hitelesítő adatait, ez a funkció pedig egy szükségtelen komplexitást adna a protokollhoz. + +Egy másik megoldás az adott validátorhoz tartozó visszavonási cím módosítására, ha a felhasználók okosszerződést választanak visszavonási címként, amely tudja kezelni a kulcsok rotálását, mint amilyen a Safe. Azok a felhasználók, akik a saját EOA számlájukra tették a pénzeszközöket, végezhetnek teljes kilépést, visszavonva az összes lekötött eszközt, majd újra letétbe helyezhetik az új hitelesítő adatokat használatával. + + + + +Ha Ön letéti alapokat vagy letéti tokeneket használ, ellenőrizze a szolgáltatójával, hogy hogyan kezelik a letétvisszavonást, mivel minden szolgáltatás másképp működik. + +Általánosságban a felhasználók szabadon visszavehetik a letétbe helyezett ETH-t vagy lecserélhetik a letéti szolgáltatójukat. Ha egy adott letéti alap túl nagy méretű lesz, akkor a pénzeszközöket ki lehet venni belőle és újra le lehet kötni egy kisebb szolgáltatóval. Ha pedig elég ETH gyűlt össze, akkor Önotthonról is végezhet letétbe helyezést. + + + + +Igen, ha a validátora megadta a visszavonási címet. Ezt egyszer kell megtenni, hogy a visszavonások teljesíthetők legyenek, utána a jutalmak automatikusan átkerülnek néhány naponta a validátorok ellenőrzésénél. + + + + +Nem, ha a validátor aktív a hálózaton, akkor a teljes visszavonás nem történik meg automatikusan. Az önkéntes kilépést manuálisan kell kezdeményezni. + +Amint a validátor végigvitte a kilépési folyamatot, a számlán pedig ott vannak a visszavonási adatok, akkor a maradék egyenleget átteszi a következő validátor-ellenőrzés. + + + + +A visszavonásokat úgy tervezték meg, hogy automatikusan minden olyan összeget áthelyezzenek, ami aktívan nem járul hozzá a letéthez. Ez érvényes a kilépő számlák teljes egyenlegére. + +Nem lehetséges manuálisan kérvényezni bizonyos mennyiségű ETH kivételét. + + + + +Javasoljuk, hogy a validátorműködtetők látogassanak el a Staking Launchpad Withdrawals oldalra, ahol további információkat találhatnak a letét kivonásához kapcsolódó felkészülésről, az események időzítéséről és arról, hogyan működik ez a kivonási funkció. + +Próbálja ki először a beállításait egy teszthálózaton, látogasson el a Holesky-teszthálózat Staking Launchpad oldalára. + + + + +Nem. Miután egy validátor kilépett, és a teljes egyenlegét kivette, az adott validátorra letétbe helyezett további összegek automatikusan átutalásra kerülnek a következő validátor-ellenőrzés során a visszavonási címre. Az ETH újbóli letétbe helyezéséhez egy új validátort kell aktiválni. + + +## További olvasnivaló {#further-reading} + +- [Staking Launchpad visszavonások](https://launchpad.ethereum.org/withdrawals) +- [EIP-4895: Beacon-lánc operációs műveletként intézi a visszavonásokat](https://eips.ethereum.org/EIPS/eip-4895) +- [Ethereum Cat Herders – Shanghai](https://www.ethereumcatherders.com/shanghai_upgrade/index.html) +- [PEEPanEIP #94: A letétbe helyezett ETH visszavonása (tesztelés) – Potuz & Hsiao-Wei Wang](https://www.youtube.com/watch?v=G8UstwmGtyE) +- [PEEPanEIP#68: EIP-4895: Beacon lánc operációs műveletként intézi a visszavonásokat – Alex Stokes](https://www.youtube.com/watch?v=CcL9RJBljUs) +- [A validátor valós egyenlegének megértése](https://www.attestant.io/posts/understanding-validator-effective-balance/) diff --git a/public/content/translations/hu/zero-knowledge-proofs/index.md b/public/content/translations/hu/zero-knowledge-proofs/index.md index 3d620f82a68..26d1d2fb6ff 100644 --- a/public/content/translations/hu/zero-knowledge-proofs/index.md +++ b/public/content/translations/hu/zero-knowledge-proofs/index.md @@ -32,11 +32,11 @@ A korábbi példánál maradva a nemzetiséget egyedül a zero-knowledge bizony A bankkártyafizetések sokszor láthatók több fél számára is, beleértve a fizetési szolgáltatót, a bankokat és más érdekelteket (pl. kormányzati hatóságok). Míg a pénzügyi felügyeletnek vannak előnyei az illegális tevékenységek feltárásában, közben aláássa a hétköznapi emberek magánéletét. -A kriptovalutákat arra szánták, hogy a felhasználók privát, egymás közötti (peer-to-peer) tranzakciókat hajthassanak végre. Ugyanakkor a legtöbb kriptovalutás tranzakció nyíltan látható a nyilvános blokkláncokon. A felhasználók személyazonosságai gyakran közvetettek és vagy direkt kapcsolódnak valós azonosságukhoz (pl. a Twitter vagy GitHub profil tartalmazza az ETH címüket), vagy összekapcsolhatók alapvető láncon belüli és kívüli adatok elemzésével. +A kriptovalutákat arra szánták, hogy a felhasználók privát, egymás közötti (peer-to-peer) tranzakciókat hajthassanak végre. Ugyanakkor a legtöbb kriptovalutás tranzakció nyíltan látható a nyilvános blokkláncokon. A felhasználók személyazonosságai gyakran közvetettek és vagy direkt kapcsolódnak valós azonosságukhoz (pl. a Twitter- vagy GitHub-profil tartalmazza az ETH-címüket), vagy összekapcsolhatók alapvető láncon belüli és kívüli adatok elemzésével. Vannak bizonyos privát tokenek, hogy teljesen anonim tranzakciókat lehessen végrehajtani. A privát jelleget védő blokkláncok, mint a Zcash és Monero, elfedik a tranzakciók adatait, mint a küldő/fogadó címe, az eszköz típusa, a mennyiség, az időpont. -A nulla tudástechnológiát a protokollba beépítve az adatvédelemre fókuszáló [blokklánc](/glossary/#blockchain) hálózatok lehetővé teszik a [csomópontok](/glossary/#node) számára a tranzakciók érvényesítését anélkül, hogy hozzá kellene férniük a tranzakciós adatokhoz. +A nullatudás-technológiát a protokollba beépítve az adatvédelemre fókuszáló [blokklánc](/glossary/#blockchain) -hálózatok lehetővé teszik a [csomópontok](/glossary/#node) számára a tranzakciók érvényesítését anélkül, hogy hozzá kellene férniük a tranzakciós adatokhoz. [EIP-7503](https://eips.ethereum.org/EIPS/eip-7503) egy példa a javasolt tervezetre, amely lehetővé teszi a natív privát értékátutalásokat az Ethereum-blokkláncon. Az ilyen javaslatokat azonban nehéz megvalósítani a biztonságot, szabályozásokat és felhasználói élményt érintő aggályok miatt. **A nulla tudásalapú igazolásokat a nyilvános blokkláncokon folyó tranzakciók anonimizálására is alkalmazzák**. Erre a Tornado Cash a példa, ami egy decentralizált, nem felügyelt szolgáltatás, ami privát tranzakciókat tesz lehetővé az Ethereumon. Ez a megoldás zero-knowledge bizonyítékokat használ, hogy elfedje a tranzakció adatait és pénzügyi titoktartást garantál. Sajnos, mivel ezek tetszőlegesen választható adatvédő eszközök, ezért rögtön illegális tevékenységet sejtetnek. Ennek megoldására a privát jellegű adatok védelme végül alapvetővé kell váljon a nyilvános blokkláncokon. @@ -58,9 +58,9 @@ Az igazolható kalkuláció egy másik alkalmazása a ZK technológiának, hogy Az ellenőrizhető számítások **kritikusak a blokkláncok feldolgozási sebességének javításához** a biztonság csökkentése nélkül. Ennek megértéséhez ismerni kell az Ethereum skálázási megoldásai közötti eltéréseket. -[A láncon belüli skálázási megoldások](/developers/docs/scaling/#on-chain-scaling), mint amilyen a párhuzamos futtatás (sharding), nagy mértékű módosítást igényelnek a blokklánc alaprétegén. Ez a megközelítés ugyanakkor nagyon komplex, az bevezetés hibái pedig alááshatják az Ethereum biztonsági modelljét. +[A láncon belüli skálázási megoldások](/developers/docs/scaling/#onchain-scaling), mint amilyen a sharding, nagy mértékű módosítást igényelnek a blokklánc alaprétegén. Ez a megközelítés ugyanakkor nagyon komplex, az bevezetés hibái pedig alááshatják az Ethereum biztonsági modelljét. -[A láncon kívüli skálázási megoldásokhoz](/developers/docs/scaling/#off-chain-scaling) nem kell az Ethereum protokollt újratervezni. Ehelyett egy kiszervezett kalkulációs modellre támaszkodnak, hogy fejlesszék a tranzakcióátvitelt az Ethereum alaprétegen. +[A láncon kívüli skálázási megoldásokhoz](/developers/docs/scaling/#offchain-scaling) nem kell az Ethereum-protokollt újratervezni. Ehelyett egy kiszervezett kalkulációs modellre támaszkodnak, hogy fejlesszék a tranzakcióátvitelt az Ethereum alaprétegen. Ez a gyakorlatban a következőképpen működik: @@ -72,9 +72,9 @@ Az Ethereumnak tehát nem kell feldolgozni semmit, csak az eredményeket kell be A láncnak szüksége van arra, hogy validálni tudja a láncon kívüli tranzakciókat anélkül, hogy újra feldolgozná azokat, különben a külső feldolgozás értéke elveszik. -Itt jön a képbe az igazolható kalkuláció. Amikor egy csomópont feldolgoz egy tranzakciót az Ethereumon kívül, akkor egy zero-knowledge bizonyítékot ad, hogy bizonyítsa a láncon kívüli végrehajtás helyességét. Ez a bizonyíték ([érvényességi bizonyíték](/glossary/#validity-proof)) garantálja, hogy a tranzakció érvényes, így az Ethereum hozzáadhatja a lánc státuszához – anélkül, hogy bárki kifogásolhatná azt. +Itt jön a képbe az igazolható kalkuláció. Amikor egy csomópont feldolgoz egy tranzakciót az Ethereumon kívül, akkor egy zero-knowledge, azaz nullatudású bizonyítékot ad, hogy bizonyítsa a láncon kívüli végrehajtás helyességét. Ez a bizonyíték ([érvényességi bizonyíték](/glossary/#validity-proof)) garantálja, hogy a tranzakció érvényes, így az Ethereum hozzáadhatja a lánc státuszához – anélkül, hogy bárki kifogásolhatná azt. -[A zero-knowledge rollupok](/developers/docs/scaling/zk-rollups) és [a validiumok](/developers/docs/scaling/validium/) két olyan láncon kívüli, skálázási megoldás, amely érvényességi bizonyítékot ad, hogy a skálázás biztonságos legyen. Ezek a protokollok ezernyi tranzakciót dolgoznak fel láncon kívül és bizonyítékot adnak az Ethereumnak ellenőrzési célból. Amint a bizonyíték ellenőrzésre kerül, az eredményeket azonnal be lehet tenni a láncba, így az Ethereum több tranzakciót tud kezelni anélkül, hogy az alapréteg számítási kapacitását növelni kellene. +[A zero-knowledge rollup](/developers/docs/scaling/zk-rollups) és [a validium](/developers/docs/scaling/validium/) két olyan láncon kívüli, skálázási megoldás, amely érvényességi bizonyítékot ad, hogy a skálázás biztonságos legyen. Ezek a protokollok ezernyi tranzakciót dolgoznak fel láncon kívül és bizonyítékot adnak az Ethereumnak ellenőrzési célból. Amint a bizonyíték ellenőrzésre kerül, az eredményeket azonnal be lehet tenni a láncba, így az Ethereum több tranzakciót tud kezelni anélkül, hogy az alapréteg számítási kapacitását növelni kellene. ### A vesztegetés és összejátszás lehetőségének csökkentése a láncon belüli szavazásnál {#secure-blockchain-voting} @@ -88,7 +88,7 @@ Például a [kvadratikus finanszírozási mechanizmus](https://www.radicalxchang A láncon belüli szavazás kiteszi a kvadratikus finanszírozást az összejátszás kockázatának: a blokklánctranzakciók nyilvánosak, így a vesztegetők meg tudják nézni, hogy a megvesztegetett hogyan szavazott. Így a kvadratikus finanszírozás nem lesz hatékony módja a forráselosztásnak a közösség aggregált preferenciái alapján. -Szerencsére újabb megoldások, mint amilyen a MACI (Minimum összejátszás-ellenes infrastruktúra/Minimum Anti-Collusion Infrastructure), zero-knowledge bizonyítékokat használ, hogy a láncon belüli szavazás ellenálló legyen a vesztegetéssel és összejátszással szemben. A MACI okosszerződésekből és szkriptekből áll, és lehetővé teszi egy központi adminisztrátor (a koordinátor) számára, hogy aggregálja a szavazatokat és kiszámolja az eredményeket, _anélkül_, hogy felfedné az egyéni szavazatok tartalmát. Még így is bizonyítani lehet, hogy a szavazatokat megfelelően számolták össze, illetve egy adott illető részt vette-e a szavazáson. +Szerencsére az újabb megoldások, mint amilyen a MACI (Minimum összejátszás-ellenes infrastruktúra/Minimum Anti-Collusion Infrastructure), zero-knowledge bizonyítékokat használ, hogy a láncon belüli szavazás (pl. kvadratikus finanszírozási mechanizmus) ellenálló legyen a vesztegetéssel és összejátszással szemben. A MACI okosszerződésekből és szkriptekből áll, és lehetővé teszi egy központi adminisztrátor (a koordinátor) számára, hogy aggregálja a szavazatokat és kiszámolja az eredményeket, _anélkül_, hogy felfedné az egyéni szavazatok tartalmát. Még így is bizonyítani lehet, hogy a szavazatokat megfelelően számolták össze, illetve egy adott illető részt vette-e a szavazáson. #### Hogyan működik a MACI a zero-knowledge bizonyítékokkal? {#how-maci-works-with-zk-proofs} @@ -211,4 +211,4 @@ A ZK-STARK immunis a kvantumszámítógépek fenyegetésére, mert csak ütköz - [ZK-STARK-ok — Igazolható bizalom létrehozása, még a kvantumszámítógépekkel szemben is](https://medium.com/coinmonks/zk-starks-create-verifiable-trust-even-against-quantum-computers-dd9c6a2bb13d) — _Adam Luciano_ - [Egy hozzávetőleges áttekintés, hogyan lehetségesek a zk-SNARK-ok](https://vitalik.eth.limo/general/2021/01/26/snarks.html) — _Vitalik Buterin_ - [A Zero-knowledge bizonyítékok (ZKP) megváltoztatják a szuverén identitás területét](https://frankiefab.hashnode.dev/why-zero-knowledge-proofs-zkps-is-a-game-changer-for-self-sovereign-identity) — _Franklin Ohaegbulam_ - +- [EIP-7503 magyarázata: Privát átutalások lehetővé tétele az Ethereumon ZK bizonyíték révén](https://research.2077.xyz/eip-7503-zero-knowledge-wormholes-for-private-ethereum-transactions#introduction) — _Emmanuel Awosika_ diff --git a/src/intl/hu/common.json b/src/intl/hu/common.json index ff4ba2cecea..f07a0d8db72 100644 --- a/src/intl/hu/common.json +++ b/src/intl/hu/common.json @@ -11,6 +11,7 @@ "adding-products": "Termékek hozzáadása", "adding-staking-products": "Letétbe helyezési lehetőségek hozzáadása", "adding-wallets": "Tárcák hozzáadása", + "ai-agents": "AI-ügynökök", "aria-toggle-menu-button": "Menü bekapcsolása gomb", "aria-toggle-search-button": "Keresőgomb bekapcsolása", "beacon-chain": "Beacon lánc", @@ -221,6 +222,7 @@ "nav-about-description": "Nyilvános, nyílt forráskódú projekt az Ethereum közössége számára", "nav-advanced-description": "Ismerkedjen meg komplexebb témákkal is", "nav-advanced-label": "Haladó", + "nav-ai-agents-description": "Fedezze fel az AI-ügynökök világát az Ethereumon", "nav-basics-description": "Ismerje meg az Ethereum alapjait", "nav-basics-label": "Alapok", "nav-bridges-description": "A web3 az elsődleges L1 blokkláncok és L2 skálázási megoldások ökoszisztémájává fejlődött", @@ -250,6 +252,8 @@ "nav-emerging-description": "Ismerje meg az Ethereum egyéb, újabb felhasználási eseteit", "nav-emerging-label": "Új alkalmazási területek", "nav-ethereum-org-description": "Ez egy közösség által vezérelt webhely – csatlakozzon hozzánk és járuljon hozzá Ön is", + "nav-ethereum-networks": "Ethereum-hálózatok", + "nav-ethereum-networks-description": "Olcsóbb és gyorsabb tranzakciók az Ethereumon", "nav-ethereum-wallets-description": "Egy app, amellyel kapcsolatba léphet Ethereum-fiókjával", "nav-events-description": "Decentralizáció és szabad részvétel bárki számára", "nav-events-irl-description": "Minden hónapban jelentős eseményeket szervez az Ethereum mind a személyes, mind az online térben", @@ -275,16 +279,23 @@ "nav-guides-label": "Útmutatók", "nav-history-description": "Az összes fontos elágazás és frissítés idővonala", "nav-history-label": "Az Ethereum technikai története", - "nav-layer-2-description": "Olcsóbb és gyorsabb tranzakciók az Ethereumon", "nav-learn-by-coding-description": "Eszközök, amelyek segítenek kísérletezni az Ethereummal", "nav-local-env-description": "Az Ethereum fejlesztői stack kiválasztása és beállítása", "nav-mainnet-description": "Vállalatiblokklánc-alkalmazások fejleszthetők az Ethereum nyilvános fő hálózatán", + "nav-networks-home-description": "Olcsóbb és gyorsabb tranzakciók az Ethereumon", + "nav-networks-introduction-label": "Bevezetés", + "nav-networks-introduction-description": "Az Ethereum a hálózatok hálózatává bővült", + "nav-networks-explore-networks-label": "A hálózatok felfedezése", + "nav-networks-explore-networks-description": "A használni kívánt hálózat kiválasztása", + "nav-networks-learn-label": "Mik azok a második blokkláncréteg (L2) hálózatok?", + "nav-networks-learn-description": "Ismerje meg, hogy miért van ezekre szükség", "nav-nft-description": "Egy módszer arra, hogy egyedi dolgokat Ethereum-alapú javakként jelenítsünk meg", "nav-open-research-description": "Az Ethereum egyik legnagyobb erőssége az aktív kutatói közösség", "nav-open-research-label": "Nyílt kutatás", "nav-overview-description": "Minden tudnivaló az Ethereum-oktatásról", "nav-overview-label": "Áttekintés", "nav-participate-overview-description": "A részvétel áttekintése", + "nav-payments-description": "Az Ethereumon történő fizetések megváltoztatják a pénzküldés és -fogadás módját", "nav-primary": "Elsődleges", "nav-quizzes-description": "Tudja meg, mennyire érti az Ethereumot és a kriptovalutákat", "nav-quizzes-label": "Tesztelje tudását", @@ -356,6 +367,7 @@ "page-last-updated": "Oldal legutoljára frissítve", "participate": "Részvétel", "participate-menu": "Részvétel menü", + "payments-page": "Fizetések", "pbs": "Javaslattevő-építő szétválasztása", "pools": "Letéti alapba helyezés", "privacy-policy": "Adatvédelmi szabályzat", diff --git a/src/intl/hu/glossary-tooltip.json b/src/intl/hu/glossary-tooltip.json index 5a06ed53fd8..03907a09541 100644 --- a/src/intl/hu/glossary-tooltip.json +++ b/src/intl/hu/glossary-tooltip.json @@ -102,7 +102,7 @@ "ommer-term": "Ommer (nagybácsi) blokk", "ommer-definition": "Amikor egy proof-of-work (munkaigazolás) mechanizmus bányásza talált egy érvényes blokkot, egy másik bányász talán beküldött egy ezzel versenyző blokkot, amelyet először tettek hozzá a blokklánc elejéhez. Ez az érvényes, de elévült blokk bekerülhet az újabb blokkokba ommer-ként (a szülőblokk testvére) és részleges blokkjutalmat lehet érte kapni. Ez a kifejezés a semleges megfogalmazása a szülőblokk testvérére vonatkozóan, de néha nagybácsinak (uncle) is nevezik. Ez általános volt az Ethereum esetében, amikor még proof-of-work-alapú hálózat volt. Most, hogy az Ethereum proof-of-stake alapra váltott, helyenként csak egy blokkjavaslat van kiválasztva.", "onchain-term": "Láncon belüli", - "onchain-definition": "Olyan műveletekre vagy tranzakciókra utal, amelyek a blokkláncon történnek és nyilvánosan elérhetőek.", + "onchain-definition": "Olyan műveletekre vagy tranzakciókra utal, amelyek a blokkláncon történnek és nyilvánosan elérhetők.", "optimistic-rollup-term": "Optimista típusú összevont tranzakciók", "optimistic-rollup-definition": "Az optimista összesítés egy 2. rétegű megoldás, amely felgyorsítja a tranzakciókat az Ethereumon, azt feltételezve, hogy alapértelmezés szerint érvényesek, hacsak nem támadják meg őket. További információk az optimista összesítésekről.", "peer-to-peer-network-term": "Közvetítőmentes (peer-to-peer) hálózat", diff --git a/src/intl/hu/page-contributing-translation-program-acknowledgements.json b/src/intl/hu/page-contributing-translation-program-acknowledgements.json index 42cf9bf534a..93cef0b5f3b 100644 --- a/src/intl/hu/page-contributing-translation-program-acknowledgements.json +++ b/src/intl/hu/page-contributing-translation-program-acknowledgements.json @@ -30,7 +30,7 @@ "page-contributing-translation-program-acknowledgements-total-words": "Szavak száma", "page-contributing-translation-program-acknowledgements-oats-title": "OAT-ok", "page-contributing-translation-program-acknowledgements-1": "A fordítási program résztvevői különféle OAT-okat (láncon belüli eredménytoken) kaphatnak, melyek nem-helyettesíthető tokenek, és igazolják a résztvételüket az ethereum.org fordítási programjában.", - "page-contributing-translation-program-acknowledgements-2": "Különféle OAT-ok érhetők el a tevékenységek alapján", + "page-contributing-translation-program-acknowledgements-2": "Különféle OAT-ok érhetők el a fordítók számára a tevékenységük alapján.", "page-contributing-translation-program-acknowledgements-3": "Ha Ön közreműködött a fordításban a Crowdin-ban, akkor Önre is vár egy OAT!", "page-contributing-translation-program-acknowledgements-how-to-claim-title": "Hogyan kell kérni", "page-contributing-translation-program-acknowledgements-how-to-claim-1": "Csatlakozzon", diff --git a/src/intl/hu/page-get-eth.json b/src/intl/hu/page-get-eth.json index f7e6b7bf656..96af8b088a7 100644 --- a/src/intl/hu/page-get-eth.json +++ b/src/intl/hu/page-get-eth.json @@ -46,7 +46,7 @@ "page-get-eth-hero-image-alt": "ETH szerzése hős ábra", "page-get-eth-keep-it-safe": "Tartsa az ETH-t biztonságban", "page-get-eth-meta-description": "Hogyan tud a lakhelye alapján ETH-t venni, s hogyan vigyázzon rá.", - "page-get-eth-meta-title": "Hogyan lehet ETH-t szerezni", + "page-get-eth-meta-title": "Hogyan lehet Ethereumot (ETH) venni", "page-get-eth-need-wallet": "A DEX-ek használatához tárcára van szükség.", "page-get-eth-new-to-eth": "Még új az ETH? Itt egy összefoglaló, hogy hogyan fogj hozzá.", "page-get-eth-other-cryptos": "Vásárlás más kriptoval", diff --git a/src/intl/hu/page-index.json b/src/intl/hu/page-index.json index 4d95d20b905..ec9d62589f5 100644 --- a/src/intl/hu/page-index.json +++ b/src/intl/hu/page-index.json @@ -2,6 +2,7 @@ "page-index-activity-description": "Tevékenység az összes Ethereum-hálózatból", "page-index-activity-tag": "Tevékenység", "page-index-activity-header": "A legerősebb ökoszisztéma", + "page-index-activity-action": "Bővebben az Ethereum tevékenységeiről", "page-index-bento-header": "Az internet használatának új módja", "page-index-bento-assets-action": "Bővebben az NFT-kről", "page-index-bento-assets-content": "A művészeti alkotások, a tanúsítványok vagy akár az ingatlanok is tokenizálhatók. Bármilyen tokennel kereskedhet. A tulajdonjog nyilvános és ellenőrizhető.", @@ -10,7 +11,7 @@ "page-index-bento-dapps-content": "Az Ethereum-alkalmazások az adatok eladása nélkül is működnek. Védje magánéletét.", "page-index-bento-dapps-title": "Innovatív alkalmazások", "page-index-bento-defi-action": "Fedezze fel a DeFi-t", - "page-index-bento-defi-content": "Több milliárd ember nem nyithat bankszámlát, és nem használhatja szabadon a pénzét. Az Ethereum pénzügyi rendszere mindig nyitott és nem ítélkezik.", + "page-index-bento-defi-content": "Több milliárd ember nem nyithat bankszámlát, és nem használhatja szabadon a pénzét. Az Ethereum pénzügyi rendszere mindig nyitott és elfogulatlan.", "page-index-bento-defi-title": "Igazságosabb pénzügyi rendszer", "page-index-bento-networks-action": "Fedezze fel az előnyöket", "page-index-bento-networks-content": "Az Ethereum a blokklánc-innováció központja. A legjobb projektek az Ethereumra épülnek.", @@ -65,7 +66,7 @@ "page-index-learn-tag": "Ismerje meg", "page-index-learn-header": "Az Ethereum megértése", "page-index-meta-description": "Az Ethereum egy globális, decentralizált platform a pénz és újfajta alkalmazások számára. Az Ethereumon olyan kódot írhat, amely a pénzt szabályozza, és a világ bármely pontján elérhető alkalmazásokat fejleszthet.", - "page-index-meta-title": "Teljes útmutató az Ethereumhoz", + "page-index-meta-title": "Ethereum.org: Teljes útmutató az Ethereumhoz", "page-index-network-stats-total-eth-staked": "Ethereum, amely megvédi az értékeit", "page-index-network-stats-tx-cost-description": "Átlagos tranzakciós költség", "page-index-network-stats-tx-day-description": "Tranzakciók az elmúlt 24 órában", @@ -99,7 +100,7 @@ "page-index-values-privacy-legacy-content-0": "Nem várhatjuk el kormányoktól, vállalatoktól vagy más nagy, arc nélküli szervezetektől, hogy pusztán jótékonyságból megadják nekünk a magánélet védelmét.", "page-index-values-privacy-legacy-content-1": "Az alkalmazások nagy része a lehető legtöbb személyes adatot begyűjti Önről, hogy személyre szabott marketinggel célozhassa meg.", "page-index-values-privacy-ethereum-label": "Magánélet-orientált", - "page-index-values-privacy-ethereum-content-0": "Az Ethereum közössége tiszteletben tartja a magánéletet. Önnek jogában nem kell felfednie magát vagy kapcsolatfelvételi adatait ahhoz, hogy az alkalmazásokat használni tudja.", + "page-index-values-privacy-ethereum-content-0": "Az Ethereum közössége tiszteletben tartja a magánéletet. Önnek nem kell felfednie magát vagy kapcsolatfelvételi adatait ahhoz, hogy az alkalmazásokat használni tudja.", "page-index-values-integration-legacy-label": "Tagolt", "page-index-values-integration-legacy-content-0": "A legtöbb alkalmazás arra készteti, hogy külön fiókokat hozzon létre, így nehéz megjegyezni az összes bejelentkezési és regisztrációs adatot.", "page-index-values-integration-ethereum-label": "Integrált", diff --git a/src/intl/hu/page-learn.json b/src/intl/hu/page-learn.json index 4010f8028ce..d34e11e4037 100644 --- a/src/intl/hu/page-learn.json +++ b/src/intl/hu/page-learn.json @@ -10,6 +10,7 @@ "hero-header": "Ismerje meg az Ethereumot", "hero-subtitle": "Az Ön tanulási útmutatója az Ethereum világába. Ismerje meg, hogyan működik az Ethereum és hogyan tud hozzá kapcsolódni. Ez az oldal technikai és nem technikai cikkeket, útmutatókat és forrásokat is tartalmaz.", "hero-button-lets-get-started": "Lássunk neki!", + "page-learn-meta-title": "Ethereum: Átfogó tanulási útmutató", "what-is-crypto-1": "Talán Ön is hallott már a kriptovalutákról, blokkláncokról és a Bitcoinról. Az alábbi hivatkozások feltárják, hogy mik ezek és hogyan kapcsolódnak az Ethereumhoz.", "what-is-crypto-2": "A kriptovaluták, mint amilyen a bitcoin is, lehetővé teszik bárki számára, hogy pénzt utaljon a világon bárhova. Az Ethereum is képes erre, ráadásul olyan programkódokat is tud futtatni, amelyek révén alkalmazásokat és szervezeteket lehet rá építeni. Egyaránt ellenálló és rugalmas: bármilyen számítógépes program futhat az Ethereumon. Tudjon meg többet, és kezdje el használni Ön is:", "what-is-ethereum-card-title": "Mi az Ethereum?", @@ -33,9 +34,9 @@ "find-a-wallet-card-title": "Tárca keresése", "find-a-wallet-card-description": "Böngésszen a tárcák között azon jellemzők alapján, amelyek Önnek leginkább számítanak.", "find-a-wallet-button": "A tárcák listája", - "crypto-security-basics-card-title": "Biztonsági alapok", - "crypto-security-basics-card-description": "Tudja meg, hogyan ismerheti fel a csalásokat és hogyan kerülheti el a legjellemzőbb trükköket.", - "crypto-security-basics-card-button": "Maradjon biztonságban", + "ethereum-networks-card-title": "Ethereum-hálózatok", + "ethereum-networks-card-description": "Spóroljon pénzt az olcsóbb és gyorsabb Ethereum-kiterjesztések használatával.", + "ethereum-networks-card-button": "Hálózat választása", "things-to-consider-banner-title": "Az Ethereum használatához fontos tudnivalók", "things-to-consider-banner-1": "Minden Ethereum-tranzakcióért díjat kell fizetni ETH formájában, még akkor is, ha az Ethereumra épített különféle tokeneket mozgatja, mint a USDC vagy DAI stabil érmék.", "things-to-consider-banner-2": "A tranzakciós díjak magasak lehetnek annak függvényében, hogy éppen hányan használják az Ethereumot, ezért használja a", @@ -85,7 +86,7 @@ "ethereum-whitepaper-card-button": "Tanulmányok olvasása", "more-on-ethereum-protocol-title": "Bővebben az Ethereum protokollról", "more-on-ethereum-protocol-ethereum-for-developers": "Ethereum a fejlesztők számára", - "more-on-ethereum-protocol-consensus": "Az Ethereum proof-of-stake-en alapuló konszenzus mechanizmusa", + "more-on-ethereum-protocol-consensus": "Az Ethereum proof-of-stake módszeren alapuló konszenzusos mechanizmusa", "more-on-ethereum-protocol-evm": "Az Ethereum beágyazott számítógépe (EVM)", "more-on-ethereum-protocol-nodes-and-clients": "Ethereum-csomópontok és -kliensek", "ethereum-community-description": "Az Ethereum sikere a hihetetlenül dedikált közösségnek köszönhető. Ezernyi inspirált és öntudatos ember segíti az Ethereum víziójának megvalósítását, miközben biztosítja a hálózatot a letétbe helyezés és az irányítás által. Jöjjön és csatlakozzon Ön is!", diff --git a/src/intl/hu/page-run-a-node.json b/src/intl/hu/page-run-a-node.json index a7e325331fe..23521357419 100644 --- a/src/intl/hu/page-run-a-node.json +++ b/src/intl/hu/page-run-a-node.json @@ -111,6 +111,7 @@ "page-run-a-node-sovereignty-1": "Egy Ethereum-tárca segítségével teljes felügyeletet és irányítást gyakorolhat digitális eszközei felett, mivel biztonságban tartja a címeihez tartozó privát kulcsokat – ezek a kulcsok azonban nem adnak információt a blokklánc aktuális állapotáról, mint például a pénztárca egyenlegéről.", "page-run-a-node-sovereignty-2": "Az alapértelmezés szerint az Ethereum-tárcák általában egy harmadik fél csomópontján keresztül kérik le az egyenleget, ilyen például az Infura vagy az Alchemy. Saját csomópont futtatásával saját példánya lehet az Ethereum-blokkláncról.", "page-run-a-node-title": "Csomópont futtatása", + "page-run-a-node-meta-title": "Hogyan lehet Ethereum-csomópontot futtatni", "page-run-a-node-voice-your-choice-title": "Adjon hangot a véleményének", "page-run-a-node-voice-your-choice-preview": "Ne adja ki a kezéből az irányítást elágazás esetén sem.", "page-run-a-node-voice-your-choice-1": "Láncelágazás esetén, amikor két lánc jön létre különböző szabályokkal, a saját csomópont futtatása garantálja, hogy kiválaszthatja, melyik szabályokat kívánja támogatni. Önön múlik, hogy frissít-e az új szabályokra, és támogatja-e a javasolt változtatásokat, vagy sem.", diff --git a/src/intl/hu/page-upgrades-index.json b/src/intl/hu/page-upgrades-index.json index 2d459f142d2..390f5d5ace9 100644 --- a/src/intl/hu/page-upgrades-index.json +++ b/src/intl/hu/page-upgrades-index.json @@ -97,7 +97,7 @@ "page-upgrades-question-6-answer-5": "Emellett csatlakozhat az Ethereum-kutatási és -fejlesztési fórumhoz is az ethresear.ch oldalon.", "page-upgrades-question-6-title": "Mit kell csinálnom a dappommal?", "page-upgrades-question-6-desc": "Az egyesítést (Merge) úgy tervezték meg, hogy minimális hatást gyakoroljon a dapp-fejlesztőkre, azonban történt néhány említésre méltó változtatás.", - "page-upgrades-question-6-answer-1": "A beolvadás előtti Ethereumot ismerő dapp-fejlesztőknek tisztában kell lenniük néhány változással. Ezek közé sorolható a blokkstruktúra és -időzítés változása, néhány műveletikód-változás, a láncon belüli (on-chain) véletlenszerűség forrása és a korszak-véglegesítés koncepciója.", + "page-upgrades-question-6-answer-1": "A beolvadás előtti Ethereumot ismerő dapp-fejlesztőknek tisztában kell lenniük néhány változással. Ezek közé sorolható a blokkstruktúra és -időzítés változása, néhány műveletikód-változás, a láncon belüli (onchain) véletlenszerűség forrása és a korszak-véglegesítés koncepciója.", "page-upgrades-question-6-answer-1-link": "Az egyesítés (Merge) hatása az Ethereum alkalmazási rétegére", "page-upgrades-question-6-answer-2": "Az alkalmazások szinte teljesen érintetlenek maradtak.", "page-upgrades-question-7-desc": "A közösség egészéből sok különböző csapat dolgozik a különféle Ethereum-frissítéseken.", diff --git a/src/intl/hu/page-wallets-find-wallet.json b/src/intl/hu/page-wallets-find-wallet.json index 1de7b90849b..88577ef6daf 100644 --- a/src/intl/hu/page-wallets-find-wallet.json +++ b/src/intl/hu/page-wallets-find-wallet.json @@ -5,7 +5,7 @@ "page-find-wallet-description": "A tárcák tárolják az ETH-t és bonyolítják a kapcsolódó tranzakciókat. Számos, az Ön igényeihez igazodó termék közül választhat.", "page-find-wallet-last-updated": "Utolsó frissítés", "page-find-wallet-meta-description": "Keresse meg és hasonlítsa össze az Ethereum tárcákat a kívánt tulajdonságok alapján.", - "page-find-wallet-meta-title": "Ethereum tárca keresése", + "page-find-wallet-meta-title": "Az Ethereum-tárcák listája | ethereum.org", "page-find-wallet-title": "Válassza ki a tárcáját", "page-find-wallet-try-removing": "Próbáljon elvenni egy vagy két jellemzőt", "page-stake-eth": "ETH letétbe helyezése", diff --git a/src/intl/hu/page-what-is-ethereum.json b/src/intl/hu/page-what-is-ethereum.json index 7fdec284d12..f68f6b7bb88 100644 --- a/src/intl/hu/page-what-is-ethereum.json +++ b/src/intl/hu/page-what-is-ethereum.json @@ -1,5 +1,5 @@ { - "page-what-is-ethereum-alt-img-bazaar": "Egy illusztráció, ahol egy személy egy bazárba kukucskál, mely az Ethereumot reprezentálja", + "page-what-is-ethereum-alt-img-bazaar": "Egy illusztráció, ahol egy személy egy bazárba kukucskál, amely az Ethereumot reprezentálja", "page-what-is-ethereum-alt-img-comm": "Egy illusztráció, amiben Ethereum közösségi tagok együtt dolgoznak", "page-what-is-ethereum-alt-img-lego": "Illusztráció egy kézről, amely egy ETH-logót épít LEGO-kockákból", "page-what-is-ethereum-banking-card": "Banki szolgáltatás mindenkinek", @@ -34,9 +34,12 @@ "page-what-is-ethereum-cryptocurrency-tab-content-2": "Az olyan eszközöket, mint a bitcoin és az ether, azért nevezik „kriptovalutának”, mert a felhasználó adatainak és eszközeinek biztonságát a kriptográfia biztosítja, nem pedig az, hogy egy intézmény vagy vállalat tisztességesen kezeli-e azokat.", "page-what-is-ethereum-cryptocurrency-tab-content-3": "Az Ethereum saját kriptovalutával, az etherrel (ETH) rendelkezik, mellyel a hálózaton végzett tranzakciókért fizetünk. Ezt az Ethereum hálózatán el lehet küldeni más felhasználóknak vagy át lehet váltani más tokenekre. Az ether azért különleges, mert ezzel fizetnek az Ethereum hálózatán végzett műveletekért, számítási kapacitásért, melyek elengedhetetlenek az alkalmazások és szervezetek fejlesztéséhez és működtetéséhez.", "page-what-is-ethereum-summary-title": "Összegzés", - "page-what-is-ethereum-summary-desc-1": "Az Ethereum egy olyan globális, számítógépekből álló hálózat, mely az Ethereum-protokollnak nevezett szabályrendszer alapján működik. Alapot biztosít közösségek, alkalmazások, szervezetek és digitális eszközök számára, melyeket bárki létrehozhat, megépíthet és használhat.", - "page-what-is-ethereum-summary-desc-2": "Ön is könnyedén készíthet magának egy Ethereum-számlát bárhol és bármikor, és felfedezheti az elérhető alkalmazásokat vagy megépítheti a sajátját. Ebben az a legfontosabb innováció, hogy nem egy központi hatóságra bízza magát, mely bármikor megváltoztathatja a szabályokat és korlátozhatja a hozzáférését.", - "page-what-is-ethereum-summary-desc-3": "Olvasson tovább a részletekért…", + "page-what-is-ethereum-summary-desc-1": "Az Ethereum több ezer alkalmazás és blokklánc fő platformja, amelyek mind az Ethereum-protokollt használják.", + "page-what-is-ethereum-summary-desc-2": "Ez az élénk ökoszisztéma elősegíti az innovációt, valamint a decentralizált alkalmazások és szolgáltatások széles skáláját.", + "page-what-is-ethereum-summary-bullet-1": "Ingyenes és globális Ethereum-számlák", + "page-what-is-ethereum-summary-bullet-2": "Pszeudo-privát, nincs szükség személyes információkra", + "page-what-is-ethereum-summary-bullet-3": "Korlátozások nélkül bárki részt vehet", + "page-what-is-ethereum-summary-bullet-4": "Egyetlen vállalat sem birtokolja az Ethereumot vagy dönhet a jövőjéről", "page-what-is-ethereum-btc-eth-diff-title": "Mi a különbség az Ethereum és a Bitcoin között?", "page-what-is-ethereum-btc-eth-diff-1": "A 2015-ben elindított Ethereum a Bitcoin innovációjára épül, néhány nagyobb különbséggel.", "page-what-is-ethereum-btc-eth-diff-2": "Mindkettővel használhat digitális pénzt fizetési szolgáltatók vagy bankok ingénybevétele nélkül. Az Ethereum azonban programozható, így decentralizált alkalmazásokat is lehet építeni és telepíteni a hálózatán.", diff --git a/src/intl/hu/template-usecase.json b/src/intl/hu/template-usecase.json index 0550b9c2ea2..a09e1742231 100644 --- a/src/intl/hu/template-usecase.json +++ b/src/intl/hu/template-usecase.json @@ -1,7 +1,9 @@ { + "template-usecase-dropdown-ai-agents": "AI-ügynökök", "template-usecase-dropdown-defi": "Decentralizált pénzügy (DeFi)", "template-usecase-dropdown-nft": "Nem helyettesíthető tokenek (NFT-k)", "template-usecase-dropdown-dao": "Decentralizált autonóm szervezetek (DAO-k)", + "template-usecase-dropdown-payments": "Fizetések az Ethereumon", "template-usecase-dropdown-social-networks": "Nem központosított közösségi hálózatok", "template-usecase-dropdown-identity": "Nem központilag kibocsájtott identitás", "template-usecase-dropdown-desci": "Nem központosított kutatás (DeSci)", @@ -10,4 +12,4 @@ "template-usecase-banner": "Az Ethereum felhasználása folyamatosan bővül és fejlődik. Egészítse ki bármilyen információval, ha úgy gondolja, hogy azzal érthetőbbé vagy aktuálisabbá válhat az oldal.", "template-usecase-edit-link": "Oldal szerkesztése", "template-usecase-dropdown-aria": "Esettanulmányok legördülő menü" -} +} \ No newline at end of file From 266e4f7780757ab59454cc628c2a20bad6354417 Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Thu, 1 May 2025 04:45:33 +0000 Subject: [PATCH 053/106] chore: import translations for id --- public/content/translations/id/about/index.md | 99 ++++-- .../translations/id/beacon-chain/index.md | 75 +++++ public/content/translations/id/dvt/index.md | 91 ++++++ .../content/translations/id/events/index.md | 24 ++ .../translations/id/future-proofing/index.md | 38 +++ .../index.md | 73 +++++ .../content/translations/id/scaling/index.md | 51 +++ .../content/translations/id/security/index.md | 295 ++---------------- .../translations/id/user-experience/index.md | 36 +++ public/content/translations/id/web3/index.md | 4 + src/intl/id/common.json | 2 + src/intl/id/glossary-tooltip.json | 102 ++++++ src/intl/id/page-index.json | 5 +- src/intl/id/page-upgrades-index.json | 2 +- src/intl/id/page-wallets-find-wallet.json | 14 +- src/intl/id/page-what-is-ethereum.json | 2 +- src/intl/id/template-usecase.json | 1 + 17 files changed, 615 insertions(+), 299 deletions(-) create mode 100644 public/content/translations/id/beacon-chain/index.md create mode 100644 public/content/translations/id/dvt/index.md create mode 100644 public/content/translations/id/events/index.md create mode 100644 public/content/translations/id/future-proofing/index.md create mode 100644 public/content/translations/id/how-to-create-an-ethereum-account/index.md create mode 100644 public/content/translations/id/scaling/index.md create mode 100644 public/content/translations/id/user-experience/index.md create mode 100644 src/intl/id/glossary-tooltip.json diff --git a/public/content/translations/id/about/index.md b/public/content/translations/id/about/index.md index 49f79d0bb13..6f0b9b76a2f 100644 --- a/public/content/translations/id/about/index.md +++ b/public/content/translations/id/about/index.md @@ -6,13 +6,47 @@ lang: id # Tentang Ethereum.org {#about-ethereumorg} -ethereum.org adalah sumber daya publik terbuka untuk komunitas Ethereum yang dapat disumbang oleh siapa saja. Kami memiliki tim kecil khusus untuk mengurus dan mengembangkan situs yang didanai oleh [Yayasan Ethereum](/foundation/). +ethereum.org adalah sumber daya publik terbuka untuk komunitas Ethereum yang dapat disumbang oleh siapa saja. Kami memiliki tim inti kecil yang berdedikasi untuk memelihara dan mengembangkan situs ini, dengan kontribusi dari ribuan anggota komunitas di seluruh dunia. -## Visi kami {#our-vision} +**Tidak ada seorang pun dari ethereum.org yang akan menghubungi Anda. Jangan memberi respons apa pun.** -### Misi ethereum.org adalah menjadi portal terbaik untuk komunitas Ethereum yang sedang berkembang {#mission} +## Catatan tentang nama {#a-note-on-names} -Kami adalah sumber daya pendidikan, yang dirancang untuk membantu pengguna baru mengenal Ethereum dan konsep utamanya. Kami ingin: +Banyak orang seringkali bingung dengan nama-nama dalam lingkup Ethereum, yang dapat menyebabkan model mental yang kurang tepat tentang bagaimana Ethereum berfungsi. Berikut penjelasan singkat untuk menjelaskan hal-hal tersebut: + +### Ethereum {#ethereum} + +Ethereum adalah jaringan publik, rantai blok, dan protokol sumber terbuka -- dioperasikan, dikelola, dan dimiliki oleh komunitas global dari puluhan ribu pengembang, operator simpul, pemegang ETH, dan pengguna. + +[Lebih lanjut perihal Ethereum](/what-is-ethereum/) + +[Lebih lanjut perihal pemerintahan Ethereum](/governance/) + +### Ether (ETH) {#ether-or-eth} + +Ether (juga dikenal dengan simbol telegrap-nya, ETH) adalah mata uang asli yang digunakan dalam transaksi di Ethereum. ETH diperlukan untuk membayar penggunaan jaringan Ethereum (dalam bentuk biaya transaksi). ETH juga digunakan untuk mengamankan jaringan dengan penaruhan. Ketika orang berbicara tentang harga Ethereum, mereka merujuk pada aset ETH. + +[Lebih lanjut seputar ETH](/eth/) + +[Lebih lanjut tentang penaruhan ETH](/staking/) + +### Ethereum Foundation {#ethereum-foundation} + +Organisasi nirlaba, yang awalnya didanai oleh crowdsale ETH, yang didedikasikan untuk mendukung jaringan dan ekosistem Ethereum. + +[Lebih lanjut tentang Ethereum Foundation](/foundation/) + +### ethereum.org {#ethereum-org} + +Situs web sumber terbuka dan sumber daya edukasi untuk komunitas Ethereum. ethereum.org dipimpin oleh sebuah tim inti kecil, yang didanai oleh Ethereum Foundation, dengan kontribusi dari ribuan anggota komunitas di seluruh dunia. + +Halaman ini mencakup informasi lebih lanjut mengenai ethereum.org. + +## Misi kami {#our-mission} + +**Misi ethereum.org adalah menjadi portal terbaik untuk komunitas Ethereum yang sedang berkembang** + +Kami berusaha keras untuk membangun sumber daya edukasi yang mudah dipahami untuk semua topik yang berkaitan dengan Ethereum, yang dirancang untuk membantu pengguna baru agar terbiasa dengan Ethereum dan konsep-konsep utamanya. Kami ingin: - menjelaskan Ethereum kepada siapa pun yang baru mengenal teknologi - membantu pengguna baru untuk memulai dengan ETH dan Ethereum @@ -21,46 +55,75 @@ Kami adalah sumber daya pendidikan, yang dirancang untuk membantu pengguna baru - menampilkan sumber daya yang dibuat oleh komunitas - membawa pendidikan Ethereum ke sebanyak mungkin bahasa -Kami memiliki beberapa prinsip inti yang membantu kami melakukan ini. +Untuk mencapai misi ini, tim kami berfokus pada dua tujuan utama di ethereum.org: + +### 1. Meningkatkan pengalaman pengguna untuk pengunjung ethereum.org {#visitors} + +- Memperluas, meningkatkan, dan menjaga konten tetap mutakhir +- Meningkatkan kegunaan dan aksesibilitas melalui pelokalan dan praktik terbaik pengembangan web +- Tingkatkan keterlibatan pengguna melalui fitur-fitur seperti survei, kuis, dan integrasi web3 +- Jaga agar situs web tetap ringan dan berkinerja baik + +### 2. Menumbuhkan, memperkuat, dan memberdayakan komunitas kontributor kami {#community} + +- Menambah jumlah kontributor ke situs web +- Meningkatkan retensi kontributor melalui keterlibatan, pengakuan, dan penghargaan +- Memberdayakan anggota masyarakat untuk memberikan kontribusi yang semakin signifikan +- Memfasilitasi keragaman kontribusi yang lebih besar: kode, konten, desain, terjemahan, moderasi +- Menjaga basis kode tetap modern, bersih, dan terdokumentasi dengan baik ## Prinsip utama {#core-principles} -### 1. ethereum.org adalah portal ke Ethereum 🌏 {#core-principles-1} +Kami memiliki beberapa prinsip utama yang membantu memandu kami untuk mencapai misi kami. -Kami ingin agar minat pengguna kami terusik dan pertanyaan mereka dijawab. Jadi portal kami perlu menggabungkan informasi, "momen ajaib" dan tautan ke sumber daya komunitas brilian yang ada di luar sana. Tujuan konten kami adalah menjadi “portal orientasi” dan bukan pengganti sumber daya ekstensif yang sudah ada. Kami sangat tertarik untuk mendukung dan mengintegrasikan sumber daya komunitas, yang membuat mereka semakin populer dan makin mudah untuk ditemukan. +### 1. ethereum.org adalah portal ke Ethereum 🌏 {#core-principles-1} -[Komunitas Ethereum](/community/) adalah inti dari ini: kita tidak hanya perlu melayani komunitas, tetapi bekerja dengan mereka dan memasukkan umpan balik mereka. Situs web ini tidak hanya untuk komunitas yang kita miliki sekarang, tetapi juga untuk komunitas yang kita harapkan untuk tumbuh. Kita harus ingat komunitas kita bersifat global, berisi orang-orang dari berbagai bahasa, daerah, dan budaya. +Kami ingin agar minat pengguna kami terusik dan pertanyaan mereka dijawab. Jadi portal kami perlu menggabungkan informasi, "momen ajaib" dan tautan ke sumber daya komunitas brilian yang ada di luar sana. Tujuan konten kami adalah menjadi “portal orientasi” dan bukan pengganti sumber daya ekstensif yang sudah ada. Kami sangat tertarik untuk mendukung dan mengintegrasikan sumber daya komunitas, yang membuat mereka semakin populer dan makin mudah untuk ditemukan. [Komunitas Ethereum](/community/) adalah inti dari ini: kita tidak hanya perlu melayani komunitas, tetapi bekerja dengan mereka dan memasukkan umpan balik mereka. Situs web ini tidak hanya untuk komunitas yang kita miliki sekarang, tetapi juga untuk komunitas yang kita harapkan untuk tumbuh. Kita harus ingat komunitas kita bersifat global, berisi orang-orang dari berbagai bahasa, daerah, dan budaya. ### 2. ethereum.org selalu berkembang 🛠 {#core-principles-2} -Ethereum dan komunitas selalu berkembang, begitu juga ethereum.org. Itu sebabnya situs ini memiliki sistem desain sederhana dan struktur modular. Kami membuat perubahan berulang saat kami mempelajari lebih lanjut tentang bagaimana orang menggunakan situs dan apa yang diinginkan komunitas darinya. +Ethereum dan komunitas selalu berkembang, begitu juga ethereum.org. Itu sebabnya situs ini memiliki sistem desain sederhana dan struktur modular. Kami membuat perubahan iteratif saat kami mempelajari lebih lanjut tentang bagaimana orang menggunakan situs dan apa yang diinginkan komunitas darinya. Kami adalah sumber daya terbuka, dengan komunitas kontributor, sehingga Anda dapat mengusulkan perubahan atau membantu kami juga. [Belajar tentang kontribusi](/contributing/) + +### 3. ethereum.org bukan situs web produk biasa 🦄 {#core-principles-3} -Kami adalah sumber daya terbuka, dengan komunitas kontributor, sehingga Anda dapat mengusulkan perubahan atau membantu kami juga. +Ethereum adalah hal yang besar: itu mencakup komunitas, teknologi, serangkaian ide dan ideologi, dan banyak lagi. Ini berarti situs web perlu menangani banyak perjalanan pengguna yang berbeda, mulai dari "pengembang yang menginginkan alat tertentu" dan "pendatang baru yang baru saja membeli ETH dan tidak tau apa itu dompet". "Apa situs web terbaik untuk platform rantai blok?" Tetap menjadi pertanyaan terbuka-kami adalah pionir. Membangun ini membutuhkan eksperimen. -[Pelajari tentang berkontribusi](/contributing/) +## Peta perjalanan produk {#roadmap} -### 3. ethereum.org bukan situs web produk biasa 🦄 {#core-principles-3} +Untuk membuat pekerjaan kami lebih mudah diakses dan mendorong lebih banyak kolaborasi komunitas, tim inti ethereum.org menerbitkan ikhtisar tujuan peta perjalanan [siklus shape up](https://www.productplan.com/glossary/shape-up-method/) kami. -Ethereum adalah hal yang besar: itu mencakup komunitas, teknologi, serangkaian ide dan ideologi, dan banyak lagi. Ini berarti situs web perlu menangani banyak perjalanan pengguna yang berbeda, dari “pengembang yang menginginkan alat tertentu” dan “pendatang baru yang baru saja membeli beberapa ETH dan tidak tahu apa itu dompet” +[Lihat peta perjalanan produk Siklus 1 tahun 2025 kami](https://github.com/ethereum/ethereum-org-website/issues/14726) -"Apa situs web terbaik untuk platform blockchain?" tetap menjadi pertanyaan terbuka - kami adalah pionir. Membangun ini membutuhkan eksperimen. +**Bagaimana pendapat Anda?** Kami selalu menghargai umpan balik tentang peta perjalanan kami-jika ada hal yang menurut Anda perlu kami kerjakan, harap beri tahu kami! Kami menyambut baik ide dan PR dari siapa saja dalam komunitas. + +**Ingin berkontribusi?** [Temukan lebih lanjut tentang berkontribusi](/contributing/), [hubungi kami di Twitter](https://twitter.com/ethdotorg), atau ikut serta dalam diskusi komunitas di [server Discord kami](https://discord.gg/ethereum-org). ## Prinsip desain {#design-principles} Kami menggunakan serangkaian [prinsip desain](/contributing/design-principles/) untuk memandu pemilihan konten dan desain kami di situs. +## Sistem Desain {#design-system} + +Kami telah membangun dan merilis sebuah [sistem desain](https://www.figma.com/file/NrNxGjBL0Yl1PrNrOT8G2B/ethereum.org-Design-System?node-id=0%3A1&t=QBt9RkhpPqzE3Aa6-1) untuk menghadirkan fitur lebih cepat dan memungkinkan anggota komunitas berpartisipasi dalam desain terbuka ethereum.org. + +Ingin berkontribusi? [Ikuti di Figma](https://www.figma.com/file/NrNxGjBL0Yl1PrNrOT8G2B/ethereum.org-Design-System), [masalah GitHub](https://github.com/ethereum/ethereum-org-website/issues/6284) dan bergabunglah dalam percakapan di [saluran Discord #design](https://discord.gg/ethereum-org) kami. + ## Panduan gaya penulisan {#style-guide} Kami memiliki [panduan gaya penulisan](/contributing/style-guide/) untuk menstandardisasi beberapa aspek penulisan konten agar proses kontribusi lebih mudah. -Kami menyambut umpan balik baik untuk prinsip desain maupun panduan gaya penulisan. Ingat, ethereum.org adalah untuk komunitas, oleh komunitas. - Pastikan Anda membaca [prinsip-prinsip kami](/contributing/design-principles/) dan [panduan gaya penulisan kami](/contributing/style-guide/) jika Anda ingin [berkontribusi ke situs ini](/contributing/). +Kami menyambut umpan balik mengenai prinsip desain kami, sistem desain, dan panduan gaya kami. Ingat, ethereum.org adalah untuk komunitas, oleh komunitas. + +## Lisensi {#license} + +Situs web ethereum.org adalah sumber terbuka dan dibuat di bawah [Lisensi MIT](https://github.com/ethereum/ethereum-org-website/blob/dev/LICENSE) kecuali disebutkan sebaliknya. Lebih lanjut tentang [syarat penggunaan](/terms-of-use/) ethereum.org. + ## Lowongan kerja {#open-jobs} -Meskipun situs web ini adalah sumber terbuka dan siapa pun dapat mengerjakannya, kami memiliki sebuah tim yang didedikasikan untuk ethereum.org dan proyek web Yayasan Ethereum lainnya. +Meskipun situs web ini adalah sumber terbuka dan siapa pun dapat mengerjakannya, kami memiliki sebuah tim yang didedikasikan untuk ethereum.org dan proyek web Ethereum Foundation lainnya. -Kami akan memposting lowongan pekerjaan apa pun di sini. Jika Anda tidak melihat posisi pekerjaan yang sesuai untuk Anda, kunjungi [Discord](https://discord.gg/ethereum-org) dan beri tahu kami bagaimana Anda ingin bekerja dengan kami! +Kami akan memposting lowongan pekerjaan apa pun di sini. Jika Anda tidak melihat peran yang cocok untuk Anda di sini, silakan kunjungi [server Discord kami](https://discord.gg/ethereum-org) dan beri tahu kami bagaimana Anda ingin bekerja bersama kami! Ingin pekerjaan di luar tim ethereum.org? [Lihat pekerjaan terkait Ethereum lainnya](/community/get-involved/#ethereum-jobs/). diff --git a/public/content/translations/id/beacon-chain/index.md b/public/content/translations/id/beacon-chain/index.md new file mode 100644 index 00000000000..520bf51849a --- /dev/null +++ b/public/content/translations/id/beacon-chain/index.md @@ -0,0 +1,75 @@ +--- +title: Rantai Suar +description: Belajar tentang Rantai Suar - peningkatan yang memperkenalkan bukti taruhan Ethereum. +lang: id +template: upgrade +image: /images/upgrades/core.png +alt: +summaryPoint1: Rantai Suar memperkenalkan bukti taruhan ke dalam ekosistem Ethereum. +summaryPoint2: Rantai ini digabungkan dengan rantai bukti kerja Ethereum yang asli pada bulan September 2022. +summaryPoint3: Rantai Suar memperkenalkan logika konsensus dan protokol gosip blok yang sekarang mengamankan Ethereum. +--- + + + Rantai Suar dikirimkan pada tanggal 1 Desember 2020, dan meresmikan bukti taruhan sebagai mekanisme konsensus Ethereum dengan peningkatan Penggabungan pada tanggal 15 September 2022. + + +## Apa yang dimaksud dengan Rantai Suar? {#what-is-the-beacon-chain} + +Rantai Suar adalah nama rantai blok bukti taruhan asli yang diluncurkan pada tahun 2020. Ini dibuat untuk memastikan logika konsensus bukti taruhan yang baik dan berkelanjutan sebelum mengaktifkannya di Jaringan Utama Ethereum. Oleh karena itu, ia berjalan bersama dengan Ethereum bukti kerja yang asli. Rantai Suar adalah sebuah rantai blok 'kosong', tetapi mematikan bukti kerja dan mengaktifkan bukti taruhan pada Ethereum membutuhkan instruksi kepada Rantai Suar untuk menerima data transaksi dari klien eksekusi, menggabungkannya ke dalam blok-blok, dan kemudian mengaturnya ke dalam sebuah rantai blok dengan menggunakan sebuah mekanisme konsensus berbasis bukti taruhan. Pada saat yang sama, klien Ethereum yang asli mematikan penambangan, penyebaran blok, dan logika konsensus mereka, dan menyerahkan semuanya kepada Rantai Suar. Acara ini dikenal sebagai [Penggabungan](/roadmap/merge/). Setelah Penggabungan terjadi, tidak ada lagi dua rantai blok. Sebagai gantinya, hanya ada satu bukti taruhan Ethereum, yang sekarang membutuhkan dua klien yang berbeda per simpul. Rantai Suar sekarang menjadi lapisan konsensus, sebuah jaringan klien konsensus rekan-ke-rekan yang menangani gosip blok dan logika konsensus, sementara klien asli membentuk lapisan eksekusi, yang bertanggung jawab untuk menggosipkan dan mengeksekusi transaksi, dan mengelola status Ethereum. Kedua lapisan tersebut dapat berkomunikasi satu sama lain menggunakan API Engine. + +## Apa yang dilakukan oleh Rantai Suar? {#what-does-the-beacon-chain-do} + +Rantai Suar adalah nama yang diberikan kepada buku besar akun yang melakukan dan mengkoordinasikan jaringan [penaruh](/staking/) sebelum para penaruh tersebut mulai memvalidasi blok Ethereum yang sebenarnya. Lapisan ini tidak memproses transaksi atau menangani interaksi kontrak pintar karena hal itu dilakukan di lapisan eksekusi. Rantai Suar bertanggung jawab untuk hal-hal seperti penanganan blok dan pengesahan, menjalankan algoritma pilihan garpu, dan mengelola imbalan, dan penalti. Baca lebih lanjut di [halaman arsitektur simpul](/developers/docs/nodes-and-clients/node-architecture/#node-comparison). + +## Dampak Rantai Suar {#beacon-chain-features} + +### Memperkenalkan penaruhan {#introducing-staking} + +Rantai Suar memperkenalkan [bukti taruhan](/developers/docs/consensus-mechanisms/pos/) pada Ethereum. Hal ini membuat Ethereum tetap aman dan membuat validator mendapatkan lebih banyak ETH dalam prosesnya. Dalam praktiknya, penaruhan melibatkan penaruhan ETH untuk mengaktifkan perangkat lunak validator. Sebagai penaruh, Anda menjalankan perangkat lunak yang membuat dan memvalidasi blok baru dalam chain. + +Penaruhan memiliki tujuan yang serupa dengan [penambangan](/developers/docs/consensus-mechanisms/pow/mining/), tetapi berbeda dalam banyak hal. Penambangan membutuhkan pengeluaran besar di muka dalam bentuk perangkat keras yang kuat dan konsumsi energi, yang menghasilkan skala ekonomi, dan mendorong sentralisasi. Penambangan juga tidak dilengkapi dengan persyaratan untuk mengunci aset sebagai jaminan, membatasi kemampuan protokol untuk menghukum pelaku kejahatan setelah terjadi serangan. + +Transisi ke bukti taruhan membuat Ethereum secara signifikan lebih aman dan terdesentralisasi dibandingkan dengan bukti kerja. Semakin banyak orang yang berpartisipasi dalam jaringan, semakin terdesentralisasi dan aman dari serangan. + +Dan menggunakan bukti taruhan sebagai mekanisme konsensus adalah komponen dasar untuk [Ethereum yang aman, ramah lingkungan, dan dapat diskalakan yang kita miliki saat ini](/roadmap/vision/). + + + Jika Anda tertarik untuk menjadi validator dan membantu mengamankan Ethereum, pelajari lebih lanjut tentang penaruhan. + + +### Menyiapkan untuk pecahan {#setting-up-for-sharding} + +Sejak Rantai Suar bergabung dengan Jaringan Utama Ethereum yang asli, komunitas Ethereum mulai mencari cara untuk penskalaan jaringan. + +Bukti taruhan memiliki keuntungan karena memiliki registri semua produsen blok yang disetujui pada waktu tertentu, masing-masing dengan ETH yang dipertaruhkan. Registri ini menetapkan panggung untuk kemampuan membagi dan menaklukkan, tetapi dengan andal membagi tanggung jawab jaringan tertentu. + +Tanggung jawab ini berbeda dengan bukti kerja, di mana penambang tidak memiliki kewajiban terhadap jaringan dan dapat berhenti menambang dan mematikan perangkat lunak simpul mereka secara permanen dalam sekejap tanpa ada konsekuensi. Juga tidak ada registri pengusul blok yang dikenal dan tidak ada cara yang dapat diandalkan untuk membagi tanggung jawab jaringan dengan aman. + +[Lebih lanjut tentang pecahan](/roadmap/danksharding/) + +## Hubungan antar peningkatan {#relationship-between-upgrades} + +Semua peningkatan Ethereum saling terkait. Jadi ayo kita ingat kembali bagaimana Rantai Suar memengaruhi peningkatan lainnya. + +### Rantai Suar dan Penggabungan {#merge-and-beacon-chain} + +Pada awalnya, Rantai Suar ada secara terpisah dari Jaringan Utama Ethereum, tetapi keduanya digabungkan pada tahun 2022. + + + Penggabungan + + +### Pecahan dan Rantai Suar {#shards-and-beacon-chain} + +Pecahan hanya dapat masuk ke dalam ekosistem Ethereum dengan aman dengan adanya mekanisme konsensus bukti taruhan. Rantai Suar memperkenalkan penaruhan, yang 'bergabung' dengan Jaringan Utama, membuka jalan bagi pecahan untuk membantu meningkatkan skala Ethereum. + + + Rantai shard + + +## Bacaan Lebih Lanjut + +- [Lebih lanjut tentang peningkatan Ethereum di masa depan](/roadmap/vision) +- [Lebih lanjut tentang arsitektur simpul](/developers/docs/nodes-and-clients/node-architecture) +- [Lebih lanjut tentang bukti taruhan](/developers/docs/consensus-mechanisms/pos) diff --git a/public/content/translations/id/dvt/index.md b/public/content/translations/id/dvt/index.md new file mode 100644 index 00000000000..e5e7ac56d95 --- /dev/null +++ b/public/content/translations/id/dvt/index.md @@ -0,0 +1,91 @@ +--- +title: Teknologi validator terdistribusi +description: Teknologi validator terdistribusi memungkinkan operasi terdistribusi validator Ethereum oleh banyak pihak. +lang: id +--- + +# Teknologi validator terdistribusi {#distributed-validator-technology} + +Teknologi validator terdistribusi (DVT) adalah pendekatan terhadap keamanan validator yang menyebarkan manajemen kunci dan tanggung jawab penandatanganan ke berbagai pihak, untuk mengurangi titik kegagalan tunggal, dan meningkatkan ketangguhan validator. + +Hal ini dilakukan dengan **memisahkan kunci pribadi** yang digunakan untuk mengamankan validator **di banyak komputer** yang diorganisir ke dalam sebuah "kelompok". Manfaat dari hal ini adalah menyulitkan bagi Penyerang untuk mendapatkan akses ke kunci, karena kunci tersebut tidak disimpan secara lengkap di satu mesin saja. Ini juga memungkinkan beberapa simpul untuk offline, karena penandatanganan yang diperlukan dapat dilakukan oleh sebagian mesin di setiap kelompok. Ini mengurangi satu titik kegagalan dari jaringan dan membuat seluruh set validator lebih kuat. + +![Diagram yang menunjukkan bagaimana satu kunci validator dibagi menjadi beberapa bagian kunci dan didistribusikan ke beberapa simpul dengan komponen yang berbeda-beda.](./dvt-cluster.png) + +## Mengapa kita membutuhkan DVT? {#why-do-we-need-dvt} + +### Keamanan {#security} + +Validator menghasilkan dua pasangan Kunci Publik-Pribadi: kunci Validator untuk berpartisipasi dalam Konsensus dan kunci penarikan untuk mengakses dana. Sementara validator dapat mengamankan kunci penarikan di penyimpanan dingin, kunci pribadi validator harus daring 24/7. Jika kunci pribadi validator disusupi, penyerang dapat mengontrol validator, yang berpotensi menyebabkan pemotongan atau hilangnya ETH penaruh. DVT dapat membantu mengurangi risiko ini. Begini caranya: + +Dengan menggunakan DVT, penaruh dapat berpartisipasi dalam penaruhan sambil menyimpan kunci pribadi validator di penaruhan dingin. Ini dicapai dengan mengenkripsi kunci validator lengkap asli dan kemudian membaginya menjadi pembagian kunci. Pembagian kunci langsung daring dan didistribusikan ke beberapa simpul yang memungkinkan operasi validator terdistribusi. Ini dimungkinkan karena validator Ethereum menggunakan tanda tangan BLS yang bersifat aditif, artinya kunci lengkap dapat direkonstruksi dengan menjumlahkan bagian-bagian komponennya. Hal ini memungkinkan penaruh untuk menyimpan kunci validator 'master' asli lengkap dengan aman secara offline. + +### Tidak ada titik kegagalan tunggal {#no-single-point-of-failure} + +Ketika sebuah validator dibagi di antara beberapa operator dan mesin, validator tersebut dapat menahan kegagalan perangkat keras dan perangkat lunak individu tanpa menjadi offline. Risiko kegagalan juga dapat dikurangi dengan menggunakan beragam konfigurasi perangkat keras dan perangkat lunak di seluruh simpul dalam sebuah kelompok. Ketahanan ini tidak tersedia untuk konfigurasi validator simpul tunggal - ini berasal dari lapisan DVT. + +Jika salah satu komponen mesin dalam kelompok turun (misalnya, jika ada empat operator dalam kelompok validator dan satu menggunakan klien tertentu yang memiliki bug), yang lain memastikan bahwa validator terus berjalan. + +### Desentralisasi {#decentralization} + +Skenario ideal untuk Ethereum adalah memiliki validator yang dioperasikan secara independen sebanyak mungkin. Namun, beberapa penyedia penaruhan telah menjadi sangat populer dan menyumbang sebagian besar dari total ETH yang dipertaruhkan di jaringan. DVT dapat memungkinkan operator ini ada sambil mempertahankan desentralisasi taruhan. Ini karena kunci untuk setiap validator didistribusikan di banyak mesin dan akan membutuhkan kolusi yang jauh lebih besar bagi validator untuk berubah menjadi berbahaya. + +Tanpa DVT, lebih mudah bagi penyedia penaruhan untuk hanya mendukung satu atau dua konfigurasi klien untuk semua validator mereka, meningkatkan dampak bug klien. DVT dapat digunakan untuk menyebarkan risiko di beberapa konfigurasi klien dan perangkat keras yang berbeda, menciptakan ketahanan melalui keragaman. + +**DVT menawarkan manfaat berikut untuk Ethereum:** + +1. **Desentralisasi** konsensus bukti taruhan Ethereum +2. Memastikan **ketersediaan** jaringan +3. Menciptakan **toleransi kesalahan** validator +4. Operasi validator **dengan minimal kepercayaan** +5. **Risiko Pemotongan yang diminimalkan** dan waktu henti +6. **Meningkatkan keragaman** (klien, pusat data, lokasi, regulasi, dll.) +7. **Keamanan yang ditingkatkan** manajemen kunci validator + +## Bagaimana cara kerja DVT? {#how-does-dvt-work} + +Solusi DVT berisi komponen-komponen berikut: + +- **[Pembagian rahasia Shamir](https://medium.com/@keylesstech/a-beginners-guide-to-shamir-s-secret-sharing-e864efbf3648)** - Validator menggunakan [kunci BLS](https://en.wikipedia.org/wiki/BLS_digital_signature). Masing-masing "pembagian kunci" BLS ("key shares") dapat digabungkan menjadi satu kunci agregat tunggal (tanda tangan). Di DVT, kunci pribadi untuk validator adalah tanda tangan BLS gabungan dari setiap operator di kelompok. +- **[Skema tanda tangan ambang batas](https://medium.com/nethermind-eth/threshold-signature-schemes-36f40bc42aca)** - Menentukan jumlah pembagian kunci individu yang diperlukan untuk tugas penandatanganan, misalnya, 3 dari 4. +- **[Generasi kunci terdistribusi (DKG)](https://medium.com/toruslabs/what-distributed-key-generation-is-866adc79620)** - Proses kriptografi yang menghasilkan pembagian kunci dan digunakan untuk mendistribusikan pembagian kunci validator yang ada atau baru ke simpul dalam sebuah kelompok. +- **[Multiparty computation (MPC)](https://messari.io/report/applying-multiparty-computation-to-the-world-of-blockchains)** - Kunci validator lengkap dibuat secara rahasia menggunakan komputasi multipihak. Kunci lengkap tidak pernah diketahui oleh operator individu mana pun — mereka hanya pernah tahu bagian mereka sendiri ("bagian" mereka). +- **Protokol konsensus** - Protokol konsensus memilih satu simpul untuk menjadi pengusul blok. Mereka berbagi blok dengan simpul lain dalam kelompok, yang menambahkan pembagian kunci mereka ke tanda tangan agregat. Ketika cukup banyak pembagian kunci yang telah dikumpulkan, blok tersebut diusulkan di Ethereum. + +Validator terdistribusi memiliki toleransi kesalahan bawaan dan dapat terus berjalan bahkan jika beberapa simpul individu offline. Ini berarti bahwa kelompok tangguh meskipun beberapa simpul di dalamnya ternyata jahat atau malas. + +## Kasus penggunaan DVT {#dvt-use-cases} + +DVT memiliki implikasi signifikan bagi industri penaruhan yang lebih luas: + +### Penaruh solo {#solo-stakers} + +DVT juga memungkinkan penaruhan non-kustodial dengan memungkinkan Anda mendistribusikan kunci validator ke seluruh simpul jarak jauh sambil tetap menjaga kunci sepenuhnya offline. Ini berarti penaruh di beranda tidak selalu perlu mengeluarkan biaya untuk perangkat keras, sementara mendistribusikan pembagian kunci dapat membantu memperkuat mereka dari potensi peretasan. + +### Taruhan sebagai layanan (SaaS) {#saas} + +Operator (seperti pool penaruhanl dan penaruh institusional) yang mengelola banyak validator dapat menggunakan DVT untuk mengurangi risiko mereka. Dengan mendistribusikan infrastruktur, mereka bisa menambahkan redudansi pada operasional mereka dan mendiversifikasi jenis perangkat keras yang digunakan. + +DVT berbagi tanggung jawab untuk manajemen kunci di berbagai simpul, yang berarti beberapa biaya operasional juga dapat dibagi. DVT juga dapat mengurangi risiko operasional dan biaya asuransi bagi penyedia penaruhan. + +### Kolam taruhan {#staking-pools} + +Karena pengaturan validator standar, pool penaruhan dan penyedia penaruhan likuid dipaksa untuk memiliki tingkat kepercayaan operator tunggal yang berbeda-beda karena keuntungan dan kerugian disosialisasikan di seluruh pool. Mereka juga bergantung pada operator untuk melindungi kunci penandatanganan, karena hingga saat ini, tidak ada pilihan lain bagi mereka. + +Meskipun biasanya upaya dilakukan untuk menyebarkan risiko dengan mendistribusikan taruhan ke berbagai operator, setiap operator masih mengelola taruhan yang signifikan secara independen. Mengandalkan satu operator memiliki risiko yang sangat besar jika operator tersebut berkinerja buruk, mengalami downtime, mengalami gangguan, atau bertindak secara jahat. + +Dengan memanfaatkan DVT, kepercayaan yang dibutuhkan dari operator berkurang secara signifikan. **Pool dapat memungkinkan operator memegang penaruhan tanpa perlu menjaga kunci validator** (karena hanya pembagian kunci yang digunakan). Ini juga memungkinkan penaruhan yang dikelola dapat didistribusikan di antara lebih banyak operator (misalnya, daripada memiliki satu operator yang mengelola 1000 validator, DVT memungkinkan validator tersebut dijalankan secara kolektif oleh beberapa operator). Konfigurasi operator yang beragam akan memastikan bahwa jika salah satu operator mengalami masalah, operator lain masih dapat memberikan kesaksian. Ini karena kunci untuk setiap validator didistribusikan di banyak mesin dan akan membutuhkan kolusi yang jauh lebih besar bagi validator untuk berubah menjadi jahat. + +Manfaat lain dari meminimalkan kepercayaan pada satu operator adalah bahwa pool penaruhan dapat memungkinkan partisipasi operator yang lebih terbuka dan tanpa izin. Dengan melakukannya, layanan dapat mengurangi risiko mereka dan mendukung desentralisasi Ethereum dengan menggunakan kumpulan operator yang disusun dan tanpa izin, misalnya, dengan menggabungkan penaruh di beranda atau yang lebih kecil dengan yang lebih besar. + +## Kekurangan potensial penggunaan DVT {#potential-drawbacks-of-using-dvt} + +- **Komponen tambahan** - memperkenalkan sebuah simpul DVT menambahkan bagian lain yang mungkin bisa mengalami kerusakan atau rentan. Salah satu cara untuk mengurangi dampak ini adalah dengan berupaya memiliki beberapa implementasi dari simpul DVT, yang berarti memiliki beberapa klien DVT (mirip dengan adanya beberapa klien untuk lapisan konsensus dan eksekusi). +- **Biaya operasional** - karena DVT mendistribusikan validator di antara beberapa pihak, diperlukan lebih banyak simpul untuk operasi daripada hanya satu simpul, yang mengakibatkan peningkatan biaya operasional. +- **Potensi peningkatan keterlambatan** - karena DVT menggunakan protokol konsensus untuk mencapai kesepakatan antara beberapa simpul yang mengoperasikan validator, ini berpotensi memperkenalkan peningkatan keterlambatan. + +## Bacaan Lebih Lanjut {#further-reading} + +- [Spesifikasi validator terdistribusi Ethereum (tingkat tinggi)](https://github.com/ethereum/distributed-validator-specs) +- [Spesifikasi teknis validator terdistribusi Ethereum](https://github.com/ethereum/distributed-validator-specs/tree/dev/src/dvspec) +- [Aplikasi demonstrasi pembagian rahasia Shamir](https://iancoleman.io/shamir/) diff --git a/public/content/translations/id/events/index.md b/public/content/translations/id/events/index.md new file mode 100644 index 00000000000..7c97c06357c --- /dev/null +++ b/public/content/translations/id/events/index.md @@ -0,0 +1,24 @@ +--- +title: Aksi Ethereum +description: Cara terlibat di dalam komunitas Ethereum. +lang: id +hideEditButton: true +--- + +# Aksi mendatang {#events} + +**Setiap bulan, ada aksi besar Ethereum di seluruh dunia.** Pertimbangkanlah untuk menghadiri salah satunya di dekat area Anda untuk bertemu dengan lebih banyak orang di komunitas, mendapatkan informasi tentang lowongan pekerjaan, dan mengembangkan keahlian baru. + + + +Ini adalah daftar tidak lengkap yang dipelihara oleh komunitas kami. Tahu aksi Ethereum mendatang untuk ditambahkan ke daftar ini? [Silakan tambahkan](https://github.com/ethereum/ethereum-org-website/blob/dev/src/data/community-events.json)! + +## Pertemuan Ethereum {#meetups} + +Tidak melihat aksi yang cocok untuk Anda? Cobalah menghadiri sebuah pertemuan. Pertemuan adalah aksi yang lebih kecil yang diadakan oleh grup penggemar Ethereum - sebuah peluang bagi orang-orang yang tertarik dengan Ethereum untuk berkumpul, berbicara tentang Ethereum, dan mengetahui tentang perkembangan terkini. + + + +Anda tertarik dengan memulai pertemuan Anda sendiri? Lihat [Jaringan BUIDL](https://consensys.net/developers/buidlnetwork/), suatu inisiatif oleh ConsenSys untuk membantu mendukung pertemuan Ethereum. + +Ini adalah daftar tidak lengkap yang dibuat oleh komunitas kami. Anda dapat [menemukan lebih banyak pertemuan Ethereum di sini](https://www.meetup.com/topics/ethereum/). Tahu suatu grup pertemuan aktif untuk ditambahkan ke daftar ini? [Silahkan tambahkan](https://github.com/ethereum/ethereum-org-website/blob/dev/src/data/community-meetups.json)! diff --git a/public/content/translations/id/future-proofing/index.md b/public/content/translations/id/future-proofing/index.md new file mode 100644 index 00000000000..a15abccc136 --- /dev/null +++ b/public/content/translations/id/future-proofing/index.md @@ -0,0 +1,38 @@ +--- +title: Ethereum yang siap menghadapi masa depan +description: Peningkatan ini memperkuat Ethereum sebagai lapisan dasar terdesentralisasi yang tangguh untuk masa depan, apa pun yang akan terjadi. +lang: id +image: /images/roadmap/roadmap-future.png +alt: "Peta Perjalanan Ethereum" +template: roadmap +--- + +Beberapa bagian dari peta perjalanann tidak selalu diperlukan untuk penskalaan atau mengamankan Ethereum dalam waktu dekat, tetapi menyiapkan Ethereum untuk stabilitas dan keandalan jauh di masa depan. + +## Resistensi kuantum {#quantum-resistance} + +Beberapa [kriptografi](/glossary/#cryptography) yang mengamankan Ethereum saat ini dapat dikompromikan ketika komputasi kuantum menjadi kenyataan. Meskipun komputer kuantum mungkin masih beberapa dekade lagi untuk menjadi ancaman nyata bagi kriptografi modern, Ethereum dibangun untuk menjadi aman selama berabad-abad yang akan datang. Ini berarti membuat [Ethereum tahan kuantum](https://consensys.net/blog/developers/how-will-quantum-supremacy-affect-blockchain/) sesegera mungkin. + +Tantangan yang dihadapi oleh para pengembang Ethereum adalah [protokol bukti taruhan](/glossary/#pos) saat ini bergantung pada skema tanda tangan yang sangat efisien yang dikenal sebagai BLS untuk mengumpulkan suara pada [blok-blok](/glossary/#block) yang valid. Skema tanda tangan ini dipatahkan oleh komputer kuantum, tetapi alternatif tahan kuantum tidak seefisien itu. + +[Skema komitmen "KZG"](/roadmap/danksharding/#what-is-kzg) yang digunakan di beberapa tempat di seluruh Ethereum untuk menghasilkan rahasia kriptografi dikenal rentan terhadap kuantum. Saat ini, hal ini diakali dengan menggunakan "pengaturan tepercaya" di mana banyak pengguna menghasilkan keacakan yang tidak dapat direkayasa oleh komputer kuantum. Namun, solusi yang ideal adalah dengan menggabungkan kriptografi aman kuantum. Terdapat dua pendekatan utama yang dapat menjadi pengganti yang efisien untuk skema BLS: [berbasis STARK](https://hackmd.io/@vbuterin/stark_aggregation) dan [berbasis lattice](https://medium.com/asecuritysite-when-bob-met-alice/so-what-is-lattice-encryption-326ac66e3175) untuk penandatanganan. **Ini masih dalam tahap penelitian dan pembuatan prototipe.**. + + Baca tentang KZG dan pengaturan tepercaya + +## Ethereum yang lebih sederhana dan lebih efisien {#simpler-more-efficient-ethereum} + +Kompleksitas menciptakan peluang untuk bug atau kerentanan yang dapat dieksploitasi oleh penyerang. Oleh karena itu, bagian dari peta perjalanan adalah menyederhanakan Ethereum dan menghapus kode yang telah bertahan melalui berbagai peningkatan tetapi tidak lagi diperlukan atau sekarang dapat ditingkatkan. Basis kode yang lebih ramping dan sederhana lebih mudah dipelihara dan dipahami oleh pengembang. + +Ada beberapa pembaruan yang akan dilakukan pada [Mesin Virtual Ethereum (EVM)](/developers/docs/evm) untuk membuatnya lebih sederhana dan efisien. Ini termasuk [menghapus opcode SELFDESTRUCT](https://hackmd.io/@vbuterin/selfdestruct) - perintah yang jarang digunakan yang tidak lagi diperlukan dan dalam beberapa situasi dapat berbahaya untuk digunakan, terutama jika digabungkan dengan peningkatan lain di masa depan pada model penyimpanan Ethereum. [Klien Ethereum](/glossary/#consensus-client) juga masih mendukung beberapa jenis transaksi lama yang sekarang dapat dihapus sepenuhnya. Cara penghitungan [gas](/glossary/#gas) juga dapat ditingkatkan dan metode yang lebih efisien untuk aritmatika yang mendasari beberapa operasi kriptografi dapat digunakan. + +Demikian pula, ada pembaruan yang dapat dilakukan pada bagian lain dari klien Ethereum saat ini. Salah satu contohnya adalah klien eksekusi dan konsensus saat ini menggunakan jenis kompresi data yang berbeda. Akan jauh lebih mudah dan lebih intuitif untuk berbagi data di antara klien ketika skema kompresi disatukan di seluruh jaringan. + +## Kemajuan saat ini {#current-progress} + +Sebagian besar peningkatan yang diperlukan untuk membuktikan Ethereum di masa depan **masih dalam tahap penelitian dan mungkin masih beberapa tahun lagi** sebelum diimplementasikan. Peningkatan seperti menghapus SELFDESTRUCT dan menyelaraskan skema kompresi yang digunakan dalam klien eksekusi dan klien konsensus kemungkinan besar akan hadir lebih cepat daripada kriptografi tahan kuantum. + +**Bacaan lebih lanjut** + +- [Gas](/developers/docs/gas) +- [EVM](/developers/docs/evm) +- [Struktur data](/developers/docs/data-structures-and-encoding) diff --git a/public/content/translations/id/how-to-create-an-ethereum-account/index.md b/public/content/translations/id/how-to-create-an-ethereum-account/index.md new file mode 100644 index 00000000000..35d2c36210a --- /dev/null +++ b/public/content/translations/id/how-to-create-an-ethereum-account/index.md @@ -0,0 +1,73 @@ +--- +title: Cara "membuat" akun Ethereum +description: Panduan langkah demi langkah membuat akun Ethereum menggunakan dompet. +lang: id +--- + +# Cara membuat akun Ethereum + +Siapa pun dapat membuat akun Ethereum secara gratis. Anda hanya perlu memasang aplikasi dompet kripto. Dompet membuat dan mengelola akun Ethereum Anda. Mereka dapat mengirim transaksi, memeriksa saldo, dan menghubungkan Anda ke aplikasi lain yang dibangun di Ethereum. + +Dengan dompet kamu juga dapat masuk ke Bursa token, permainan, [NFT](/glossary/#nft) marketplace secara instan. Tidak perlu registrasi individual, satu akun digunakan untuk semua aplikasi yang dibangun di Ethereum. + +## Langkah 1: Pilih dompet + +Dompet adalah aplikasi yang membantu Anda mengelola akun Ethereum Anda. Ada berbagai dompet berbeda untuk dipilih: seluler, desktop, atau bahkan ekstensi browser. + + + + Daftar dompet + + +Jika Anda baru, Anda dapat memilih filter "Baru dalam kripto" pada halaman "cari dompet" untuk mengidentifikasi dompet yang seharusnya mencakup semua fitur yang diperlukan dan cocok untuk pemula. + +![Pemilihan filter pada halaman 'temukan dompet'](./wallet-box.png) + +Ada juga filter profil lain untuk memenuhi kebutuhan Anda. Ini contoh-contoh dompet yang sering digunakan - Anda sebaiknya melakukan penelitian sendiri sebelum mempercayai perangkat lunak apa pun. + +## Langkah 2: Unduh dan instal aplikasi dompet Anda + +Setelah Anda memilih dompet, buka situs web resmi mereka atau app store kemudian unduh dan instal. Semuanya gratis. + +## Langkah 3: Buka aplikasi dan buat akun Ethereum Anda + +Ketika pertama kali membuka aplikasi dompet yang baru, Anda akan diminta untuk memilih membuat akun baru atau mengimpor akun yang sudah ada. Klik pembuatan akun baru. Ini adalah langkah saat perangkat lunak dompet membuat akun Ethereum Anda. + +## Langkah 4: Simpan frasa pemulihan Anda + +Beberapa aplikasi akan meminta Anda untuk menyimpan frasa pemulihan rahasia "frase benih" (kadang-kadang disebut juga "frasa benih" atau "mnemonic"). Menjaga frasa ini tetap aman sangat penting! Ini digunakan untuk menghasilkan akun Ethereum Anda dan dapat digunakan untuk mengirimkan transaksi. + +**Siapa pun yang mengetahui frasa tersebut dapat mengendalikan semua dana.**Jangan pernah membagikannya kepada siapa pun. Kata kunci ini memuat 12 sampai 24 kata-kata acak (urutan kata-kata ini sangat penting). + +
+ +
Dompet sudah terinstal??
Pelajari cara menggunakannya.
+ + Cara menggunakan dompet + +
+
+ +Tertarik dengan panduan lainnya? Lihatlah dokumen kami: [Panduan langkah demi langkah](/guides/) + +## Pertanyaan yang sering diajukan + +### Apakah dompet dan akun Ethereum saya itu sama? + +Tidak. Dompet adalah alat pengelolaan yang membantu Anda mengelola akun. Satu dompet bisa mengakses beberapa akun, dan satu akun bisa diakses oleh beberapa dompet. Frasa pemulihan digunakan untuk membuat akun dan memberikan izin kepada aplikasi dompet untuk mengelola aset. + +### Apakah saya bisa mengirimkan bitcoin ke alamat Ethereum, atau ether ke alamat Bitcoin? + +Tidak, Anda tidak bisa. Bitcoin dan ether ada di dua jaringan terpisah (yaitu, rantai blok yang berbeda), masing-masing dengan format pencatatan dan alamat mereka sendiri. Telah ada berbagai upaya untuk menghubungkan dua jaringan yang berbeda tersebut, di antaranya yang paling aktif saat ini yakni [Wrapped Bitcoin atau WBTC](https://www.bitcoin.com/get-started/what-is-wbtc/). Ini bukan merupakan dukungan, karena WBTC adalah solusi kustodial (berarti sekelompok orang mengendalikan beberapa fungsi kritis) dan disediakan di sini hanya untuk tujuan informasi. + +### Jika saya memiliki alamat ETH, apakah akan sama di rantai blok yang lain? + +Kamu bisa menggunakan yang [alamat](/glossary/#address) yang sama pada semua rantai blok yang menggunakan perangkat lunak dasar yang serupa dengan Ethereum (dikenal sebagai 'kompatibel dengan EVM'). [Daftar](https://chainlist.org/) berikut ini memperlihatkan bagaimana cara menggunakan rantai blok dengan alamat yang sama. Beberapa rantai blok seperti Bitcoin, menerapkan peraturan pada jaringan yang terpisah dan Anda akan membutuhkan alamat yang berbeda dengan format yang berbeda pula. Jika memiliki dompet kontrak pintar, kamu sebaiknya memeriksa situs web produk untuk informasi lebih lanjut tentang rantai blok mana yang didukung, karena biasanya dompet tersebut memiliki jangkauan yang terbatas namun lebih aman. + +### Apakah memiliki dompet sendiri lebih aman dibandingkan dengan menyimpan dana di bursa? + +Mempunyai dompet sendiri berarti Anda bertanggung jawab atas keamanan aset Anda. Sayangnya, ada banyak contoh bursa yang gagal dan kehilangan uang pelanggan mereka. Memiliki dompet (dengan frasa pemulihan) menghilangkan risiko yang terkait dengan mempercayai suatu kelompok untuk menyimpan aset Anda. Namun, Anda harus mengamankannya sendiri dan menghindari penipuan terencana, menyetujui transaksi secara tidak sengaja atau mengungkap frasa pemulihan, berinteraksi dengan situs web palsu, dan risiko penyimpanan mandiri lainnya. Risiko dan manfaatnya berbeda. + +### Jika saya kehilangan dompet seluler/perangkat keras, apakah saya perlu menggunakan aplikasi dompet yang sama lagi untuk memulihkan akun yang hilang? + +Tidak, Anda dapat menggunakan dompet yang berbeda. Selama memiliki frase benih, Anda dapat memasukkannya ke sebagian besar dompet dan mereka akan mengembalikan akun Anda. Berhati-hatilah jika Anda perlu melakukannya: yang terbaik adalah memastikan Anda tidak terhubung ke internet saat memulihkan dompet agar frase benih Anda tidak bocor secara tidak sengaja. Seringkali tidak mungkin untuk memulihkan dana yang hilang tanpa frasa pemulihan. diff --git a/public/content/translations/id/scaling/index.md b/public/content/translations/id/scaling/index.md new file mode 100644 index 00000000000..6996c40fc82 --- /dev/null +++ b/public/content/translations/id/scaling/index.md @@ -0,0 +1,51 @@ +--- +title: Penskalaan Ethereum +description: Melakukan rollup transaksi batch secara bersamaan di luar rantai, sehingga mengurangi biaya bagi pengguna. Namun, cara rollup yang saat ini menggunakan data terlalu mahal, sehingga membatasi seberapa murah transaksi dapat dilakukan. Proto-Danksharding memperbaiki hal ini. +lang: id +image: /images/roadmap/roadmap-transactions.png +alt: "Peta Perjalanan Ethereum" +template: roadmap +--- + +Ethereum diskalakan menggunakan [lapisan ke-2](/layer-2/#rollups) (juga dikenal sebagai rollup), yang mengumpulkan transaksi secara bersamaan dan mengirimkan hasilnya ke Ethereum. Meskipun rollup hingga delapan kali lebih murah daripada Jaringan Utama Ethereum, Anda dapat mengoptimalkan rollup lebih lanjut untuk mengurangi biaya bagi pengguna akhir. Rollup juga bergantung pada beberapa komponen terpusat yang dapat dihapus oleh pengembang saat rollup sudah matang. + + +
    +
  • Rollup hari ini ~5-20x lebih murah dari lapisan 1 Ethereum
  • +
  • Rollup ZK akan segera menurunkan biaya sebesar ~40-100x
  • +
  • Perubahan yang akan datang pada Ethereum akan memberikan penskalaan ~100-1000x lainnya
  • +
  • Pengguna harus mendapatkan keuntungan dari transaksi berharga kurang dari $0,001
  • +
+
+ +## Membuat data lebih murah {#making-data-cheaper} + +Rollup mengumpulkan sejumlah besar transaksi, mengeksekusinya, dan mengirimkan hasilnya ke Ethereum. Hal ini menghasilkan banyak data yang harus tersedia secara terbuka sehingga siapa pun dapat melakukan transaksi untuk diri mereka sendiri dan memverifikasi bahwa operator rollup tersebut jujur. Jika seseorang menemukan ketidaksesuaian, mereka dapat mengajukan tantangan. + +### Proto-Danksharding {#proto-danksharding} + +Data rollup secara historis disimpan secara permanen di Ethereum, yang biayanya mahal. Lebih dari 90% dari biaya transaksi yang dibayarkan pengguna pada rollup disebabkan oleh penyimpanan data ini. Untuk mengurangi biaya transaksi, kita dapat memindahkan data ke dalam penyimpanan 'blob' sementara yang baru. Blob lebih murah karena tidak permanen; data ini akan dihapus dari Ethereum setelah tidak lagi dibutuhkan. Penyimpanan data rollup jangka panjang menjadi tanggung jawab pihak yang membutuhkannya, seperti operator rollup, bursa, layanan pengindeksan, dan lain-lain. Menambahkan transaksi blob ke Ethereum adalah bagian dari peningkatan yang dikenal sebagai "Proto-Danksharding". + +Dengan Proto-Danksharding, dimungkinkan untuk menambahkan banyak blob ke dalam blok Ethereum. Ini memungkinkan peningkatan substansial (>100x) pada keluaran Ethereum dan penurunan biaya transaksi. + +### Danksharding {#danksharding} + +Tahap kedua dalam memperluas data blob cukup rumit karena memerlukan metode baru untuk memeriksa ketersediaan data rollup di jaringan dan bergantung pada [validator](/glossary/#validator) yang memisahkan tanggung jawab [pembuatan blok](/glossary/#block) dan pengajuan blok. Hal ini juga membutuhkan cara untuk membuktikan secara kriptografis bahwa validator telah memverifikasi subset data blob. + +Langkah kedua ini dikenal sebagai ["Danksharding"](/roadmap/danksharding/). **Kemungkinan akan memerlukan beberapa tahun lagi** untuk sepenuhnya diterapkan. Danksharding bergantung pada pengembangan lain seperti [pemisahan pembangunan blok dan proposal blok](/roadmap/pbs) dan desain jaringan baru yang memungkinkan jaringan secara efisien mengonfirmasi bahwa data tersedia dengan mengambil sampel beberapa kilobita secara acak dalam satu waktu, yang dikenal dengan nama [pengambilan sampel data (DAS)](/developers/docs/data-availability). + +Lebih lanjut tentang Danksharding + +## Desentralisasi rollup {#decentralizing-rollups} + +[Rollup](/layer-2) sudah menskalakan Ethereum. Ekosistem [yang kaya akan proyek rollup](https://l2beat.com/scaling/tvl) memungkinkan pengguna untuk bertransaksi dengan cepat dan murah, dengan berbagai jaminan keamanan. Namun, rollup telah di-bootstrap menggunakan sequencer terpusat (komputer yang melakukan semua pemrosesan dan agregasi transaksi sebelum mengirimkannya ke Ethereum). Hal ini rentan terhadap penyensoran, karena operator sequencer dapat dikenai sanksi, disuap, atau dikompromikan. Pada saat yang sama, [rollup bervariasi](https://l2beat.com) dalam cara mereka memvalidasi data yang masuk. Cara terbaik adalah dengan "pembuktian" yang mengajukan [bukti penipuan](/glossary/#fraud-proof) atau bukti keabsahan, tetapi tidak semua rollup saat ini sudah menerapkan hal ini. Bahkan rollup yang menggunakan bukti validitas/penipuan menggunakan kumpulan kecil pemberi bukti yang diketahui. Oleh karena itu, langkah penting berikutnya dalam penskalaan Ethereum adalah mendistribusikan tanggung jawab untuk menjalankan sequencer dan pembuktian kepada lebih banyak orang. + +Lebih lanjut tentang rollup + +## Kemajuan saat ini {#current-progress} + +Proto-Danksharding adalah item pertama dari daftar peta perjalanan ini yang akan diterapkan sebagai bagian dari pembaruan jaringan Cancun-Deneb ("Dencun") pada Maret 2024. **Danksharding penuh kemungkinan akan memerlukan beberapa tahun lagi**, karena bergantung pada penyelesaian beberapa item peta perjalanan lainnya terlebih dahulu. Desentralisasi infrastruktur rollup kemungkinan besar akan menjadi proses yang bertahap - ada banyak rollup berbeda yang membangun sistem yang sedikit berbeda dan akan sepenuhnya terdesentralisasi dengan kecepatan yang berbeda. + +[Lebih lanjut tentang pembaruan jaringan Dencun](/roadmap/dencun/) + + diff --git a/public/content/translations/id/security/index.md b/public/content/translations/id/security/index.md index 23d2f397c22..9b54d36f1a2 100644 --- a/public/content/translations/id/security/index.md +++ b/public/content/translations/id/security/index.md @@ -1,293 +1,48 @@ --- -title: Keamanan Ethereum dan pencegahan penipuan -description: Tetap aman di Ethereum +title: Ethereum yang lebih aman +description: Ethereum merupakan platform kontrak pintar yang paling aman dan terdesentralisasi yang pernah ada. Namun, masih diperlukan perbaikan yang dapat dilakukan agar Ethereum tetap tangguh terhadap segala tingkat serangan di masa depan. lang: id +image: /images/roadmap/roadmap-security.png +alt: "Peta Perjalanan Ethereum" +template: roadmap --- -# Keamanan ethereum dan pencegahan penipuan {#introduction} +**Ethereum sudah sangat aman**, platform [kontrak pintar](/glossary/#smart-contract) yang terdesentralisasi. Namun, masih diperlukan perbaikan yang dapat dilakukan agar Ethereum tetap tangguh terhadap segala jenis serangan di masa depan. Ini termasuk perubahan halus pada cara [klien Ethereum](/glossary/#consensus-client) menangani [blok](/glossary/#block) yang bersaing, serta meningkatkan kecepatan di mana jaringan menganggap blok sebagai ["finalized"](/developers/docs/consensus-mechanisms/pos/#finality) (artinya, blok tersebut tidak dapat diubah tanpa menimbulkan kerugian ekonomi yang ekstrem bagi penyerang). -Meningkatnya minat terhadap mata uang kripto disertai dengan risiko yang semakin besar dari penipu dan peretas. Artikel ini memaparkan beberapa praktik terbaik untuk mengurangi risiko tersebut. +Ada juga perbaikan yang membuat sensor transaksi menjadi lebih sulit dengan membuat pengusul blok tidak dapat melihat isi sebenarnya dari blok mereka, dan cara baru untuk mengidentifikasi kapan klien melakukan sensor. Secara bersama-sama, perbaikan ini akan meningkatkan protokol [bukti taruhan](/glossary/#pos) sehingga pengguna-dari individu hingga korporasi-dapat memiliki kepercayaan instan pada aplikasi, data, dan aset mereka di Ethereum. - +## Penarikan penaruhan {#staking-withdrawals} -## Keamanan crypto 101 {#crypto-security} +Pembaruan dari [proof-of-work](/glossary/#pow) ke proof-of-stake dimulai dengan para pelopor Ethereum “staking” ETH mereka dalam kontrak deposit. ETH tersebut digunakan untuk melindungi jaringan. Telah ada pembaruan kedua pada 12 April 2023 yang memungkinkan penarikan ETH yang dipertaruhkan. Sejak saat itu, validator dapat dengan bebas melakukan taruhan atau penarikan ETH. -### Tingkatkan pengetahuan Anda {#level-up-your-knowledge} +Baca tentang penarikan -Kesalahpahaman tentang cara kerja kripto dapat menyebabkan kesalahan yang mahal. Misalnya, jika seseorang berpura-pura menjadi agen layanan pelanggan yang dapat mengembalikan ETH yang hilang dengan imbalan kunci pribadi Anda, mereka memanfaatkan ketidaktahuan orang bahwa Ethereum adalah jaringan terdesentralisasi yang tidak memiliki fungsionalitas seperti itu. Mengedukasi diri Anda sendiri tentang bagaimana Ethereum bekerja adalah investasi yang sepadan. +## Bertahan dari serangan {#defending-against-attacks} - - Apa yang Dimaksud dengan Ethereum? - +Ada peningkatan yang dapat dilakukan pada protokol bukti taruhan Ethereum. Salah satunya dikenal sebagai [view-merge](https://ethresear.ch/t/view-merge-as-a-replacement-for-proposer-boost/13739) - algoritma [garpu](/glossary/#fork)-pilihan yang lebih aman yang membuat beberapa jenis serangan canggih menjadi lebih sulit. - - Apa yang Dimaksud dengan ether? - - +Mengurangi waktu yang diperlukan Ethereum untuk [finalisasi](/glossary/#finality) blok akan memberikan pengalaman pengguna yang lebih baik dan mencegah serangan "reorg" canggih di mana penyerang mencoba untuk mengatur ulang blok terbaru untuk mendapatkan keuntungan atau menyensor transaksi tertentu. [**Single slot finality (SSF)**](/roadmap/single-slot-finality/) adalah **cara untuk meminimalkan penundaan finalisasi**. Saat ini ada 15 menit blok yang secara teoritis dapat digunakan oleh penyerang untuk mengkonfigurasi ulang validator lain. Dengan SSF, hanya ada 0. Pengguna, dari individu hingga aplikasi dan bursa, mendapat manfaat dari jaminan cepat bahwa transaksi mereka tidak akan dibatalkan, dan jaringan mendapat manfaat dengan menutup seluruh kumpulan serangan. -## Keamanan dompet {#wallet-security} +Baca tentang finalitas ruang tunggal -### Jangan berikan kunci pribadi Anda {#protect-private-keys} +## Bertahan melawan sensor {#defending-against-censorship} -**Jangan pernah, untuk alasan apapun, membagi kunci pribadi Anda!** +Desentralisasi mencegah individu atau kelompok kecil [validator](/glossary/#validator) menjadi terlalu berpengaruh. Teknologi penaruhan baru dapat membantu memastikan validator Ethereum tetap se-desentralisasi mungkin sekaligus melindungi mereka dari kegagalan perangkat keras, perangkat lunak, dan jaringan. Ini termasuk perangkat lunak yang membagikan tanggung jawab validator di berbagai [simpul](/glossary/#node). Ini dikenal sebagai **teknologi validator terdistribusi (DVT)**. [Kolam staking](/glossary/#staking-pool) diberi insentif untuk menggunakan DVT karena memungkinkan beberapa komputer untuk secara kolektif berpartisipasi dalam validasi, menambah redundansi dan toleransi terhadap kesalahan. Ini juga membagi kunci validator di beberapa sistem, daripada memiliki operator tunggal yang menjalankan beberapa validator. Ini mempersulit operator yang tidak jujur untuk mengoordinasikan serangan terhadap Ethereum. Secara keseluruhan, ide ini adalah untuk mendapatkan manfaat keamanan dengan menjalankan validator sebagai _komunitas_ daripada sebagai individu. -Kunci privat untuk dompet Anda adalah kata sandi untuk dompet Ethereum Anda. Ini satu-satunya cara menghentikan seseorang yang mengetahui alamat dompet Anda dari menghabisi akun Anda dan semua asetnya! +Baca tentang teknologi validator terdistribusi - - Apa itu dompet Ethereum? - +Mengimplementasikan **pemisahan pengusul-pembangun (PBS)** akan sangat meningkatkan pertahanan bawaan Ethereum terhadap sensor. PBS memungkinkan satu validator untuk membuat blok dan yang lain untuk menyiarkannya ke seluruh jaringan Ethereum. Ini memastikan bahwa keuntungan dari algoritma pembangun blok profesional yang memaksimalkan keuntungan dibagi lebih adil di seluruh jaringan, **mencegah taruhan berkonsentrasi** dengan penaruh institusional berkinerja terbaik dari waktu ke waktu. Pengusul blok dapat memilih blok paling menguntungkan yang ditawarkan oleh pasar pembangun blok. Untuk menyensor, pengusul blok harus sering memilih blok yang kurang menguntungkan, yang **tidak akan rasional secara ekonomi dan juga jelas bagi validator lain** di jaringan. -#### Jangan mengambil tangkapan layar frasa benih/kunci pribadi Anda {#screenshot-private-keys} +Ada tambahan potensial untuk PBS, seperti transaksi terenkripsi dan daftar inklusi, yang dapat meningkatkan resistensi sensor Ethereum. Ini membuat pembangun blok dan pengusul tidak dapat melihat transaksi sebenarnya yang termasuk dalam blok mereka. -Mengambil tangkapan layar frasa benih atau kunci privat Anda dapat menyinkronkannya ke penyedia data cloud, yang bisa membuatnya dapat diakses oleh peretas. Mendapatkan kunci pribadi dari cloud adalah vektor serangan umum bagi peretas. +Baca tentang pemisahan pengusul-pembangun -### Gunakan dompet perangkat keras {#use-hardware-wallet} +## Melindungi validator {#protecting-validators} -Dompet perangkat keras menyediakan penyimpanan offline untuk kunci pribadi. Mereka dianggap sebagai pilihan dompet yang paling aman untuk menyimpan kunci pribadi Anda: kunci pribadi Anda tidak pernah terhubung ke internet dan tetap aman di perangkat Anda. +Ada kemungkinan bahwa penyerang canggih dapat mengidentifikasi validator yang akan datang dan menyerang mereka untuk mencegah mereka mengusulkan blok; ini dikenal sebagai serangan **penolakan layanan (DoS)**. Mengimplementasikan [**pemilihan pemimpin rahasia (SLE)**](/roadmap/secret-leader-election) akan melindungi dari jenis serangan ini dengan mencegah pengusul blok diketahui sebelumnya. Ini bekerja dengan terus mengacak sekumpulan komitmen kriptografi yang mewakili proposer blok kandidat dan menggunakan urutan mereka untuk menentukan validator mana yang dipilih dengan cara yang hanya diketahui oleh validator itu sendiri sebelumnya. -Menjaga kunci pribadi tetap offline secara besar-besaran mengurangi risiko diretas, bahkan jika peretas menguasai komputer Anda. +Baca tentang pemilihan pemimpin rahasia -#### Coba dompet perangkat keras: {#try-hardware-wallet} +## Kemajuan saat ini {#current-progress} -- [Buku besar](https://www.ledger.com/) -- [Trezor](https://trezor.io/) - -### Periksa kembali transaksi sebelum mengirim {#double-check-transactions} - -Secara tidak sengaja mengirim crypto ke alamat dompet yang salah adalah kesalahan umum. **Transaksi yang dikirim di Ethereum tidak dapat dibatalkan.** Anda tidak akan dapat mendapatkan kembali dana kecuali mengetahui pemilik alamat dan dapat meyakinkan mereka untuk mengembalikan dana tersebut. - -Selalu pastikan alamat yang Anda kirim sama persis dengan alamat penerima yang diinginkan sebelum melakukan transaksi. Sebaiknya, saat berinteraksi dengan kontrak pintar, bacalah pesan transaksi sebelum menandatanganinya. - -### Tetapkan batas pengeluaran kontrak pintar {#spend-limits} - -Saat berinteraksi dengan kontrak pintar, jangan izinkan batas pembelanjaan tak terbatas. Pengeluaran tak terbatas dapat memungkinkan kontrak pintar menguras dompet Anda. Sebaliknya, tetapkan batas pengeluaran hanya untuk jumlah yang diperlukan untuk transaksi. - -Banyak dompet Ethereum menawarkan perlindungan batas untuk melindungi dari akun yang terkuras. - -[Cara mencabut akses smart contract ke dana kripto anda](/guides/how-to-revoke-token-access/) - - - -## Penipuan umum {#common-scams} - -Meskipun tidak mungkin menghentikan penipu sepenuhnya, kita bisa membuat mereka kurang efektif dengan menyadari teknik-teknik yang paling sering mereka gunakan. Ada banyak variasi penipuan ini, tetapi umumnya mengikuti pola tingkat tinggi yang sama. Jika tidak ada yang lain, ingat: - -- selalu skeptis -- tidak ada yang akan memberi Anda ETH gratis atau diskon -- tidak ada yang membutuhkan akses ke kunci pribadi atau informasi pribadi Anda - -### Twitter dan penipuan {#ad-phishing} - -![Phishing melalui tautan Twitter](./twitterPhishingScam.png) - -Ada metode untuk memalsukan fitur pratayang tautan (unfurling) Twitter (juga dikenal sebagai X) untuk mungkin menipu pengguna agar berpikir mereka mengunjungi situs web yang sah. Teknik ini memanfaatkan mekanisme Twitter untuk menghasilkan pratayang URL yang dibagikan dalam tweet, dan menunjukkan _dari ethereum.org_ (seperti yang ditunjukkan di atas), padahal sebenarnya mereka diarahkan ke situs jahat. - -Selalu periksa bahwa Anda berada di domain yang benar, terutama setelah mengklik tautan. - -[Informasi lebih lanjut di sini](https://harrydenley.com/faking-twitter-unfurling). - -### Penipuan berhadiah {#giveaway} - -Salah satu penipuan paling umum dalam mata uang kripto adalah penipuan giveaway. Penipuan giveaway dapat muncul dalam berbagai bentuk, tetapi ide umumnya adalah jika mengirim ETH ke alamat dompet yang diberikan, Anda akan menerima ETH kembali dengan jumlah yang digandakan. *Untuk alasan ini, ini juga dikenal sebagai penipuan 2-untuk-1.* - -Penipuan semacam ini biasanya menetapkan waktu yang terbatas untuk mengeklaim giveaway, untuk menciptakan rasa urgensi yang palsu. - -### Peretasan media sosial {#social-media-hacks} - -Riwayat tinggi dari versi ini terjadi pada Juli 2020, ketika akun Twitter selebritas dan organisasi terkemuka diretas. Peretas secara bersamaan memposting hadiah Bitcoin di akun yang diretas. Meskipun tweet yang menipu dengan cepat diketahui dan dihapus, para peretas masih berhasil lolos dengan 11 bitcoin (atau $500.000 pada September 2021). - -![Penipuan di Twitter](./appleTwitterScam.png) - -### Hadiah selebriti {#celebrity-giveaway} - -Pemberian selebriti adalah bentuk umum lain dari penipuan giveaway. Para penipu akan merekam wawancara video atau pembicaraan konferensi yang diberikan selebriti dan menyiarkannya secara langsung di YouTube - membuatnya tampak seolah-olah selebriti tersebut memberikan wawancara video langsung yang mendukung pemberian mata uang kripto. - -Vitalik Buterin paling sering digunakan dalam penipuan ini, tetapi banyak orang terkemuka lainnya yang terlibat dalam kripto juga digunakan (misalnya Elon Musk atau Charles Hoskinson). Menyertakan orang terkenal untuk memberikan legitimasi dalam siaran langsung penipu (ini terlihat samar, tetapi Vitalik terlibat, jadi itu pasti baik-baik saja!). - -**Giveaways selalu penipuan. Jika Anda mengirim dana ke akun ini, Anda akan kehilangannya selamanya.** - -![Penipuan di YouTube](./youtubeScam.png) - -### Dukung penipuan {#support-scams} - -Mata uang kripto adalah teknologi yang relatif masih baru dan disalahpahami. Penipuan umum yang memanfaatkan ini adalah penipuan dukungan, di mana penipu akan menyamar sebagai personel pendukung untuk dompet, bursa, atau rantai blok populer. - -Banyak diskusi tentang Ethereum berlangsung di Discord. Penipu dukungan biasanya akan menemukan target mereka dengan mencari pertanyaan dukungan di saluran perselisihan publik dan kemudian mengirimkan pesan pribadi yang menawarkan dukungan kepada penanya. Dengan membangun kepercayaan, penipu dukungan mencoba menipu Anda untuk mengungkapkan kunci pribadi Anda atau mengirim dana Anda ke dompet mereka. - -![Penipuan dukungan di Discord](./discordScam.png) - -Sebagai aturan umum, staf tidak akan pernah berkomunikasi dengan Anda melalui saluran pribadi dan tidak resmi. Beberapa hal sederhana yang perlu diingat ketika berhadapan dengan dukungan: - -- Jangan pernah membagikan kunci pribadi, frasa awal, atau kata sandi Anda -- Jangan pernah izinkan siapa pun mengakses komputer Anda dari jarak jauh -- Jangan pernah berkomunikasi di luar kanal yang ditunjuk organisasi - - -
- Hati-hati: meskipun penipuan gaya dukungan biasanya terjadi di Discord, penipuan ini juga dapat terjadi pada aplikasi obrolan tempat diskusi kripto berlangsung, termasuk email. -
-
- -### Penipuan token 'Eth2' {#eth2-token-scam} - -Menjelang [Penggabungan](/roadmap/merge/), penipu memanfaatkan kebingungan seputar istilah 'Eth2' untuk mencoba meminta pengguna menukar ETH mereka dengan token 'ETH2'. Tidak ada 'ETH2', dan tidak ada token sah lain yang diperkenalkan bersamaan dengan Penggabungan. ETH yang Anda miliki sebelum Penggabungan masih sama dengan ETH yang sekarang. **Tidak perlu melakukan tindakan apa pun yang terkait dengan ETH Anda untuk akun peralihan dari bukti kerja ke bukti taruhan**. - -Penipu mungkin muncul dalam bentuk "bantuan", memberi tahu Anda bahwa jika Anda mendepositkan ETH Anda, Anda akan menerima 'ETH2' kembali. Tidak ada [dukungan Ethereum resmi](/community/support/), dan tidak ada token baru. Jangan pernah membagikan frasa benih dompet Anda dengan siapa pun. - -_Catatan: Ada token/ticker turunan yang mungkin mewakili ETH yang dipertaruhkan (mis. rETH dari Rocket Pool, stETH dari Lido, ETH2 dari Coinbase), tetapi ini bukanlah sesuatu yang Anda butuhkan untuk "memindahkan ke."_ - -### Penipuan phishing {#phishing-scams} - -Penipuan phishing adalah sudut lain yang semakin umum yang akan digunakan scammer untuk mencoba mencuri dana dompet Anda. - -Beberapa email phishing meminta pengguna untuk mengklik tautan yang akan mengarahkan mereka kembali ke situs web tiruan, meminta mereka memasukkan frase benih, mengatur ulang kata sandi, atau mengirim ETH. Orang lain mungkin meminta Anda untuk secara tidak sadar memasang malware untuk menginfeksi komputer Anda dan memberikan akses kepada scammers ke file komputer Anda. - -Jika Anda menerima email dari pengirim yang tidak dikenal, ingatlah: - -- Jangan pernah membuka tautan atau lampiran dari alamat email yang tidak Anda kenal -- Jangan pernah membocorkan informasi pribadi atau kata sandi Anda kepada siapa pun -- Hapus email dari pengirim yang tidak dikenal - -[Lebih lanjut tentang menghindari penipuan phishing](https://support.mycrypto.com/staying-safe/mycrypto-protips-how-not-to-get-scammed-during-ico) - -### Penipuan broker perdagangan kripto {#broker-scams} - -Penipu broker perdagangan kripto mengklaim sebagai broker mata uang kripto spesialis yang akan menawarkan untuk mengambil uang Anda dan berinvestasi atas nama Anda. Setelah penipu menerima dana Anda, mereka mungkin mengarahkan Anda, meminta Anda mengirim lebih banyak dana, sehingga Anda tidak kehilangan keuntungan investasi lebih lanjut, atau mungkin hilang sama sekali. - -Para penipu ini sering kali mencari target dengan menggunakan akun palsu di YouTube untuk memulai percakapan yang tampak alami tentang 'broker'. Percakapan ini sering kali mendapat dukungan tinggi untuk meningkatkan legitimasi, tetapi suara positif semuanya berasal dari akun bot. - -**Jangan percaya orang asing di internet untuk berinvestasi atas nama Anda. Anda akan kehilangan kripto Anda.** - -![Penipuan broker perdagangan di YouTube](./brokerScam.png) - -### Penipuan pool penambangan crypto {#mining-pool-scams} - -Mulai September 2022, menambang di Ethereum sudah tidak bisa dilakukan lagi. Namun, penipuan yang terkait dengan kelompok penambangan masih ada. Penipuan kelompok penambangan terjadi ketika seseorang menghubungi Anda tanpa Anda memintanya, lalu mengatakan bahwa Anda bisa mendapatkan keuntungan besar dengan bergabung dalam kelompok penambangan Ethereum. Penipu akan membuat klaim dan tetap berhubungan dengan Anda selama waktu yang dibutuhkan. Pada dasarnya, penipu akan mencoba meyakinkan Anda bahwa ketika bergabung dengan kolam penambangan Ethereum, mata uang kripto Anda akan digunakan untuk membuat ETH dan Anda akan dibayar dividen ETH. Anda kemudian akan melihat bahwa mata uang kripto Anda menghasilkan keuntungan kecil. Ini hanya untuk memancing Anda berinvestasi lebih banyak. Pada akhirnya, semua dana Anda akan dikirim ke alamat yang tidak dikenal, dan si penipu entah akan menghilang atau dalam beberapa kasus akan terus berhubungan seperti yang terjadi dalam kasus baru-baru ini. - -Intinya: berhati-hatilah dengan orang yang menghubungi Anda di media sosial meminta untuk bergabung dengan pool penambangan. Setelah Anda kehilangan crypto Anda, itu hilang. - -Beberapa hal yang perlu diingat: - -- Berhati-hatilah terhadap siapa pun yang menghubungi Anda tentang cara menghasilkan uang dari crypto Anda -- Lakukan riset Anda tentang staking, kumpulan likuiditas, atau cara lain untuk menginvestasikan crypto Anda -- Jarang, jika pernah, skema seperti itu sah. Jika ya, mereka mungkin akan menjadi arus utama dan Anda pasti pernah mendengarnya. - -[Seorang pria kehilangan $200 ribu dalam penipuan pool penambangan](https://www.reddit.com/r/CoinBase/comments/r0qe0e/scam_or_possible_incredible_payout/) - -### Penipuan airdrop {#airdrop-scams} - -Penipuan Airdrop melibatkan proyek penipuan dengan memasukkan aset (NFT, token) ke dompet dan mengirim Anda ke situs web scam untuk mengeklaim aset yang dijadikan Airdrop. Anda akan diminta untuk masuk dengan dompet Ethereum Anda dan "menyetujui" transaksi saat mencoba mengklaim. Transaksi ini membahayakan akun Anda dengan mengirimkan kunci publik dan privat Anda ke penipu. Bentuk alternatif penipuan ini mungkin mengharuskan Anda mengonfirmasi transaksi yang mengirimkan dana ke akun penipu. - -[Lebih lanjut tentang penipuan Airdrop](https://www.youtube.com/watch?v=LLL_nQp1lGk) - - - -## Keamanan Situs 101 {#web-security} - -### Gunakan kata sandi yang kuat {#use-strong-passwords} - -[Lebih dari 80% pembajakan akun adalah akibat dari lemahnya atau tercurinya kata sandi](https://cloudnine.com/ediscoverydaily/electronic-discovery/80-percent-hacking-related-breaches-related-password-issues-cybersecurity-trends/). Kombinasi panjang dari karakter, angka, dan simbol akan membantu menjaga keamanan akun Anda. - -Kesalahan umum adalah menggunakan kombinasi beberapa kata umum yang saling terkait. Kata sandi seperti ini tidak aman karena rentan terhadap teknik peretasan yang disebut serangan kamus. - -```md -Contoh kata sandi yang lemah: CuteFluffyKittens! - -Contoh kata sandi yang kuat: ymv\*azu.EAC8eyp8umf -``` - -Kesalahan umum lainnya adalah menggunakan kata sandi yang mudah ditebak atau ditemukan melalui [rekayasa sosial](https://wikipedia.org/wiki/Social_engineering_(security)). Menyertakan nama gadis ibu, nama anak-anak atau hewan peliharaan, atau tanggal lahir dalam kata sandi Anda akan meningkatkan risiko akun diretas. - -#### Beberapa langkah yang perlu diperhatikan dalam membentuk kata sandi: {#good-password-practices} - -- Buatlah kata sandi dengan panjang karakter maksimal sesuai dengan yang diperbolehkan pembuat kata sandi atau sesuai dengan ketentuan formulir yang anda isi -- Gunakan gabungan huruf kapital, huruf kecil, angka dan simbol -- Hindari penggunaan informasi personal, seperti nama keluarga, di dalam kata sandi anda -- Hindari kata-kata umum - -[Selanjutnya, langkah dalam membuat kata sandi yang kuat](https://terranovasecurity.com/how-to-create-a-strong-password-in-7-easy-steps/) - -### Gunakan kata sandi yang unik untuk semua hal {#use-unique-passwords} - -Kata sandi yang kuat yang telah terungkap dalam pelanggaran data tidak lagi merupakan kata sandi yang kuat. Situs web [Have I Been Pwned](https://haveibeenpwned.com) memungkinkan Anda memeriksa apakah akun terlibat dalam pelanggaran data publik. Jika iya, **gantilah kata sandi tersebut segera**. Menggunakan kata sandi yang unik untuk setiap akun mengurangi risiko peretas mendapatkan akses ke semua akun Anda jika salah satu kata sandi tersebut terkompromi. - -### Menggunakan pengelola kata sandi {#use-password-manager} - - -
- Menggunakan pengelola kata sandi akan membantu Anda membuat kata sandi yang kuat dan unik serta mengingatnya! Kami sangat menyarankan untuk menggunakannya, dan sebagian besar dari mereka gratis! -
-
- -Mengingat kata sandi yang kuat dan unik untuk setiap akun tidaklah ideal. Pengatur kata sandi memberikan tempat yang terenkripsi dan aman untuk setiap kata sandi Anda. Mereka juga menyarankan kata sandi yang kuat saat mendaftar ke layanan baru, jadi Anda tidak perlu membuatnya sendiri. Banyak pengelola kata sandi akan memberitahukan Anda jika kata sandi Anda diretas, sehingga memberikan Anda kesemaptan untuk mengubah kata sandi Anda sebelum serangan yang berbahaya. - -![Contoh penggunaan pengelola kata sandi](./passwordManager.png) - -#### Contoh jasa pengelola kata sandi: {#try-password-manager} - -- [Bitwarden](https://bitwarden.com/) -- [KeePass](https://keepass.info/) -- [1Password](https://1password.com/) -- Atau coba lihat [pengelola kata sandi yang direkomendasikan](https://www.privacytools.io/secure-password-manager) lainnya - -### Menggunakan Autentikasi Dua Faktor {#two-factor-authentication} - -Anda mungkin terkadang diminta untuk mengautentikasi identitas melalui bukti unik. Ini dikenal sebagai **faktor**. Tiga faktor utama adalah: - -- Sesuatu yang Anda ketahui (seperti kata sandi atau pertanyaan keamanan) -- Sesuatu yang melekat pada diri Anda (seperti sidik jari atau hasil pindaian mata/wajah) -- Sesuatu yang Anda miliki (sebuah kunci atau autentikasi aplikasi dalam perangkat yang Anda miliki) - -Menggunakan **Autentikasi Dua Faktor (2FA)** memberikan *faktor keamanan* tambahan untuk akun online Anda. 2FA memastikan bahwa hanya memiliki kata sandi saja tidak cukup untuk mengakses akun. Umumnya, faktor autentikasi kedua adalah 6 digit kode yang dikenal sebagai **kata sandi satu kali berbais waktu (TOTP)**, yang Anda dapat akses dengan sebuah aplikasi autentikasi seperti Google Authenticator atau Authy. Ini berfungsi sebagai faktor "sesuatu yang Anda miliki" karena benih yang menghasilkan kode waktunya disimpan di perangkat Anda. - - -
- Catatan: Menggunakan 2FA berbasis SMS rentan terhadap SIM jacking dan tidak aman. Untuk keamanan terbaik, gunakan layanan seperti Google Authenticator atau Authy. -
-
- -#### Kunci keamanan {#security-keys} - -Kunci keamanan adalah jenis 2FA yang lebih canggih dan aman. Kunci keamanan adalah perangkat autentikasi perangkat keras fisik yang bekerja mirip dengan aplikasi autentikator. Menggunakan kunci keamanan merupakan cara paling aman dalam 2FA. Umumnya kunci ini menggunakan standar FIDO Universal 2nd Factor (U2F). [Pelajari lebih lanjut mengenai FIDO U2F](https://www.yubico.com/authentication-standards/fido-u2f/). - -Tonton lebih lanjut tentang 2FA: - - - -### Hapus ekstensi peramban {#uninstall-browser-extensions} - -Ekstensi browser, seperti ekstensi Chrome atau Add-on untuk Firefox, dapat meningkatkan fungsionalitas browser tetapi juga membawa risiko. Secara bawaan, sebagian besar ekstensi peramban menanyakan akses untuk 'membaca dan mengubah data', mengizinkan mereka melakukan hampir apapun pada data Anda. Ekstensi Chrome selalu melakukan pembaruan otomatis, jadi ekstensi yang sebelumnya aman bisa diperbarui belakangan dan mengandung kode jahat. Sebagian besar ekstensi peramban tidak bermaksud mencuri data Anda, tetapi Anda harus waspada bahwa mereka dapat melakukannya. - -#### Tetaplah aman dengan cara: {#browser-extension-safety} - -- Hanya menginstal ekstensi peramban dari sumber terpercaya -- Hapus ekstensi peramban yang tidak digunakan -- Instal ekstensi Chrome secara lokal untuk menghentikan pembaruan-otomatis (Lanjutan) - -[Selengkapnya mengenai risiko ekstensi browser](https://www.kaspersky.co.uk/blog/browser-extensions-security/12750/) - - - -## Bacaan lebih Lanjut {#further-reading} - -### Keamanan web {#reading-web-security} - -- [Hingga 3 juta perangkat terinfeksi oleh pengaya Chrome dan Edge yang mengandung malware](https://arstechnica.com/information-technology/2020/12/up-to-3-million-devices-infected-by-malware-laced-chrome-and-edge-add-ons/) - _Dan Goodin_ -- [Cara Membuat Kata Sandi yang Kuat — Yang Anda Tidak Akan Lupakan](https://www.avg.com/en/signal/how-to-create-a-strong-password-that-you-wont-forget) - _AVG_ -- [Apa itu kunci keamanan?](https://help.coinbase.com/en/coinbase/getting-started/verify-my-account/security-keys-faq) - _Coinbase_ - -### Keamanan kripto {#reading-crypto-security} - -- [Melindungi diri Anda dan dana Anda](https://support.mycrypto.com/staying-safe/protecting-yourself-and-your-funds) - _MyCrypto_ -- [Masalah keamanan pada perangkat lunak komunikasi kripto yang umum](https://docs.salusec.io/untitled/web3-penetration-test/risks-in-social-media) - _Salus_ -- [Panduan Keamanan Untuk Dummies Dan Orang Pintar Juga](https://medium.com/mycrypto/mycryptos-security-guide-for-dummies-and-smart-people-too-ab178299c82e) - _MyCrypto_ -- [Keamanan Crypto: Sandi dan Otentikasi](https://www.youtube.com/watch?v=m8jlnZuV1i4) - _Andreas M. Antonopoulos_ - -### Edukasi penipuan {#reading-scam-education} - -- [Panduan: Cara mengidentifikasi token penipuan](/guides/how-to-id-scam-tokens/) -- [Tetap Aman: Penipuan Umum](https://support.mycrypto.com/staying-safe/common-scams) - _MyCrypto_ -- [Menghindari penipuan](https://bitcoin.org/en/scams) - _Bitcoin.org_ -- [Utasan Twitter tentang Email dan Pesan Penipuan Umum Kripto](https://twitter.com/tayvano_/status/1516225457640787969) - _Taylor Monahan_ - - +**Peningkatan keamanan di peta perjalanan sudah berada pada tahap penelitian lanjutan**, tetapi tidak diharapkan akan diimplementasikan dalam waktu dekat. Langkah selanjutnya untuk view-merge, PBS, SSF, dan SLE adalah menyelesaikan spesifikasi dan mulai membangun prototipe. diff --git a/public/content/translations/id/user-experience/index.md b/public/content/translations/id/user-experience/index.md new file mode 100644 index 00000000000..2d5013b0816 --- /dev/null +++ b/public/content/translations/id/user-experience/index.md @@ -0,0 +1,36 @@ +--- +title: Meningkatkan pengalaman pengguna +description: Masih terlalu rumit untuk menggunakan Ethereum bagi kebanyakan orang. Untuk mendorong adopsi massal, Ethereum harus secara drastis menurunkan hambatan masuknya - pengguna harus mendapatkan manfaat dari akses yang terdesentralisasi, tanpa izin, dan tahan sensor ke Ethereum, tetapi harus sama mudahnya dengan menggunakan aplikasi web2 tradisional. +lang: id +image: /images/roadmap/roadmap-ux.png +alt: "Peta Perjalanan Ethereum" +template: roadmap +--- + +**Penggunaan Ethereum perlu disederhanakan**; mulai dari mengelola [kunci](/glossary/#key) dan [dompet](/glossary/#wallet) hingga memulai transaksi. Untuk memfasilitasi adopsi massal, Ethereum harus secara drastis meningkatkan kemudahan penggunaannya, memungkinkan pengguna untuk merasakan akses tanpa izin dan tahan sensor ke Ethereum dengan pengalaman tanpa hambatan seperti menggunakan aplikasi [Web2](/glossary/#web2). + +## Di luar frasa benih {#no-more-seed-phrases} + +Akun Ethereum dilindungi oleh sepasang kunci yang digunakan untuk mengidentifikasi akun (kunci publik) dan menandatangani pesan (kunci pribadi). Kunci pribadi seperti kata sandi utama; kunci ini memungkinkan akses penuh ke akun Ethereum. Ini adalah cara pengoperasian yang berbeda untuk orang-orang yang lebih akrab dengan bank dan aplikasi Web2 yang mengelola akun atas nama pengguna. Agar Ethereum dapat mencapai adopsi massal tanpa bergantung pada pihak ketiga yang tersentralisasi, harus ada cara yang mudah dan tanpa gesekan bagi pengguna untuk menjaga aset mereka dan tetap mengontrol data mereka tanpa harus memahami kriptografi kunci publik-pribadi dan manajemen kunci. + +Solusi untuk hal ini adalah dengan menggunakan dompet [kontrak pintar](/glossary/#smart-contract) untuk berinteraksi dengan Ethereum. Dompet kontrak pintar menciptakan cara untuk melindungi akun jika kuncinya hilang atau dicuri, peluang untuk deteksi dan pertahanan yang lebih baik, dan memungkinkan dompet untuk mendapatkan fungsionalitas baru. Meskipun dompet kontrak pintar sudah ada saat ini, namun masih sulit untuk dibuat karena protokol Ethereum perlu mendukungnya dengan lebih baik. Dukungan tambahan ini dikenal sebagai abstraksi akun. + +Lebih lanjut tentang abstraksi akun + +## Simpul untuk semua orang + +Pengguna yang menjalankan [simpul](/glossary/#node) tidak perlu memercayai pihak ketiga untuk menyediakan data kepada mereka, dan mereka dapat berinteraksi dengan cepat, secara pribadi, dan tanpa izin dengan [rantai blok](/glossary/#blockchain) Ethereum. Namun, menjalankan simpul saat ini membutuhkan pengetahuan teknis dan ruang disk yang besar, yang berarti banyak orang harus mempercayai perantara. + +Ada beberapa peningkatan yang akan membuat menjalankan node jauh lebih mudah dan jauh lebih sedikit menggunakan sumber daya. Cara penyimpanan data akan berubah untuk menggunakan struktur yang lebih efisien dalam penggunaan ruang yang dikenal sebagai **Pohon Verkle**. Dengan [keadaan tanpa status](/roadmap/statelessness) atau [kedaluwarsa data](/roadmap/statelessness/#data-expiry), simpul Ethereum tidak perlu menyimpan salinan seluruh data keadaan Ethereum, yang secara drastis mengurangi kebutuhan ruang hard disk. [Simpul ringan](/developers/docs/nodes-and-clients/light-clients/) akan menawarkan banyak manfaat dari menjalankan simpul penuh, tetapi dapat dijalankan dengan mudah pada ponsel seluler atau dalam aplikasi browser sederhana. + +Baca tentang pohon Verkle + +Dengan peningkatan ini, hambatan untuk menjalankan sebuah simpul dikurangi menjadi nol secara efektif. Pengguna akan mendapatkan keuntungan dari akses yang aman dan tanpa izin ke Ethereum tanpa harus mengorbankan ruang disk atau CPU yang signifikan di komputer atau ponsel mereka, dan tidak perlu bergantung pada pihak ketiga untuk akses data atau jaringan ketika mereka menggunakan aplikasi. + +## Kemajuan saat ini {#current-progress} + +Dompet kontrak pintar sudah tersedia, tetapi lebih banyak peningkatan diperlukan untuk membuatnya terdesentralisasi dan tanpa izin. EIP-4337 adalah proposal matang yang tidak memerlukan perubahan apa pun pada protokol Ethereum. Kontrak pintar utama yang diperlukan untuk EIP-4337 **digunakan pada bulan Maret 2023**. + +**Ketiadaan status penuh masih dalam tahap penelitian** dan kemungkinan akan memerlukan beberapa tahun sebelum diterapkan. Ada beberapa tonggak penting dalam perjalanan menuju keadaan tanpa kewarganegaraan penuh, termasuk masa berlaku data, yang dapat diimplementasikan lebih cepat. Item-item lain dalam peta perjalanan, seperti [Pohon Verkle](/roadmap/verkle-trees/) dan [Pemisahan Pembangun Penyedia](/roadmap/pbs/), perlu diselesaikan terlebih dahulu. + +Jaringan percobaan pohon Verkle sudah aktif dan berjalan, dan fase berikutnya adalah menjalankan klien yang diaktifkan pohon Verkle pada jaringan percobaan pribadi, kemudian publik. Anda dapat membantu mempercepat kemajuan dengan menggunakan kontrak ke jaringan percobaan atau menjalankan klien jaringan percobaan. diff --git a/public/content/translations/id/web3/index.md b/public/content/translations/id/web3/index.md index e2449ec29c4..e84a102be12 100644 --- a/public/content/translations/id/web3/index.md +++ b/public/content/translations/id/web3/index.md @@ -6,6 +6,10 @@ lang: id # Pengenalan kepada Web3 {#introduction} +
+ +
+ Sentralisasi telah membantu memasukkan miliaran orang ke World Wide Web dan menciptakan infrastruktur yang stabil serta kuat di mana ia hidup. Namun pada saat yang bersamaan, sebagian entitas sentralisasi memiliki kekuasaan yang luar biasa pada World Wide Web, memungkinkan mereka untuk secara sepihak memutuskan apa yang boleh dan yang tidak diizinkan. Web3 adalah jawaban untuk dilema ini. Alih-alih Web yang dimonopoli oleh perusahaan teknologi besar, Web3 merangkul desentralisasi dan dibangun, dioperasikan, dan dimiliki oleh para penggunanya. Web3 menempatkan kekuatan di tangan individu daripada perusahaan. Sebelum kita berbicara tentang Web3, mari kita jelajahi bagaimana kita sampai sini. diff --git a/src/intl/id/common.json b/src/intl/id/common.json index 2029ec40e3d..a6794167c3a 100644 --- a/src/intl/id/common.json +++ b/src/intl/id/common.json @@ -11,6 +11,7 @@ "adding-products": "Menambahkan Produk", "adding-staking-products": "Menambahkan Produk Penaruhan", "adding-wallets": "Menambahkan Dompet", + "ai-agents": "Agen AI", "aria-toggle-menu-button": "Tombol menu toggle", "aria-toggle-search-button": "Tombol pencarian toggle", "beacon-chain": "Rantai Suar", @@ -221,6 +222,7 @@ "nav-about-description": "Proyek publik sumber terbuka untuk komunitas Ethereum", "nav-advanced-description": "Pelajari topik yang lebih kompleks", "nav-advanced-label": "Tingkat Lanjut", + "nav-ai-agents-description": "Jelajahi dunia agen AI di Ethereum", "nav-basics-description": "Pahami dasar-dasar Ethereum", "nav-basics-label": "Dasar-dasar", "nav-bridges-description": "Web3 telah berevolusi menjadi ekosistem blockchain L1 utama dan solusi penskalaan L2", diff --git a/src/intl/id/glossary-tooltip.json b/src/intl/id/glossary-tooltip.json new file mode 100644 index 00000000000..088fe977130 --- /dev/null +++ b/src/intl/id/glossary-tooltip.json @@ -0,0 +1,102 @@ +{ + "51%-attack-term": "Serangan 51%", + "51%-attack-definition": "Jenis serangan di mana sekelompok orang menguasai mayoritas simpul. Ini memungkinkan mereka untuk menipu rantai blok dengan membalikkan transaksi dan melakukan pengeluaran ganda ether dan token lainnya.", + "abi-term": "Aplikasi Antarmuka Biner (ABI)", + "abi-definition": "File JSON yang mengartikan fungsi dan variabel yang disertakan dalam kontrak pintar. ABI memungkinkan bytecode di petakan dalam bentuk format yang dapat di baca manusia.", + "account-term": "Akun", + "account-definition": "Akun Ethereum adalah identitas digital pada rantai blok Ethereum, yang memungkinkan pengguna untuk mengirim, menerima Ether atau aset digital lainnya, dan berinteraksi dengan kontrak pintar.", + "address-term": "Alamat", + "address-definition": "Alamat Ethereum adalah pengenal unik yang digunakan untuk menerima token, fungsinya serupa dengan akun bank untuk mata uang kripto.", + "anti-sybil-term": "Anti-Sybil", + "anti-sybil-definition": "Merupakan cara untuk menghentikan orang yang berpura pura menjadi banyak pengguna skaligus di internet, memastikan setiap pengguna adalah orang yang nyata dan terpisah. Hal ini membantu menjaga interaksi online tetap adil dan jujur.", + "apr-term": "APR", + "apr-definition": "APR, atau rata rata presentasi annual, mencerminkan biaya tahunan untuk meminjam uang, termasuk bunga dan biaya, dalam bentuk persentasi.", + "attestation-term": "Pengesahan", + "attestation-definition": "Sebuah klaim yang dibuat oleh suatu entitas bahwa sesuatu itu benar. Dalam konteks Ethereum, validator konsensus harus membuat klaim tentang apa yang mereka yakini sebagai keadaan rantai. Pada waktu-waktu tertentu, setiap validator bertanggung jawab untuk menerbitkan berbagai penilaian yang secara resmi menyatakan pandangan validator ini terhadap rantai, termasuk checkpoint terakhir yang telah dikonfirmasi dan kepala rantai saat ini. Lebih lanjut tentang penilaian.", + "block-term": "Blok", + "block-definition": "Blok adalah tempat di mana transaksi atau tindakan digital disimpan. Setelah sebuah blok penuh, ia akan dihubungkan dengan blok sebelumnya, membentuk rangkaian blok atau \"rantai blok\". Selengkapnya tentang blok.", + "blockchain-term": "Blockchain", + "blockchain-definition": "Rantai blok adalah basis data transaksi, diduplikasi dan dibagikan ke semua komputer dalam jaringan, memastikan data tidak dapat diubah secara retroaktif.", + "bridge-term": "Penghubung", + "bridge-definition": "Sebuah jembatan rantai blok digunakan untuk mentransfer aset dari satu jaringan rantai blok ke jaringan rantai blok lainnya.", + "consensus-term": "Konsensus", + "consensus-definition": "Ketika lebih dari 2/3 komputer dalam jaringan setuju bahwa mereka memiliki catatan yang sama, pastikan semua orang memiliki informasi yang sama. Ini bukan tentang aturan yang mereka ikuti, tetapi memastikan mereka semua memiliki informasi yang sama.", + "consensus-client-term": "Klien konsensus", + "consensus-layer-term": "Lapisan konsensus", + "consensus-layer-definition": "Lapisan konsensus Ethereum merupakan jaringan klien konsensus.", + "cryptoeconomics-term": "Ekonomi Kripto", + "cryptoeconomics-definition": "Studi tentang prinsip-prinsip matematika dan ekonomi untuk merancang platform digital yang aman dan dapat dipercaya. Tujuannya adalah untuk memastikan bahwa semua peserta mengikuti aturan dan diberi penghargaan karena berkontribusi pada keamanan dan operasi jaringan. ", + "cryptography-term": "Kriptografi", + "cryptography-definition": "Ini adalah praktik untuk membuat komunikasi bersifat pribadi dan aman sehingga hanya mereka yang ditujukan untuk informasi tersebut yang dapat membacanya.", + "dao-term": "Organisasi otonom terdesentralisasi (DAO)", + "dao-definition": "DAO adalah organisasi digital yang dijalankan oleh aturan yang dikodekan di rantai blok, di mana keputusan dibuat melalui pemungutan suara anggota, bukan oleh otoritas pusat. Selengkapnya tentang organisasi otonom terdesentralisasi (DAO).", + "dapp-term": "Dapp", + "dapp-definition": "dApp adalah aplikasi terdesentralisasi yang berjalan di jaringan rantai blok, yang menawarkan layanan tanpa otoritas pengendali pusat. Selengkapnya tentang aplikasi terdesentralisasi.", + "data-availability-term": "Ketersediaan data", + "data-availability-definition": "Setiap node dapat memverifikasi transaksi secara sendiri pada blockchain untuk menjaga transparansi dan kepercayaan pada sistem.", + "defi-term": "DeFi", + "dex-term": "Bursa terdesentralisasi (DEX)", + "dex-definition": "Sebuah jenis aplikasi Ethereum yang memungkinkan Anda menukar token dengan rekan-rekan di jaringan. DEX tidak tunduk pada batasan geografis seperti bursa terpusat - siapa pun dapat berpartisipasi.", + "ens-term": "Layanan Nama Ethereum (ENS)", + "ens-definition": "Ethereum Name Service seperti buku telepon internet untuk alamat Ethereum. Alih-alih menggunakan alamat dompet yang panjang, ENS memungkinkan Anda menggunakan nama sederhana seperti \"john.eth\" untuk mengirim dan menerima uang dan aset digital.", + "epoch-term": "Epoch", + "eoa-term": "Akun dengan kepemilikan eksternal (EOA)", + "erc-term": "Permintaan Ethereum untuk Komentar (ERC)", + "erc-definition": "ERC (Ethereum Request for Comments) adalah jenis documentation teknis yang digunakan dalam komunitas Ethereum untuk mengusulkan standar penggunaan baru untuk jaringan Ethereum.", + "erc-1155-term": "ERC-1155", + "erc-1155-definition": "Jenis standar token Ethereum yang serupa dengan NFT (seperti item koleksi unik) yang juga memungkinkan untuk membuat barang yang dapat dipertukarkan (seperti mata uang) dalam satu kontrak pintar.", + "erc-20-term": "ERC-20", + "erc-20-definition": "Adalah seperangkat aturan standar yang digunakan untuk membuat sebagian besar token di jaringan Ethereum.", + "erc-721-term": "ERC-721", + "erc-721-definition": "Seperangkat aturan standar yang digunakan untuk membuat NFT (token yang tidak dapat dipertukarkan).", + "ether-term": "Ether", + "events-term": "Aksi", + "execution-client-term": "Klien eksekusi", + "execution-layer-term": "Lapisan eksekusi", + "execution-layer-definition": "Lapisan eksekusi Ethereum merupakan jaringan untuk klien eksekusi.", + "finality-term": "Finality", + "gas-term": "Gas", + "genesis-block-definition": "Blok pertama di rantai blok, digunakan untuk menginisialisasi jaringan tertentu dan mata uang kriptonya.", + "gwei-term": "Gwei", + "holographic-consensus-definition": "Mengacu pada bagaimana keputusan kelompok besar dibuat dengan membiarkan kelompok kecil yang terdiri dari orang-orang yang mewakili memberikan suara. Kemudian semua orang setuju untuk mengikutinya, selama mereka percaya bahwa kelompok kecil tersebut melakukan pekerjaan dengan baik.", + "index-term": "Indeks", + "index-definition": "Struktur jaringan yang dimaksudkan untuk mengoptimalkan pembuatan kueri informasi dari seluruh rantai blok dengan menyediakan jalur efisien ke sumber penyimpanannya.", + "key-definition": "Dalam konteks Ethereum, kunci adalah kode digital: Kunci publik untuk menerima transaksi dan kunci pribadi untuk mengakses dan mengirim dana.", + "layer-2-term": "Lapisan 2", + "liquidity-tokens-term": "Likuiditas token", + "liquidity-tokens-definition": "Token likuiditas (LT) adalah token digital yang dikeluarkan untuk peserta yang menyetor aset ke dalam kumpulan likuiditas, yang merupakan kumpulan dana yang dikunci dalam kontrak pintar dan digunakan untuk memfasilitasi perdagangan di bursa Terdesentralisasi (DEX).", + "mainnet-term": "Jaringan Utama", + "mainnet-definition": "Singkatan dari \"jaringan utama\", ini adalah rantai blok Ethereum publik yang utama.", + "mev-term": "MEV", + "mev-definition": "Sebuah mekanisme yang memprioritaskan tindakan tertentu pada rantai blok dengan biaya tertentu, mempengaruhi hasil dan urutan transaksi.", + "multisig-term": "Multisig", + "multisig-definition": "Multisig (multi tanda tangan) mengacu pada dompet digital atau akun yang membutuhkan beberapa tanda tangan atau persetujuan untuk melakukan transaksi, sehingga meningkatkan keamanan.", + "nft-term": "Token yang tidak dapat dipertukarkan (NFT)", + "onchain-definition": "Mengacu pada tindakan atau transaksi yang terjadi di rantai blok dan tersedia untuk umum.", + "optimistic-rollup-term": "Rollup optimistic", + "peer-to-peer-network-definition": "Jaringan komputer (peer) yang secara kolektif dapat menjalankan fungsionalitas tanpa memerlukan layanan terpusat berbasis server.", + "permissionless-term": "Tanpa izin", + "permissionless-definition": "Tidak ada izin atau persetujuan yang diperlukan untuk menggunakan sistem seperti Ethereum dan tidak ada yang dapat menghentikan Anda untuk menggunakannya. Sistem ini terbuka 24/7 bagi semua orang untuk berpartisipasi.", + "private-key-term": "Kunci privasi", + "pos-term": "Bukti Taruhan (PoS)", + "pow-term": "Bukti kerja (PoW)", + "public-key-term": "Kunci publik", + "rollups-term": "Rollup", + "sequencer-term": "Sequencer", + "sequencer-definition": "Sequencer adalah sebuah program yang bertanggung jawab untuk memesan transaksi dalam jaringan rantai blok.", + "smart-contract-term": "Kontrak pintar", + "stablecoin-term": "Stablecoin", + "staking-term": "Penaruhan", + "staking-pool-term": "Pool penaruhan", + "sybil-attack-term": "Serangan Sybil", + "sybil-attack-definition": "Serangan Sybil mengacu pada individu manusia yang menipu suatu sistem untuk berpikir bahwa mereka adalah beberapa orang untuk meningkatkan pengaruhnya.", + "terminal-total-difficulty-term": "Tingkat kesulitan total terminal (TTD)", + "trust-assumptions-term": "Asumsi kepercayaan", + "validator-term": "Validator", + "validity-proof-term": "Validity proof", + "wallet-term": "Dompet", + "web2-term": "Web2", + "web3-term": "Web3", + "wei-term": "Wei", + "zk-proof-term": "Bukti zero-knowledge" +} diff --git a/src/intl/id/page-index.json b/src/intl/id/page-index.json index 95f94f00b0e..201be7fe8f5 100644 --- a/src/intl/id/page-index.json +++ b/src/intl/id/page-index.json @@ -2,6 +2,7 @@ "page-index-activity-description": "Aktivitas dari semua jaringan Ethereum", "page-index-activity-tag": "Aktivitas", "page-index-activity-header": "Ekosistem terkuat", + "page-index-activity-action": "Lebih banyak aktivitas Ethereum", "page-index-bento-header": "Cara baru untuk menggunakan internet", "page-index-bento-assets-action": "Selengkapnya tentang NFT", "page-index-bento-assets-content": "Karya seni, sertifikat, atau bahkan real estat dapat dijadikan token. Apa pun dapat menjadi token yang dapat diperjualbelikan. Kepemilikannya bersifat publik dan dapat diverifikasi.", @@ -99,7 +100,7 @@ "page-index-values-privacy-legacy-content-0": "Kita tidak bisa mengharapkan pemerintah, perusahaan, atau organisasi besar tak dikenal lainnya memberi kita privasi karena kemurahan hati mereka.", "page-index-values-privacy-legacy-content-1": "Sebagian besar aplikasi mengumpulkan sebanyak mungkin informasi pribadi agar Anda bisa menjadi target pemasaran mereka yang disesuaikan.", "page-index-values-privacy-ethereum-label": "Berorientasi pada privasi", - "page-index-values-privacy-ethereum-content-0": "Komunitas Ethereum menghargai privasi. Anda berhak menggunakan aplikasi tanpa mengungkapkan diri atau informasi kontak.", + "page-index-values-privacy-ethereum-content-0": "Komunitas Ethereum menghormati privasi. Anda memiliki hak untuk menggunakan aplikasi tanpa mengungkapkan diri Anda atau informasi kontak Anda.", "page-index-values-integration-legacy-label": "Terfragmentasi", "page-index-values-integration-legacy-content-0": "Sebagian besar aplikasi meminta Anda untuk membuat akun terpisah, sehingga menyulitkan Anda untuk mengingat semua detail login dan pendaftaran.", "page-index-values-integration-ethereum-label": "Terintegrasi", @@ -111,7 +112,7 @@ "page-index-values-censorship-legacy-label": "Dapat disensor", "page-index-values-censorship-legacy-content-0": "Platform modern dan aturannya sering kali berubah. Aturan tersebut bisa dipengaruhi oleh pemangku kepentingan, manajemen perusahaan, atau bahkan rezim yang represif.", "page-index-values-censorship-ethereum-label": "Tahan penyensoran", - "page-index-values-censorship-ethereum-content-0": "Perlawanan terhadap penindasan adalah prinsip utama Ethereum. Fungsinya harus selalu adil dan tidak memihak.", + "page-index-values-censorship-ethereum-content-0": "Perlawanan terhadap penindasan adalah prinsip utama Ethereum. Fungsionalitasnya harus selalu adil dan tidak memihak.", "page-index-values-censorship-ethereum-content-1": "Ethereum tidak dapat dikendalikan oleh negara, perusahaan, atau individu.", "page-index-values-open-legacy-label": "Tertutup bagi kebanyakan orang", "page-index-values-open-legacy-content-0": "Perusahaan melindungi kekayaan intelektualnya dan tidak membagikannya. Tak seorang pun di luar perusahaan yang dapat melihat cara kerjanya, memperbaiki masalah, atau melakukan perbaikan. Sulit bagi orang-orang untuk membuat perangkat baru atau menyesuaikannya.", diff --git a/src/intl/id/page-upgrades-index.json b/src/intl/id/page-upgrades-index.json index e4705c11318..e7c935e558a 100644 --- a/src/intl/id/page-upgrades-index.json +++ b/src/intl/id/page-upgrades-index.json @@ -97,7 +97,7 @@ "page-upgrades-question-6-answer-5": "Anda juga dapat bergabung dalam diskusi tentang penelitian dan pengembangan Ethereum di ethresear.ch.", "page-upgrades-question-6-title": "Apa yang harus saya lakukan dengan dapp saya?", "page-upgrades-question-6-desc": "Penggabungan dirancang agar memiliki dampak minimal bagi pengembang dapp, meskipun ada beberapa perubahan kecil yang perlu dicatat.", - "page-upgrades-question-6-answer-1": "Para pengembang dapp yang sudah terbiasa dengan Ethereum sebelum terjadinya Penggabungan seharusnya menyadari beberapa perubahan. Perubahan-perubahan ini meliputi struktur dan waktu blok, beberapa perubahan opcode, sumber-sumber acak di dalam rantai blok, dan konsep finalitas jangka waktu.", + "page-upgrades-question-6-answer-1": "Para pengembang Dapp yang terbiasa dengan Ethereum pra-gabungan harus menyadari beberapa perubahan. Perubahan ini termasuk struktur dan pengaturan waktu blok, beberapa perubahan opcode, sumber keacakan onchain, dan konsep finalisasi jangka waktu.", "page-upgrades-question-6-answer-1-link": "Bagaimana Penggabungan berpengaruh terhadapan Lapisan Aplikasi Ethereum", "page-upgrades-question-6-answer-2": "Aplikasi hampir tidak terpengaruh secara keseluruhan.", "page-upgrades-question-7-desc": "Banyak tim berbeda dari seluruh komunitas sedang mengerjakan berbagai peningkatan Ethereum.", diff --git a/src/intl/id/page-wallets-find-wallet.json b/src/intl/id/page-wallets-find-wallet.json index 87d13956cbc..7d9d46cb6fa 100644 --- a/src/intl/id/page-wallets-find-wallet.json +++ b/src/intl/id/page-wallets-find-wallet.json @@ -2,7 +2,7 @@ "page-find-wallet-clear": "Hapus filter", "page-find-wallet-desc-2": "Tidak tahu apa itu dompet digital?", "page-find-wallet-desc-2-wallets-link": "Pelajari tentang dompet.", - "page-find-wallet-description": "Dompet menyimpan dan bertransaksi dengan ETH Anda. Anda dapat memilih dari berbagai macam produk yang sesuai dengan kebutuhan Anda.", + "page-find-wallet-description": "Dompet menyimpan ETH Anda dan digunakan untuk bertransaksi. Anda dapat memilih dari berbagai produk yang sesuai dengan kebutuhan Anda.", "page-find-wallet-last-updated": "Terakhir diperbarui", "page-find-wallet-meta-description": "Cari dan bandingkan dompet Ethereum berdasarkan fitur yang Anda inginkan.", "page-find-wallet-meta-title": "Daftar Dompet Ethereum | ethereum.org", @@ -12,11 +12,11 @@ "page-find-wallet-open-source": "Sumber terbuka", "page-find-wallet-open-source-desc": "Perangkat lunak sumber terbuka memungkinkan siapa pun mengaudit integritas dan keamanan aplikasi", "page-find-wallet-self-custody": "Perwalian mandiri", - "page-find-wallet-non-custodial": "Kepemilikan pribadi", + "page-find-wallet-non-custodial": "Kepemilikan penuh oleh pengguna", "page-find-wallet-non-custodial-desc": "Dompet yang tidak mengontrol kunci pribadi Anda", "page-find-wallet-hardware-wallet-support": "Dukungan dompet perangkat keras", "page-find-wallet-hardware-wallet-support-desc": "Dompet yang dapat terhubung ke dompet perangkat keras untuk keamanan yang lebih baik", - "page-find-wallet-rpc-importing": "Impor RPC", + "page-find-wallet-rpc-importing": "Impor endpoint RPC", "page-find-wallet-rpc-importing-desc": "Dompet yang mendukung titik akhir RPC khusus untuk terhubung ke node atau jaringan berbeda", "page-find-wallet-nft-support": "Dukungan NFT", "page-find-wallet-nft-support-desc": "Dompet yang mendukung melihat dan berinteraksi dengan NFT Anda", @@ -24,7 +24,7 @@ "page-find-wallet-connect-to-dapps-desc": "Anda dapat terhubung ke aplikasi yang mendukung WalletConnect atau alternatif", "page-find-wallet-staking": "Penaruhan", "page-find-wallet-staking-desc": "Taruhan ETH langsung dari dompet", - "page-find-wallet-swaps": "Penukaran", + "page-find-wallet-swaps": "Pertukaran", "page-find-wallet-swaps-desc": "Tukar token ERC-20 langsung di dompet", "page-find-wallet-layer-2": "Lapisan ke-2", "page-find-wallet-layer-2-desc": "Dompet yang mendukung Ethereum lapisan ke-2", @@ -64,15 +64,15 @@ "page-find-wallet-new-to-crypto-title": "Baru mengenal kripto", "page-find-wallet-new-to-crypto-desc": "Pengguna pertama kali yang mencari dompet pemula.", "page-find-wallet-nfts-title": "NFT", - "page-find-wallet-nfts-desc": "Dompet dengan fokus pada dukungan NFT.", + "page-find-wallet-nfts-desc": "Dompet yang berfokus pada dukungan NFT.", "page-find-wallet-hodler-title": "Jangka panjang", - "page-find-wallet-hodler-desc": "Penyimpanan token pasif dengan dompet perangkat keras.", + "page-find-wallet-hodler-desc": "Penyimpanan token jangka panjang dengan dompet perangkat keras.", "page-find-wallet-finance-title": "Keuangan", "page-find-wallet-finance-desc": "Dompet yang berfokus pada penggunaan aplikasi DeFi yang sering.", "page-find-wallet-developer-title": "Pengembang", "page-find-wallet-developer-desc": "Dompet yang membantu mengembangkan dan menguji dapps.", "page-find-wallet-active": "aktif", - "page-find-wallet-footnote-1": "Dompet yang tercantum di halaman ini bukan dukungan resmi, dan disediakan hanya untuk tujuan informasi.", + "page-find-wallet-footnote-1": "Dompet yang tercantum di halaman ini bukan merupakan rekomendasi resmi, dan disediakan semata-mata untuk tujuan informasi.", "page-find-wallet-footnote-2": "Deskripsi mereka telah disediakan oleh proyek dompet itu sendiri.", "page-find-wallet-footnote-3": "Kami menambahkan produk ke halaman ini berdasarkan kriteria dalam kebijakan pendaftaran kami. Jika Anda menginginkan penambahan dompet dari kami, ajukan persoalan ini di GitHub.", "page-find-wallet-mobile": "Seluler", diff --git a/src/intl/id/page-what-is-ethereum.json b/src/intl/id/page-what-is-ethereum.json index aded269442e..23f3440e3e7 100644 --- a/src/intl/id/page-what-is-ethereum.json +++ b/src/intl/id/page-what-is-ethereum.json @@ -1,5 +1,5 @@ { - "page-what-is-ethereum-alt-img-bazaar": "Ilustrasi seseorang yang sedang mengintip bazar, yang dimaksudkan untuk menggambarkan Ethereum", + "page-what-is-ethereum-alt-img-bazaar": "Ilustrasi seseorang yang sedang mengintip sebuah bazar, yang dimaksudkan untuk mewakili Ethereum", "page-what-is-ethereum-alt-img-comm": "Ilustrasi anggota komunitas Ethereum yang sedang bekerja bersama", "page-what-is-ethereum-alt-img-lego": "Ilustrasi sebuah tangan yang sedang membuat logo ETH yang terbuat dari batu bata lego", "page-what-is-ethereum-banking-card": "Perbankan bagi semua orang", diff --git a/src/intl/id/template-usecase.json b/src/intl/id/template-usecase.json index 89c34607a6a..1fb8382de9e 100644 --- a/src/intl/id/template-usecase.json +++ b/src/intl/id/template-usecase.json @@ -1,4 +1,5 @@ { + "template-usecase-dropdown-ai-agents": "Agen AI", "template-usecase-dropdown-defi": "Keuangan terdesentralisasi (DeFi)", "template-usecase-dropdown-nft": "Token yang tidak dapat dipertukarkan (NFT)", "template-usecase-dropdown-dao": "Organisasi otonom terdesentralisasi (DAO)", From 14ea600f5c1287582aec2e8f13d469538e540912 Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Thu, 1 May 2025 04:45:37 +0000 Subject: [PATCH 054/106] chore: import translations for it --- src/intl/it/page-get-eth.json | 4 ++-- src/intl/it/page-wallets-find-wallet.json | 16 ++++++++-------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/intl/it/page-get-eth.json b/src/intl/it/page-get-eth.json index b0cb5690a45..651811742b5 100644 --- a/src/intl/it/page-get-eth.json +++ b/src/intl/it/page-get-eth.json @@ -1,5 +1,5 @@ { - "page-get-eth-article-keeping-crypto-safe": "I segreti per tenere al sicuro le tue criptovalute", + "page-get-eth-article-keeping-crypto-safe": "Le chiavi per tenere al sicuro le tue criptovalute", "page-get-eth-article-protecting-yourself": "Proteggere te e i tuoi fondi", "page-get-eth-article-store-digital-assets": "Come conservare attivi digitali su Ethereum", "page-get-eth-article-protecting-yourself-desc": "MyCrypto", @@ -75,5 +75,5 @@ "page-get-eth-your-address-desc-3": "Puoi considerarlo come un indirizzo email, su cui invece delle email riceverai ETH. Se vuoi trasferire ETH da una borsa al tuo portafoglio, usa questo indirizzo come destinazione. Controlla sempre due volte prima di confermare l'invio!", "page-get-eth-your-address-wallet-link": "Scopri i portafogli", "listing-policy-raise-issue-link": "Apri segnalazione", - "page-find-wallet-last-updated": "Ultimo aggiornamento" + "page-find-wallet-last-updated": "Ultimo aggiornamento:" } diff --git a/src/intl/it/page-wallets-find-wallet.json b/src/intl/it/page-wallets-find-wallet.json index ccfa963f5a5..6093911bf3a 100644 --- a/src/intl/it/page-wallets-find-wallet.json +++ b/src/intl/it/page-wallets-find-wallet.json @@ -3,7 +3,7 @@ "page-find-wallet-desc-2": "Non sai cosa è un portafoglio?", "page-find-wallet-desc-2-wallets-link": "Scopri di più sui portafogli.", "page-find-wallet-description": "I portafogli conservano gli ETH e permettono di svolgere transazioni con essi. Puoi scegliere tra un'ampia gamma di prodotti che più si adattano alle tue esigenze.", - "page-find-wallet-last-updated": "Ultimo aggiornamento", + "page-find-wallet-last-updated": "Ultimo aggiornamento:", "page-find-wallet-meta-description": "Trova e confronta portafogli Ethereum in base alle caratteristiche che cerchi.", "page-find-wallet-meta-title": "Elenco portafogli Ethereum | ethereum.org", "page-find-wallet-title": "Scegliere il proprio portafoglio", @@ -16,7 +16,7 @@ "page-find-wallet-non-custodial-desc": "Portafogli che non controllano le tue chiavi private", "page-find-wallet-hardware-wallet-support": "Supporto portafogli hardware", "page-find-wallet-hardware-wallet-support-desc": "Portafogli che possono connettersi a portafogli hardware per una migliore sicurezza", - "page-find-wallet-rpc-importing": "Importazione RPC", + "page-find-wallet-rpc-importing": "Importazione endpoint RPC", "page-find-wallet-rpc-importing-desc": "Portafogli che supportano endpoint RPC personalizzati per connettersi a nodi o reti differenti", "page-find-wallet-nft-support": "Supporto NFT", "page-find-wallet-nft-support-desc": "Portafogli che supportano la visualizzazione e l'interazione con i tuoi NFT", @@ -37,7 +37,7 @@ "page-find-wallet-buy-crypto": "Acquista criptovalute", "page-find-wallet-buy-crypto-desc": "Acquista criptovalute con valute legali direttamente nel portafoglio\n*Nota: l'acquisto di criptovalute potrebbe variare da regione a regione", "page-find-wallet-sell-for-fiat": "Vendi per valuta legale", - "page-find-wallet-sell-for-fiat-desc": "Vendi criptovalute per valute legali direttamente nel portafoglio\n*Nota: il prelievo di criptovalute potrebbe variare da regione a regione", + "page-find-wallet-sell-for-fiat-desc": "Vendi criptovalute per valute fiat direttamente nel portafoglio\n*Nota: il prelievo di criptovalute potrebbe essere limitato ad alcune aree geografiche", "page-find-wallet-multisig": "Firma Multipla", "page-find-wallet-multisig-desc": "Portafogli che richiedono firme multiple per autorizzare una transazione", "page-find-wallet-social-recovery": "Recupero social", @@ -47,11 +47,11 @@ "page-find-wallet-popular-languages": "Più popolari", "page-find-wallet-features": "Caratteristiche", "page-find-wallet-security": "Sicurezza", - "page-find-wallet-smart-contract": "Smart Contract", + "page-find-wallet-smart-contract": "Smart contract", "page-find-wallet-advanced": "Avanzate", "page-find-wallet-check-out": "Dai un'occhiata a:", "page-find-wallet-info-updated-on": "info aggiornate il", - "page-find-wallet-showing-all-wallets": "Mostra tutti i portafogli", + "page-find-wallet-showing-all-wallets": "Portafogli visualizzati: tutti", "page-find-wallet-wallets": "portafogli", "page-find-wallet-iOS": "iOS", "page-find-wallet-android": "Android", @@ -61,11 +61,11 @@ "page-find-wallet-chromium": "Chromium", "page-find-wallet-firefox": "Firefox", "page-find-wallet-hardware": "Hardware", - "page-find-wallet-new-to-crypto-title": "Senza conoscenza di criptovalute", + "page-find-wallet-new-to-crypto-title": "Nuovo nel mondo crypto", "page-find-wallet-new-to-crypto-desc": "Nuovo utente alla ricerca di un portafoglio per principianti.", "page-find-wallet-nfts-title": "NFT", "page-find-wallet-nfts-desc": "Portafogli con un focus su supporto NFT.", - "page-find-wallet-hodler-title": "Lungo termine", + "page-find-wallet-hodler-title": "A lungo termine", "page-find-wallet-hodler-desc": "Detenzione passiva di token mediante portafogli hardware.", "page-find-wallet-finance-title": "Finanza", "page-find-wallet-finance-desc": "Portafogli incentrati sull'utilizzo frequente di app di DeFi.", @@ -83,6 +83,6 @@ "page-find-wallet-visit-website": "Visita il sito web", "page-find-wallet-social-links": "Link", "page-find-wallet-empty-results-title": "Nessun risultato", - "page-find-wallet-empty-results-desc": "Nessun portafoglio corrisponde ai tuoi criteri, prova a rimuovere alcuni filtri.", + "page-find-wallet-empty-results-desc": "Nessun portafoglio corrispondente ai criteri; prova a rimuovere qualche filtro.", "page-find-wallet-see-wallets": "Visualizza portafogli" } From 84638b45b41890eecdec289263250ae06fcb10db Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Thu, 1 May 2025 04:45:40 +0000 Subject: [PATCH 055/106] chore: import translations for ja --- .../content/translations/ja/events/index.md | 24 ++++++ .../index.md | 73 +++++++++++++++++++ public/content/translations/ja/web3/index.md | 4 + src/intl/ja/common.json | 14 +++- src/intl/ja/glossary-tooltip.json | 4 +- src/intl/ja/page-get-eth.json | 2 +- src/intl/ja/page-index.json | 1 + src/intl/ja/page-learn.json | 7 +- src/intl/ja/page-upgrades-index.json | 2 +- src/intl/ja/page-wallets-find-wallet.json | 4 +- src/intl/ja/page-what-is-ethereum.json | 9 ++- src/intl/ja/template-usecase.json | 4 +- 12 files changed, 134 insertions(+), 14 deletions(-) create mode 100644 public/content/translations/ja/events/index.md create mode 100644 public/content/translations/ja/how-to-create-an-ethereum-account/index.md diff --git a/public/content/translations/ja/events/index.md b/public/content/translations/ja/events/index.md new file mode 100644 index 00000000000..278f6ebb8ee --- /dev/null +++ b/public/content/translations/ja/events/index.md @@ -0,0 +1,24 @@ +--- +title: イーサリアムのイベント +description: イーサリアムコミュニティへの参加方法 +lang: ja +hideEditButton: true +--- + +# 今後のイベント {#events} + +**毎月、世界各地でメジャーなイーサリアムのイベントが行われています。**お近くで開催されているイベントに参加し、コミュニティの人々と出会い、採用情報や新しいスキルを学んでみませんか? + + + +これはコミュニティにより、維持されているイベントのリストですが、すべてのイベントを網羅するものではありません。 リストに追加すべきイーサリアムのイベントをご存じの場合は、 [ぜひ追加してください](https://github.com/ethereum/ethereum-org-website/blob/dev/src/data/community-events.json)。 + +## イーサリアムのミートアップ {#meetups} + +自分に合うイベントが見つからない場合は、 ミートアップへの参加を検討してみましょう。 ミートアップは、イーサリアムの愛好家のグループが開催する小規模なイベントです。イーサリアムに関心のある方たちが集い、イーサリアムについて話し合ったり、最近の開発について学べる良い機会です。 + + + +自分自身でミートアップを開催することにご興味がある場合は、 ConsenSysのイニシアチブで、イーサリアムのミートアップ・コミュニティをサポートしている[BUIDL Network](https://consensys.net/developers/buidlnetwork/)をチェックしてみてください。 + +これはコミュニティにより作成されたリストで、すべてを網羅するものではありません。 こちらの[イーサリアムのミートアップ](https://www.meetup.com/topics/ethereum/)からさらに多くのミートアップを見つけることができます。 このリストに追加すべき、アクティブなミートアップグループをご存知の場合は、 [ぜひ追加してください](https://github.com/ethereum/ethereum-org-website/blob/dev/src/data/community-meetups.json)。 diff --git a/public/content/translations/ja/how-to-create-an-ethereum-account/index.md b/public/content/translations/ja/how-to-create-an-ethereum-account/index.md new file mode 100644 index 00000000000..cd4a9d2dbbf --- /dev/null +++ b/public/content/translations/ja/how-to-create-an-ethereum-account/index.md @@ -0,0 +1,73 @@ +--- +title: イーサリアムアカウントの「開設」方法 +description: ウォレットを利用してイーサリアムのアカウントを開設する方法のステップバイステップガイド +lang: ja +--- + +# イーサリアムアカウントの開設方法 + +**イーサリアムアカウントは誰でも無料で作れます。** 仮想通貨ウォレットアプリをインストールするだけでOKです。 ウォレットがイーサリアムアカウントの作成と管理を行います。 ウォレットを使えば、トランザクションの送信、残高確認、イーサリアム上の他のアプリへの接続ができます。 + +また、ウォレットがあれば、トークン取引所、ゲーム、[NFT](/glossary/#nft)マーケットプレイスに即座にログインできます。 イーサリアム上のアプリでは個別の登録は不要で、1つのアカウントですべてにアクセスできます。 + +## ステップ1:ウォレットを選ぶ + +ウォレットはイーサリアムアカウントを管理するアプリです。 ウォレットには、モバイル、デスクトップ、ブラウザ拡張機能など、数十種類の異なる選択肢があります。 + + + + ウォレットのリスト + + +初めて利用する場合、「ウォレットを探す」ページから「暗号資産初心者」フィルターを選択し、初心者用に必要な機能がすべて含まれているウォレットを見つけてください。 + +![「ウォレットを探す」ページのフィルター選択](./wallet-box.png) + +あなたの目的に合う他のプロファイルフィルターもあります。 よく利用されるウォレットはたくさんありますが、ウォレットを信用し利用する前に自分でも調べるようにしてください。 + +## ステップ 2: ウォレットアプリをダウンロードしてインストールする + +ウォレットを選んだら、ウォレットの公式サイトやアプリストアにアクセスして、ダウンロード、インストールしてください。 それらはすべて無料のはずです。 + +## ステップ 3: アプリを開いて、イーサリアムアカウントを開設する + +新しいウォレットを初めて開くと、新しいアカウントを開設するか、既存のアカウントをインポートするかを選択するよう求められる場合があります。 新しいアカウントの開設をクリックします。 **このステップで、ウォレットソフトウェアがあなたのイーサリウムアカウントを作成します。** + +## ステップ 4: リカバリーフレーズを保存する + +一部のアプリでは、秘密の「リカバリーフレーズ」(「シードフレーズ」や「ニーモニック」とも呼ばれることがあります) を保存するよう求められることがあります。 このフレーズを安全に保管することは非常に重要です! このフレーズはイーサリウムアカウントを生成するために使用され、トランザクションを送信するためにも利用できます。 + +**このフレーズを知っている人は、全ての資金を管理することができます。**絶対に他人と共有しないでください。 このフレーズには、ランダムに生成された12~24個の単語を含めるべきです(単語の並び順も重要です)。 + +
+ +
ウォレットをインストールしましたか?
その使い方を学びましょう。
+ + ウォレットの使用方法 + +
+
+ +他のガイドに興味がありますか? ぜひ、[ステップバイステップのガイド](/guides/)をご覧ください。 + +## よくある質問 + +### イーサリアムのアカウントとウォレットは同じものですか? + +できません。 ウォレットはイーサリアムのアカウントを管理するツールです。 1つのウォレットが複数のアカウントにアクセスでき、また1つのアカウントが複数のウォレットからアクセスされることがあります。 リカバリーフレーズはアカウントを作成するために使用され、ウォレットアプリが資産を管理する権限を与えます。 + +### ビットコインをイーサリアムのアドレスに送金したり、Etherをビットコインのアドレスに送金したりできますか? + +できません。 ビットコインとイーサリアムは、それぞれ異なるネットワーク (つまり、異なるブロックチェーン) に存在しており、それぞれ独自の台帳形式やアドレス形式を持っています。 この2つの異なるネットワークを橋渡しするためのさまざまな試みが行われてきましたが、現在最も活発なものは[ラップドビットコイン(WBTC)](https://www.bitcoin.com/get-started/what-is-wbtc/)です。 とはいえ、WBTCはカストディアル型 (特定の組織が重要な機能を管理している形) であり、情報提供のみが目的であるため、これは推奨される試みではありません。 + +### ETHのアドレスを所有している場合、他のブロックチェーンでもそれと同じアドレスが使えますか? + +イーサリアム上で構築されたソフトウェアを利用しているブロックチェーン(いわゆる、EVM互換ブロックチェーン)であれば同じ[アドレス](/glossary/#address)を使うことができます。 この [リスト](https://chainlist.org/) は、同じアドレスで使用できるブロックチェーンの一覧です。 ビットコインのような一部のブロックチェーンでは、全く別のネットワークの規定を実装しているため、異なるフォーマットのアドレスが必要になります。 スマートコントラクトウォレットをお持ちの場合、そのプロダクトの公式ウェブサイトを確認し、サポートしているブロックチェーンについて詳しく知るべきです。それらは一般的に、範囲は限定されるものの、より高いセキュリティが確保されています。 + +### 自分のウォレットを持つことは、取引所に資金を預けるよりも安全でしょうか? + +自分のウォレットを持つことは自分の資産の管理に責任を持つものと同じです。 顧客の資産を流出させた取引所も残念ながらいくつかあります。 ウォレットを(リカバリーフレーズととともに)持つことで、自分の資産を他人に預けることに関連するリスクを排除できます。 しかし、それを自分自身で安全に維持し、フィッシング詐欺、不用意なトランザクションの承認、リカバリーフレーズの漏洩、偽のウェブサイトとのやり取り、その他セルフカストディのリスクを回避する必要があります。 リスクとメリットは異なります。 + +### 携帯電話/ハードウェアのウォレットを紛失した場合、失われた資金を復元させるために同じウォレットアプリを再度使用する必要はありますか? + +いいえ、違うウォレットを使うことができます。 たいていのウォレットにおいて、入力したシードフレーズを持っていれば、アカウントを復元することができます。 ウォレットを復元する際は、インターネットに接続されていないことを確認し、リカバリーフレーズが誤って流出しないように注意が必要です。 リカバリーフレーズなしに失われた資金を復元させることは、ほとんどの場合不可能です。 diff --git a/public/content/translations/ja/web3/index.md b/public/content/translations/ja/web3/index.md index 6553629e16e..fcef35033d7 100644 --- a/public/content/translations/ja/web3/index.md +++ b/public/content/translations/ja/web3/index.md @@ -6,6 +6,10 @@ lang: ja # Web3入門 {#introduction} +
+ +
+ 中央集権化により、何十億人もの人々がワールドワイドウェブを使い始め、またその基盤となる安定し、堅牢なインフラストラクチャの構築に貢献しました。 同時に、一握りの中央集権組織が大規模にワールドワイドウェブ(World Wide Web)の拠点を占め、一方的に、何が許され、何が許されないかを決定しています。 Web3は、このジレンマに対する答えです。 Web3は、大企業が独占するWebではなく、ユーザーにより構築、運営、所有される非中央集権的な分散化を採用しています。 Web3は企業ではなく個人の手に権力を与えます。 Web3について話す前に、これまでの経緯について振り返ってみましょう。 diff --git a/src/intl/ja/common.json b/src/intl/ja/common.json index 251e459c626..d377ec6258c 100644 --- a/src/intl/ja/common.json +++ b/src/intl/ja/common.json @@ -11,6 +11,7 @@ "adding-products": "イーサリアムプロダクトの追加", "adding-staking-products": "ステーキングプロダクトの追加", "adding-wallets": "ウォレットの追加", + "ai-agents": "AIエージェント", "aria-toggle-menu-button": "メニューボタンの切り替え", "aria-toggle-search-button": "検索ボタンの切り替え", "beacon-chain": "ビーコンチェーン", @@ -221,6 +222,7 @@ "nav-about-description": "イーサリアムコミュニティのためのパブリックオープンソースプロジェクト", "nav-advanced-description": "さらに複雑なトピックについて学ぶ", "nav-advanced-label": "上級者向け", + "nav-ai-agents-description": "イーサリアムでAIエージェントの世界を探検", "nav-basics-description": "イーサリアムの基盤を理解する", "nav-basics-label": "基本", "nav-bridges-description": "Web3は、主要なL1ブロックチェーンとL2スケーリングソリューションのエコシステムに進化しました", @@ -250,6 +252,8 @@ "nav-emerging-description": "イーサリアムの他の新しいユースケースを知る", "nav-emerging-label": "新たなユースケース", "nav-ethereum-org-description": "このウェブサイトはコミュニティが主導しています。ぜひ参加して貢献しましょう", + "nav-ethereum-networks": "イーサリアムネットワーク", + "nav-ethereum-networks-description": "より安く、より速いイーサリアムの取引", "nav-ethereum-wallets-description": "イーサリアムアカウントを使用してアプリで対話する", "nav-events-description": "分散化、そして誰でも参加できる自由", "nav-events-irl-description": "毎月、主要なイーサリアムイベントが対面およびオンラインで開催されています", @@ -275,16 +279,23 @@ "nav-guides-label": "ハウツーガイド", "nav-history-description": "すべての主要なフォークとアップデートのタイムライン", "nav-history-label": "イーサリアムの技術的な歴史", - "nav-layer-2-description": "より安く、より速いイーサリアムの取引", "nav-learn-by-coding-description": "イーサリアムを試してみるのに役立つツール", "nav-local-env-description": "イーサリアムの開発スタックを選択してセットアップする", "nav-mainnet-description": "エンタープライズブロックチェーンアプリケーションは、パブリックのイーサリアムメインネット上で構築することができます", + "nav-networks-home-description": "より安く、より速いイーサリアムの取引", + "nav-networks-introduction-label": "はじめに", + "nav-networks-introduction-description": "イーサリアムはネットワークのネットワークへと拡大", + "nav-networks-explore-networks-label": "ネットワークを探検", + "nav-networks-explore-networks-description": "使用するネットワークを選ぶ", + "nav-networks-learn-label": "\"2\"ネットワークとは?", + "nav-networks-learn-description": "これらが必要な理由", "nav-nft-description": "イーサリアムベースのアセットとして、何か唯一無二なものを表現する方法", "nav-open-research-description": "イーサリアムの主な強みの一つは、その活発な研究コミュニティです", "nav-open-research-label": "オープンリサーチ", "nav-overview-description": "イーサリアム教育に関して", "nav-overview-label": "概要", "nav-participate-overview-description": "参加方法の概要", + "nav-payments-description": "イーサリアムの決済システムがお金のやり取りのあり方を変えています", "nav-primary": "プライマリ", "nav-quizzes-description": "イーサリアムと仮想通貨の理解度をチェック", "nav-quizzes-label": "あなたの理解度をテストする", @@ -356,6 +367,7 @@ "page-last-updated": "ページの最終更新日時", "participate": "EIPへの参加", "participate-menu": "参加メニュー", + "payments-page": "お支払い", "pbs": "プロポーザー/ビルダーセパレーション(PBS)", "pools": "ステーキングプール", "privacy-policy": "プライバシーポリシー", diff --git a/src/intl/ja/glossary-tooltip.json b/src/intl/ja/glossary-tooltip.json index 73f0353afd7..14ef095cb3f 100644 --- a/src/intl/ja/glossary-tooltip.json +++ b/src/intl/ja/glossary-tooltip.json @@ -96,13 +96,12 @@ "multisig-term": "マルチシグ", "multisig-definition": "マルチシグ(複数署名)は、トランザクションの実行に複数の署名または承認が必要なデジタルウォレットまたはアカウントで、セキュリティを高めることができます。", "nft-term": "ノンファンジブルトークン (NFT)", - "nft-definition": "ノンファンジブルトークン(NFT)は、ブロックチェーン技術によって検証され、所有することができる固有のデジタルアイテムです。例えば、アートまたはコレクティブルなどを所有することができます。 詳細はノンファンジブルトークン(NFT)をご覧ください。", "node-term": "ノード", "node-definition": "ネットワークに参加するソフトウェアクライアント。詳細は、ノードとクライアントをご覧ください。", "ommer-term": "オマー(アンクル)ブロック", "ommer-definition": "プルーフ・オブ・ワークのマイナーが有効なブロックを見つけた時に、別のマイナーが先に、ブロックチェーンの先端に競合しているブロックを公開している場合があります。この有効ではあるが、古いブロックはオマーとして新しいブロックに含むことができ、ブロック報酬の一部を受け取ることができます。「オマー」という用語は、親ブロックの兄弟を表す性別に依存しない用語として好まれます。時には、「アンクル」と呼ばれることもあります。 イーサリアムが プルーフ・オブ・ワーク ネットワークだった頃にこの呼び名が一般的でした。現在、イーサリアムは プルーフ・オブ・ステーク を使用するため、スロットごとに1つのブロック提案者のみが選択されます。", "onchain-term": "オンチェーン", - "onchain-definition": "ブロックチェーン上で行われたアクションやトランザクションを意味し、公開され参照可能であることです。", + "onchain-definition": "ブロックチェーン上で行われ、公開されているアクションやトランザクションを意味します。", "optimistic-rollup-term": "オプティミスティック・ロールアップ", "optimistic-rollup-definition": "オプティミスティック・ロールアップは、レイヤー2ソリューションでイーサリアムのトランザクションの速度を上げます。トランザクションは、異議申し立てが行われない限り、デフォルトでは有効であると仮定されます。詳細はオプティミスティック・ロールアップをご覧ください。", "peer-to-peer-network-term": "ピアツーピアネットワーク", @@ -150,7 +149,6 @@ "validator-term": "バリデータ", "validator-definition": "プルーフ・オブ・ステーク・システムにおけるノードは、ブロックチェーンへのデータの格納、トランザクションの処理、新しいブロックの追加の役割を担います。バリデータソフトウェアの有効化には、32ETHをステーキングする必要があります。詳細はイーサリアムのステーキングをご覧ください。", "validity-proof-term": "有効性証明", - "validity-proof-definition": "特定のレイヤー2ソリューションのセキュリティモデルで、スピードを速めるために、トランザクションをバッチにして1つのトランザクションとしてイーサリアムに送信します。トランザクションの計算は、オフチェーンで行われ、その有効性の証明がメインのチェーンへ提供されます。この方法により、セキュリティを維持しながらトランザクション量を増やすことができます。一部のロールアップでは、不正証明を使っています。詳細はゼロ知識ロールアップをご覧ください。", "wallet-term": "ウォレット", "wallet-definition": "ウォレットは、デジタル通貨の保管、送金、受け取りを行うためのデジタルツールです。オンラインマネーの仮想的な財布のようなものです。詳細はイーサリアムウォレットをご覧ください。", "web2-term": "Web2", diff --git a/src/intl/ja/page-get-eth.json b/src/intl/ja/page-get-eth.json index 5842ef9ede5..e06fb97ab72 100644 --- a/src/intl/ja/page-get-eth.json +++ b/src/intl/ja/page-get-eth.json @@ -46,7 +46,7 @@ "page-get-eth-hero-image-alt": "ETHヒーロー画像を取得する", "page-get-eth-keep-it-safe": "あなたのETHを安全に保持", "page-get-eth-meta-description": "住んでいる場所に基づいてETHを購入する方法とその後のアドバイス。", - "page-get-eth-meta-title": "ETHの入手方法", + "page-get-eth-meta-title": "イーサリアム(ETH)の購入方法", "page-get-eth-need-wallet": "DEXを使用するにはウォレットが必要です。", "page-get-eth-new-to-eth": "ETHは初めてですか?始めるための概要はこちらになります。", "page-get-eth-other-cryptos": "他の暗号資産を使って購入する", diff --git a/src/intl/ja/page-index.json b/src/intl/ja/page-index.json index 42e4ff326ea..4489cc147bf 100644 --- a/src/intl/ja/page-index.json +++ b/src/intl/ja/page-index.json @@ -2,6 +2,7 @@ "page-index-activity-description": "全てのイーサリアム・ネットワークスのアクティビティ", "page-index-activity-tag": "アクティビティ", "page-index-activity-header": "最強のエコシステム", + "page-index-activity-action": "他のイーサリアムの活動", "page-index-bento-header": "インターネットの新しい使い方", "page-index-bento-assets-action": "非代替性トークン(NFT)の詳細", "page-index-bento-assets-content": "アート、証明書、不動産さえもトークン化することができ、どんな物でも取引可能なトークンと成り得ます。所有権は公開されており検証が可能です。", diff --git a/src/intl/ja/page-learn.json b/src/intl/ja/page-learn.json index 954c73e8bcf..eb23d0b566c 100644 --- a/src/intl/ja/page-learn.json +++ b/src/intl/ja/page-learn.json @@ -10,6 +10,7 @@ "hero-header": "イーサリアムについて学ぶ", "hero-subtitle": "イーサリアムの世界へいざなう学習ガイドです。 イーサリアムの仕組みと接続方法を学びましょう。 このページには、技術的・非技術的な記事、ガイド、リソースがあります。", "hero-button-lets-get-started": "さあ、始めましょう", + "page-learn-meta-title": "イーサリアム:総合学習ガイド", "what-is-crypto-1": "仮想通貨、ブロックチェーン、ビットコインなどを聞いたことがあるかもしれません。以下のリンクでは、それらが何であるか、およびイーサリアムとどのように関連しているかを理解することができます。", "what-is-crypto-2": "ビットコインのような仮想通貨は、誰もが世界中に送金できます。イーサリアムも同様ですが、人々がアプリや組織を構築するコードも実行可能です。回復力と柔軟性の両方を兼ね備え、どのようなコンピュータープログラムでもイーサリアム上で実行できます。詳細と開始方法を学びましょう。", "what-is-ethereum-card-title": "イーサリアムとは", @@ -33,9 +34,9 @@ "find-a-wallet-card-title": "ウォレットを探す", "find-a-wallet-card-description": "あなたが重視する機能を持つウォレットを探しましょう。", "find-a-wallet-button": "ウォレットのリスト", - "crypto-security-basics-card-title": "セキュリティの基本", - "crypto-security-basics-card-description": "詐欺の見分け方と、よくある手口を回避する方法を学びます。", - "crypto-security-basics-card-button": "安全の確保", + "ethereum-networks-card-title": "イーサリアムネットワーク", + "ethereum-networks-card-description": "より安価で迅速なイーサリアム拡張機能を利用することでお金を節約できます。", + "ethereum-networks-card-button": "ネットワークを選択", "things-to-consider-banner-title": "イーサリアム利用時に考慮すること", "things-to-consider-banner-1": "イーサリアムのトランザクションを行うごとに、ETHの形で手数料が必要になります。イーサリアム上に構築されたさまざまなトークン (ステーブルコインのUSDCやDAIなど) を移動する場合にも必要です。", "things-to-consider-banner-2": "イーサリアムは使おうとしている人の数によって手数料が高くなる可能性があるので、", diff --git a/src/intl/ja/page-upgrades-index.json b/src/intl/ja/page-upgrades-index.json index 8a1ccfae034..ca10bf9af09 100644 --- a/src/intl/ja/page-upgrades-index.json +++ b/src/intl/ja/page-upgrades-index.json @@ -97,7 +97,7 @@ "page-upgrades-question-6-answer-5": "または、ethresear.chでイーサリアムの研究開発に関する議論に参加することもできます。", "page-upgrades-question-6-title": "分散型アプリ(Dapp)では何をする必要がありますか?", "page-upgrades-question-6-desc": "マージは、分散型アプリ(Dapp)デベロッパーにほとんど影響を及ぼさないように設計されましたが、注意すべき小さな変更点がいくつかありました。", - "page-upgrades-question-6-answer-1": "マージ前のイーサリアムをご存じの分散型アプリ(Dapp)デベロッパーは、ブロック構造とタイミング、いくつかのオペコードの変更、オンチェーンランダムネスのソース、およびエポックのファイナライズのコンセプトといったいくつかの変更点に注意する必要があります。", + "page-upgrades-question-6-answer-1": "マージ前のイーサリアムに慣れている分散型アプリ(Dapp)デベロッパーは、いくつかの変更点に注意する必要があります。たとえばブロック構造とタイミング、いくつかのオペコードの変更、オンチェーンランダムネスのソース、およびエポックのファイナライズのコンセプトなどです。", "page-upgrades-question-6-answer-1-link": "マージがイーサリアムのアプリケーションレイヤーに与えた影響", "page-upgrades-question-6-answer-2": "アプリケーションに影響はほとんどありませんでした。", "page-upgrades-question-7-desc": "コミュニティ中の多くの異なるチームが、さまざまなイーサリアムのアップグレードに取り組んでいます。", diff --git a/src/intl/ja/page-wallets-find-wallet.json b/src/intl/ja/page-wallets-find-wallet.json index c4c4ddf40a3..0236f5d7f1d 100644 --- a/src/intl/ja/page-wallets-find-wallet.json +++ b/src/intl/ja/page-wallets-find-wallet.json @@ -5,7 +5,7 @@ "page-find-wallet-description": "ウォレットは、ETHの保存や取引に使います。さまざまな製品から自分のニーズに合ったものを選ぶことができます。", "page-find-wallet-last-updated": "最終更新日", "page-find-wallet-meta-description": "あなたの欲しい機能に基づいてイーサリアムウォレットを探して比較しましょう。", - "page-find-wallet-meta-title": "イーサリアムウォレットを探しましょう", + "page-find-wallet-meta-title": "イーサリアムウォレットのリスト | Ethereum.org", "page-find-wallet-title": "ウォレットを選ぶ", "page-find-wallet-try-removing": "機能を1つまたは2つ削除してみてください", "page-stake-eth": "ETHのステーキング", @@ -71,6 +71,7 @@ "page-find-wallet-finance-desc": "DeFiアプリの頻繁な使用に重点を置いたウォレット。", "page-find-wallet-developer-title": "デベロッパー", "page-find-wallet-developer-desc": "Dappの開発およびテストに役立つウォレット。", + "page-find-wallet-active": "アクティブ", "page-find-wallet-footnote-1": "このページに記載されているウォレットは公式に推奨するものではなく、情報提供のみを目的として提供されています。", "page-find-wallet-footnote-2": "ウォレットの説明文は、それぞれのウォレットプロジェクト側より提供されたものです。", "page-find-wallet-footnote-3": "イーサリアムの掲載ポリシーに基づいて、ウォレットを本ページに追加しています。新たなウォレットの追加をご希望の場合は、GitHubで問題を提起してください。", @@ -78,6 +79,7 @@ "page-find-wallet-desktop": "デスクトップ", "page-find-wallet-browser": "ブラウザ", "page-find-wallet-device": "デバイス", + "page-find-wallet-reset-filters": "リセット", "page-find-wallet-visit-website": "ウェブサイトを訪問", "page-find-wallet-social-links": "リンク", "page-find-wallet-empty-results-title": "検索結果はありません", diff --git a/src/intl/ja/page-what-is-ethereum.json b/src/intl/ja/page-what-is-ethereum.json index 80144faadad..7da1d82b300 100644 --- a/src/intl/ja/page-what-is-ethereum.json +++ b/src/intl/ja/page-what-is-ethereum.json @@ -34,9 +34,12 @@ "page-what-is-ethereum-cryptocurrency-tab-content-2": "ビットコインやEtherなどの資産が「仮想通貨」と呼ばれる理由は、データや資産の安全性が、暗号技術によって保証され、機関や企業が誠実に行動すると信頼する必要がないためです。", "page-what-is-ethereum-cryptocurrency-tab-content-3": "イーサリアムには独自のネイティブ暗号資産であるイーサ(ETH)があり、ネットワーク上の特定のアクティビティの支払いに使用されます。他のユーザーに送金したり、イーサリアム上の他のトークンと交換したりすることもできます。イーサは、イーサリアムでアプリや組織を構築して実行するために必要な計算の支払いに使用されるので重要です。", "page-what-is-ethereum-summary-title": "まとめ", - "page-what-is-ethereum-summary-desc-1": "イーサリアムは、イーサリアムプロトコルと呼ばれる一連のルールに従う世界中のコンピューターのネットワークです。イーサリアムネットワークは、コミュニティ、アプリケーション、組織、誰でも構築して使用できるデジタル資産の基盤として機能します。", - "page-what-is-ethereum-summary-desc-2": "いつでもどこからでも イーサリアムアカウントを作成し、アプリの世界を探索したり、ご自身のアプリを構築したりできます。コアとなるイノベーションは、ルールを変更したり、アクセスを制限したりする可能性のある中央集権の当局を信頼することなく、これらすべてを実行できることです。", - "page-what-is-ethereum-summary-desc-3": "さらに詳しく読む…", + "page-what-is-ethereum-summary-desc-1": "イーサリアムは、イーサリアムのプロトコルが支える何千ものアプリやブロックチェーンのための主要プラットフォームです。", + "page-what-is-ethereum-summary-desc-2": "この活気あるエコシステムは、イノベーションと幅広い分散型アプリやサービスを促進します。", + "page-what-is-ethereum-summary-bullet-1": "無料かつグローバルなイーサリアムアカウント", + "page-what-is-ethereum-summary-bullet-2": "擬似的な匿名性、個人情報不要", + "page-what-is-ethereum-summary-bullet-3": "制限なく誰でも参加可能", + "page-what-is-ethereum-summary-bullet-4": "イーサリアムを所有する企業や、その将来の決定権を持つ企業は存在しません", "page-what-is-ethereum-btc-eth-diff-title": "イーサリアムとビットコインの違い", "page-what-is-ethereum-btc-eth-diff-1": "2015年に運用を開始したイーサリアムは、ビットコインのイノベーションを基に創設され、ビットコインとはいくつかの大きな違いがあります。", "page-what-is-ethereum-btc-eth-diff-2": "両者は決済業者や銀行を介さないデジタルマネーであることは同じですが、イーサリアムはプログラム可能であるという点が異なります。イーサリアムでは、ネットワーク上で分散型アプリケーションを構築し、デプロイできます。", diff --git a/src/intl/ja/template-usecase.json b/src/intl/ja/template-usecase.json index 79bed602947..086a3aeb0ac 100644 --- a/src/intl/ja/template-usecase.json +++ b/src/intl/ja/template-usecase.json @@ -1,7 +1,9 @@ { + "template-usecase-dropdown-ai-agents": "AIエージェント", "template-usecase-dropdown-defi": "分散型金融(DeFi)", "template-usecase-dropdown-nft": "非代替性トークン(NFT)", "template-usecase-dropdown-dao": "分散型自律組織(DAO)", + "template-usecase-dropdown-payments": "イーサリアム支払い", "template-usecase-dropdown-social-networks": "分散型ソーシャルネットワーク", "template-usecase-dropdown-identity": "分散型アイデンティティ", "template-usecase-dropdown-desci": "分散型科学 (DeSci)", @@ -10,4 +12,4 @@ "template-usecase-banner": "イーサリアムの用途は常に発展し、進化しています。このページに記載の内容をより分かりやすく、または関連する最新情報をご存知の場合は、ぜひ追加してください。", "template-usecase-edit-link": "ページの編集", "template-usecase-dropdown-aria": "ユースケース・ドロップダウンメニュー" -} +} \ No newline at end of file From 835801d133dd343a1c319a471883c34bed19dd34 Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Thu, 1 May 2025 04:45:45 +0000 Subject: [PATCH 056/106] chore: import translations for kn --- .../content/translations/kn/events/index.md | 24 +++ .../index.md | 73 +++++++ public/content/translations/kn/web3/index.md | 161 +++++++++++++++ src/intl/kn/common.json | 20 +- src/intl/kn/glossary-tooltip.json | 38 ++++ src/intl/kn/page-get-eth.json | 64 +++--- src/intl/kn/page-index.json | 4 +- src/intl/kn/page-learn.json | 8 +- src/intl/kn/page-upgrades-index.json | 186 ++++++++++++++++++ src/intl/kn/page-upgrades.json | 22 +++ src/intl/kn/page-wallets-find-wallet.json | 52 +++-- src/intl/kn/page-what-is-ethereum.json | 9 +- src/intl/kn/template-usecase.json | 8 +- 13 files changed, 607 insertions(+), 62 deletions(-) create mode 100644 public/content/translations/kn/events/index.md create mode 100644 public/content/translations/kn/how-to-create-an-ethereum-account/index.md create mode 100644 public/content/translations/kn/web3/index.md create mode 100644 src/intl/kn/glossary-tooltip.json create mode 100644 src/intl/kn/page-upgrades-index.json create mode 100644 src/intl/kn/page-upgrades.json diff --git a/public/content/translations/kn/events/index.md b/public/content/translations/kn/events/index.md new file mode 100644 index 00000000000..dd13f73935b --- /dev/null +++ b/public/content/translations/kn/events/index.md @@ -0,0 +1,24 @@ +--- +title: ಎಥೆರಿಯಮ್ ಕಾರ್ಯಕ್ರಮಗಳು +description: ಎಥೆರಿಯಮ್ ಸಮುದಾಯದಲ್ಲಿ ಹೇಗೆ ತೊಡಗಿಸಿಕೊಳ್ಳುವುದು. +lang: kn +hideEditButton: true +--- + +# ಮುಂಬರುವ ಕಾರ್ಯಕ್ರಮಗಳು {#events} + +**ಪ್ರತಿ ತಿಂಗಳು, ಜಗತ್ತಿನಾದ್ಯಂತ ಪ್ರಮುಖ ಎಥಿರಿಯಮ್ ಕಾರ್ಯಕ್ರಮಗಳು ನಡೆಯುತ್ತವೆ.** ಸಮುದಾಯದ ಇನ್ನಷ್ಟು ಜನರನ್ನು ಭೇಟಿಯಾಗಲು, ಉದ್ಯೋಗಾವಕಾಶಗಳ ಬಗ್ಗೆ ತಿಳಿಯಲು, ಮತ್ತು ಹೊಸ ಕೌಶಲ್ಯಗಳನ್ನು ಅಭಿವೃದ್ದಿ ಪಡಿಸಲು ನಿಮ್ಮ ಬಳಿ ಇರುವ ಒಂದು ಕಾರ್ಯಕ್ರಮದಲ್ಲಿ ಪಾಲ್ಗೊಳ್ಳುವುದನ್ನು ಪರಿಗಣಿಸಿ. + + + +ಇದು ನಮ್ಮ ಸಮುದಾಯದವರಿಂದ ನಿರ್ವಹಿಸಲಾದ ಸಮಗ್ರ ಪಟ್ಟಿ ಇಲ್ಲ. ಈ ಪಟ್ಟಿಗೆ ಸೇರಿಸಲು ಸಮೀಪದ ಎಥಿರಿಯಮ್ ಈವೆಂಟ್ ಬಗ್ಗೆ ತಿಳಿದಿರುವಿರಾ? [ದಯವಿಟ್ಟು ಅದನ್ನು ಸೇರಿಸಿ](https://github.com/ethereum/ethereum-org-website/blob/dev/src/data/community-events.json)! + +## ಎಥೆರಿಯಮ್ ಸಭೆಗಳು {#meetups} + +ನಿಮಗಾಗಿ ಸೂಕ್ತವಾದ ಯಾವುದೇ ಈವೆಂಟ್ ಕಾಣಿಸುತ್ತಿಲ್ಲವೆ? ಮೀಟಪ್‌ನಲ್ಲಿ ಸೇರಲು ಪ್ರಯತ್ನಿಸಿ. ಮೀಟಪ್‌ಗಳು ಎಥಿರಿಯಮ್ ಆಸ್ತಿ ವಿರೋಧಿಗಳ ಗುಂಪುಗಳಿಂದ ನಡೆಸುವ ಸಣ್ಣ ಕಾರ್ಯಕ್ರಮಗಳಾಗಿವೆ - ಎಥಿರಿಯಮ್‌ನಲ್ಲಿ ಆಸಕ್ತಿಯುಳ್ಳ ಜನರು ಒಟ್ಟಿಗೆ ಸೇರಲು, ಎಥಿರಿಯಮ್ ಬಗ್ಗೆ ಮಾತನಾಡಲು, ಮತ್ತು ಇತ್ತೀಚಿನ ಬೆಳವಣಿಗೆಗಳ ಬಗ್ಗೆ ತಿಳಿಯಲು ಒದಗಿಸಿದ ಅವಕಾಶ. + + + +ನಿಮ್ಮ ಸ್ವಂತ ಭೇಟಿಯನ್ನು ಪ್ರಾರಂಭಿಸಲು ಆಸಕ್ತಿ ಇದೆಯೇ? ಎಥಿರಿಯಮ್‌ ಮೀಟಪ್ ಸಮುದಾಯಗಳಿಗೆ ಬೆಂಬಲ ನೀಡಲು ConsenSys ನಿಂದ ಕೈಗೊಂಡ ಒಂದು ಯೋಜನೆ, [BUIDL ನೆಟ್‌ವರ್ಕ್‌](https://consensys.net/developers/buidlnetwork/) ಅನ್ನು ಪರಿಶೀಲಿಸಿ. + +ಇದು ನಮ್ಮ ಸಮುದಾಯವು ನಿರ್ಮಿಸಿದ ಅಪೂರ್ಣವಾದ ಪಟ್ಟಿಯಾಗಿದೆ. ನಿಮಗೆ [ಇನ್ನಷ್ಟು ಎಥಿರಿಯಮ್‌ ಮೀಟಪ್‌ಗಳನ್ನು ಇಲ್ಲಿ ಸಿಗಬಹುದು](https://www.meetup.com/topics/ethereum/). ಈ ಪಟ್ಟಿಗೆ ಸೇರಿಸಲು ಕ್ರಿಯಾಶೀಲ ಮೀಟಪ್‌ ಗುಂಪನ್ನು ತಿಳಿದಿರುವಿರಾ? [ದಯವಿಟ್ಟು ಅದನ್ನು ಸೇರಿಸಿ](https://github.com/ethereum/ethereum-org-website/blob/dev/src/data/community-meetups.json)! diff --git a/public/content/translations/kn/how-to-create-an-ethereum-account/index.md b/public/content/translations/kn/how-to-create-an-ethereum-account/index.md new file mode 100644 index 00000000000..29f15adbae9 --- /dev/null +++ b/public/content/translations/kn/how-to-create-an-ethereum-account/index.md @@ -0,0 +1,73 @@ +--- +title: ಎಥೆರಿಯಮ್ ಖಾತೆಯನ್ನು "ರಚಿಸುವುದು" ಹೇಗೆ +description: ವ್ಯಾಲೆಟ್ ಬಳಸಿ ಎಥೆರಿಯಮ್ ಖಾತೆ ರಚನೆಯ ಹಂತ ಹಂತದ ಮಾರ್ಗದರ್ಶಿ. +lang: ಎನ್ +--- + +# ಎಥೆರಿಯಮ್ ಖಾತೆಯನ್ನು ಹೇಗೆ ರಚಿಸುವುದು + +**ಯಾರು ಬೇಕಾದರೂ ಉಚಿತವಾಗಿ ಎಥೆರಿಯಮ್ ಖಾತೆಯನ್ನು ರಚಿಸಬಹುದು.** ನೀವು ಕ್ರಿಪ್ಟೋ ವ್ಯಾಲೆಟ್ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಇನ್ಸ್ಟಾಲ್ ಮಾಡಬೇಕಾಗುತ್ತದೆ. ವ್ಯಾಲೆಟ್ ಗಳು ನಿಮ್ಮ ಎಥೆರಿಯಮ್ ಖಾತೆಯನ್ನು ರಚಿಸುತ್ತವೆ ಮತ್ತು ನಿರ್ವಹಿಸುತ್ತವೆ. ಅವರು ವಹಿವಾಟುಗಳನ್ನು ಕಳುಹಿಸಬಹುದು, ನಿಮ್ಮ ಬ್ಯಾಲೆನ್ಸ್ ಗಳನ್ನು ಪರಿಶೀಲಿಸಬಹುದು ಮತ್ತು ಎಥೆರಿಯಮ್ ನಲ್ಲಿ ನಿರ್ಮಿಸಲಾದ ಇತರ ಅಪ್ಲಿಕೇಶನ್ ಗಳಿಗೆ ನಿಮ್ಮನ್ನು ಸಂಪರ್ಕಿಸಬಹುದು. + +ವ್ಯಾಲೆಟ್ ನೊಂದಿಗೆ ನೀವು ಯಾವುದೇ ಟೋಕನ್ ವಿನಿಮಯ, ಆಟಗಳು, [NFT ಮಾರುಕಟ್ಟೆಗಳಿಗೆ ತಕ್ಷಣ ಲಾಗ್ ಇನ್ ಮಾಡಬಹುದು](/glossary/#nft). ವೈಯಕ್ತಿಕ ನೋಂದಣಿಯ ಅಗತ್ಯವಿಲ್ಲ, ಎಥೆರಿಯಮ್ನಲ್ಲಿ ನಿರ್ಮಿಸಲಾದ ಎಲ್ಲಾ ಅಪ್ಲಿಕೇಶನ್ಗಳಿಗೆ ಒಂದು ಖಾತೆಯನ್ನು ಹಂಚಿಕೊಳ್ಳಲಾಗುತ್ತದೆ. + +## ಹಂತ 1: ವ್ಯಾಲೆಟ್ ಆಯ್ಕೆಮಾಡಿ + +ವ್ಯಾಲೆಟ್ ಎಂಬುದು ನಿಮ್ಮ ಎಥೆರಿಯಮ್ ಖಾತೆಯನ್ನು ನಿರ್ವಹಿಸಲು ಸಹಾಯ ಮಾಡುವ ಅಪ್ಲಿಕೇಶನ್ ಆಗಿದೆ. ಆಯ್ಕೆ ಮಾಡಲು ಡಜನ್ಗಟ್ಟಲೆ ವಿಭಿನ್ನ ವ್ಯಾಲೆಟ್ಗಳಿವೆ: ಮೊಬೈಲ್, ಡೆಸ್ಕ್ಟಾಪ್ ಅಥವಾ ಬ್ರೌಸರ್ ವಿಸ್ತರಣೆಗಳು. + + + + ವ್ಯಾಲೆಟ್‌ಗಳ ಪಟ್ಟಿ + + +ನೀವು ಹೊಸಬರಾಗಿದ್ದರೆ, ಆರಂಭಿಕರಿಗೆ ಸೂಕ್ತವಾದ ಎಲ್ಲಾ ಅಗತ್ಯ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಒಳಗೊಂಡಿರುವ ವ್ಯಾಲೆಟ್ ಗಳನ್ನು ಗುರುತಿಸಲು "ವ್ಯಾಲೆಟ್ ಹುಡುಕಿ" ಪುಟದಲ್ಲಿ "ಕ್ರಿಪ್ಟೋಗೆ ಹೊಸದು" ಫಿಲ್ಟರ್ ಅನ್ನು ನೀವು ಆಯ್ಕೆ ಮಾಡಬಹುದು. + +!['ವ್ಯಾಲೆಟ್ ಹುಡುಕಿ' ಪುಟದಲ್ಲಿ ಫಿಲ್ಟರ್ ಆಯ್ಕೆ](./wallet-box.png) + +ನಿಮ್ಮ ಅಗತ್ಯಗಳನ್ನು ಪೂರೈಸಲು ಇತರ ಪ್ರೊಫೈಲ್ ಫಿಲ್ಟರ್ ಗಳೂ ಇವೆ. ಇವು ಸಾಮಾನ್ಯವಾಗಿ ಬಳಸುವ ವ್ಯಾಲೆಟ್ ಗಳ ಉದಾಹರಣೆಗಳಾಗಿವೆ - ಯಾವುದೇ ಸಾಫ್ಟ್ ವೇರ್ ಅನ್ನು ನಂಬುವ ಮೊದಲು ನೀವು ನಿಮ್ಮ ಸ್ವಂತ ಸಂಶೋಧನೆಯನ್ನು ಮಾಡಬೇಕು. + +## ಹಂತ 2: ನಿಮ್ಮ ವ್ಯಾಲೆಟ್ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಡೌನ್ಲೋಡ್ ಮಾಡಿ ಮತ್ತು ಇನ್ಸ್ಟಾಲ್ ಮಾಡಿ + +ನೀವು ನಿರ್ದಿಷ್ಟ ವ್ಯಾಲೆಟ್ ಅನ್ನು ನಿರ್ಧರಿಸಿದ ನಂತರ, ಅವರ ಅಧಿಕೃತ ವೆಬ್ಸೈಟ್ ಅಥವಾ ಅಪ್ಲಿಕೇಶನ್ ಸ್ಟೋರ್ಗೆ ಭೇಟಿ ನೀಡಿ, ಅದನ್ನು ಡೌನ್ಲೋಡ್ ಮಾಡಿ ಮತ್ತು ಇನ್ಸ್ಟಾಲ್ ಮಾಡಿ. ಅವರೆಲ್ಲರೂ ಸ್ವತಂತ್ರರಾಗಿರಬೇಕು. + +## ಹಂತ 3: ಅಪ್ಲಿಕೇಶನ್ ತೆರೆಯಿರಿ ಮತ್ತು ನಿಮ್ಮ ಎಥೆರಿಯಮ್ ಖಾತೆಯನ್ನು ರಚಿಸಿ + +ನಿಮ್ಮ ಹೊಸ ವ್ಯಾಲೆಟ್ ಅನ್ನು ನೀವು ಮೊದಲ ಬಾರಿಗೆ ತೆರೆದಾಗ ಹೊಸ ಖಾತೆಯನ್ನು ರಚಿಸುವುದು ಅಥವಾ ಅಸ್ತಿತ್ವದಲ್ಲಿರುವದನ್ನು ಆಮದು ಮಾಡಿಕೊಳ್ಳುವುದರ ನಡುವೆ ಆಯ್ಕೆ ಮಾಡಲು ನಿಮ್ಮನ್ನು ಕೇಳಬಹುದು. ಹೊಸ ಖಾತೆ ರಚನೆಯ ಮೇಲೆ ಕ್ಲಿಕ್ ಮಾಡಿ. **ವ್ಯಾಲೆಟ್ ಸಾಫ್ಟ್ವೇರ್ ನಿಮ್ಮ ಎಥೆರಿಯಮ್ ಖಾತೆಯನ್ನು ರಚಿಸುವ ಹಂತ ಇದು.** + +## ಹಂತ 4: ನಿಮ್ಮ ಚೇತರಿಕೆ ಪದಗುಚ್ಛವನ್ನು ಸಂಗ್ರಹಿಸಿ + +ಕೆಲವು ಅಪ್ಲಿಕೇಶನ್ ಗಳು ರಹಸ್ಯ "ಚೇತರಿಕೆ ನುಡಿಗಟ್ಟು" (ಕೆಲವೊಮ್ಮೆ "ಬೀಜ ಪದಗುಚ್ಛ" ಅಥವಾ "ಮ್ಯುಮೋನಿಕ್" ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ) ಉಳಿಸಲು ನಿಮ್ಮನ್ನು ವಿನಂತಿಸುತ್ತವೆ. ಈ ನುಡಿಗಟ್ಟನ್ನು ಸುರಕ್ಷಿತವಾಗಿಡುವುದು ಬಹಳ ಮುಖ್ಯ! ನಿಮ್ಮ ಎಥೆರಿಯಮ್ ಖಾತೆಯನ್ನು ರಚಿಸಲು ಇದನ್ನು ಬಳಸಲಾಗುತ್ತದೆ ಮತ್ತು ವಹಿವಾಟುಗಳನ್ನು ಸಲ್ಲಿಸಲು ಬಳಸಬಹುದು. + +**ಪದಗುಚ್ಛವನ್ನು ತಿಳಿದಿರುವ ಯಾವುದೇ ವ್ಯಕ್ತಿಯು ಎಲ್ಲಾ ನಿಧಿಗಳ ನಿಯಂತ್ರಣವನ್ನು ತೆಗೆದುಕೊಳ್ಳಬಹುದು.** ಇದನ್ನು ಯಾರೊಂದಿಗೂ ಹಂಚಿಕೊಳ್ಳಬೇಡಿ. ಈ ನುಡಿಗಟ್ಟು ಯಾದೃಚ್ಛಿಕವಾಗಿ ಉತ್ಪತ್ತಿಯಾದ 12 ರಿಂದ 24 ಪದಗಳನ್ನು ಹೊಂದಿರಬೇಕು (ಪದಗಳ ಕ್ರಮವು ಮುಖ್ಯವಾಗಿದೆ). + +
+ +
ವ್ಯಾಲೆಟ್ ಸ್ಥಾಪಿಸಲಾಗಿದೆಯೇ?
ಅದನ್ನು ಹೇಗೆ ಬಳಸಬೇಕೆಂದು ಕಲಿಯಿರಿ.
+ + ವ್ಯಾಲೆಟ್ ಬಳಸುವುದು ಹೇಗೆ + +
+
+ +ಇತರ ಮಾರ್ಗದರ್ಶಿಗಳಲ್ಲಿ ಆಸಕ್ತಿ ಇದೆಯೇ? ನಮ್ಮದನ್ನು ಪರಿಶೀಲಿಸಿ: [ಹಂತ ಹಂತದ ಮಾರ್ಗದರ್ಶಿಗಳು](/guides/) + +## Frequently asked questions + +### ನನ್ನ ವ್ಯಾಲೆಟ್ ಮತ್ತು ನನ್ನ ಎಥೆರಿಯಮ್ ಖಾತೆ ಒಂದೇ ಆಗಿದೆಯೇ? + +ಇಲ್ಲ. ವ್ಯಾಲೆಟ್ ಎಂಬುದು ಖಾತೆಗಳನ್ನು ನಿರ್ವಹಿಸಲು ನಿಮಗೆ ಸಹಾಯ ಮಾಡುವ ನಿರ್ವಹಣಾ ಸಾಧನವಾಗಿದೆ. ಒಂದೇ ವ್ಯಾಲೆಟ್ ಹಲವಾರು ಖಾತೆಗಳನ್ನು ಪ್ರವೇಶಿಸಬಹುದು, ಮತ್ತು ಒಂದೇ ಖಾತೆಯನ್ನು ಅನೇಕ ವ್ಯಾಲೆಟ್ ಗಳಿಂದ ಪ್ರವೇಶಿಸಬಹುದು. ರಿಕವರಿ ಪದಗುಚ್ಛವನ್ನು ಖಾತೆಗಳನ್ನು ರಚಿಸಲು ಬಳಸಲಾಗುತ್ತದೆ ಮತ್ತು ಸ್ವತ್ತುಗಳನ್ನು ನಿರ್ವಹಿಸಲು ವ್ಯಾಲೆಟ್ ಅಪ್ಲಿಕೇಶನ್ ಗೆ ಅನುಮತಿ ನೀಡುತ್ತದೆ. + +### ನಾನು ಬಿಟ್ ಕಾಯಿನ್ ಅನ್ನು ಎಥೆರಿಯಮ್ ವಿಳಾಸಕ್ಕೆ ಕಳುಹಿಸಬಹುದೇ ಅಥವಾ ಬಿಟ್ ಕಾಯಿನ್ ವಿಳಾಸಕ್ಕೆ ಈಥರ್ ಕಳುಹಿಸಬಹುದೇ? + +ಇಲ್ಲ, ನಿಮಗೆ ಸಾಧ್ಯವಿಲ್ಲ. ಬಿಟ್ ಕಾಯಿನ್ ಮತ್ತು ಈಥರ್ ಎರಡು ಪ್ರತ್ಯೇಕ ನೆಟ್ ವರ್ಕ್ ಗಳಲ್ಲಿ (ಅಂದರೆ ವಿಭಿನ್ನ ಬ್ಲಾಕ್ ಚೈನ್ ಗಳು) ಅಸ್ತಿತ್ವದಲ್ಲಿವೆ, ಪ್ರತಿಯೊಂದೂ ತಮ್ಮದೇ ಆದ ಬುಕ್ ಕೀಪಿಂಗ್ ಮತ್ತು ವಿಳಾಸ ಸ್ವರೂಪಗಳನ್ನು ಹೊಂದಿವೆ. ಎರಡು ವಿಭಿನ್ನ ನೆಟ್ವರ್ಕ್ಗಳನ್ನು ಬೆಸೆಯಲು ವಿವಿಧ ಪ್ರಯತ್ನಗಳು ನಡೆದಿವೆ, ಅವುಗಳಲ್ಲಿ ಅತ್ಯಂತ ಸಕ್ರಿಯವಾದದ್ದು ಪ್ರಸ್ತುತ [ಸುತ್ತಿದ ಬಿಟ್ಕಾಯಿನ್ ಅಥವಾ ಡಬ್ಲ್ಯೂಬಿಟಿಸಿ](https://www.bitcoin.com/get-started/what-is-wbtc/). ಇದು ಅನುಮೋದನೆಯಲ್ಲ, ಏಕೆಂದರೆ ಡಬ್ಲ್ಯೂಬಿಟಿಸಿ ಒಂದು ಕಸ್ಟಡಿ ಪರಿಹಾರವಾಗಿದೆ (ಅಂದರೆ ಜನರ ಒಂದು ಗುಂಪು ಕೆಲವು ನಿರ್ಣಾಯಕ ಕಾರ್ಯಗಳನ್ನು ನಿಯಂತ್ರಿಸುತ್ತದೆ) ಮತ್ತು ಮಾಹಿತಿ ಉದ್ದೇಶಗಳಿಗಾಗಿ ಮಾತ್ರ ಇಲ್ಲಿ ಒದಗಿಸಲಾಗಿದೆ. + +### ನಾನು ಇಟಿಎಚ್ ವಿಳಾಸವನ್ನು ಹೊಂದಿದ್ದರೆ, ಇತರ ಬ್ಲಾಕ್ ಚೈನ್ ಗಳಲ್ಲಿ ನಾನು ಅದೇ ವಿಳಾಸವನ್ನು ಹೊಂದಿದ್ದೇನೆಯೇ? + +ಇಥಿರಿಯಮ್‌ಗೆ ಹೋಲುವ ಸಾಫ್ಟ್‌ವೇರ್ ಅನ್ನು ಬಳಸುವ ಎಲ್ಲಾ ಬ್ಲಾಕ್‌ಚೈನ್‌ಗಳಲ್ಲಿ ನೀವು ಒಂದೇ [>ವಿಳಾಸವನ್ನು](/glossary/#address) ಬಳಸಬಹುದು (ಇದನ್ನು 'EVM-ಹೊಂದಾಣಿಕೆ' ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ). ಈ [ಪಟ್ಟಿಯು](https://chainlist.org/) ನೀವು ಅದೇ ವಿಳಾಸದೊಂದಿಗೆ ಯಾವ ಬ್ಲಾಕ್ ಚೈನ್ ಗಳನ್ನು ಬಳಸಬಹುದು ಎಂಬುದನ್ನು ನಿಮಗೆ ತೋರಿಸುತ್ತದೆ. ಬಿಟ್ ಕಾಯಿನ್ ನಂತಹ ಕೆಲವು ಬ್ಲಾಕ್ ಚೈನ್ ಗಳು ಸಂಪೂರ್ಣವಾಗಿ ಪ್ರತ್ಯೇಕ ನೆಟ್ ವರ್ಕ್ ನಿಯಮಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತವೆ ಮತ್ತು ನಿಮಗೆ ವಿಭಿನ್ನ ಸ್ವರೂಪದೊಂದಿಗೆ ವಿಭಿನ್ನ ವಿಳಾಸದ ಅಗತ್ಯವಿದೆ. ನೀವು ಸ್ಮಾರ್ಟ್ ಕಾಂಟ್ರಾಕ್ಟ್ ವ್ಯಾಲೆಟ್ ಹೊಂದಿದ್ದರೆ, ಯಾವ ಬ್ಲಾಕ್ಚೈನ್ಗಳನ್ನು ಬೆಂಬಲಿಸಲಾಗುತ್ತದೆ ಎಂಬುದರ ಕುರಿತು ಹೆಚ್ಚಿನ ಮಾಹಿತಿಗಾಗಿ ನೀವು ಅದರ ಉತ್ಪನ್ನ ವೆಬ್ಸೈಟ್ ಅನ್ನು ಪರಿಶೀಲಿಸಬೇಕು ಏಕೆಂದರೆ ಸಾಮಾನ್ಯವಾಗಿ ಅವು ಸೀಮಿತ ಆದರೆ ಹೆಚ್ಚು ಸುರಕ್ಷಿತ ವ್ಯಾಪ್ತಿಯನ್ನು ಹೊಂದಿವೆ. + +### ನನ್ನ ಹಣವನ್ನು ವಿನಿಮಯ ಕೇಂದ್ರದಲ್ಲಿ ಇಡುವುದಕ್ಕಿಂತ ನನ್ನ ಸ್ವಂತ ವ್ಯಾಲೆಟ್ ಹೊಂದಿರುವುದು ಸುರಕ್ಷಿತವೇ? + +ನಿಮ್ಮ ಸ್ವಂತ ವ್ಯಾಲೆಟ್ ಹೊಂದಿರುವುದು ಎಂದರೆ ನಿಮ್ಮ ಸ್ವತ್ತುಗಳ ಭದ್ರತೆಯ ಜವಾಬ್ದಾರಿಯನ್ನು ನೀವು ತೆಗೆದುಕೊಳ್ಳುತ್ತೀರಿ ಎಂದರ್ಥ. ದುರದೃಷ್ಟವಶಾತ್ ತಮ್ಮ ಗ್ರಾಹಕರ ಹಣವನ್ನು ಕಳೆದುಕೊಂಡ ವಿಫಲ ವಿನಿಮಯ ಕೇಂದ್ರಗಳ ಅನೇಕ ಉದಾಹರಣೆಗಳಿವೆ. ವ್ಯಾಲೆಟ್ ಅನ್ನು ಹೊಂದಿರುವುದು (ಚೇತರಿಕೆ ಪದಗುಚ್ಛದೊಂದಿಗೆ) ನಿಮ್ಮ ಸ್ವತ್ತುಗಳನ್ನು ಹಿಡಿದಿಡಲು ಕೆಲವು ಘಟಕವನ್ನು ನಂಬುವುದಕ್ಕೆ ಸಂಬಂಧಿಸಿದ ಅಪಾಯವನ್ನು ತೆಗೆದುಹಾಕುತ್ತದೆ. ಆದಾಗ್ಯೂ, ನೀವು ಅದನ್ನು ಸ್ವಂತವಾಗಿ ಭದ್ರಪಡಿಸಿಕೊಳ್ಳಬೇಕು ಮತ್ತು ಫಿಶಿಂಗ್ ಹಗರಣಗಳು, ಆಕಸ್ಮಿಕವಾಗಿ ವಹಿವಾಟುಗಳನ್ನು ಅನುಮೋದಿಸುವುದು ಅಥವಾ ಚೇತರಿಕೆ ಪದಗುಚ್ಛವನ್ನು ಬಹಿರಂಗಪಡಿಸುವುದು, ನಕಲಿ ವೆಬ್ಸೈಟ್ಗಳೊಂದಿಗೆ ಸಂವಹನ ನಡೆಸುವುದು ಮತ್ತು ಇತರ ಸ್ವಯಂ-ಕಸ್ಟಡಿ ಅಪಾಯಗಳನ್ನು ತಪ್ಪಿಸಬೇಕು. ಅಪಾಯಗಳು ಮತ್ತು ಪ್ರಯೋಜನಗಳು ವಿಭಿನ್ನವಾಗಿವೆ. + +### ನಾನು ನನ್ನ ಫೋನ್/ಹಾರ್ಡ್ ವೇರ್ ವ್ಯಾಲೆಟ್ ಕಳೆದುಕೊಂಡರೆ, ಕಳೆದುಹೋದ ಹಣವನ್ನು ಮರುಪಡೆಯಲು ನಾನು ಅದೇ ವ್ಯಾಲೆಟ್ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಮತ್ತೆ ಬಳಸಬೇಕೇ? + +ಇಲ್ಲ, ನೀವು ಬೇರೆ ವ್ಯಾಲೆಟ್ ಅನ್ನು ಬಳಸಬಹುದು. ನೀವು ಬೀಜದ ನುಡಿಗಟ್ಟನ್ನು ಹೊಂದಿರುವವರೆಗೆ ನೀವು ಅದನ್ನು ಹೆಚ್ಚಿನ ವ್ಯಾಲೆಟ್ ಗಳಲ್ಲಿ ನಮೂದಿಸಬಹುದು ಮತ್ತು ಅವರು ನಿಮ್ಮ ಖಾತೆಯನ್ನು ಪುನಃಸ್ಥಾಪಿಸುತ್ತಾರೆ. ನೀವು ಎಂದಾದರೂ ಇದನ್ನು ಮಾಡಬೇಕಾದರೆ ಜಾಗರೂಕರಾಗಿರಿ: ನಿಮ್ಮ ವ್ಯಾಲೆಟ್ ಅನ್ನು ಮರುಪಡೆಯುವಾಗ ನೀವು ಇಂಟರ್ನೆಟ್ ಗೆ ಸಂಪರ್ಕ ಹೊಂದಿಲ್ಲ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳುವುದು ಉತ್ತಮ, ಇದರಿಂದ ನಿಮ್ಮ ಬೀಜದ ನುಡಿಗಟ್ಟು ಆಕಸ್ಮಿಕವಾಗಿ ಸೋರಿಕೆಯಾಗುವುದಿಲ್ಲ. ಮರುಪಡೆಯುವಿಕೆ ಪದಗುಚ್ಛವಿಲ್ಲದೆ ಕಳೆದುಹೋದ ಹಣವನ್ನು ಮರುಪಡೆಯುವುದು ಅಸಾಧ್ಯ. diff --git a/public/content/translations/kn/web3/index.md b/public/content/translations/kn/web3/index.md new file mode 100644 index 00000000000..cd5882b6e77 --- /dev/null +++ b/public/content/translations/kn/web3/index.md @@ -0,0 +1,161 @@ +--- +title: Web3 ಎಂದರೇನು ಮತ್ತು ಅದು ಏಕೆ ಮುಖ್ಯ? +description: ವರ್ಲ್ಡ್ ವೈಡ್ ವೆಬ್‌ನ ಮುಂದಿನ ವಿಕಸನವಾದ Web3 ಗೆ ಪರಿಚಯ ಮತ್ತು ಅದು ಏಕೆ ಮುಖ್ಯವಾಗಿದೆ. +lang: kn +--- + +# Web3 ಗೆ ಪರಿಚಯ {#introduction} + +
+ +
+ +ಕೇಂದ್ರೀಕರಣವು ವಿಶ್ವ ವ್ಯಾಪಿ ವೆಬ್‌ಗೆ ಶತಕೋಟಿ ಜನರನ್ನು ಸೇರಿಸಲು ಸಹಾಯ ಮಾಡಿದೆ ಮತ್ತು ಅದು ವಾಸಿಸುವ ಸ್ಥಿರವಾದ, ಉಬ್ಬುಬಿಲ್ಲದ ಮೂಲಸೌಕರ್ಯವನ್ನು ಸೃಷ್ಟಿಸಿದೆ. ಅದೇ ಸಮಯದಲ್ಲಿ, ಬೆರಳೆಣಿಕೆಯ ಕೇಂದ್ರೀಕೃತ ಘಟಕಗಳು ವರ್ಲ್ಡ್ ವೈಡ್ ವೆಬ್‌ನ ದೊಡ್ಡ ವಲಯಗಳಲ್ಲಿ ಭದ್ರಕೋಟೆಯನ್ನು ಹೊಂದಿವೆ, ಯಾವುದನ್ನು ಅನುಮತಿಸಬೇಕು ಮತ್ತು ಯಾವುದನ್ನು ಅನುಮತಿಸಬಾರದು ಎಂಬುದನ್ನು ಏಕಪಕ್ಷೀಯವಾಗಿ ನಿರ್ಧರಿಸುತ್ತವೆ. + +Web3 ಈ ಸಂದಿಗ್ಧತೆಗೆ ಉತ್ತರವಾಗಿದೆ. ದೊಡ್ಡ ತಂತ್ರಜ್ಞಾನ ಕಂಪನಿಗಳಿಂದ ಏಕಸ್ವಾಮ್ಯ ಹೊಂದಿದ ವೆಬ್ ಬದಲಿಗೆ, Web3 ವಿಕೇಂದ್ರೀಕರಣವನ್ನು ಅಳವಡಿಸಿಕೊಳ್ಳುತ್ತದೆ ಮತ್ತು ಅದರ ಬಳಕೆದಾರರಿಂದ ನಿರ್ಮಿಸಲ್ಪಟ್ಟಿದೆ, ನಿರ್ವಹಿಸಲ್ಪಡುತ್ತದೆ ಮತ್ತು ಒಡೆತನದಲ್ಲಿದೆ. Web3 ಜನರ ಕೈಯಲ್ಲಿ ಅಧಿಕಾರವನ್ನು ಇರಿಸುತ್ತದೆ, ಕಂಪನಿಗಳಲ್ಲ. Web3 ಬಗ್ಗೆ ಮಾತನಾಡುವ ಮೊದಲು, ನಾವು ಇಲ್ಲಿಗೆ ಹೇಗೆ ಬಂದೆವು ಎಂಬುದನ್ನು ಅನ್ವೇಷಿಸೋಣ. + + + +## ಆರಂಭಿಕ ವೆಬ್ {#early-internet} + +ಹೆಚ್ಚಿನ ಜನರು ವೆಬ್ ಅನ್ನು ಆಧುನಿಕ ಜೀವನದ ನಿರಂತರ ಸ್ತಂಭವೆಂದು ಭಾವಿಸುತ್ತಾರೆ-ಇದು ಆವಿಷ್ಕರಿಸಲ್ಪಟ್ಟಿದೆ ಮತ್ತು ಅಂದಿನಿಂದ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ. ಆದಾಗ್ಯೂ, ನಾವು ಇಂದು ತಿಳಿದಿರುವ ವೆಬ್ ಅಸಲವಾಗಿ ಊಹಿಸಿದ್ದಕ್ಕಿಂತ ತುಂಬಾ ಭಿನ್ನವಾಗಿದೆ. ಇದನ್ನು ಉತ್ತಮವಾಗಿ ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು, ವೆಬ್‌ನ ಚಿಕ್ಕ ಇತಿಹಾಸವನ್ನು ಸ್ವತಂತ್ರ ಅವಧಿಗಳಾಗಿ ವಿಂಗಡಿಸುವುದು ಸಹಾಯಕವಾಗಿದೆ - ವೆಬ್ 1.0 ಮತ್ತು ವೆಬ್ 2.0. + +### ವೆಬ್ 1.0: ಓದಲು-ಮಾತ್ರ (1990-2004) {#web1} + +1989 ರಲ್ಲಿ, ಜಿನೀವಾದ ಸಿಇಆರ್‌ನಲ್ಲಿ, ಟಿಮ್ ಬರ್ನರ್ಸ್-ಲೀ ವಿಶ್ವ ವ್ಯಾಪಿ ವೆಬ್ ಆಗಲಿದ್ದ ಪ್ರೋಟೋಕಾಲ್‌ಗಳನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸುತ್ತಿದ್ದರು. ಅವರ ಉದ್ದೇಶವೇನೆಂದರೆ ಭೂಮಿಯ ಯಾವುದೇ ಸ್ಥಳದಿಂದ ಮಾಹಿತಿ ಹಂಚಿಕೊಳ್ಳಲು ಅನುವು ಮಾಡಿಕೊಡುವ ಓಪನ್, ಡೀಸೆಂಟ್ರಲೈಸ್ಡ್ ಪ್ರೋಟೋಕಾಲ್‌ಗಳನ್ನು ರಚಿಸುವುದು. ಅವನ ಕಲ್ಪನೆ? ಅವರ ಉದ್ದೇಶವೇನೆಂದರೆ ಭೂಮಿಯ ಯಾವುದೇ ಸ್ಥಳದಿಂದ ಮಾಹಿತಿ ಹಂಚಿಕೊಳ್ಳಲು ಅನುವು ಮಾಡಿಕೊಡುವ ಓಪನ್, ಡೀಸೆಂಟ್ರಲೈಸ್ಡ್ ಪ್ರೋಟೋಕಾಲ್‌ಗಳನ್ನು ರಚಿಸುವುದು. + +ಈಗ 'ವೆಬ್ 1.0' ಎಂದು ಕರೆಯಲ್ಪಡುವ ಬರ್ನರ್ಸ್-ಲೀ ಅವರ ರಚನೆಯ ಮೊದಲ ಪ್ರಾರಂಭವು ಸರಿಸುಮಾರು 1990 ರಿಂದ 2004 ರ ನಡುವೆ ಸಂಭವಿಸಿದೆ. ವೆಬ್ 1.0 ಮುಖ್ಯವಾಗಿ ಕಂಪನಿಗಳ ಒಡೆತನದ ಸ್ಥಿರ ವೆಬ್‌ಸೈಟ್‌ಗಳಾಗಿದ್ದು, ಬಳಕೆದಾರರ ನಡುವೆ ಶೂನ್ಯ ಸಂವಾದವಿದೆ - ವ್ಯಕ್ತಿಗಳು ವಿರಳವಾಗಿ ವಿಷಯವನ್ನು ಉತ್ಪಾದಿಸುತ್ತಾರೆ - ಇದು ಓದಲು-ಮಾತ್ರ ವೆಬ್ ಎಂದು ಕರೆಯಲ್ಪಡುತ್ತದೆ. + +![ವೆಬ್ 1.0 ಅನ್ನು ಪ್ರತಿನಿಧಿಸುವ ಕ್ಲೈಂಟ್-ಸರ್ವರ್ ಆರ್ಕಿಟೆಕ್ಚರ್](./web1.png) + +### ವೆಬ್ 2.0: ಓದಲು-ಬರೆಯಿರಿ (2004-ಈಗ) {#web2} + +ವೆಬ್ 2.0 ಅವಧಿಯು 2004 ರಲ್ಲಿ ಸಾಮಾಜಿಕ ಮಾಧ್ಯಮ ವೇದಿಕೆಗಳ ಹೊರಹೊಮ್ಮುವಿಕೆಯೊಂದಿಗೆ ಪ್ರಾರಂಭವಾಯಿತು. ವೆಬ್ ಓದಲು ಮಾತ್ರವಲ್ಲದೆ ಬರೆಯಲು ಸಹ ಸಾಧ್ಯವಾಗಿದೆ ಎಂಬುದಕ್ಕೆ ಬದಲಾಗಿ, ವೆಬ್ ಅಭಿವೃದ್ಧಿ ಹೊಂದಿದೆ. ಕಂಪನಿಗಳು ಬಳಕೆದಾರರಿಗೆ ವಿಷಯವನ್ನು ಒದಗಿಸುವ ಬದಲು, ಅವರು ಬಳಕೆದಾರರಿಂದ ರಚಿಸಲಾದ ವಿಷಯವನ್ನು ಹಂಚಿಕೊಳ್ಳಲು ಮತ್ತು ಬಳಕೆದಾರರ ನಡುವಿನ ಪರಸ್ಪರ ಕ್ರಿಯೆಗಳಲ್ಲಿ ತೊಡಗಿಸಿಕೊಳ್ಳಲು ವೇದಿಕೆಗಳನ್ನು ಒದಗಿಸಲು ಪ್ರಾರಂಭಿಸಿದರು. ಹೆಚ್ಚಿನ ಜನರು ಆನ್‌ಲೈನ್‌ಗೆ ಬಂದಂತೆ, ಕೆಲವು ಉನ್ನತ ಕಂಪನಿಗಳು ವೆಬ್‌ನಲ್ಲಿ ಉತ್ಪತ್ತಿಯಾಗುವ ಟ್ರಾಫಿಕ್ ಮತ್ತು ಮೌಲ್ಯದ ಅಸಮಾನ ಪ್ರಮಾಣವನ್ನು ನಿಯಂತ್ರಿಸಲು ಪ್ರಾರಂಭಿಸಿದವು. Web 2.0 ರ ಜೊತೆಗೆ ಜಾಹೀರಾತು-ಚಾಲಿತ ಆದಾಯ ಮಾದರಿಯು ಹುಟ್ಟಿಕೊಂಡಿತು. ಬಳಕೆದಾರರು ವಿಷಯವನ್ನು ರಚಿಸಬಹುದಾದರೂ, ಅವರು ಅದನ್ನು ಸ್ವಾಮ್ಯಪಡಿಸಿಕೊಳ್ಳಲಿಲ್ಲ ಅಥವಾ ಅದರ ಹಣೀಕರಣದಿಂದ ಉತ್ತಮ ಫಲಿತಾಂಶ ಪಡೆಯಲಿಲ್ಲ. + +![ವೆಬ್ 2.0 ಅನ್ನು ಪ್ರತಿನಿಧಿಸುವ ಕ್ಲೈಂಟ್-ಸರ್ವರ್ ಆರ್ಕಿಟೆಕ್ಚರ್](./web2.png) + + + +## ವೆಬ್ 3.0: ಓದಿ-ಬರೆಯಿರಿ-ಸ್ವಂತ {#web3} + +Ethereum 2014 ರಲ್ಲಿ ಪ್ರಾರಂಭವಾದ ಸ್ವಲ್ಪ ಸಮಯದ ನಂತರ 'ವೆಬ್ 3.0' ನ ಪ್ರಮೇಯವನ್ನು [Ethereum](/what-is-ethereum/) ಸಹ-ಸಂಸ್ಥಾಪಕ ಗೇವಿನ್ ವುಡ್ ರಚಿಸಿದ್ದಾರೆ. ಅನೇಕ ಆರಂಭಿಕ ಕ್ರಿಪ್ಟೋ ಅಳವಡಿಕೆದಾರರು ಭಾವಿಸಿದ ಸಮಸ್ಯೆಗೆ ಗೇವಿನ್ ಪರಿಹಾರವನ್ನು ಪದಗಳಲ್ಲಿ ನೀಡಿದರು: ವೆಬ್‌ಗೆ ಹೆಚ್ಚಿನ ನಂಬಿಕೆಯ ಅಗತ್ಯವಿದೆ. ಅಂದರೆ, ಇಂದು ಜನರು ತಿಳಿದಿರುವ ಮತ್ತು ಬಳಸುವ ವೆಬ್‌ನ ಹೆಚ್ಚಿನ ಭಾಗವು ಸಾರ್ವಜನಿಕರ ಹಿತಾಸಕ್ತಿಗಳಿಗಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸಲು ಬೆರಳೆಣಿಕೆಯಷ್ಟು ಖಾಸಗಿ ಕಂಪನಿಗಳನ್ನು ನಂಬುವುದನ್ನು ಅವಲಂಬಿಸಿದೆ. + +![Web3 ಅನ್ನು ಪ್ರತಿನಿಧಿಸುವ ವಿಕೇಂದ್ರೀಕೃತ ನೋಡ್ ಆರ್ಕಿಟೆಕ್ಚರ್](./web3.png) + +### Web3 ಎಂದರೇನು? {#what-is-web3} + +Web3 ಹೊಸ, ಉತ್ತಮ ಇಂಟರ್ನೆಟ್‌ನ ದೃಷ್ಟಿಗೆ ಕ್ಯಾಚ್-ಆಲ್ ಪದವಾಗಿ ಮಾರ್ಪಟ್ಟಿದೆ. ಅದರ ಮಧ್ಯಭಾಗದಲ್ಲಿ, Web3 ಬ್ಲಾಕ್‌ಚೈನ್‌ಗಳು, ಕ್ರಿಪ್ಟೋಕರೆನ್ಸಿಗಳು ಮತ್ತು NFT ಗಳನ್ನು ಮಾಲೀಕತ್ವದ ರೂಪದಲ್ಲಿ ಬಳಕೆದಾರರಿಗೆ ಮರಳಿ ಶಕ್ತಿಯನ್ನು ನೀಡಲು ಬಳಸುತ್ತದೆ. [Twitter ನಲ್ಲಿ 2020 ರ ಪೋಸ್ಟ್](https://twitter.com/himgajria/status/1266415636789334016) ಇದನ್ನು ಅತ್ಯುತ್ತಮವಾಗಿ ಹೇಳಿದೆ: Web1 ಓದಲು-ಮಾತ್ರ, Web2 ಓದಲು-ಬರೆಯಲು, Web3 ಓದಲು-ಬರೆಯಲು-ಸ್ವಂತವಾಗಿರುತ್ತದೆ. + +#### Web3 ನ ಪ್ರಮುಖ ವಿಚಾರಗಳು {#core-ideas} + +Web3 ಯ ನಿಖರವಾದ ವ್ಯಾಖ್ಯಾನವನ್ನು ನೀಡುವುದು ಕಷ್ಟವಾಗಬಹುದು, ಆದರೆ ಅದರ ರಚನೆಯನ್ನು ಕೆಲವು ಕೇಂದ್ರ ತತ್ವಗಳು ನಿಯಂತ್ರಿಸುತ್ತವೆ. + +- **Web3 ವಿಕೇಂದ್ರೀಕೃತವಾಗಿದೆ:**ದೊಡ್ಡ ಭಾಗಗಳನ್ನು ನಿಯಂತ್ರಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಕೇಂದ್ರೀಕೃತ ಘಟಕಗಳಿಂದ ಒಡೆತನ ಹೊಂದಿರುವ ಬದಲು, Web3 ತನ್ನ ನಿರ್ಮಾಪಕರು ಮತ್ತು ಬಳಕೆದಾರರ ನಡುವೆ ಒಡೆತನವನ್ನು ವಿತರಿಸುತ್ತದೆ. +- **Web3 ಪರ್ಮಿಶನ್-ಲೆಸ್ ಆಗಿದೆ:** ಎಲ್ಲರಿಗೂ Web3 ಯಲ್ಲಿ ಭಾಗವಹಿಸಲು ಸಮಾನ ಅವಕಾಶವಿದೆ ಮತ್ತು ಯಾರೂ ಹೊರಗಿಡುವುದಿಲ್ಲ. +- **Web3 ನೇಟಿವ್ ಪೇಮೆಂಟ್ಗಳನ್ನು ಹೊಂದಿದೆ**: ಇದು ಬ್ಯಾಂಕುಗಳು ಮತ್ತು ಪಾವತಿ ಪ್ರೊಸೆಸರ್ಗಳ ಹಳೆಯ ಮೂಲಸೌಕರ್ಯವನ್ನು ಅವಲಂಬಿಸದೆ ಕ್ರಿಪ್ಟೋಕರೆನ್ಸಿಯನ್ನು ಆನ್‌ಲೈನ್‌ನಲ್ಲಿ ಖರ್ಚು ಮಾಡಲು ಮತ್ತು ಹಣವನ್ನು ಕಳುಹಿಸಲು ಬಳಸುತ್ತದೆ. +- **Web3 ಟ್ರಸ್ಟ್‌ಲೆಸ್ ಆಗಿದೆ**: ಇದು ಪ್ರೋತ್ಸಾಹಗಳು ಮತ್ತು ಆರ್ಥಿಕ ಯಂತ್ರಾಂಶಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ, ನಂಬಲರ್ಹ ಮೂರನೇ ಪಕ್ಷಗಳನ್ನು ಅವಲಂಬಿಸುವುದಿಲ್ಲ. + +### Web3 ಏಕೆ ಮುಖ್ಯ? {#why-is-web3-important} + +Web3 ನ ಕಿಲ್ಲರ್ ಫೀಚರ್‌ಗಳು ಪ್ರತ್ಯೇಕವಾಗಿರದ ಮತ್ತು ಸರಳವಾದ ವರ್ಗಗಳಿಗೆ ಸೇರದಿದ್ದರೂ, ಸರಳವಾಗಿ ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು ಅವುಗಳನ್ನು ಪ್ರತ್ಯೇಕಿಸಲು ನಾವು ಪ್ರಯತ್ನಿಸಿದ್ದೇವೆ. + +#### ಮಾಲೀಕತ್ವ {#ownership} + +Web3 ನಿಮ್ಮ ಡಿಜಿಟಲ್ ಸ್ವತ್ತುಗಳ ಮಾಲೀಕತ್ವವನ್ನು ಅಭೂತಪೂರ್ವ ರೀತಿಯಲ್ಲಿ ನೀಡುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, ನೀವು Web2 ಆಟವನ್ನು ಆಡುತ್ತಿದ್ದರೆ. ನೀವು ಆಟದಲ್ಲಿನ ಐಟಂ ಅನ್ನು ಖರೀದಿಸಿದರೆ, ಅದನ್ನು ನೇರವಾಗಿ ನಿಮ್ಮ ಖಾತೆಗೆ ಜೋಡಿಸಲಾಗುತ್ತದೆ. ಆಟದ ನಿರ್ಮಾಪಕರು ನಿಮ್ಮ ಖಾತೆಯನ್ನು ಅಳಿಸಿದರೆ, ನೀವು ಈ ಐಟಂಗಳನ್ನು ಕಳೆದುಕೊಳ್ಳುತ್ತೀರಿ. ಅಥವಾ, ನೀವು ಆಟವನ್ನು ಆಡುವುದನ್ನು ನಿಲ್ಲಿಸಿದರೆ, ನಿಮ್ಮ ಆಟದ ಐಟಂಗಳಲ್ಲಿ ನೀವು ಹೂಡಿಕೆ ಮಾಡಿದ ಮೌಲ್ಯವನ್ನು ಕಳೆದುಕೊಳ್ಳುತ್ತೀರಿ. + +ವೆಬ್3 ಹಂತದಲ್ಲಿ ಕಡಿಮೆ ಬದಲಾವಣೆ ಯಾದವರೆಗೆ ಹೊರಗೆಲ್ಲ ಸ್ವಾಮಿತ್ವವನ್ನು ಮೂಡಿಸುತ್ತದೆ ([ಎನ್‌ಎಫ್‌ಟಿಗಳ ಮೂಲಕ](/glossary/#nft)). ಯಾರೂ ಹೌದು, ಆಟದ ರಚನಾಕರ್ತೆಗಳು ಸೇರಿದವರೂ, ನಿಮ್ಮ ಸ್ವಾಮಿತ್ವವನ್ನು ತೆಗೆದುಹಾಕಲು ಅವರಿಗೆ ಶಕ್ತಿ ಇಲ್ಲ. ಮತ್ತು, ಆಟವನ್ನು ಆಡುವುದನ್ನು ನಿಲ್ಲಿಸಿದರೆ, ನೀವು ಖುದ್ದಾಗಿ ಮಾರುಕಟ್ಟಲು ಅಥವಾ ವಿಪರೀತ ಬಣವನ್ನು ಖೊಂಡುವುದು ಸಾಧ್ಯವಾಗುತ್ತದೆ ಅಥವಾ ಮಾರಾಟ ಮಾಡಲು ನೀವು ಖುದ್ದಾಗಿ ಸಾಗಬಹುದು. + + +
NFT ಗಳ ಬಗ್ಗೆ ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ
+ + NFT ಗಳಲ್ಲಿ ಇನ್ನಷ್ಟು + +
+ +#### ಸೆನ್ಸಾರ್ಶಿಪ್ ಪ್ರತಿರೋಧ {#censorship-resistance} + +ಪ್ಲಾಟ್‌ಫಾರ್ಮ್‌ಗಳು ಮತ್ತು ವಿಷಯ ರಚನೆಕಾರರ ನಡುವಿನ ಶಕ್ತಿಯ ಡೈನಾಮಿಕ್ ಭಾರೀ ಪ್ರಮಾಣದಲ್ಲಿ ಅಸಮತೋಲನಗೊಂಡಿದೆ. + +ಓನ್ಲಿ ಫ್ಯಾನ್ಸ್ ಎಂಬುದು 1-ಮಿಲಿಯನ್‌ಗಿಂತಲೂ ಹೆಚ್ಚು ವಿಷಯ ರಚನೆಕಾರರನ್ನು ಹೊಂದಿರುವ ಬಳಕೆದಾರ-ರಚಿಸಿದ ವಯಸ್ಕ ವಿಷಯ ಸೈಟ್ ಆಗಿದೆ, ಅವರಲ್ಲಿ ಹೆಚ್ಚಿನವರು ಪ್ಲಾಟ್‌ಫಾರ್ಮ್ ಅನ್ನು ತಮ್ಮ ಆದಾಯದ ಪ್ರಾಥಮಿಕ ಮೂಲವಾಗಿ ಬಳಸುತ್ತಾರೆ. ಆಗಸ್ಟ್ 2021 ರಲ್ಲಿ, ಕೇವಲ ಅಭಿಮಾನಿಗಳು ಲೈಂಗಿಕವಾಗಿ ಅಶ್ಲೀಲ ವಿಷಯವನ್ನು ನಿಷೇಧಿಸುವ ಯೋಜನೆಯನ್ನು ಪ್ರಕಟಿಸಿದರು. ಈ ಪ್ರಕಟಣೆಯು ಪ್ಲಾಟ್‌ಫಾರ್ಮ್‌ನಲ್ಲಿನ ರಚನೆಕಾರರಲ್ಲಿ ಆಕ್ರೋಶವನ್ನು ಹುಟ್ಟುಹಾಕಿತು, ಅವರು ರಚಿಸಲು ಸಹಾಯ ಮಾಡಿದ ಪ್ಲಾಟ್‌ಫಾರ್ಮ್‌ನಲ್ಲಿ ಅವರು ಆದಾಯವನ್ನು ದೋಚುತ್ತಿದ್ದಾರೆಂದು ಭಾವಿಸಿದರು. ಹಿನ್ನಡೆಯ ನಂತರ, ನಿರ್ಧಾರವನ್ನು ತ್ವರಿತವಾಗಿ ಹಿಂತಿರುಗಿಸಲಾಯಿತು. ಈ ಯುದ್ಧದಲ್ಲಿ ಸೃಷ್ಟಿಕರ್ತರು ಗೆದ್ದರೂ, ಇದು Web 2.0 ಸೃಷ್ಟಿಕರ್ತರಿಗೆ ಒಂದು ಸಮಸ್ಯೆಯನ್ನು ಎತ್ತಿ ತೋರಿಸುತ್ತದೆ: ನೀವು ಒಂದು ಪ್ಲಾಟ್‌ಫಾರ್ಮ್ ಅನ್ನು ತೊರೆದರೆ ನೀವು ನಿಮ್ಮ ಖ್ಯಾತಿ ಮತ್ತು ಅನುಸರಣೆಯನ್ನು ಕಳೆದುಕೊಳ್ಳುತ್ತೀರಿ. + +Web3 ನಲ್ಲಿ, ನಿಮ್ಮ ಡೇಟಾ ಬ್ಲಾಕ್‌ಚೈನ್‌ನಲ್ಲಿ ವಾಸಿಸುತ್ತದೆ. ನೀವು ಒಂದು ಪ್ಲಾಟ್‌ಫಾರ್ಮ್ ಅನ್ನು ತೊರೆಯಲು ನಿರ್ಧರಿಸಿದಾಗ, ನೀವು ನಿಮ್ಮ ಖ್ಯಾತಿಯನ್ನು ನಿಮ್ಮೊಂದಿಗೆ ತೆಗೆದುಕೊಂಡು ಹೋಗಬಹುದು, ಅದನ್ನು ನಿಮ್ಮ ಮೌಲ್ಯಗಳೊಂದಿಗೆ ಹೆಚ್ಚು ಸ್ಪಷ್ಟವಾಗಿ ಹೊಂದಿಕೊಳ್ಳುವ ಇನ್ನೊಂದು ಇಂಟರ್ಫೇಸ್‌ಗೆ ಜೋಡಿಸಬಹುದು. + +Web 2.0 ರಲ್ಲಿ, ವಿಷಯದ ಸೃಷ್ಟಿಕರ್ತರು ಪ್ಲಾಟ್‌ಫಾರ್ಮ್‌ಗಳು ನಿಯಮಗಳನ್ನು ಬದಲಾಯಿಸದಿರಲು ನಂಬಬೇಕಾಗುತ್ತದೆ, ಆದರೆ ಸೆನ್ಸಾರ್‌ಶಿಪ್ ನಿರೋಧವು Web3 ಪ್ಲಾಟ್‌ಫಾರ್ಮ್‌ನ ಸ್ವಂತಿಕತೆಯ ಲಕ್ಷಣವಾಗಿದೆ. + +#### ಡೀಸೆಂಟ್ರಲೈಜ್ಡ್ ಆಟೊನೊಮಸ್ ಆರ್ಗನೈಸೇಶನ್ಸ್ (DAO ಗಳು) {#daos} + +Web3 ನಲ್ಲಿ, ನೀವು ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಮಾತ್ರವಲ್ಲದೆ, ಕಂಪನಿಯ ಷೇರುಗಳಂತೆ ಕಾರ್ಯನಿರ್ವಹಿಸುವ ಟೋಕನ್‌ಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಪ್ಲಾಟ್‌ಫಾರ್ಮ್ ಅನ್ನು ಒಂದು ಸಮೂಹವಾಗಿ ಹೊಂದಬಹುದು. ಡಿಎಒಗಳು ಪ್ಲಾಟ್‌ಫಾರ್ಮ್‌ನ ಡೀಸೆಂಟ್ರಲೈಸ್ಡ್ ಒಡೆತನವನ್ನು ಸಮನ್ವಯಗೊಳಿಸಲು ಮತ್ತು ಅದರ ಭವಿಷ್ಯದ ಬಗ್ಗೆ ನಿರ್ಧಾರಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳಲು ನಿಮಗೆ ಅನುವು ಮಾಡಿಕೊಡುತ್ತವೆ. + +DAO ಗಳನ್ನು ತಾಂತ್ರಿಕವಾಗಿ ಒಪ್ಪಿಗೆ ಪಡೆದ [ಸ್ಮಾರ್ಟ್ ಒಪ್ಪಂದಗಳು](/glossary/#smart-contract) ಎಂದು ವ್ಯಾಖ್ಯಾನಿಸಲಾಗಿದೆ, ಅದು ಸಂಪನ್ಮೂಲಗಳ (ಟೋಕನ್‌ಗಳು) ಗುಂಪಿನ ಮೇಲೆ ವಿಕೇಂದ್ರೀಕೃತ ನಿರ್ಧಾರ ತೆಗೆದುಕೊಳ್ಳುವಿಕೆಯನ್ನು ಸ್ವಯಂಚಾಲಿತಗೊಳಿಸುತ್ತದೆ. ಟೋಕನ್‌ಗಳನ್ನು ಹೊಂದಿರುವ ಬಳಕೆದಾರರು ಸಂಪನ್ಮೂಲಗಳನ್ನು ಹೇಗೆ ಖರ್ಚು ಮಾಡಬೇಕೆಂಬುದರ ಮೇಲೆ ಮತ ಚಲಾಯಿಸುತ್ತಾರೆ, ಮತ್ತು ಕೋಡ್ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಮತದ ಫಲಿತಾಂಶವನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ. + +ಆದಾಗ್ಯೂ, ಜನರು ಅನೇಕ Web3 ಸಮುದಾಯಗಳನ್ನು ಡಿಎಒಗಳಾಗಿ ವ್ಯಾಖ್ಯಾನಿಸುತ್ತಾರೆ. ಈ ಸಮುದಾಯಗಳೆಲ್ಲವೂ ಕೋಡ್ ಮೂಲಕ ವಿಭಿನ್ನ ಮಟ್ಟದ ಡೀಸೆಂಟ್ರಲೈಸೇಶನ್ ಮತ್ತು ಸ್ವಯಂಚಾಲಿತತೆಯನ್ನು ಹೊಂದಿವೆ. ಪ್ರಸ್ತುತ, ನಾವು ಡಿಎಒಗಳು ಏನೆಂದು ಮತ್ತು ಅವು ಹೇಗೆ ರೂಪುಗೊಳ್ಳಬಹುದು ಎಂಬುದನ್ನು ಅನ್ವೇಷಿಸುತ್ತಿದ್ದೇವೆ. + + +
Learn more about DAOs
+ + DAO ಗಳ ಕುರಿತು ಇನ್ನಷ್ಟು + +
+ +### ಗುರುತು {#identity} + +Web2 ನಲ್ಲಿ, ನೀವು ಪ್ರತಿಯೊಂದು ಪ್ಲಾಟ್‌ಫಾರ್ಮ್‌ಗಾಗಿ ಒಂದು ಖಾತೆಯನ್ನು ರಚಿಸುತ್ತೀರಿ. ಉದಾಹರಣೆಗೆ, ನೀವು ಟ್ವಿಟರ್ ಖಾತೆ, ಯೂಟ್ಯೂಬ್ ಖಾತೆ ಮತ್ತು ರೆಡ್ಡಿಟ್ ಖಾತೆಯನ್ನು ಹೊಂದಿರಬಹುದು. ನಿಮ್ಮ ಪ್ರದರ್ಶನ ಹೆಸರು ಅಥವಾ ಪ್ರೊಫೈಲ್ ಚಿತ್ರವನ್ನು ಬದಲಾಯಿಸಲು ಬಯಸುವಿರಾ? ನೀವು ಅದನ್ನು ಪ್ರತಿ ಖಾತೆಯಲ್ಲಿಯೂ ಮಾಡಬೇಕು. ಕೆಲವು ಸಂದರ್ಭಗಳಲ್ಲಿ ನೀವು ಸಾಮಾಜಿಕ ಸೈನ್-ಇನ್‌ಗಳನ್ನು ಬಳಸಬಹುದು, ಆದರೆ ಇದು ಪರಿಚಿತ ಸಮಸ್ಯೆಯನ್ನುಂಟುಮಾಡುತ್ತದೆ - ಸೆನ್ಸಾರ್‌ಶಿಪ್. ಒಂದೇ ಕ್ಲಿಕ್‌ನಲ್ಲಿ, ಈ ಪ್ಲಾಟ್‌ಫಾರ್ಮ್‌ಗಳು ನಿಮ್ಮ ಸಂಪೂರ್ಣ ಆನ್‌ಲೈನ್ ಜೀವನದಿಂದ ನಿಮ್ಮನ್ನು ಹೊರಗಿಡಬಹುದು. ಕೆಲವು ಪ್ಲಾಟ್‌ಫಾರ್ಮ್‌ಗಳು ಖಾತೆಯನ್ನು ರಚಿಸಲು ನಿಮ್ಮನ್ನು ಅವರಿಗೆ ವೈಯಕ್ತಿಕ ಗುರುತುಪಡಿಸುವ ಮಾಹಿತಿಯನ್ನು ನಂಬಲು ಬಲವಂತಿಸುತ್ತವೆ. + +Ethereum ವಿಳಾಸ ಮತ್ತು [Ethereum ನೇಮ್ ಸರ್ವಿಸ್ (ENS)](/glossary/#ens) ಪ್ರೊಫೈಲ್‌ನೊಂದಿಗೆ ನಿಮ್ಮ ಡಿಜಿಟಲ್ ಗುರುತನ್ನು ನಿಯಂತ್ರಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುವ ಮೂಲಕ Web3 ಈ ಸಮಸ್ಯೆಗಳನ್ನು ಪರಿಹರಿಸುತ್ತದೆ. Ethereum ವಿಳಾಸವನ್ನು ಬಳಸುವುದು ಪ್ಲಾಟ್‌ಫಾರ್ಮ್‌ಗಳಲ್ಲಿ ಏಕೈಕ ಲಾಗಿನ್ ಅನ್ನು ಒದಗಿಸುತ್ತದೆ, ಅದು ಸುರಕ್ಷಿತ, ಸೆನ್ಸಾರ್-ನಿರೋಧಕ ಮತ್ತು ಅನಾಮಿತವಾಗಿದೆ. + +### ಸ್ಥಳೀಯ ಪಾವತಿಗಳು {#native-payments} + +Web2 ನ ಪಾವತಿ ಯೋಜನೆ ಬ್ಯಾಂಕುಗಳು ಮತ್ತು ಪಾವತಿ ಸಂಸ್ಕರಕರ ಮೇಲೆ ಅವಲಂಬಿತವಾಗಿದೆ, ಇದು ಬ್ಯಾಂಕ್ ಖಾತೆಗಳಿಲ್ಲದ ಜನರನ್ನು ಅಥವಾ ತಪ್ಪು ದೇಶದ ಗಡಿಯೊಳಗೆ ವಾಸಿಸುವವರನ್ನು ಹೊರಗಿಡುತ್ತದೆ. Web3 [ETH](/glossary/#ether) ನಂತಹ ಟೋಕನ್‌ಗಳನ್ನು ಬಳಸಿ ಬ್ರೌಸರ್‌ನಲ್ಲಿ ನೇರವಾಗಿ ಹಣವನ್ನು ಕಳುಹಿಸುತ್ತದೆ ಮತ್ತು ಯಾವುದೇ ನಂಬಲರ್ ಮೂರನೇ ಪಕ್ಷದ ಅಗತ್ಯವಿರುವುದಿಲ್ಲ. + + + ETH ಬಗ್ಗೆ ಇನ್ನಷ್ಟು + + +## ವೆಬ್3 ಮಿತಿಗಳು {#web3-limitations} + +Web3 ನ ಅನೇಕ ಪ್ರಯೋಜನಗಳ ಹೊರತಾಗಿಯೂ, ಅದರ ಪ್ರಸರಣಕ್ಕಾಗಿ ಪರಿಸರ ವ್ಯವಸ್ಥೆಯು ಪರಿಹರಿಸಬೇಕಾದ ಹಲವು ಮಿತಿಗಳಿವೆ. + +### ಪ್ರವೇಶ ಸೌಲಭ್ಯ {#accessibility} + +ಮುಖ್ಯವಾದ Web3 ವೈಶಿಷ್ಟ್ಯಗಳು, ಉದಾಹರಣೆಗೆ Ethereum ನೊಂದಿಗೆ ಸೈನ್-ಇನ್, ಯಾವುದೇ ವೆಚ್ಚವಿಲ್ಲದೆ ಯಾರಿಗಾದರೂ ಬಳಸಲು ಈಗಾಗಲೇ ಲಭ್ಯವಿದೆ. ಆದರೆ, ಒಂದು ಖಾತೆಯ ವಹಿವಾಟಿನ ಅನುಪಾತದ ವೆಚ್ಚವು ಇನ್ನೂ ಅನೇಕರಿಗೆ ಪ್ರತಿಬಂಧಕವಾಗಿದೆ. ಹೆಚ್ಚಿನ ವಹಿವಾಟು ಶುಲ್ಕಗಳ ಕಾರಣದಿಂದಾಗಿ, Web3 ಅನ್ನು ಕಡಿಮೆ ಶ್ರೀಮಂತ, ಅಭಿವೃದ್ಧಿ ಹೊಂದುತ್ತಿರುವ ರಾಷ್ಟ್ರಗಳಲ್ಲಿ ಬಳಸುವುದು ಕಡಿಮೆ ಸಾಧ್ಯತೆಯಿದೆ. Ethereum ನಲ್ಲಿ, ಈ ಸವಾಲುಗಳನ್ನು [ರೂಪರೇಖೆಯಲ್ಲಿ](/roadmap/) ಮತ್ತು [ಲೇಯರ್ 2 ಸ್ಕೇಲಿಂಗ್ ಪರಿಹಾರಗಳ](/glossary/#layer-2) ಮೂಲಕ ಪರಿಹರಿಸಲಾಗುತ್ತಿದೆ. Web3 ತಂತ್ರಜ್ಞಾನವು ಸಿದ್ಧವಾಗಿದೆ, ಆದರೆ ಎಲ್ಲರಿಗೂ Web3 ಅನ್ನು ಒಳಗೊಳ್ಳಲು ನಮಗೆ ಲೇಯರ್ 2 ರಲ್ಲಿ ಹೆಚ್ಚಿನ ಮಟ್ಟದ ಅಳವಡಿಕೆಯ ಅಗತ್ಯವಿದೆ. + +### ಬಳಕೆದಾರರ ಅನುಭವ {#user-experience} + +Web3 ಅನ್ನು ಬಳಸಲು ಪ್ರವೇಶ ತಡೆಯು ಈಗ ತುಂಬಾ ಹೆಚ್ಚಿದೆ. ಬಳಕೆದಾರರು ಭದ್ರತಾ ಕಾಳಜಿಗಳನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಬೇಕು, ಸಂಕೀರ್ಣ ತಾಂತ್ರಿಕ ದಾಖಲೆಗಳನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಬೇಕು ಮತ್ತು ಅಸಮರ್ಪಕ ಬಳಕೆದಾರ ಇಂಟರ್ಫೇಸ್‌ಗಳನ್ನು ನ್ಯಾವಿಗೇಟ್ ಮಾಡಬೇಕು. ನಿರ್ದಿಷ್ಟವಾಗಿ, ವಾಲೆಟ್ ಪೂರೈಕೆದಾರರು ಇದನ್ನು ಪರಿಹರಿಸಲು ಕೆಲಸ ಮಾಡುತ್ತಿದ್ದಾರೆ, ಆದರೆ Web3 ಸಾಮೂಹಿಕವಾಗಿ ಅಳವಡಿಸಿಕೊಳ್ಳುವ ಮೊದಲು ಹೆಚ್ಚಿನ ಪ್ರಗತಿಯ ಅಗತ್ಯವಿದೆ.[](/wallets/find-wallet/) + +### Education {#education} + +Web3 ಹೊಸ ಮಾದರಿಗಳನ್ನು ಪರಿಚಯಿಸುತ್ತದೆ, ಅದು Web2.0 ನಲ್ಲಿ ಬಳಸಲಾದ ಮಾನಸಿಕ ಮಾದರಿಗಳಿಗಿಂತ ವಿಭಿನ್ನ ಮಾನಸಿಕ ಮಾದರಿಗಳನ್ನು ಕಲಿಯುವ ಅಗತ್ಯವಿದೆ. Web1.0 ಗೆ ಜನಪ್ರಿಯತೆ ಗಳಿಸುತ್ತಿದ್ದಂತೆ ಒಂದೇ ರೀತಿಯ ಶಿಕ್ಷಣ ಚಳುವಳಿ ನಡೆಯಿತು; ವರ್ಲ್ಡ್ ವಾಯ್ಡ್ ವೆಬ್‌ನ ಪ್ರತಿಪಾದಕರು ಸಾಮಾನ್ಯ ಉಪಮೆಗಳು (ಮಾಹಿತಿ ಹೆದ್ದಾರಿ, ಬ್ರೌಸರ್‌ಗಳು, ವೆಬ್ ಅನ್ನು ಸರ್ಫಿಂಗ್) ನಿಂದ [ಟೆಲಿವಿಷನ್ ಪ್ರಸಾರಗಳವರೆಗೆ](https://www.youtube.com/watch?v=SzQLI7BxfYI) ಸಾರ್ವಜನಿಕರನ್ನು ಶಿಕ್ಷಿಸಲು ಹಲವಾರು ಶೈಕ್ಷಣಿಕ ತಂತ್ರಗಳನ್ನು ಬಳಸಿದರು. Web3 ಕಷ್ಟಕರವಲ್ಲ, ಆದರೆ ಅದು ಭಿನ್ನವಾಗಿದೆ. Web2 ಬಳಕೆದಾರರಿಗೆ ಈ Web3 ಪರಿಕಲ್ಪನೆಗಳ ಬಗ್ಗೆ ತಿಳಿಸುವ ಶೈಕ್ಷಣಿಕ ಉಪಕ್ರಮಗಳು ಅದರ ಯಶಸ್ಸಿಗೆ ಅವಶ್ಯಕವಾಗಿವೆ. + +Ethereum.org ನಮ್ಮ [ಅನುವಾದ ಕಾರ್ಯಕ್ರಮದ](/contributing/translation-program/) ಮೂಲಕ Web3 ಶಿಕ್ಷಣಕ್ಕೆ ಕೊಡುಗೆ ನೀಡುತ್ತದೆ, ಮುಖ್ಯವಾದ Ethereum ವಿಷಯವನ್ನು ಸಾಧ್ಯವಾದಷ್ಟು ಭಾಷೆಗಳಿಗೆ ಅನುವಾದಿಸುವ ಗುರಿಯನ್ನು ಹೊಂದಿದೆ. + +### ಕೇಂದ್ರೀಕೃತ ಮೂಲಸೌಕರ್ಯ {#centralized-infrastructure} + +Web3 ಪರಿಸರ ವ್ಯವಸ್ಥೆಯು ಯುವ ಮತ್ತು ವೇಗವಾಗಿ ಬೆಳೆಯುತ್ತಿದೆ. ಈ ಕಾರಣದಿಂದಾಗಿ, ಇದು ಪ್ರಸ್ತುತ ಕೇಂದ್ರೀಕೃತ ಮೂಲಸೌಕರ್ಯ (GitHub, Twitter, Discord, ಇತ್ಯಾದಿ) ಯನ್ನು ಅವಲಂಭಿಸಿದೆ. ಅನೇಕ Web3 ಕಂಪನಿಗಳು ಈ ಅಂತರಗಳನ್ನು ತುಂಬಲು ಧಾವಿಸುತ್ತಿವೆ, ಆದರೆ ಉತ್ತಮ ಗುಣಮಟ್ಟದ, ಭರಿಸುವ ಮೂಲಸೌಕರ್ಯವನ್ನು ನಿರ್ಮಿಸಲು ಸಮಯ ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ. + +## ವಿಕೇಂದ್ರೀಕೃತ ಭವಿಷ್ಯ {#decentralized-future} + +Web3 ಒಂದು ಯುವ ಮತ್ತು ಅಭಿವೃದ್ಧಿ ಹೊಂದುತ್ತಿರುವ ಪರಿಸರ ವ್ಯವಸ್ಥೆಯಾಗಿದೆ. ಗೇವಿನ್ ವುಡ್ 2014 ರಲ್ಲಿ ಈ ಪದವನ್ನು ರೂಪಿಸಿದರು, ಆದರೆ ಈ ಐಡಿಯಾಗಳಲ್ಲಿ ಹಲವು ಇತ್ತೀಚೆಗೆ ಮಾತ್ರ ವಾಸ್ತವತೆಯಾಗಿವೆ. ಕಳೆದ ಒಂದು ವರ್ಷದಲ್ಲಿ ಮಾತ್ರ, ಕ್ರಿಪ್ಟೋಕರೆನ್ಸಿಗಳ ಆಸಕ್ತಿಯಲ್ಲಿ ಗಣನೀಯ ಏರಿಕೆ, ಲೇಯರ್ 2 ಸ್ಕೇಲಿಂಗ್ ಪರಿಹಾರಗಳ ಸುಧಾರಣೆಗಳು, ಹೊಸ ಆಡಳಿತ ರೂಪಗಳೊಂದಿಗೆ ಭಾರೀ ಪ್ರಯೋಗಗಳು ಮತ್ತು ಡಿಜಿಟಲ್ ಗುರುತುಗಳಲ್ಲಿ ಕ್ರಾಂತಿಗಳು ಕಂಡುಬಂದಿವೆ. + +Web3 ನೊಂದಿಗೆ ಉತ್ತಮ ವೆಬ್ ಅನ್ನು ರಚಿಸುವ ಆರಂಭದಲ್ಲಿ ನಾವು ಮಾತ್ರ ಇದ್ದೇವೆ, ಆದರೆ ನಾವು ಅದನ್ನು ಬೆಂಬಲಿಸುವ ಮೂಲಸೌಕರ್ಯವನ್ನು ಮುಂದುವರೆಸುತ್ತೇವೆ, ವೆಬ್ ನ ಭವಿಷ್ಯವು ಉಜ್ವಲವಾಗಿ ಕಾಣುತ್ತದೆ. + +## ನಾನು ಹೇಗೆ ತೊಡಗಿಸಿಕೊಳ್ಳಬಹುದು {#get-involved} + +- [ವ್ಯಾಲೆಟ್ ಪಡೆಯಿರಿ](/wallets/) +- [ಸಮುದಾಯವನ್ನು ಹುಡುಕಿ](/community/) +- [Web3 ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ಅನ್ವೇಷಿಸಿ](/dapps/) +- [Join a DAO](/dao/) +- [Web3 ನಲ್ಲಿ ನಿರ್ಮಿಸಿ](/developers/) + +## ಮತ್ತಷ್ಟು ಓದಿ {#further-reading} + +Web3 ಅನ್ನು ಕಟ್ಟುನಿಟ್ಟಾಗಿ ವ್ಯಾಖ್ಯಾನಿಸಲಾಗಿಲ್ಲ. ವಿವಿಧ ಸಮುದಾಯ ಭಾಗವಹಿಸುವವರು ಇದರ ಬಗ್ಗೆ ವಿಭಿನ್ನ ದೃಷ್ಟಿಕೋನಗಳನ್ನು ಹೊಂದಿದ್ದಾರೆ. ಅವುಗಳಲ್ಲಿ ಕೆಲವು ಇಲ್ಲಿವೆ: + +- [ವೆಬ್3 ಎಂದರೇನು? ಭವಿಷ್ಯದ ವಿಕೇಂದ್ರೀಕೃತ ಇಂಟರ್ನೆಟ್ ಅನ್ನು ವಿವರಿಸಲಾಗಿದೆ](https://www.freecodecamp.org/news/what-is-web3/) – _ನಾಡರ್ ಡಾಬಿಟ್_ +- [ವೆಬ್ 3 ಅನ್ನು ಅರ್ಥ ಮಾಡಿಕೊಳ್ಳುವುದು](https://medium.com/l4-media/making-sense-of-web-3-c1a9e74dcae) – _ಜೋಶ್ ಸ್ಟಾರ್ಕ್_ +- [ವೆಬ್3 ಏಕೆ ಮುಖ್ಯ](https://future.a16z.com/why-web3-matters/) — _ಕ್ರಿಸ್ ಡಿಕ್ಸನ್_ +- [ವಿಕೇಂದ್ರೀಕರಣ ಏಕೆ ಮುಖ್ಯ](https://onezero.medium.com/why-decentralization-matters-5e3f79f7638e) - _ಕ್ರಿಸ್ ಡಿಕ್ಸನ್_ +- [ವೆಬ್3 ಲ್ಯಾಂಡ್‌ಸ್ಕೇಪ್](https://a16z.com/wp-content/uploads/2021/10/The-web3-Readlng-List.pdf) – _a16z_ +- [ವೆಬ್3 ಚರ್ಚೆ](https://www.notboring.co/p/the-web3-debate?s=r) – _ಪ್ಯಾಕಿ ಮೆಕ್‌ಕಾರ್ಮಿಕ್_ + + diff --git a/src/intl/kn/common.json b/src/intl/kn/common.json index de00f84ffcb..9b18954eff6 100644 --- a/src/intl/kn/common.json +++ b/src/intl/kn/common.json @@ -11,6 +11,7 @@ "adding-products": "ಉತ್ಪನ್ನಗಳನ್ನು ಸೇರಿಸಲಾಗುತ್ತಿದೆ", "adding-staking-products": "ಪಣಕಟ್ಟುವುದಕ್ಕೆ ಉತ್ಪನ್ನಗಳನ್ನು ಸೇರಿಸುವುದು", "adding-wallets": "ವ್ಯಾಲೆಟ್‌ಗಳನ್ನು ಸೇರಿಸುವುದು", + "ai-agents": "ಎಐ ಏಜೆಂಟ್‌ಗಳು", "aria-toggle-menu-button": "ಮೆನು ಬಟನ್ ಅನ್ನು ಟಾಗಲ್ ಮಾಡಿ", "aria-toggle-search-button": "ಹುಡುಕಾಟ ಬಟನ್ ಅನ್ನು ಟಾಗಲ್ ಮಾಡಿ", "beacon-chain": "ಬೀಕನ್ ಚೈನ್", @@ -203,7 +204,7 @@ "layer-2": "ಪದರ 2", "learn": "ಕಲಿಯಿರಿ", "learn-by-coding": "ಕೋಡಿಂಗ್ ಮೂಲಕ ಕಲಿಯಿರಿ", - "learn-hub": "Ethereum: ಒಂದು ಗ್ರಹಿಕೆ ಕಲಿಕೆ ಮಾರ್ಗದರ್ಶಿ", + "learn-hub": "ಲರ್ನ್ ಹಬ್", "learn-menu": "ಕಲಿಯಿರಿ ಮೆನು", "learn-more": "ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ", "less": "ಕಡಿಮೆ", @@ -220,6 +221,7 @@ "nav-about-description": "ಎಥೆರಿಯಮ್ ಸಮುದಾಯಕ್ಕೆ ಒಂದು ಸಾರ್ವಜನಿಕ, ಮುಕ್ತ ಸಂಪನ್ಮೂಲ ಯೋಜನೆ", "nav-advanced-description": "ಹೆಚ್ಚು ಸಂಕೀರ್ಣವಾದ ವಿಷಯಗಳನ್ನು ಕಲಿಯಿರಿ", "nav-advanced-label": "ಅತ್ಯಾಧುನಿಕ", + "nav-ai-agents-description": "ಇಥಿರಿಯಮ್‌ನಲ್ಲಿ ಎಐ ಏಜೆಂಟ್‌ಗಳ ವಿಶ್ವವನ್ನು ಅನ್ವೇಷಿಸಿ", "nav-basics-description": "ಎಥೆರಿಯಮ್‌ನ ಮೂಲಭೂತ ಅಂಶಗಳನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಿ", "nav-basics-label": "ಮೂಲಭೂತ ಅಂಶಗಳು", "nav-bridges-description": "ವೆಬ್3ಯು ಪ್ರಾಥಮಿಕ ಎಲ್1 ಬ್ಲಾಕ್ ಚೈನ್‌ಗಳು ಮತ್ತು ಎಲ್2 ಸ್ಕೇಲಿಂಗ್ ಪರಿಹಾರಗಳ ವ್ಯವಹಾರ ಪರಿಸರ ವ್ಯವಸ್ಥೆಯಾಗಿ ವಿಕಸನಗೊಂಡಿದೆ", @@ -248,8 +250,9 @@ "nav-eip-label": "ಇಐಪಿಗಳು - ಎಥೆರಿಯಮ್ ಸುಧಾರಣಾ ಪ್ರಸ್ತಾಪಗಳು", "nav-emerging-description": "ಎಥೆರಿಯಮ್‌ನ ಇತರ ಹೊಸ ಬಳಕೆಯ ಪ್ರಕರಣಗಳನ್ನು ತಿಳಿದುಕೊಳ್ಳಿ", "nav-emerging-label": "ಹೊರಹೊಮ್ಮುವ ಬಳಕೆಯ ಪ್ರಕರಣಗಳು", - "nav-enterprise-description": "ಎಥೆರಿಯಮ್‌ಗಾಗಿ ವ್ಯವಹಾರ ಅಪ್ಲಿಕೇಶನ್‌ಗಳು", "nav-ethereum-org-description": "ಈ ಜಾಲತಾಣವು ಸಮುದಾಯ ಪ್ರೇರಿತವಾಗಿದೆ - ನಮ್ಮೊಂದಿಗೆ ಸೇರಿ ಹಾಗೂ ಕೊಡುಗೆ ನೀಡಿ", + "nav-ethereum-networks": "ಇಥಿರಿಯಮ್ ಜಾಲಗಳು", + "nav-ethereum-networks-description": "ಎಥೆರಿಯಮ್‌ಗೆ ಅಗ್ಗದ ಮತ್ತು ವೇಗದ ವಹಿವಾಟುಗಳು", "nav-ethereum-wallets-description": "ನಿಮ್ಮ ಎಥೆರಿಯಮ್ ಖಾತೆಯೊಂದಿಗೆ ಸಂವಹನ ನಡೆಸಲು ಒಂದು ಅಪ್ಲಿಕೇಶನ್", "nav-events-description": "ವಿಕೇಂದ್ರೀಕರಣ ಮತ್ತು ಯಾರಿಗಾದರೂ ಭಾಗವಹಿಸುವ ಸ್ವಾತಂತ್ರ್ಯ", "nav-events-irl-description": "ಪ್ರತಿ ತಿಂಗಳು ವೈಯಕ್ತಿಕವಾಗಿ ಮತ್ತು ಆನ್‌ಲೈನ್‌ನಲ್ಲಿ ಬಹಳ ಎಥೆರಿಯಮ್ ಕಾರ್ಯಕ್ರಮಗಳು ನಡೆಯುತ್ತವೆ", @@ -275,18 +278,23 @@ "nav-guides-label": "ಹೇಗೆ ಎನ್ನುವ ಮಾರ್ಗದರ್ಶಿಗಳು", "nav-history-description": "ಎಲ್ಲಾ ಪ್ರಮುಖ ಫೋರ್ಕ್‌ಗಳ ಮತ್ತು ನವೀಕರಣಗಳ ಟೈಮ್‌ಲೈನ್‌", "nav-history-label": "ಎಥೆರಿಯಮ್‌ನ ತಾಂತ್ರಿಕ ಇತಿಹಾಸ", - "nav-layer-2-description": "ಎಥೆರಿಯಮ್‌ಗೆ ಅಗ್ಗದ ಮತ್ತು ವೇಗದ ವಹಿವಾಟುಗಳು", "nav-learn-by-coding-description": "ಎಥೆರಿಯಮ್‌ನೊಂದಿಗೆ ಪ್ರಯೋಗ ಮಾಡಲು ನಿಮಗೆ ಸಹಾಯ ಮಾಡುವ ಉಪಕರಣಗಳು", "nav-local-env-description": "ನಿಮ್ಮ ಎಥೆರಿಯಮ್ ಅಭಿವೃದ್ಧಿ ಪಣವನ್ನು ಆಯ್ಕೆ ಮಾಡಿ ಮತ್ತು ಹೊಂದಿಸಿ", "nav-mainnet-description": "ಉದ್ಯಮದ ಬ್ಲಾಕ್‌ಚೈನ್‌ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ಸಾರ್ವಜನಿಕ ಎಥೆರಿಯಮ್ ಮೇನ್ನೆಟ್‌ನಲ್ಲಿ ನಿರ್ಮಿಸಬಹುದು", + "nav-networks-home-description": "ಎಥೆರಿಯಮ್‌ಗೆ ಅಗ್ಗದ ಮತ್ತು ವೇಗದ ವಹಿವಾಟುಗಳು", + "nav-networks-introduction-description": "ಇಥಿರಿಯಮ್ ಜಾಲಗಳ ಜಾಲ ದಲ್ಲಿಯ ವಿಸ್ತರಗೊಳ್ಳುತ್ತಿದೆ", + "nav-networks-explore-networks-label": "ಜಾಲಗಳನ್ನು ಅನ್ವೇಷಿಸಿ", + "nav-networks-explore-networks-description": "ಯಾವ ಜಾಲವನ್ನು ಬಳಸುವುದನ್ನು ಆಯ್ಕೆಮಾಡಿ", + "nav-networks-learn-label": "ಲೆಯರ್ 2 ಜಾಲಗಳು ಎಂದರೆ ಏನು?", + "nav-networks-learn-description": "ಆವುಗಳನ್ನು ಏಕೆ ಬೇಡವಾಗಿರುತ್ತವೆ ಎಂದು ತಿಳಿಯಿರಿ", "nav-nft-description": "ಎಥೆರಿಯಮ್ ಆಧಾರಿತ ಆಸ್ತಿಯಾಗಿ ಅನನ್ಯವಾದ ಯಾವುದನ್ನಾದರೂ ಪ್ರತಿನಿಧಿಸುವ ಒಂದು ಮಾರ್ಗ", "nav-open-research-description": "ಎಥೆರಿಯಮ್‌ನ ಪ್ರಾಥಮಿಕ ಸಾಮರ್ಥ್ಯಗಳಲ್ಲಿ ಒಂದು ಅದರ ಸಕ್ರಿಯ ಸಂಶೋಧನಾ ಸಮುದಾಯವಾಗಿದೆ", "nav-open-research-label": "ಮುಕ್ತ ಸಂಶೋಧನೆ", "nav-overview-description": "ಎಲ್ಲ ವಿಷಯಗಳು ಎಥೆರಿಯಮ್ ಶಿಕ್ಷಣ", "nav-overview-label": "ಅವಲೋಕನ", "nav-participate-overview-description": "ಹೇಗೆ ಭಾಗವಹಿಸಬೇಕು ಎಂಬುದರ ಕುರಿತು ಅವಲೋಕನ", + "nav-payments-description": "ಇಥಿರಿಯಮ್ ಪಾವತಿಗಳು ಹಣವನ್ನು ಕಳುಹಿಸುವ ಮತ್ತು ಸ್ವೀಕರಿಸುವ ವಿಧವರ್ಗವನ್ನು ಬದಲಾಯಿಸುತ್ತಿವೆ", "nav-primary": "ಪ್ರಾಥಮಿಕ", - "nav-private-description": "ಖಾಸಗಿ ಎಂಟರ್‌ಪ್ರೈಸ್ ಎಥೆರಿಯಮ್‌ಗಾಗಿ ಡೆವಲಪರ್ ಸಂಪನ್ಮೂಲಗಳು", "nav-quizzes-description": "ನೀವು ಎಥೆರಿಯಮ್ ಮತ್ತು ಕ್ರಿಪ್ಟೋಕರೆನ್ಸಿಗಳನ್ನು ಎಷ್ಟು ಚೆನ್ನಾಗಿ ಅರ್ಥಮಾಡಿಕೊಂಡಿದ್ದೀರಿ ಎಂಬುದನ್ನು ಕಂಡುಕೊಳ್ಳಿ", "nav-quizzes-label": "ನಿಮ್ಮ ಜ್ಞಾನವನ್ನು ಪರೀಕ್ಷಿಸಿ", "nav-refi-description": "ಪುನರುತ್ಪಾದಕ ತತ್ವಗಳ ಮೇಲೆ ನಿರ್ಮಿಸಲಾದ ಪರ್ಯಾಯ ಆರ್ಥಿಕ ವ್ಯವಸ್ಥೆ", @@ -307,6 +315,7 @@ "nav-roadmap-security": "ಉತ್ತಮ ಭದ್ರತೆ", "nav-roadmap-security-description": "ಭವಿಷ್ಯದಲ್ಲಿ ಎಲ್ಲಾ ರೀತಿಯ ದಾಳಿಗಳಿಗೆ ಎಥೆರಿಯಮ್ ಸ್ಥಿತಿಸ್ಥಾಪಕತ್ವವನ್ನು ಹೊಂದಿರುವುದನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳುವುದು", "nav-roadmap-security-label": "ಸುಧಾರಿತ ಭದ್ರತೆ", + "nav-roadmap-user-experience": "ಉತ್ತಮ ಬಳಕೆದಾರ ಅನುಭವ", "nav-roadmap-ux-description": "ಎಥೆರಿಯಮ್ ಬಳಕೆಯನ್ನು ಸರಳೀಕರಿಸಬೇಕಾಗಿದೆ", "nav-roadmap-ux-label": "ಉತ್ತಮ ಬಳಕೆದಾರ ಅನುಭವ", "nav-run-a-node-description": "ನೆಟ್‌ವರ್ಕ್‌ ಅನ್ನು ಭದ್ರಪಡಿಸಿಕೊಳ್ಳಲು ಸಹಾಯ ಮಾಡುವಾಗ ಸಂಪೂರ್ಣ ಸಾರ್ವಭೌಮತ್ವವನ್ನು ಹೊಂದಿರಿ", @@ -356,6 +365,7 @@ "page-last-updated": "ಪುಟವನ್ನು ಕೊನೆಯದಾಗಿ ನವೀಕರಿಸಲಾಗಿದೆ", "participate": "ಭಾಗವಹಿಸಿ", "participate-menu": "ಭಾಗವಹಿಸುವ ಮೆನು", + "payments-page": "ಪಾವತಿಗಳು", "pbs": "ಪ್ರಪೋಸರ್-ಬಿಲ್ಡರ್ ಪ್ರತ್ಯೇಕತೆ", "pools": "ಪೂಲ್ಡ್ Staking", "privacy-policy": "ಗೌಪ್ಯತೆ ನೀತಿ", @@ -432,4 +442,4 @@ "wrapped-ether": "ವ್ರ್ಯಾಪ್ ಮಾಡಲಾದ ಎಥೆರ್", "yes": "ಹೌದು", "zero-knowledge-proofs": "ಶೂನ್ಯ ಜ್ಞಾನ ಪುರಾವೆಗಳು" -} \ No newline at end of file +} diff --git a/src/intl/kn/glossary-tooltip.json b/src/intl/kn/glossary-tooltip.json new file mode 100644 index 00000000000..f70bb4635b7 --- /dev/null +++ b/src/intl/kn/glossary-tooltip.json @@ -0,0 +1,38 @@ +{ + "51%-attack-definition": "ಒಂದು ಗುಂಪು ಹೆಚ್ಚಿನ ನೋಡ್‌ಗಳ ನಿಯಂತ್ರಣವನ್ನು ಪಡೆಯುವ ಒಂದು ರೀತಿಯ ದಾಳಿ. ಇದು ವಹಿವಾಟುಗಳನ್ನು ಹಿಮ್ಮುಖಗೊಳಿಸುವ ಮೂಲಕ ಮತ್ತು ಡಬಲ್ ಖರ್ಚು ಈಥರ್ ಮತ್ತು ಇತರ ಟೋಕನ್‌ಗಳ ಮೂಲಕ ಬ್ಲಾಕ್‌ಚೈನ್ ಅನ್ನು ವಂಚಿಸಲು ಅವರಿಗೆ ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ.", + "account-definition": "ಎಥೆರಿಯಮ್ ಖಾತೆಯು ಎಥೆರಿಯಮ್ ಬ್ಲಾಕ್‌ಚೈನ್‌ನಲ್ಲಿರುವ ಡಿಜಿಟಲ್ ಗುರುತಾಗಿದ್ದು, ಬಳಕೆದಾರರಿಗೆ ಈಥರ್ ಅಥವಾ ಇತರ ಡಿಜಿಟಲ್ ಸ್ವತ್ತುಗಳನ್ನು ಕಳುಹಿಸಲು, ಸ್ವೀಕರಿಸಲು ಮತ್ತು ಸ್ಮಾರ್ಟ್ ಒಪ್ಪಂದಗಳೊಂದಿಗೆ ಸಂವಹನ ನಡೆಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ.", + "address-definition": "ಎಥೆರಿಯಮ್ ವಿಳಾಸವು ಟೋಕನ್‌ಗಳನ್ನು ಸ್ವೀಕರಿಸಲು ಬಳಸುವ ವಿಶಿಷ್ಟ ಗುರುತಿಸುವಿಕೆಯಾಗಿದ್ದು, ಕ್ರಿಪ್ಟೋಕರೆನ್ಸಿಗಳಿಗೆ ಬ್ಯಾಂಕ್ ಖಾತೆ ಸಂಖ್ಯೆಯಂತೆಯೇ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ. ನಿಮ್ಮ ಎಥೆರಿಯಮ್ ಖಾತೆಯನ್ನು ಗುರುತಿಸಲು ಇದನ್ನು ಬಳಸಲಾಗುತ್ತದೆ.", + "block-definition": "ಒಂದು ಬ್ಲಾಕ್ ಎಂದರೆ ವಹಿವಾಟುಗಳು ಅಥವಾ ಡಿಜಿಟಲ್ ಕ್ರಿಯೆಗಳನ್ನು ಸಂಗ್ರಹಿಸುವ ಸ್ಥಳ. ಒಂದು ಬ್ಲಾಕ್ ತುಂಬಿದ ನಂತರ, ಅದು ಹಿಂದಿನದಕ್ಕೆ ಲಿಂಕ್ ಆಗುತ್ತದೆ, ಬ್ಲಾಕ್‌ಗಳ ಸರಪಳಿ ಅಥವಾ \"ಬ್ಲಾಕ್‌ಚೈನ್\" ಅನ್ನು ರಚಿಸುತ್ತದೆ. ಬ್ಲಾಕ್‌ಗಳ ಕುರಿತು ಇನ್ನಷ್ಟು.", + "blockchain-term": "ಬ್ಲಾಕ್‌ಚೈನ್", + "blockchain-definition": "ಬ್ಲಾಕ್‌ಚೈನ್ ಎನ್ನುವುದು ವಹಿವಾಟುಗಳ ಡೇಟಾಬೇಸ್ ಆಗಿದ್ದು, ನೆಟ್‌ವರ್ಕ್‌ನಲ್ಲಿರುವ ಎಲ್ಲಾ ಕಂಪ್ಯೂಟರ್‌ಗಳಲ್ಲಿ ನಕಲು ಮಾಡಿ ಹಂಚಿಕೊಳ್ಳಲಾಗುತ್ತದೆ, ಇದು ಡೇಟಾವನ್ನು ಹಿಂದಿನಂತೆ ಬದಲಾಯಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ ಎಂದು ಖಚಿತಪಡಿಸುತ್ತದೆ.", + "bridge-term": "ಬ್ರಿಡ್ಜ್", + "bridge-definition": "ಒಂದು ಬ್ಲಾಕ್‌ಚೈನ್ ನೆಟ್‌ವರ್ಕ್‌ನಿಂದ ಇನ್ನೊಂದಕ್ಕೆ ಸ್ವತ್ತುಗಳನ್ನು ವರ್ಗಾಯಿಸಲು ಬ್ಲಾಕ್‌ಚೈನ್ ಸೇತುವೆಯನ್ನು ಬಳಸಲಾಗುತ್ತದೆ.", + "cryptography-definition": "ಮಾಹಿತಿಯು ಯಾರಿಗಾಗಿ ಉದ್ದೇಶಿಸಲಾಗಿದೆಯೋ ಅವರು ಮಾತ್ರ ಅದನ್ನು ಓದುವಂತೆ ಸಂವಹನವನ್ನು ಖಾಸಗಿ ಮತ್ತು ಸುರಕ್ಷಿತವಾಗಿಸುವ ಅಭ್ಯಾಸ ಇದು.", + "dao-definition": "DAO ಎನ್ನುವುದು ಬ್ಲಾಕ್‌ಚೈನ್‌ನಲ್ಲಿ ಕೋಡ್ ಮಾಡಲಾದ ನಿಯಮಗಳಿಂದ ನಡೆಸಲ್ಪಡುವ ಡಿಜಿಟಲ್ ಸಂಸ್ಥೆಯಾಗಿದ್ದು, ಅಲ್ಲಿ ನಿರ್ಧಾರಗಳನ್ನು ಸದಸ್ಯರ ಮತಗಳಿಂದ ತೆಗೆದುಕೊಳ್ಳಲಾಗುತ್ತದೆ, ಕೇಂದ್ರ ಪ್ರಾಧಿಕಾರದಿಂದಲ್ಲ. ವಿಕೇಂದ್ರೀಕೃತ ಸ್ವಾಯತ್ತ ಸಂಸ್ಥೆಗಳು (DAOs) ಕುರಿತು ಇನ್ನಷ್ಟು.", + "dapp-definition": "dApp ಎನ್ನುವುದು ಬ್ಲಾಕ್‌ಚೈನ್ ನೆಟ್‌ವರ್ಕ್‌ನಲ್ಲಿ ಕಾರ್ಯನಿರ್ವಹಿಸುವ ವಿಕೇಂದ್ರೀಕೃತ ಅಪ್ಲಿಕೇಶನ್ ಆಗಿದ್ದು, ಕೇಂದ್ರ ನಿಯಂತ್ರಣ ಪ್ರಾಧಿಕಾರವಿಲ್ಲದೆ ಸೇವೆಗಳನ್ನು ನೀಡುತ್ತದೆ. ವಿಕೇಂದ್ರೀಕೃತ ಅಪ್ಲಿಕೇಶನ್‌ಗಳ ಕುರಿತು ಇನ್ನಷ್ಟು.", + "ens-definition": "Ethereum ನೇಮ್ ಸರ್ವಿಸ್ ಎನ್ನುವುದು Ethereum ವಿಳಾಸಗಳಿಗೆ ಇಂಟರ್ನೆಟ್ ಫೋನ್‌ಬುಕ್‌ನಂತಿದೆ. ಉದ್ದವಾದ ವ್ಯಾಲೆಟ್ ವಿಳಾಸಗಳನ್ನು ಬಳಸುವ ಬದಲು, ENS ನಿಮಗೆ ಡಿಜಿಟಲ್ ಹಣ ಮತ್ತು ಸ್ವತ್ತುಗಳನ್ನು ಕಳುಹಿಸಲು ಮತ್ತು ಸ್ವೀಕರಿಸಲು \"john.eth\" ನಂತಹ ಸರಳ ಹೆಸರುಗಳನ್ನು ಬಳಸಲು ಅನುಮತಿಸುತ್ತದೆ.", + "erc-definition": "ERC (Ethereum Request for Comments) ಎಂಬುದು Ethereum ಸಮುದಾಯದಲ್ಲಿ Ethereum ನೆಟ್‌ವರ್ಕ್‌ಗಾಗಿ ಹೊಸ ಬಳಕೆಯ ಮಾನದಂಡಗಳನ್ನು ಪ್ರಸ್ತಾಪಿಸಲು ಬಳಸಲಾಗುವ ಒಂದು ರೀತಿಯ ತಾಂತ್ರಿಕ ದಾಖಲಾತಿಯಾಗಿದೆ.", + "erc-1155-definition": "NFT (ವಿಶಿಷ್ಟ ಸಂಗ್ರಹಯೋಗ್ಯ ವಸ್ತುಗಳಂತೆ) ಗೆ ಹೋಲುವ ಒಂದು ರೀತಿಯ Ethereum ಟೋಕನ್ ಮಾನದಂಡವು ಒಂದೇ ಸ್ಮಾರ್ಟ್ ಒಪ್ಪಂದದೊಳಗೆ ಪರಸ್ಪರ ಬದಲಾಯಿಸಬಹುದಾದ ವಸ್ತುಗಳನ್ನು (ಕರೆನ್ಸಿಯಂತೆ) ರಚಿಸಲು ಅನುಮತಿಸುತ್ತದೆ.", + "erc-20-definition": "Ethereum ನೆಟ್‌ವರ್ಕ್‌ನಲ್ಲಿ ಹೆಚ್ಚಿನ ಟೋಕನ್‌ಗಳನ್ನು ರಚಿಸಲಾದ ನಿಯಮಗಳ ಪ್ರಮಾಣಿತ ಗುಂಪೇ ಆಗಿದೆ.", + "erc-721-definition": "NFT ಗಳನ್ನು ರಚಿಸಲು ಬಳಸುವ ನಿಯಮಗಳ ಪ್ರಮಾಣಿತ ಸೆಟ್ (ಶಿಲೀಂಧ್ರವಲ್ಲದ ಟೋಕನ್‌ಗಳು).", + "finality-term": "ಅಂತಿಮತೆ", + "gas-term": "ಗ್ಯಾಸ್", + "holographic-consensus-definition": "ಸಣ್ಣ ಗುಂಪಿನ ಪ್ರತಿನಿಧಿಗಳಿಗೆ ಮತ ಚಲಾಯಿಸಲು ಅವಕಾಶ ನೀಡುವ ಮೂಲಕ ದೊಡ್ಡ ಗುಂಪಿನ ನಿರ್ಧಾರವನ್ನು ಹೇಗೆ ತೆಗೆದುಕೊಳ್ಳಲಾಗುತ್ತದೆ ಎಂಬುದನ್ನು ಇದು ಸೂಚಿಸುತ್ತದೆ. ನಂತರ ಸಣ್ಣ ಗುಂಪು ಉತ್ತಮ ಕೆಲಸ ಮಾಡಿದೆ ಎಂದು ಅವರು ನಂಬುವವರೆಗೆ ಉಳಿದವರೆಲ್ಲರೂ ಅದರೊಂದಿಗೆ ಹೋಗಲು ಒಪ್ಪುತ್ತಾರೆ.", + "key-definition": "ಎಥೆರಿಯಮ್‌ನ ಸಂದರ್ಭದಲ್ಲಿ, ಕೀಗಳು ಡಿಜಿಟಲ್ ಕೋಡ್‌ಗಳಾಗಿವೆ: ವಹಿವಾಟುಗಳನ್ನು ಸ್ವೀಕರಿಸಲು ಸಾರ್ವಜನಿಕ ಕೀ ಮತ್ತು ಹಣವನ್ನು ಪ್ರವೇಶಿಸಲು ಮತ್ತು ಕಳುಹಿಸಲು ಖಾಸಗಿ ಕೀ.", + "layer-2-term": "ಪದರ 2", + "liquidity-tokens-definition": "ಲಿಕ್ವಿಡಿಟಿ ಟೋಕನ್‌ಗಳು (LT) ಒಂದು ಸ್ಮಾರ್ಟ್ ಒಪ್ಪಂದದಲ್ಲಿ ಲಾಕ್ ಮಾಡಲಾದ ನಿಧಿಗಳ ಸಂಗ್ರಹವಾದ ಮತ್ತು ವಿಕೇಂದ್ರೀಕೃತ ವಿನಿಮಯ ಕೇಂದ್ರದಲ್ಲಿ (DEX) ವ್ಯಾಪಾರವನ್ನು ಸುಗಮಗೊಳಿಸಲು ಬಳಸಲಾಗುವ ಲಿಕ್ವಿಡಿಟಿ ಪೂಲ್‌ಗೆ ಸ್ವತ್ತುಗಳನ್ನು ಠೇವಣಿ ಮಾಡುವ ಭಾಗವಹಿಸುವವರಿಗೆ ನೀಡಲಾಗುವ ಡಿಜಿಟಲ್ ಟೋಕನ್‌ಗಳಾಗಿವೆ.", + "mev-term": "MEV", + "mev-definition": "ಬ್ಲಾಕ್‌ಚೈನ್‌ನಲ್ಲಿ ಕೆಲವು ಕ್ರಿಯೆಗಳಿಗೆ ಆದ್ಯತೆ ನೀಡುವ ಕಾರ್ಯವಿಧಾನವು ಶುಲ್ಕಕ್ಕಾಗಿ, ಫಲಿತಾಂಶಗಳು ಮತ್ತು ವಹಿವಾಟುಗಳ ಕ್ರಮದ ಮೇಲೆ ಪ್ರಭಾವ ಬೀರುತ್ತದೆ.", + "multisig-term": "ಮಲ್ಟಿಸಿಗ್", + "multisig-definition": "ಮಲ್ಟಿಸಿಗ್ (ಮಲ್ಟಿ ಸಿಗ್ನೇಚರ್) ಎಂದರೆ ಡಿಜಿಟಲ್ ವ್ಯಾಲೆಟ್ ಅಥವಾ ಖಾತೆಯಾಗಿದ್ದು, ಇದು ವಹಿವಾಟುಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲು ಬಹು ಸಹಿಗಳು ಅಥವಾ ಅನುಮೋದನೆಗಳ ಅಗತ್ಯವಿರುತ್ತದೆ, ಇದು ಭದ್ರತೆಯನ್ನು ಹೆಚ್ಚಿಸುತ್ತದೆ.", + "onchain-definition": "ಬ್ಲಾಕ್‌ಚೈನ್‌ನಲ್ಲಿ ನಡೆಯುವ ಮತ್ತು ಸಾರ್ವಜನಿಕವಾಗಿ ಲಭ್ಯವಿರುವ ಕ್ರಿಯೆಗಳು ಅಥವಾ ವಹಿವಾಟುಗಳನ್ನು ಉಲ್ಲೇಖಿಸುತ್ತದೆ.", + "peer-to-peer-network-definition": "ಕೇಂದ್ರೀಕೃತ, ಸರ್ವರ್-ಆಧಾರಿತ ಸೇವೆಗಳ ಅಗತ್ಯವಿಲ್ಲದೆಯೇ ಸಾಮೂಹಿಕವಾಗಿ ಕಾರ್ಯಗಳನ್ನು ನಿರ್ವಹಿಸಲು ಸಾಧ್ಯವಾಗುವ ಕಂಪ್ಯೂಟರ್‌ಗಳ ಜಾಲ (ಸಹವರ್ತಿಗಳು).", + "permissionless-definition": "Ethereum ನಂತಹ ವ್ಯವಸ್ಥೆಯನ್ನು ಬಳಸಲು ಯಾವುದೇ ಅನುಮತಿ ಅಥವಾ ಅನುಮೋದನೆ ಅಗತ್ಯವಿಲ್ಲ ಮತ್ತು ಅದನ್ನು ಬಳಸುವುದನ್ನು ಯಾರೂ ತಡೆಯಲು ಸಾಧ್ಯವಿಲ್ಲ. ಪ್ರತಿಯೊಬ್ಬರೂ ಭಾಗವಹಿಸಲು ಇದು 24/7 ತೆರೆದಿರುತ್ತದೆ.", + "pos-term": "ಸ್ಟ್ರೂಫ್-ಆಫ್-ಸ್ಟೇಕ್ (ಪಿಒಎಸ್)", + "sequencer-definition": "ಸೀಕ್ವೆನ್ಸರ್ ಎನ್ನುವುದು ಬ್ಲಾಕ್‌ಚೈನ್ ನೆಟ್‌ವರ್ಕ್‌ನಲ್ಲಿ ವಹಿವಾಟುಗಳನ್ನು ಆದೇಶಿಸುವ ಜವಾಬ್ದಾರಿಯುತ ಪ್ರೋಗ್ರಾಂ ಆಗಿದೆ.", + "smart-contract-term": "ಸ್ಮಾರ್ಟ್ ಒಪ್ಪಂದ", + "staking-term": "Staking", + "sybil-attack-definition": "ಸಿಬಿಲ್ ದಾಳಿಗಳು ವೈಯಕ್ತಿಕ ಮಾನವರು ತಮ್ಮ ಪ್ರಭಾವವನ್ನು ಹೆಚ್ಚಿಸಲು ತಾವು ಅನೇಕ ಜನರು ಎಂದು ಭಾವಿಸಿ ವ್ಯವಸ್ಥೆಯನ್ನು ಮೋಸಗೊಳಿಸುವುದನ್ನು ಸೂಚಿಸುತ್ತದೆ.", + "web2-term": "ವೆಬ್೩", + "web3-term": "ವೆಬ್೨" +} diff --git a/src/intl/kn/page-get-eth.json b/src/intl/kn/page-get-eth.json index 921abfaceab..fe99042f9a4 100644 --- a/src/intl/kn/page-get-eth.json +++ b/src/intl/kn/page-get-eth.json @@ -1,7 +1,7 @@ { - "page-get-eth-article-keeping-crypto-safe": "ನಿಮ್ಮ ಕ್ರಿಪ್ಟೋವನ್ನು ಸುರಕ್ಷಿತವಾಗಿಡಲು ಕೀಲಿಗಳು", + "page-get-eth-article-keeping-crypto-safe": "ನಿಮ್ಮ ಕ್ರಿಪ್ಟೋವನ್ನು ಸುರಕ್ಷಿತವಾಗಿಡಲು ಕೀಗಳು", "page-get-eth-article-protecting-yourself": "ನಿಮ್ಮನ್ನು ಮತ್ತು ನಿಮ್ಮ ಹಣವನ್ನು ರಕ್ಷಿಸುವುದು", - "page-get-eth-article-store-digital-assets": "ಎಥೆರಿಯಮ್ನಲ್ಲಿ ಡಿಜಿಟಲ್ ಸ್ವತ್ತುಗಳನ್ನು ಹೇಗೆ ಸಂಗ್ರಹಿಸುವುದು", + "page-get-eth-article-store-digital-assets": "ಇಥಿರಿಯಮ್‍ನಲ್ಲಿನ ಡಿಜಿಟಲ್ ಸ್ವತ್ತುಗಳನ್ನು ಹೇಗೆ ಸಂಗ್ರಹಿಸುವುದು", "page-get-eth-article-protecting-yourself-desc": "MyCrypto", "page-get-eth-article-keeping-crypto-safe-desc": "Coinbase", "page-get-eth-article-store-digital-assets-desc": "ConsenSys", @@ -9,24 +9,34 @@ "page-get-eth-cex-desc": "ವಿನಿಮಯ ಕೇಂದ್ರಗಳು ಸಾಂಪ್ರದಾಯಿಕ ಕರೆನ್ಸಿಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಕ್ರಿಪ್ಟೋವನ್ನು ಖರೀದಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುವ ವ್ಯವಹಾರಗಳಾಗಿವೆ. ನೀವು ಖರೀದಿಸುವ ಯಾವುದೇ ETH ಅನ್ನು ನೀವು ನಿಯಂತ್ರಿಸುವ ವ್ಯಾಲೆಟ್ ಗೆ ಕಳುಹಿಸುವವರೆಗೂ ಅವರು ಅದರ ಮೇಲೆ ನಿಯಂತ್ರಣವನ್ನು ಹೊಂದಿರುತ್ತಾರೆ.", "page-get-eth-checkout-dapps-btn": "Dapp ಗಳನ್ನು ಪರಿಶೀಲಿಸಿ", "page-get-eth-community-safety": "ಭದ್ರತೆಯ ಬಗ್ಗೆ ಸಮುದಾಯ ಪೋಸ್ಟ್ ಗಳು", - "page-get-eth-description": "ಇಥಿರಿಯಮ್ ಮತ್ತು ETH ಅನ್ನು ಯಾವುದೇ ಸರ್ಕಾರ ಅಥವಾ ಕಂಪನಿ ನಿಯಂತ್ರಿಸುವುದಿಲ್ಲ - ಅವು ವಿಕೇಂದ್ರೀಕೃತವಾಗಿವೆ. ಇದರರ್ಥ ETH ಎಲ್ಲರಿಗೂ ಬಳಸಲು ಮುಕ್ತವಾಗಿದೆ.", + "page-get-eth-description": "ಎಥೆರಿಯಮ್ ಅನ್ನು ಯಾವುದೇ ಒಂದು ಸಂಸ್ಥೆ ನಿಯಂತ್ರಿಸುವುದಿಲ್ಲ - ಅದು ವಿಕೇಂದ್ರೀಕೃತವಾಗಿದೆ.", "page-get-eth-dex": "ವಿಕೇಂದ್ರೀಕೃತ ವಿನಿಮಯ ಕೇಂದ್ರಗಳು (DEXs)", - "page-get-eth-dex-desc": "ನೀವು ಹೆಚ್ಚಿನ ನಿಯಂತ್ರಣವನ್ನು ಬಯಸಿದರೆ, ETH ಪೀರ್-ಟು-ಪೀರ್ P2P ಖರೀದಿಸಿ. DEX ನೊಂದಿಗೆ ನೀವು ಕೇಂದ್ರೀಕೃತ ಕಂಪನಿಗೆ ನಿಮ್ಮ ನಿಧಿಗಳ ನಿಯಂತ್ರಣವನ್ನು ನೀಡದೆ ವ್ಯಾಪಾರ ಮಾಡಬಹುದು.", + "page-get-eth-dex-desc": "ನೀವು ಹೆಚ್ಚಿನ ನಿಯಂತ್ರಣವನ್ನು ಬಯಸಿದರೆ, smart contracts ಬಳಸಿ ETH ಖರೀದಿಸಿ. ಡಿಇಎಕ್ಸ್ ನೊಂದಿಗೆ ನೀವು ನಿಮ್ಮ ನಿಧಿಗಳ ನಿಯಂತ್ರಣವನ್ನು ಕೇಂದ್ರೀಕೃತ ಕಂಪನಿಗೆ ನೀಡದೆ ಡಿಜಿಟಲ್ ಸ್ವತ್ತುಗಳನ್ನು ವ್ಯಾಪಾರ ಮಾಡಬಹುದು.", + "page-get-eth-peers": "ನಿಮ್ಮ ಗೆಳೆಯರಿಂದ ಇಟಿಎಚ್ ಸ್ವೀಕರಿಸಿ", + "page-get-eth-peers-desc": "ಒಮ್ಮೆ ನೀವು ಎಥೆರಿಯಮ್ ಖಾತೆಯನ್ನು ಹೊಂದಿದ್ದರೆ, ಇಟಿಎಚ್ (ಮತ್ತು ಇತರ ಟೋಕನ್ ಗಳನ್ನು) ಪೀರ್-ಟು-ಪೀರ್ ಕಳುಹಿಸಲು ಮತ್ತು ಸ್ವೀಕರಿಸಲು ಪ್ರಾರಂಭಿಸಲು ನೀವು ಮಾಡಬೇಕಾಗಿರುವುದು ನಿಮ್ಮ ವಿಳಾಸವನ್ನು ಹಂಚಿಕೊಳ್ಳುವುದು.", + "page-get-eth-staking": "ಸ್ಟೇಕಿಂಗ್ ಬಹುಮಾನಗಳು", + "page-get-eth-staking-desc": "ನೀವು ಈಗಾಗಲೇ ಕೆಲವು ಇಟಿಎಚ್ ಹೊಂದಿದ್ದರೆ, ವ್ಯಾಲಿಡೇಟರ್ ನೋಡ್ ಅನ್ನು ಚಾಲನೆ ಮಾಡುವ ಮೂಲಕ ನೀವು ಹೆಚ್ಚು ಗಳಿಸಬಹುದು. ಇಟಿಎಚ್ ನಲ್ಲಿ ಈ ಪರಿಶೀಲನಾ ಕೆಲಸವನ್ನು ಮಾಡಿದ್ದಕ್ಕಾಗಿ ನೀವು ಹಣವನ್ನು ಪಡೆಯುತ್ತೀರಿ.", + "page-get-eth-earn": "ಇಟಿಎಚ್ ಸಂಪಾದಿಸಿ", + "page-get-eth-earn-desc": "ಕ್ರಿಪ್ಟೋದಲ್ಲಿ ಪಾವತಿಸುವ ಡಿಎಒಗಳು ಅಥವಾ ಕಂಪನಿಗಳಿಗಾಗಿ ಕೆಲಸ ಮಾಡುವ ಮೂಲಕ, ಕೊಡುಗೆಗಳನ್ನು ಗೆಲ್ಲುವ ಮೂಲಕ, ಸಾಫ್ಟ್ವೇರ್ ದೋಷಗಳನ್ನು ಕಂಡುಹಿಡಿಯುವ ಮೂಲಕ ಮತ್ತು ಹೆಚ್ಚಿನವುಗಳ ಮೂಲಕ ನೀವು ಇಟಿಎಚ್ ಅನ್ನು ಗಳಿಸಬಹುದು.", + "page-get-eth-daos-link-desc": "DAO ಗಳ ಬಗ್ಗೆ ತಿಳಿಯಿರಿ", + "page-get-eth-cex-link-desc": "ವಿನಿಮಯಗಳ ಪಟ್ಟಿಯನ್ನು ನೋಡಿ", + "page-get-eth-staking-link-desc": "ಸ್ಟೇಕಿಂಗ್ ಬಗ್ಗೆ ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ", "page-get-eth-dexs": "ವಿಕೇಂದ್ರೀಕೃತ ವಿನಿಮಯ ಕೇಂದ್ರಗಳು (DEXs)", - "page-get-eth-dexs-desc": "ವಿಕೇಂದ್ರೀಕೃತ ವಿನಿಮಯ ಕೇಂದ್ರಗಳು ಇಟಿಎಚ್ ಮತ್ತು ಇತರ ಟೋಕನ್ ಗಳಿಗೆ ಮುಕ್ತ ಮಾರುಕಟ್ಟೆಗಳಾಗಿವೆ. ಅವರು ಖರೀದಿದಾರರು ಮತ್ತು ಮಾರಾಟಗಾರರನ್ನು ನೇರವಾಗಿ ಸಂಪರ್ಕಿಸುತ್ತಾರೆ.", + "page-get-eth-dexs-desc": "ವಿಕೇಂದ್ರೀಕೃತ ವಿನಿಮಯ ಕೇಂದ್ರಗಳು ETH ಮತ್ತು ಇತರ ಟೋಕನ್‍ಗಳಿಗೆ ಮುಕ್ತ ಮಾರುಕಟ್ಟೆಗಳಾಗಿವೆ. ಅವರು ಖರೀದಿದಾರರು ಮತ್ತು ಮಾರಾಟಗಾರರನ್ನು ನೇರವಾಗಿ ಸಂಪರ್ಕಿಸುತ್ತಾರೆ.", "page-get-eth-dexs-desc-2": "ವ್ಯವಹಾರದಲ್ಲಿ ಹಣವನ್ನು ರಕ್ಷಿಸಲು ವಿಶ್ವಾಸಾರ್ಹ ಮೂರನೇ ಪಕ್ಷವನ್ನು ಬಳಸುವ ಬದಲು, ಅವರು ಕೋಡ್ ಅನ್ನು ಬಳಸುತ್ತಾರೆ. ಪಾವತಿಯ ಖಾತರಿ ನೀಡಿದಾಗ ಮಾತ್ರ ಮಾರಾಟಗಾರರ ETH ಅನ್ನು ವರ್ಗಾಯಿಸಲಾಗುತ್ತದೆ. ಈ ರೀತಿಯ ಕೋಡ್ ಅನ್ನು ಸ್ಮಾರ್ಟ್ ಕಾಂಟ್ರಾಕ್ಟ್ ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ.", - "page-get-eth-dexs-desc-3": "ಇದರರ್ಥ ಕೇಂದ್ರೀಕೃತ ಪರ್ಯಾಯಗಳಿಗಿಂತ ಕಡಿಮೆ ಭೌಗೋಳಿಕ ನಿರ್ಬಂಧಗಳಿವೆ. ಯಾರಾದರೂ ನಿಮಗೆ ಬೇಕಾದುದನ್ನು ಮಾರಾಟ ಮಾಡುತ್ತಿದ್ದರೆ ಮತ್ತು ನೀವು ಒದಗಿಸಬಹುದಾದ ಪಾವತಿ ವಿಧಾನವನ್ನು ಸ್ವೀಕರಿಸುತ್ತಿದ್ದರೆ, ನೀವು ಚೆನ್ನಾಗಿರುತ್ತೀರಿ. ಇತರ ಟೋಕನ್ ಗಳು, PayPal ಅಥವಾ ವೈಯಕ್ತಿಕ ನಗದು ವಿತರಣೆಗಳೊಂದಿಗೆ ETH ಖರೀದಿಸಲು DEX ಗಳು ನಿಮಗೆ ಅವಕಾಶ ನೀಡಬಹುದು.", - "page-get-eth-do-not-copy": "ಉದಾಹರಣೆ: ನಕಲಿಸಬೇಡ", + "page-get-eth-dexs-desc-3": "ಇದರರ್ಥ ಕೇಂದ್ರೀಕೃತ ಪರ್ಯಾಯಗಳಿಗಿಂತ ಕಡಿಮೆ ಭೌಗೋಳಿಕ ನಿರ್ಬಂಧಗಳಿವೆ. ಯಾರಾದರೂ ನಿಮಗೆ ಬೇಕಾದುದನ್ನು ಮಾರಾಟ ಮಾಡುತ್ತಿದ್ದರೆ ಮತ್ತು ನೀವು ಒದಗಿಸಬಹುದಾದ ಪಾವತಿ ವಿಧಾನವನ್ನು ಸ್ವೀಕರಿಸುತ್ತಿದ್ದರೆ, ನೀವು ಹೋಗುವುದು ಒಳ್ಳೆಯದು.", + "page-get-eth-dexs-desc-4": "ಸೂಚನೆ: ಅನೇಕ ಡೆಕ್ಸ್ ಗಳು ಕಾರ್ಯನಿರ್ವಹಿಸಲು ಸುತ್ತಿದ ಈಥರ್ (ಡಬ್ಲ್ಯುಇಟಿಎಚ್) ಅನ್ನು ಬಳಸುತ್ತವೆ. <ಸುತ್ತಿದ ಈಥರ್ ಬಗ್ಗೆ ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ.", + "page-get-eth-do-not-copy": "ಉದಾಹರಣೆ: ನಕಲಿಸಬೇಡಿ", "page-get-eth-exchanges-disclaimer": "ನಾವು ಈ ಮಾಹಿತಿಯನ್ನು ಹಸ್ತಚಾಲಿತವಾಗಿ ಸಂಗ್ರಹಿಸಿದ್ದೇವೆ. ನೀವು ಏನಾದರೂ ತಪ್ಪನ್ನು ಕಂಡುಕೊಂಡರೆ, ನಮಗೆ ತಿಳಿಸಿ", - "page-get-eth-exchanges-empty-state-text": "ETH ಖರೀದಿಸಲು ನೀವು ಬಳಸಬಹುದಾದ ವ್ಯಾಲೆಟ್ ಗಳು ಮತ್ತು ಎಕ್ಸ್ ಚೇಂಜ್ ಗಳ ಪಟ್ಟಿಯನ್ನು ನೋಡಲು ನಿಮ್ಮ ವಾಸಸ್ಥಳದ ದೇಶವನ್ನು ನಮೂದಿಸಿ", + "page-get-eth-exchanges-empty-state-text": "ನೀವು ಬಳಸಬಹುದಾದ ವಿನಿಮಯಗಳ ಪಟ್ಟಿಯನ್ನು ನೋಡಲು ನಿಮ್ಮ ವಾಸಸ್ಥಳದ ದೇಶವನ್ನು ನಮೂದಿಸಿ", "page-get-eth-exchanges-except": "ಹೊರತುಪಡಿಸಿ", "page-get-eth-exchanges-header": "ನೀವು ಯಾವ ದೇಶದಲ್ಲಿ ವಾಸಿಸುತ್ತೀರಿ?", "page-get-eth-exchanges-header-exchanges": "ವಿನಿಮಯಗಳು", "page-get-eth-exchanges-header-wallets": "ವ್ಯಾಲೆಟ್‍ಗಳು", - "page-get-eth-exchanges-intro": "ಎಕ್ಸ್ಚೇಂಜ್ಗಳು ಮತ್ತು ವ್ಯಾಲೆಟ್ಗಳು ಕ್ರಿಪ್ಟೋವನ್ನು ಎಲ್ಲಿ ಮಾರಾಟ ಮಾಡಬಹುದು ಎಂಬುದರ ಮೇಲೆ ನಿರ್ಬಂಧಗಳನ್ನು ಹೊಂದಿವೆ.", - "page-get-eth-exchanges-no-exchanges": "ಕ್ಷಮಿಸಿ, ಈ ದೇಶದಿಂದ ಇಟಿಎಚ್ ಖರೀದಿಸಲು ನಿಮಗೆ ಅವಕಾಶ ನೀಡುವ ಯಾವುದೇ ವಿನಿಮಯ ಕೇಂದ್ರಗಳು ನಮಗೆ ತಿಳಿದಿಲ್ಲ. ನಿಮಗೆ ತಿಳಿದಿದ್ದರೆ, ನಮಗೆ ತಿಳಿಸಿ", - "page-get-eth-exchanges-no-exchanges-or-wallets": "ಕ್ಷಮಿಸಿ, ಈ ದೇಶದಿಂದ ಇಟಿಎಚ್ ಖರೀದಿಸಲು ನಿಮಗೆ ಅವಕಾಶ ನೀಡುವ ಯಾವುದೇ ವಿನಿಮಯ ಕೇಂದ್ರಗಳು ನಮಗೆ ತಿಳಿದಿಲ್ಲ. ನಿಮಗೆ ತಿಳಿದಿದ್ದರೆ, ನಮಗೆ ತಿಳಿಸಿ", - "page-get-eth-exchanges-no-wallets": "ಕ್ಷಮಿಸಿ, ಈ ದೇಶದಿಂದ ಇಟಿಎಚ್ ಖರೀದಿಸಲು ನಿಮಗೆ ಅವಕಾಶ ನೀಡುವ ಯಾವುದೇ ವಿನಿಮಯ ಕೇಂದ್ರಗಳು ನಮಗೆ ತಿಳಿದಿಲ್ಲ. ನಿಮಗೆ ತಿಳಿದಿದ್ದರೆ, ನಮಗೆ ತಿಳಿಸಿ", + "page-get-eth-exchanges-intro": "ಎಕ್ಸ್ಚೇಂಜ್ಗಳು ಕ್ರಿಪ್ಟೋವನ್ನು ಎಲ್ಲಿ ಮಾರಾಟ ಮಾಡಬಹುದು ಎಂಬುದರ ಮೇಲೆ ನಿರ್ಬಂಧಗಳನ್ನು ಹೊಂದಿವೆ. ಇದು ಪ್ರತಿ ದೇಶದಲ್ಲಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ ಎಂದು ಭಾವಿಸಲಾದ ಸೇವೆಗಳ ಸೂಚಕ ಪಟ್ಟಿಯಾಗಿದೆ. ಇಲ್ಲಿ ಸೇರ್ಪಡೆ ಅನುಮೋದನೆಯಲ್ಲ - ನೀವು ನಿಮ್ಮ ಸ್ವಂತ ಸಂಶೋಧನೆಯನ್ನು ಮಾಡಬೇಕು!", + "page-get-eth-exchanges-no-exchanges": "ಕ್ಷಮಿಸಿ, ಈ ದೇಶದಿಂದ ETH ಖರೀದಿಸಲು ನಿಮಗೆ ಅವಕಾಶ ನೀಡುವ ಯಾವುದೇ ವಿನಿಮಯ ಕೇಂದ್ರಗಳು ನಮಗೆ ತಿಳಿದಿಲ್ಲ. ನಿಮಗೆ ತಿಳಿದಿದ್ದರೆ, ನಮಗೆ ತಿಳಿಸಿ", + "page-get-eth-exchanges-no-exchanges-or-wallets": "ಕ್ಷಮಿಸಿ, ಈ ದೇಶದಿಂದ ETH ಖರೀದಿಸಲು ನಿಮಗೆ ಅವಕಾಶ ನೀಡುವ ಯಾವುದೇ ವಿನಿಮಯ ಕೇಂದ್ರಗಳು ನಮಗೆ ತಿಳಿದಿಲ್ಲ. ನಿಮಗೆ ತಿಳಿದಿದ್ದರೆ, ನಮಗೆ ತಿಳಿಸಿ", + "page-get-eth-exchanges-no-wallets": "ಕ್ಷಮಿಸಿ, ಈ ದೇಶದಿಂದ ETH ಖರೀದಿಸಲು ನಿಮಗೆ ಅವಕಾಶ ನೀಡುವ ಯಾವುದೇ ವಿನಿಮಯ ಕೇಂದ್ರಗಳು ನಮಗೆ ತಿಳಿದಿಲ್ಲ. ನಿಮಗೆ ತಿಳಿದಿದ್ದರೆ, ನಮಗೆ ತಿಳಿಸಿ", "page-get-eth-exchanges-search": "ನೀವು ವಾಸಿಸುವ ಸ್ಥಳವನ್ನು ತಿಳಿಸಿ...", "page-get-eth-exchanges-success-exchange": "ವಿನಿಮಯ ಕೇಂದ್ರದಲ್ಲಿ ನೋಂದಾಯಿಸಲು ಅವರ ಕಾನೂನು ಪರಿಶೀಲನೆಗಳಿಂದಾಗಿ ಹಲವಾರು ದಿನಗಳು ತೆಗೆದುಕೊಳ್ಳಬಹುದು.", "page-get-eth-exchanges-success-wallet-link": "ವ್ಯಾಲೆಟ್ ಗಳು", @@ -36,34 +46,34 @@ "page-get-eth-hero-image-alt": "ETH ಹೀರೋ ಇಮೇಜ್ ಪಡೆಯಿರಿ", "page-get-eth-keep-it-safe": "ನಿಮ್ಮ ಇಟಿಎಚ್ ಅನ್ನು ಸುರಕ್ಷಿತವಾಗಿರಿಸುವುದು", "page-get-eth-meta-description": "ನೀವು ವಾಸಿಸುವ ಸ್ಥಳ ಮತ್ತು ಅದನ್ನು ಹೇಗೆ ನೋಡಿಕೊಳ್ಳಬೇಕು ಎಂಬುದರ ಆಧಾರದ ಮೇಲೆ ETH ಅನ್ನು ಹೇಗೆ ಖರೀದಿಸುವುದು.", - "page-get-eth-meta-title": "ETH ಖರೀದಿಸುವುದು ಹೇಗೆ", + "page-get-eth-meta-title": "ಇಥಿರಿಯಮ್ (ETH) ಅನ್ನು ಹೇಗೆ ಖರೀದಿಸಬಹುದು", "page-get-eth-need-wallet": "DEX ಬಳಸಲು ನಿಮಗೆ ವ್ಯಾಲೆಟ್ ಅಗತ್ಯವಿದೆ.", "page-get-eth-new-to-eth": "ETH ಗೆ ಹೊಸಬರಾ? ನೀವು ಪ್ರಾರಂಭಿಸಲು ಒಂದು ಅವಲೋಕನ ಇಲ್ಲಿದೆ.", "page-get-eth-other-cryptos": "ಇತರ ಕ್ರಿಪ್ಟೋದೊಂದಿಗೆ ಖರೀದಿಸಿ", - "page-get-eth-protect-eth-desc": "ನೀವು ಬಹಳಷ್ಟು ETH ಖರೀದಿಸಲು ಯೋಜಿಸುತ್ತಿದ್ದರೆ ನೀವು ಅದನ್ನು ನಿಮ್ಮ ನಿಯಂತ್ರಣದಲ್ಲಿರುವ ವ್ಯಾಲೆಟ್ ನಲ್ಲಿ ಇಡಲು ಬಯಸಬಹುದು, ವಿನಿಮಯವಲ್ಲ.", - "page-get-eth-protect-eth-in-wallet": "ವ್ಯಾಲೆಟ್ ನಲ್ಲಿ ನಿಮ್ಮ ETH ಅನ್ನು ರಕ್ಷಿಸಿ", + "page-get-eth-protect-eth-desc": "ಎಥೆರಿಯಮ್ ನ ಒಂದು ಮುಖ್ಯ ಲಕ್ಷಣವೆಂದರೆ ನಿಮ್ಮ ಸ್ವಂತ ಖಾತೆಯನ್ನು ನಿರ್ವಹಿಸುವ ಮೂಲಕ ನಿಮ್ಮ ಸ್ವಂತ ಸ್ವತ್ತುಗಳ ನಿಯಂತ್ರಣವನ್ನು ನೀವು ಇಟ್ಟುಕೊಳ್ಳುತ್ತೀರಿ. ಇದರರ್ಥ ನಿಮ್ಮ ಸ್ವತ್ತುಗಳೊಂದಿಗೆ ನೀವು ಯಾವುದೇ ಮೂರನೇ ವ್ಯಕ್ತಿಯನ್ನು ನಂಬಬೇಕಾಗಿಲ್ಲ, ಮತ್ತು ಅಪ್ರಾಮಾಣಿಕವಾಗಿ ವರ್ತಿಸುವ, ದಿವಾಳಿಯಾಗುವ ಅಥವಾ ಹ್ಯಾಕ್ ಆಗುವ ಯಾವುದೇ ಕಸ್ಟೋಡಿಯನ್ ನಿಂದ ನೀವು ರಕ್ಷಿಸಲ್ಪಟ್ಟಿದ್ದೀರಿ. ಆದಾಗ್ಯೂ, ನಿಮ್ಮ ಸ್ವಂತ ಭದ್ರತೆಯ ಜವಾಬ್ದಾರಿಯನ್ನು ನೀವು ತೆಗೆದುಕೊಳ್ಳುತ್ತೀರಿ ಎಂದರ್ಥ.", + "page-get-eth-protect-eth-in-wallet": "ನಿಮ್ಮ ಇಟಿಎಚ್ ಅನ್ನು ನಿಮ್ಮ ಸ್ವಂತ ವ್ಯಾಲೆಟ್ ನಲ್ಲಿ ಇರಿಸಿಕೊಳ್ಳಿ", "page-get-eth-search-by-country": "ದೇಶದಿಂದ ಹುಡುಕಿ", - "page-get-eth-security": "ಆದರೆ ಇದರರ್ಥ ನೀವು ನಿಮ್ಮ ಹಣದ ಭದ್ರತೆಯನ್ನು ಗಂಭೀರವಾಗಿ ಪರಿಗಣಿಸಬೇಕು. ETH ನೊಂದಿಗೆ, ನಿಮ್ಮ ಹಣವನ್ನು ನೋಡಿಕೊಳ್ಳಲು ನೀವು ಬ್ಯಾಂಕ್ ಅನ್ನು ನಂಬುತ್ತಿಲ್ಲ, ನೀವು ನಿಮ್ಮನ್ನು ನಂಬುತ್ತಿದ್ದೀರಿ.", - "page-get-eth-smart-contract-link": "ಸ್ಮಾರ್ಟ್ ಒಪ್ಪಂದಗಳ ಬಗ್ಗೆ ಇನ್ನಷ್ಟು", - "page-get-eth-swapping": "ಇತರ ಜನರ ETH ಗಾಗಿ ನಿಮ್ಮ ಟೋಕನ್ ಗಳನ್ನು ಬದಲಿಸಿ. ಮತ್ತು ಇದಕ್ಕೆ ವಿರುದ್ಧವಾಗಿ.", + "page-get-eth-security": "ಇದರರ್ಥ ನೀವು ನಿಮ್ಮ ಹಣದ ಭದ್ರತೆಯನ್ನು ಗಂಭೀರವಾಗಿ ಪರಿಗಣಿಸಬೇಕು. ಇಟಿಎಚ್ ನೊಂದಿಗೆ, ನಿಮ್ಮ ಸ್ವತ್ತುಗಳನ್ನು ನೋಡಿಕೊಳ್ಳಲು ನೀವು ಬ್ಯಾಂಕ್ ಅಥವಾ ಕಂಪನಿಯನ್ನು ನಂಬುತ್ತಿಲ್ಲ, ನೀವು ನಿಮ್ಮ ಜವಾಬ್ದಾರಿಯನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತಿದ್ದೀರಿ.", + "page-get-eth-smart-contract-link": "ಸ್ಮಾರ್ಟ್ ಕಾಂಟ್ರಾಕ್ಟ್ ಗಳ ಬಗ್ಗೆ ಇನ್ನಷ್ಟು", + "page-get-eth-swapping": "ಇತರ ಜನರ ETH ಗಾಗಿ ನಿಮ್ಮ ಟೋಕನ್‍ಗಳನ್ನು ಬದಲಿಸಿ. ಮತ್ತು ಇದಕ್ಕೆ ವಿರುದ್ಧವಾಗಿ.", "page-get-eth-try-dex": "DEX ಪ್ರಯತ್ನಿಸಿ", "page-get-eth-use-your-eth": "ನಿಮ್ಮ ETH ಬಳಸಿ", - "page-get-eth-use-your-eth-dapps": "ಈಗ ನೀವು ಕೆಲವು ETH ಅನ್ನು ಹೊಂದಿದ್ದೀರಿ, ಕೆಲವು ಇಥಿರಿಯಮ್ ಅಪ್ಲಿಕೇಶನ್ ಗಳನ್ನು (Dapps) ಪರಿಶೀಲಿಸಿ. ಹಣಕಾಸು, ಸಾಮಾಜಿಕ ಮಾಧ್ಯಮ, ಗೇಮಿಂಗ್ ಮತ್ತು ಇತರ ಅನೇಕ ವಿಭಾಗಗಳಿಗೆ ಅಪ್ಲಿಕೇಶನ್ ಗಳಿವೆ.", + "page-get-eth-use-your-eth-dapps": "ಈಗ ನೀವು ಕೆಲವು ETH ಅನ್ನು ಹೊಂದಿದ್ದೀರಿ, ಕೆಲವು ಇಥಿರಿಯಮ್ ಅಪ್ಲಿಕೇಶನ್‍ಗಳನ್ನು (Dapps) ಪರಿಶೀಲಿಸಿ. ಹಣಕಾಸು, ಸಾಮಾಜಿಕ ಮಾಧ್ಯಮ, ಗೇಮಿಂಗ್ ಮತ್ತು ಇತರ ಅನೇಕ ವಿಭಾಗಗಳಿಗೆ ಅಪ್ಲಿಕೇಶನ್ ಗಳಿವೆ.", "page-get-eth-wallet-instructions": "ವ್ಯಾಲೆಟ್ ಸೂಚನೆಗಳನ್ನು ಅನುಸರಿಸಿ", - "page-get-eth-wallet-instructions-lost": "ನಿಮ್ಮ ವ್ಯಾಲೆಟ್ ಗೆ ನೀವು ಪ್ರವೇಶವನ್ನು ಕಳೆದುಕೊಂಡರೆ, ನಿಮ್ಮ ನಿಧಿಗಳಿಗೆ ಪ್ರವೇಶವನ್ನು ನೀವು ಕಳೆದುಕೊಳ್ಳುತ್ತೀರಿ. ಇದರ ವಿರುದ್ಧ ರಕ್ಷಿಸುವ ಬಗ್ಗೆ ನಿಮ್ಮ ವ್ಯಾಲೆಟ್ ನಿಮಗೆ ಸೂಚನೆಗಳನ್ನು ನೀಡಬೇಕು. ಅವುಗಳನ್ನು ಎಚ್ಚರಿಕೆಯಿಂದ ಅನುಸರಿಸಲು ಮರೆಯದಿರಿ - ಹೆಚ್ಚಿನ ಸಂದರ್ಭಗಳಲ್ಲಿ, ನಿಮ್ಮ ವ್ಯಾಲೆಟ್ಗೆ ಪ್ರವೇಶವನ್ನು ಕಳೆದುಕೊಂಡರೆ ಯಾರೂ ನಿಮಗೆ ಸಹಾಯ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ.", + "page-get-eth-wallet-instructions-lost": "ನಿಮ್ಮ ಖಾತೆಗೆ ನೀವು ಪ್ರವೇಶವನ್ನು ಕಳೆದುಕೊಂಡರೆ, ನಿಮ್ಮ ನಿಧಿಗಳಿಗೆ ಪ್ರವೇಶವನ್ನು ನೀವು ಕಳೆದುಕೊಳ್ಳುತ್ತೀರಿ. ಇದರ ವಿರುದ್ಧ ರಕ್ಷಿಸುವ ಬಗ್ಗೆ ನಿಮ್ಮ ವ್ಯಾಲೆಟ್ ನಿಮಗೆ ಸೂಚನೆಗಳನ್ನು ನೀಡಬೇಕು. ಅವುಗಳನ್ನು ಎಚ್ಚರಿಕೆಯಿಂದ ಅನುಸರಿಸಲು ಮರೆಯದಿರಿ - ಹೆಚ್ಚಿನ ಸಂದರ್ಭಗಳಲ್ಲಿ, ನಿಮ್ಮ ಖಾತೆಗೆ ಪ್ರವೇಶವನ್ನು ನೀವು ಕಳೆದುಕೊಂಡರೆ ಯಾರೂ ನಿಮಗೆ ಸಹಾಯ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ.", "page-get-eth-wallets": "ವ್ಯಾಲೆಟ್‍ಗಳು", "page-get-eth-wallets-link": "ವ್ಯಾಲೆಟ್ ಬಗ್ಗೆ ಇನ್ನಷ್ಟು", - "page-get-eth-wallets-purchasing": "ಕೆಲವು ವ್ಯಾಲೆಟ್ಗಳು ಡೆಬಿಟ್ / ಕ್ರೆಡಿಟ್ ಕಾರ್ಡ್, ಬ್ಯಾಂಕ್ ವರ್ಗಾವಣೆ ಅಥವಾ ಆಪಲ್ ಪೇ ಮೂಲಕ ಕ್ರಿಪ್ಟೋವನ್ನು ಖರೀದಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತವೆ. ಭೌಗೋಳಿಕ ನಿರ್ಬಂಧಗಳು ಅನ್ವಯವಾಗುತ್ತವೆ.", - "page-get-eth-warning": "ಈ DEX ಗಳು ಆರಂಭಿಕರಿಗೆ ಅಲ್ಲ ಏಕೆಂದರೆ ಅವುಗಳನ್ನು ಬಳಸಲು ನಿಮಗೆ ಕೆಲವು ETH ಅಗತ್ಯವಿರುತ್ತದೆ.", + "page-get-eth-wallets-purchasing": "ಕೆಲವು ವ್ಯಾಲೆಟ್‍ಗಳು ಡೆಬಿಟ್ / ಕ್ರೆಡಿಟ್ ಕಾರ್ಡ್, ಬ್ಯಾಂಕ್ ವರ್ಗಾವಣೆ ಅಥವಾ ಆಪಲ್ ಪೇ ಮೂಲಕ ಕ್ರಿಪ್ಟೋವನ್ನು ಖರೀದಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತವೆ. ಭೌಗೋಳಿಕ ನಿರ್ಬಂಧಗಳು ಅನ್ವಯವಾಗುತ್ತವೆ.", + "page-get-eth-warning": "ಈ ಡಿಇಎಕ್ಸ್ ಗಳು ಆರಂಭಿಕರಿಗೆ ಅಲ್ಲ ಏಕೆಂದರೆ ಅವುಗಳನ್ನು ಬಳಸಲು ನಿಮಗೆ ಕೆಲವು ಇಟಿಎಚ್ ಅಗತ್ಯವಿರುತ್ತದೆ. ಇವು ಕೇವಲ ಉದಾಹರಣೆಗಳು, ಅನುಮೋದಿತ ಉತ್ಪನ್ನಗಳಲ್ಲ. ನಿಮ್ಮ ಸ್ವಂತ ಸಂಶೋಧನೆ ಮಾಡಿ!", "page-get-eth-what-are-DEX's": "DEX ಗಳು ಎಂದರೇನು?", "page-get-eth-whats-eth-link": "ETH ಎಂದರೇನು?", - "page-get-eth-where-to-buy-desc": "ನೀವು ETH ಅನ್ನು ವಿನಿಮಯ ಕೇಂದ್ರಗಳಿಂದ ಅಥವಾ ವ್ಯಾಲೆಟ್ ಗಳಿಂದ ನೇರವಾಗಿ ಖರೀದಿಸಬಹುದು.", + "page-get-eth-where-to-buy-desc": "ನೀವು ಇಟಿಎಚ್ ಅನ್ನು ಗಳಿಸಬಹುದು, ಅದನ್ನು ನಿಮ್ಮ ಗೆಳೆಯರಿಂದ ಸ್ವೀಕರಿಸಬಹುದು ಅಥವಾ ವಿನಿಮಯ ಕೇಂದ್ರಗಳು ಮತ್ತು ಅಪ್ಲಿಕೇಶನ್ ಗಳಿಂದ ಖರೀದಿಸಬಹುದು.", "page-get-eth-where-to-buy-desc-2": "ನೀವು ವಾಸಿಸುವ ಸ್ಥಳದ ಆಧಾರದ ಮೇಲೆ ನೀವು ಯಾವ ಸೇವೆಗಳನ್ನು ಬಳಸಬಹುದು ಎಂಬುದನ್ನು ಪರಿಶೀಲಿಸಿ.", - "page-get-eth-where-to-buy-title": "ETH ಅನ್ನು ಎಲ್ಲಿ ಖರೀದಿಸಬೇಕು", + "page-get-eth-where-to-buy-title": "ETH ಅನ್ನು ಎಲ್ಲಿ ಪಡೆಯಬಹುದು", "page-get-eth-your-address": "ನಿಮ್ಮ ETH ವಿಳಾಸ", "page-get-eth-your-address-desc": "ನೀವು ವ್ಯಾಲೆಟ್ ಅನ್ನು ಡೌನ್ ಲೋಡ್ ಮಾಡಿದಾಗ ಅದು ನಿಮಗಾಗಿ ಸಾರ್ವಜನಿಕ ETH ವಿಳಾಸವನ್ನು ರಚಿಸುತ್ತದೆ. ಹೇಗೆ ಕಾಣುತ್ತಾರೆ ಎಂಬುದು ಇಲ್ಲಿದೆ:", - "page-get-eth-your-address-desc-3": "ಇದನ್ನು ನಿಮ್ಮ ಇಮೇಲ್ ವಿಳಾಸದಂತೆ ಯೋಚಿಸಿ, ಆದರೆ ಮೇಲ್ ಬದಲಿಗೆ ಅದು ETH ಸ್ವೀಕರಿಸಬಹುದು. ನೀವು ETH ಅನ್ನು ಎಕ್ಸ್ಚೇಂಜ್ನಿಂದ ನಿಮ್ಮ ವ್ಯಾಲೆಟ್ಗೆ ವರ್ಗಾಯಿಸಲು ಬಯಸಿದರೆ, ನಿಮ್ಮ ವಿಳಾಸವನ್ನು ಗಮ್ಯಸ್ಥಾನವಾಗಿ ಬಳಸಿ. ನೀವು ಕಳುಹಿಸುವ ಮೊದಲು ಯಾವಾಗಲೂ ಎರಡು ಬಾರಿ ಪರಿಶೀಲಿಸಲು ಮರೆಯದಿರಿ!", - "page-get-eth-your-address-wallet-link": "ವ್ಯಾಲೆಟ್ ಗಳನ್ನು ಪರಿಶೀಲಿಸಿ", - "listing-policy-raise-issue-link": "Raise issue", + "page-get-eth-your-address-desc-3": "ಇದನ್ನು ನಿಮ್ಮ ಇಮೇಲ್ ವಿಳಾಸದಂತೆ ಯೋಚಿಸಿ, ಆದರೆ ಮೇಲ್ ಬದಲಿಗೆ ಅದು ETH ಸ್ವೀಕರಿಸಬಹುದು. ನೀವು ETH ಅನ್ನು ಎಕ್ಸ್ ಚೇಂಜ್‍ನಿಂದ ನಿಮ್ಮ ವ್ಯಾಲೆಟ್‍ಗೆ ವರ್ಗಾಯಿಸಲು ಬಯಸಿದರೆ, ನಿಮ್ಮ ವಿಳಾಸವನ್ನು ಗಮ್ಯಸ್ಥಾನವಾಗಿ ಬಳಸಿ. ನೀವು ಕಳುಹಿಸುವ ಮೊದಲು ಯಾವಾಗಲೂ ಎರಡು ಬಾರಿ ಪರಿಶೀಲಿಸಲು ಮರೆಯದಿರಿ!", + "page-get-eth-your-address-wallet-link": "ವ್ಯಾಲೆಟ್‍ಗಳನ್ನು ಪರಿಶೀಲಿಸಿ", + "listing-policy-raise-issue-link": "ಸಮಸ್ಯೆಯನ್ನು ಎತ್ತು", "page-find-wallet-last-updated": "ಕೊನೆಯ ನವೀಕರಣ" } diff --git a/src/intl/kn/page-index.json b/src/intl/kn/page-index.json index 6abb7a598b0..17ca177b695 100644 --- a/src/intl/kn/page-index.json +++ b/src/intl/kn/page-index.json @@ -2,6 +2,7 @@ "page-index-activity-description": "ಎಲ್ಲಾ Ethereum ನೆಟ್‌ವರ್ಕ್‌ಗಳಿಂದ ಚಟುವಟಿಕೆ", "page-index-activity-tag": "ಚಟುವಟಿಕೆ", "page-index-activity-header": "ಪ್ರಬಲ ಪರಿಸರ ವ್ಯವಸ್ಥೆ", + "page-index-activity-action": "ಇನ್ನಷ್ಟು ಇಥಿರಿಯಮ್ ಚಟುವಟಿಕೆ", "page-index-bento-header": "ಇಂಟರ್ನೆಟ್ ಬಳಸಲು ಹೊಸ ವಿಧಾನ", "page-index-bento-assets-action": "NFT ಗಳಲ್ಲಿ ಇನ್ನಷ್ಟು", "page-index-bento-assets-content": "ಕಲೆ, ಪ್ರಮಾಣಪತ್ರಗಳು ಅಥವಾ ರಿಯಲ್ ಎಸ್ಟೇಟ್ ಅನ್ನು ಸಹ ಟೋಕನೈಸ್ ಮಾಡಬಹುದು. ಯಾವುದಾದರೂ ವ್ಯಾಪಾರ ಮಾಡಬಹುದಾದ ಟೋಕನ್ ಆಗಿರಬಹುದು. ಮಾಲೀಕತ್ವವು ಸಾರ್ವಜನಿಕವಾಗಿದೆ ಮತ್ತು ಪರಿಶೀಲಿಸಬಹುದಾಗಿದೆ.", @@ -51,6 +52,7 @@ "page-index-developers-code-example-title-3": "ಮುಕ್ತ, ಅನುಮತಿಯಿಲ್ಲದ DNS", "page-index-developers-code-examples": "ಕೋಡ್ ಉದಾಹರಣೆಗಳು", "page-index-events-action": "ಎಲ್ಲಾ ಘಟನೆಗಳನ್ನು ನೋಡಿ", + "page-index-events-header": "ಕಾರ್ಯಕ್ರಮಗಳು", "page-index-events-subtitle": "Ethereum ಸಮುದಾಯಗಳು ವರ್ಷಪೂರ್ತಿ ಜಗತ್ತಿನಾದ್ಯಂತ ಈವೆಂಟ್‌ಗಳನ್ನು ಆಯೋಜಿಸುತ್ತವೆ", "page-index-hero-image-alt": "ಎಥೆರಿಯಮ್ ಪರಿಸರ ವ್ಯವಸ್ಥೆಯನ್ನು ಪ್ರತಿನಿಧಿಸುವ ಭವಿಷ್ಯ ನಗರದ ವಿವರಣೆ.", "page-index-join-action-contribute-description": "ನೀವು ethereum.org ಬೆಳೆಯಲು ಮತ್ತು ಉತ್ತಮವಾಗಿರಲು ಸಹಾಯ ಮಾಡುವ ಎಲ್ಲಾ ವಿಭಿನ್ನ ಮಾರ್ಗಗಳನ್ನು ಕಂಡುಹಿಡಿಯಿರಿ.", @@ -64,7 +66,7 @@ "page-index-learn-tag": "ಕಲಿಯಿರಿ", "page-index-learn-header": "ಎಥೆರಿಯಮ್ ಅನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಿ", "page-index-meta-description": "\"ಇಥಿರಿಯಮ್ ಹಣ ಮತ್ತು ಹೊಸ ರೀತಿಯ ಅಪ್ಲಿಕೇಶನ್‌ಗಳಿಗಾಗಿ ಜಾಗತಿಕ, ವಿಕೇಂದ್ರೀಕೃತ ವೇದಿಕೆಯಾಗಿದೆ. ಇಥಿರಿಯಮ್‌ನಲ್ಲಿ, ನೀವು ಹಣವನ್ನು ನಿಯಂತ್ರಿಸುವ ಕೋಡ್ ಅನ್ನು ಬರೆಯಬಹುದು ಮತ್ತು ಪ್ರಪಂಚದಲ್ಲಿ ಎಲ್ಲಿಯಾದರೂ ಪ್ರವೇಶಿಸಬಹುದಾದ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ನಿರ್ಮಿಸಬಹುದು\".", - "page-index-meta-title": "Ethereum ಗೆ ಸಂಪೂರ್ಣ ಮಾರ್ಗದರ್ಶಿ", + "page-index-meta-title": "Ethereum.org: Ethereum ಗೆ ಸಂಪೂರ್ಣ ಮಾರ್ಗದರ್ಶಿ", "page-index-network-stats-total-eth-staked": "ಎಥೆರಿಯಮ್ ಅನ್ನು ರಕ್ಷಿಸುವ ಮೌಲ್ಯ", "page-index-network-stats-tx-cost-description": "ಸರಾಸರಿ ವಹಿವಾಟು ವೆಚ್ಚ", "page-index-network-stats-tx-day-description": "ಕಳೆದ 24 ಗಂಟೆಗಳಲ್ಲಿ ವಹಿವಾಟುಗಳು", diff --git a/src/intl/kn/page-learn.json b/src/intl/kn/page-learn.json index d62707ea9e8..df7e54754e1 100644 --- a/src/intl/kn/page-learn.json +++ b/src/intl/kn/page-learn.json @@ -10,6 +10,7 @@ "hero-header": "ಎಥೆರಿಯಮ್ ಬಗ್ಗೆ ತಿಳಿಯಿರಿ", "hero-subtitle": "ಎಥೆರಿಯಮ್ ಜಗತ್ತಿಗೆ ನಿಮ್ಮ ಶೈಕ್ಷಣಿಕ ಮಾರ್ಗದರ್ಶಿ. ಎಥೆರಿಯಮ್ ಹೇಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ ಮತ್ತು ಅದಕ್ಕೆ ಹೇಗೆ ಸಂಪರ್ಕಿಸುವುದು ಎಂಬುದನ್ನು ತಿಳಿಯಿರಿ. ಈ ಪುಟವು ತಾಂತ್ರಿಕ ಮತ್ತು ತಾಂತ್ರಿಕೇತರ ಲೇಖನಗಳು, ಮಾರ್ಗದರ್ಶಿಗಳು ಮತ್ತು ಸಂಪನ್ಮೂಲಗಳನ್ನು ಒಳಗೊಂಡಿದೆ.", "hero-button-lets-get-started": "ನಾವೀಗ ಪ್ರಾರಂಭಿಸೋಣ", + "page-learn-meta-title": "Ethereum: ಒಂದು ಗ್ರಹಿಕೆ ಕಲಿಕೆ ಮಾರ್ಗದರ್ಶಿ", "what-is-crypto-1": "ಕ್ರಿಪ್ಟೋಕರೆನ್ಸಿಗಳು, ಬ್ಲಾಕ್‌ಚೈನ್‌ಗಳು ಮತ್ತು ಬಿಟ್‌ಕಾಯಿನ್ ಬಗ್ಗೆ ನೀವು ಕೇಳಿರಬಹುದು. ಅವು ಯಾವುವು ಮತ್ತು ಅವು ಎಥೆರಿಯಮ್‌ಗೆ ಹೇಗೆ ಸಂಬಂಧಿಸಿವೆ ಎಂಬುದನ್ನು ತಿಳಿಯಲು ಕೆಳಗಿನ ಲಿಂಕ್‌ಗಳು ನಿಮಗೆ ಸಹಾಯ ಮಾಡುತ್ತದೆ.", "what-is-crypto-2": "ಬಿಟ್ ಕಾಯಿನ್‌ನಂತಹ ಕ್ರಿಪ್ಟೋಕರೆನ್ಸಿಗಳು ಜಾಗತಿಕವಾಗಿ ಯಾರಿಗೆ ಬೇಕಾದರೂ ಹಣವನ್ನು ವರ್ಗಾಯಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. ಎಥೆರಿಯಮ್ ಕೂಡ ಮಾಡುತ್ತದೆ, ಆದರೆ ಇದು ಅಪ್ಲಿಕೇಶನ್‌ಗಳು ಮತ್ತು ಸಂಸ್ಥೆಗಳನ್ನು ರಚಿಸಲು ಜನರಿಗೆ ಅನುವು ಮಾಡಿಕೊಡುವ ಕೋಡ್ ಅನ್ನು ಸಹ ಚಲಾಯಿಸಬಹುದು. ಇದು ಸ್ಥಿತಿಸ್ಥಾಪಕ ಮತ್ತು ಹೊಂದಿಕೊಳ್ಳುತ್ತದೆ: ಎಥೆರಿಯಮ್‌ನಲ್ಲಿ ಯಾವುದೇ ಕಂಪ್ಯೂಟರ್ ಪ್ರೋಗ್ರಾಂ ಚಲಾಯಿಸಬಹುದು. ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ ಮತ್ತು ಹೇಗೆ ಪ್ರಾರಂಭಿಸುವುದು ಎಂದು ಕಂಡುಕೊಳ್ಳಿ:", "what-is-ethereum-card-title": "ಇಥಿರಿಯಮ್ ಎಂದರೇನು?", @@ -33,8 +34,9 @@ "find-a-wallet-card-title": "ವ್ಯಾಲೆಟ್ ಹುಡುಕಿ", "find-a-wallet-card-description": "ನಿಮಗೆ ಮುಖ್ಯವಾದ ವೈಶಿಷ್ಟ್ಯಗಳ ಆಧಾರದ ಮೇಲೆ ವ್ಯಾಲೆಟ್‌ಗಳನ್ನು ಬ್ರೌಸ್ ಮಾಡಿ.", "find-a-wallet-button": "ವ್ಯಾಲೆಟ್‌ಗಳ ಪಟ್ಟಿ", - "crypto-security-basics-card-description": "ಹಗರಣಗಳನ್ನು ಹೇಗೆ ಗುರುತಿಸುವುದು ಮತ್ತು ಸಾಮಾನ್ಯ ತಂತ್ರಗಳನ್ನು ಹೇಗೆ ತಪ್ಪಿಸುವುದು ಎಂಬುದನ್ನು ಕಲಿಯಿರಿ.", - "crypto-security-basics-card-button": "ಸುರಕ್ಷಿತವಾಗಿರಿ", + "ethereum-networks-card-title": "ಇಥಿರಿಯಮ್ ಜಾಲಗಳು", + "ethereum-networks-card-description": "ಅಗ್ಗದ ಮತ್ತು ವೇಗವಾದ Ethereum ವಿಸ್ತರಣೆಗಳನ್ನು ಬಳಸುವ ಮೂಲಕ ಹಣವನ್ನು ಉಳಿಸಿ.", + "ethereum-networks-card-button": "ನೆಟ್ವರ್ಕ್ ಆಯ್ಕೆಮಾಡಿ", "things-to-consider-banner-title": "ಎಥೆರಿಯಮ್ ಬಳಸುವಾಗ ಪರಿಗಣಿಸಬೇಕಾದ ವಿಷಯಗಳು", "things-to-consider-banner-1": "ಪ್ರತಿ ಇಥಿರಿಯಮ್ ವಹಿವಾಟಿಗೆ ETH ರೂಪದಲ್ಲಿ ಶುಲ್ಕದ ಅಗತ್ಯವಿರುತ್ತದೆ, ನೀವು ಇಥಿರಿಯಮ್‌ನಲ್ಲಿ ನಿರ್ಮಿಸಲಾದ ಸ್ಟೇಬಲ್‌ಕಾಯಿನ್‌ಗಳಾದ USDC ಅಥವಾ DAIನಂತಹ ವಿಭಿನ್ನ ಟೋಕನ್‌ಗಳನ್ನು ಸರಿಸುವ ಅಗತ್ಯವಿದ್ದರೂ ಸಹ.", "things-to-consider-banner-2": "ಎಥೆರಿಯಮ್ ಅನ್ನು ಬಳಸಲು ಪ್ರಯತ್ನಿಸುವ ಜನರ ಸಂಖ್ಯೆಯನ್ನು ಅವಲಂಬಿಸಿ ಶುಲ್ಕಗಳು ಹೆಚ್ಚಾಗಿರಬಹುದು, ಆದ್ದರಿಂದ ನಾವು ಬಳಸಲು ಶಿಫಾರಸು ಮಾಡುತ್ತೇವೆ", @@ -84,7 +86,7 @@ "ethereum-whitepaper-card-button": "ವೈಟ್ ಪೇಪರ್ ಓದಿ", "more-on-ethereum-protocol-title": "ಎಥೆರಿಯಮ್ ಪ್ರೋಟೋಕಾಲ್ ಬಗ್ಗೆ ಇನ್ನಷ್ಟು", "more-on-ethereum-protocol-ethereum-for-developers": "ಡೆವಲಪರ್‌ಗಳಿಗೆ ಎಥೆರಿಯಮ್", - "more-on-ethereum-protocol-consensus": "ಎಥೆರಿಯಮ್‌ನ ಪ್ರೂಫ್-ಆಫ್-ಸ್ಟಾಕ್ ಆಧಾರಿತ ಒಮ್ಮತದ ಕಾರ್ಯವಿಧಾನ'", + "more-on-ethereum-protocol-consensus": "ಎಥೆರಿಯಮ್‌ನ ಪ್ರೂಫ್-ಆಫ್-ಸ್ಟಾಕ್ ಆಧಾರಿತ ಒಮ್ಮತದ ಕಾರ್ಯವಿಧಾನ", "more-on-ethereum-protocol-evm": "ಎಥೆರಿಯಮ್‌ನ ಎಂಬೆಡೆಡ್ ಕಂಪ್ಯೂಟರ್ (ಇವಿಎಂ)", "more-on-ethereum-protocol-nodes-and-clients": "ಎಥೆರಿಯಮ್ ನೋಡ್‌ಗಳು ಮತ್ತು ಕ್ಲೈಂಟ್‌ಗಳು", "ethereum-community-description": "ಎಥೆರಿಯಮ್‌ನ ಯಶಸ್ಸಿಗೆ ಅದರ ನಂಬಲಾಗದಷ್ಟು ಸಮರ್ಪಿತ ಸಮುದಾಯಕ್ಕೆ ಧನ್ಯವಾದಗಳು. ಸಾವಿರಾರು ಸ್ಪೂರ್ತಿದಾಯಕ ಮತ್ತು ಚಾಲಿತ ಜನರು ಎಥೆರಿಯಮ್ನ ದೃಷ್ಟಿಯನ್ನು ಮುಂದಕ್ಕೆ ತಳ್ಳಲು ಸಹಾಯ ಮಾಡುತ್ತಾರೆ, ಆದರೆ ಸ್ಟಾಕಿಂಗ್ ಮತ್ತು ಆಡಳಿತದ ಮೂಲಕ ನೆಟ್ವರ್ಕ್‌ಗೆ ಭದ್ರತೆಯನ್ನು ಒದಗಿಸುತ್ತಾರೆ. ಬನ್ನಿ ನಮ್ಮೊಂದಿಗೆ ಸೇರಿಕೊಳ್ಳಿ!", diff --git a/src/intl/kn/page-upgrades-index.json b/src/intl/kn/page-upgrades-index.json new file mode 100644 index 00000000000..21389c92e27 --- /dev/null +++ b/src/intl/kn/page-upgrades-index.json @@ -0,0 +1,186 @@ +{ + "consensus-client-besu-logo-alt": "ಬೆಸು ಲೋಗೋ", + "consensus-client-erigon-logo-alt": "ಎರಿಗಾನ್ ಲೋಗೋ", + "consensus-client-geth-logo-alt": "ಗೆಥ್ ಲೋಗೋ", + "consensus-client-lighthouse-logo-alt": "ಲೈಟ್ಹೌಸ್ ಲೋಗೋ", + "consensus-client-lodestar-logo-alt": "ಲೋಡೆಸ್ಟಾರ್ ಲೋಗೋ", + "consensus-client-nethermind-logo-alt": "ನೆದರ್‌ಮೈಂಡ್ ಲೋಗೋ", + "consensus-client-nimbus-logo-alt": "ನಿಂಬಸ್ ಲೋಗೋ", + "consensus-client-prysm-logo-alt": "ಪ್ರಿಸ್ಮ್ ಲೋಗೋ", + "consensus-client-teku-logo-alt": "ಟೆಕು ಲೋಗೋ", + "page-upgrades-answer-1": "ಬೆಕನ್ ಚೈನ್ ಅನ್ನು ದಿ ಮರ್ಜ್ ನಲ್ಲಿ ಎಥೆರಿಯಮ್ ಮೇನ್ ನೆಟ್ ಅನ್ನು ಮೇಲ್ದರ್ಜೆಗೇರಿಸುವ ಸಾಧನವಾಗಿ ಬಳಸಲಾಯಿತು.", + "page-upgrades-answer-2": "ದಿ ಮರ್ಜದೊಂದಿಗೆ, ಎಥೆರಿಯಮ್ ಹೊಸ ಪ್ರೂಫ್-ಆಫ್-ಸ್ಟೇಕ್ ಆಧಾರಿತ ಕಾನ್ಸೆನ್ಸಸ್‌ ಲೇಯರ್ಗಾಗಿ ಪ್ರೂಫ್-ಆಫ್-ವರ್ಕ್ ಅನ್ನು ವಿನಿಮಯ ಮಾಡಿಕೊಳ್ಳುವ ತನ್ನ ಅತ್ಯಂತ ಗಣನೀಯ ನವೀಕರಣವನ್ನು ಹೊಂದಿತ್ತು.", + "page-upgrades-answer-4": "ಬೆಕನ್ ಚೈನ್ ಅನ್ನು ಇಂದು ಎಥೆರಿಯಮ್ ಬಳಸುವ ಪ್ರೂಫ್-ಆಫ್-ಸ್ಟೇಕ್ ಆಧಾರಿತ ಕಾನ್ಸೆನ್ಸಸ್‌ ಅನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸಲು ಬಳಸಲಾಯಿತು. ಇದನ್ನು ಎಥೆರಿಯಮ್ ಮೈನ್ನೆಟ್ಗೆ ಪ್ರತ್ಯೇಕವಾಗಿ ನಡೆಸಲಾಗುತ್ತಿತ್ತು, ಆದ್ದರಿಂದ ಅಭಿವರ್ಧಕರು ನೈಜ ಚಟುವಟಿಕೆಯನ್ನು ಸಂಘಟಿಸಲು ಬಳಸುವ ಮೊದಲು ಕಾನ್ಸೆನ್ಸಸ್‌ ಕಾರ್ಯವಿಧಾನವನ್ನು ಪ್ರತ್ಯೇಕವಾಗಿ ಗಮನಿಸಬಹುದು.", + "page-upgrade-article-author-status": "ಸ್ಥಿತಿ", + "page-upgrade-article-author-ethmerge": "ಎಥ್ಮರ್ಜ್", + "page-upgrade-article-author-consensys": "ಕನ್ಸೆನ್ಸಿಸ್", + "page-upgrade-article-author-delphi-digital": "ಡೆಲ್ಫಿ ಡಿಜಿಟಲ್", + "page-upgrade-article-author-eip-4844": "ವಿಟಾಲಿಕ್ ಬುಟೆರಿನ್, ಡ್ಯಾಂಕ್ರಾಡ್ ಫೀಸ್ಟ್, ಡೈಡೆರಿಕ್ ಲೋರಕ್ಕರ್, ಜಾರ್ಜ್ ಕಡಿಯಾನಾಕಿಸ್, ಮ್ಯಾಟ್ ಗಾರ್ನೆಟ್, ಮೊಫಿ ತೈವೊ", + "page-upgrade-article-author-ethereum-foundation": "ಎಥೆರಿಯಮ್ ಫೌಂಡೇಶನ್", + "page-upgrade-article-author-vitalik-buterin": "ವಿಟಾಲಿಕ್ ಬುಟೆರಿನ್", + "page-upgrade-article-author-ethos-dev": "ಎಥೋಸ್. ಡೇವ್‌", + "page-upgrade-article-title-two-point-oh": "ಟೂ ಪಾಯಿಂಟ್ ಓಹ್: ದಿ ಬೀಕನ್ ಚೈನ್", + "page-upgrade-article-title-beacon-chain-explainer": "ನೀವು ಮೊದಲು ಓದಬೇಕಾದ ಬೀಕನ್ ಚೈನ್ ಎಥೆರಿಯಮ್ 2 ಎಕ್ಸ್ಪ್ಲೇನರ್‌", + "page-upgrade-article-title-sharding-consensus": "ಶಾರ್ಡಿಂಗ್‌ ಕಾನ್ಸೆನ್ಸಸ್‌", + "page-upgrade-article-title-sharding-is-great": "ಶಾರ್ಡಿಂಗ್ ಏಕೆ ಉತ್ತಮವಾಗಿದೆಃ ತಾಂತ್ರಿಕ ಗುಣಲಕ್ಷಣಗಳನ್ನು ನಾಶಪಡಿಸುವುದು", + "page-upgrade-article-title-rollup-roadmap": "ರೋಲ್ ಅಪ್ ಕೇಂದ್ರಿತ ಮಾರ್ಗಸೂಚಿ", + "page-upgrade-article-title-hitchhikers-guide-to-ethereum": "ಇಥಿರಿಯಮ್‌ಗೆ ಹಿಚ್‌ಹೈಕರ್‌ನ ಮಾರ್ಗದರ್ಶಿ", + "page-upgrade-article-title-eip-4844": "EIP-4844: ಶಾರ್ಡ್ ಬ್ಲಾಬ್ ಟ್ರಾನ್ಸಾಕ್ಷನ್ಸ್ (ಪ್ರೊಟೊ-ಡ್ಯಾನ್‌ಶಾರ್ಡಿಂಗ್)", + "page-upgrade-article-title-proto-danksharding-faq": "ಪ್ರೊಟೊ-ಡ್ಯಾನ್‌ಶಾರ್ಡಿಂಗ್ FAQ", + "page-upgrade-article-title-sharding-das": "ಶಾರ್ಡಿಂಗ್ ಮತ್ತು ಡೇಟಾ ಲಭ್ಯತೆ ಸ್ಯಾಂಪ್ಲಿಂಗ್ (ಡಿಎಎಸ್) ವಿವರಣೆ", + "page-upgrade-article-title-ethmerge": "ಎಥ್ಮರ್ಜ್", + "page-upgrade-article-title-merge-is-coming": "ದಿ ಮರ್ಜ ಬರುತ್ತಿದೆ", + "page-upgrade-article-title-state-of-the-merge": "ದಿ ಮರ್ಜಿನ ಸ್ಥಿತಿ: 2022 ರಲ್ಲಿ ಪ್ರೂಫ್‌ ಆಫ್‌ ಸ್ಟೇಕ್ಗೆ ಎಥೆರಿಯಮ್ ನ ವಿಲೀನದ ಕುರಿತಾದ ನವೀಕರಣ", + "page-upgrade-article-title-ropsten-merge-testnet": "ರೋಪ್ಸ್ಟನ್ ಮರ್ಜ ಟೆಸ್ಟ್ ಅನ್ನು ಘೋಷಿಸಲಾಗುತ್ತಿದೆ", + "page-upgrade-article-title-execution-layer-specs": "ಎಕ್ಸಿಕ್ಯೂಶನ್ ಲೇಯರ್ ಸ್ಪೆಕ್ಸ್", + "page-upgrade-article-title-consensus-layer-specs": "ಕಾನ್ಸೆನ್ಸಸ್‌ ಲೇಯರ್‌ ಸ್ಪೆಕ್ಸ್‌", + "page-upgrade-article-title-engine-api-specs": "ಎಂಜಿನ್ API ಸ್ಪೆಕ್ಸ್", + "page-upgrades-beacon-chain-date": "ದಿ ಬೀಕನ್ ಚೈನ್ ಡಿಸೆಂಬರ್ 1, 2020 ರಂದು ನೇರ ಪ್ರಸಾರವಾಯಿತು", + "page-upgrades-beacon-chain-desc": "ದಿ ಬೀಕನ್ ಚೈನವು ಎಥೆರಿಯಂಗೆ ಸ್ಟಾಕಿಂಗ್ ಅನ್ನು ತಂದಿತು ಮತ್ತು ಭವಿಷ್ಯದ ನವೀಕರಣಗಳಿಗೆ ಅಡಿಪಾಯ ಹಾಕಿತು. ಇದು ಹೊಸ ಪ್ರೂಫ್-ಆಫ್-ಸ್ಟೇಕ್ ಎಥೆರಿಯಮ್ ಅನ್ನು ಸಂಯೋಜಿಸುತ್ತದೆ.", + "page-upgrades-beacon-chain-estimate": "ದಿ ಬೀಕನ್ ಚೈನ್ ಲೈವ್ ಆಗಿದೆ", + "page-upgrades-beacon-chain-title": "ಬೀಕನ್ ಚೈನ್", + "page-upgrades-bug-bounty": "ಬಗ್ ಬೌಂಟಿ ಪ್ರೋಗ್ರಾಂ ಅನ್ನು ವೀಕ್ಷಿಸಿ", + "page-upgrades-clients": "ಒಮ್ಮತದ ಗ್ರಾಹಕರನ್ನು ಪರಿಶೀಲಿಸಿ (ಹಿಂದೆ 'ಎಥ್2' ಕ್ಲೈಂಟ್ಗಳು ಎಂದು ಕರೆಯಲಾಗುತ್ತಿತ್ತು)", + "page-upgrades-dive": "ದೃಷ್ಟಿಯಲ್ಲಿ ಮುಳುಗಿ", + "page-upgrades-dive-desc": "ನಾವು ಎಥೆರಿಯಮ್ ಅನ್ನು ಹೆಚ್ಚು ಸ್ಕೇಲೆಬಲ್, ಸುರಕ್ಷಿತ ಮತ್ತು ಸುಸ್ಥಿರವಾಗಿಸುವುದು ಹೇಗೆ? ವಿಕೇಂದ್ರೀಕರಣದ ಎಥೆರಿಯಮ್ನ ಪ್ರಮುಖ ನೀತಿಯನ್ನು ಉಳಿಸಿಕೊಳ್ಳುವಾಗ.", + "page-upgrades-merge-answer-1": "ಸೆಪ್ಟೆಂಬರ್ 15,2022 ರಂದು ಎಥೆರಿಯಮ್ ಪ್ರೂಫ್-ಆಫ್-ಸ್ಟೇಕ್ ಕಾನ್ಸೆನ್ಸಸ್ಗೆ ಪರಿವರ್ತನೆಯಾದಾಗ ದಿ ಮರ್ಜ. ದಿ ಬೀಕನ್ ಚೈನ್ ಮೈನ್ನೆಟ್ನೊಂದಿಗೆ ವಿಲೀನಗೊಂಡು ಅಧಿಕೃತವಾಗಿ ಎಥೆರಿಯಂನಲ್ಲಿ ಪ್ರೂಫ್-ಆಫ್-ವರ್ಕ್ ಅನ್ನು ಅಸಮ್ಮತಿಗೊಳಿಸಿತು ಮತ್ತು ಎಥೆರಿಯಮ್ನ ಶಕ್ತಿಯ ಬಳಕೆಯನ್ನು ~ 99.95% ರಷ್ಟು ಕಡಿಮೆ ಮಾಡಿತು.", + "page-upgrades-merge-btn": "ಮರ್ಜ್ ಬಗ್ಗೆ ಇನ್ನಷ್ಟು", + "page-upgrades-merge-desc": "ಮೈನೆಟ್ ಎಥೆರಿಯಮ್ ಪ್ರೂಫ್-ಆಫ್-ಸ್ಟೇಕ್ ಬೀಕನ್ ಚೈನ್ನೊಂದಿಗೆ ವಿಲೀನಗೊಂಡು ಇದು ಶಕ್ತಿ-ತೀವ್ರ ಗಣಿಗಾರಿಕೆಯ ಅಂತ್ಯವನ್ನು ಹಾಡಿತು.", + "page-upgrades-merge-estimate": "ದಿ ಮರ್ಜ ಲೈವ್ ಆಗಿದೆ", + "page-upgrades-merge-mainnet": "ಮೈನ್ ನೆಟ್ ಎಂದರೇನು?", + "page-upgrades-eth-blog": "ethereum.org blog", + "page-upgrades-explore-btn": "ನವೀಕರಣಗಳನ್ನು ಅನ್ವೇಷಿಸಿ", + "page-upgrades-get-involved-2": "ತೊಡಗಿಸಿಕೊಳ್ಳಿ", + "page-upgrades-head-to-ethresearch": "Ethresear.ch ಗೆ ಹೋಗಿ", + "page-upgrades-help": "ಎಥೆರಿಯಮ್ ನವೀಕರಣಗಳಿಗೆ ಸಹಾಯ ಮಾಡಲು ಬಯಸುವಿರಾ?", + "page-upgrades-help-desc": "ಎಥೆರಿಯಮ್ ನವೀಕರಣಗಳನ್ನು ಪರಿಶೀಲಿಸಲು, ಪರೀಕ್ಷೆಗೆ ಸಹಾಯ ಮಾಡಲು ಮತ್ತು ಬಹುಮಾನಗಳನ್ನು ಗಳಿಸಲು ಸಾಕಷ್ಟು ಅವಕಾಶಗಳಿವೆ.", + "page-upgrades-index-staking": "ಇಲ್ಲಿ ಸ್ಟಾಕಿಂಗ್ ಇದೆ", + "page-upgrades-index-staking-desc": "ಎಥೆರಿಯಮ್ ಅಪ್ಗ್ರೇಡ್ಗಳಿಗೆ ಪ್ರಮುಖವಾದುದು ಸ್ಟೇಕಿಂಗ್ನ ಪರಿಚಯವಾಗಿದೆ. ಎಥೆರಿಯಮ್ ಜಾಲಬಂಧವನ್ನು ಭದ್ರಪಡಿಸಿಕೊಳ್ಳಲು ನೀವು ನಿಮ್ಮ ಇ. ಟಿ. ಎಚ್. ಅನ್ನು ಬಳಸಲು ಬಯಸಿದರೆ, ನೀವು ಈ ಹಂತಗಳನ್ನು ಅನುಸರಿಸುತ್ತೀರಿ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ.", + "page-upgrades-index-staking-learn": "ಸ್ಟೇಕಿಂಗ್ ಬಗ್ಗೆ ತಿಳಿಯಿರಿ", + "page-upgrades-index-staking-learn-desc": "ಬೀಕನ್ ಚೈನ್ ಎಥೆರಿಯಮ್‌ಗೆ ಸ್ಟಾಕಿಂಗ್ ಅನ್ನು ತಂದಿತು. ನೀವು ETH ಹೊಂದಿದ್ದರೆ, ನೀವು ನೆಟ್‌ವರ್ಕ್ ಅನ್ನು ಸುರಕ್ಷಿತಗೊಳಿಸುವ ಮೂಲಕ ಸಾರ್ವಜನಿಕ ಒಳಿತನ್ನು ಮಾಡಬಹುದು ಮತ್ತು ಪ್ರಕ್ರಿಯೆಯಲ್ಲಿ ಹೆಚ್ಚಿನ ETH ಗಳಿಸಬಹುದು.", + "page-upgrades-index-staking-step-1": "1. ಲಾಂಚ್‌ಪ್ಯಾಡ್‌ನೊಂದಿಗೆ ಸೆಟಪ್ ಮಾಡಿ", + "page-upgrades-index-staking-step-1-btn": "ಸ್ಟೇಕಿಂಗ್ ಲಾಂಚ್‌ಪ್ಯಾಡ್‌ಗೆ ಭೇಟಿ ನೀಡಿ", + "page-upgrades-index-staking-step-1-desc": "Ethereum ನಲ್ಲಿ ಪಣತೊಡಲು ನೀವು ಲಾಂಚ್‌ಪ್ಯಾಡ್ ಅನ್ನು ಬಳಸಬೇಕಾಗುತ್ತದೆ - ಇದು ಪ್ರಕ್ರಿಯೆಯ ಮೂಲಕ ನಿಮ್ಮನ್ನು ಕರೆದೊಯ್ಯುತ್ತದೆ.", + "page-upgrades-index-staking-step-2": "2. ಸ್ಟಾಕಿಂಗ್ ವಿಳಾಸವನ್ನು ದೃಢೀಕರಿಸಿ", + "page-upgrades-index-staking-step-2-btn": "ಠೇವಣಿ ಒಪ್ಪಂದದ ವಿಳಾಸವನ್ನು ದೃಢೀಕರಿಸಿ", + "page-upgrades-index-staking-step-2-desc": "ನಿಮ್ಮ ETH ಅನ್ನು ಪಣಕ್ಕಿಡುವ ಮೊದಲು, ನೀವು ಸರಿಯಾದ ವಿಳಾಸವನ್ನು ಹೊಂದಿದ್ದೀರಾ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ. ಇದನ್ನು ಮಾಡುವ ಮೊದಲು ನೀವು ಲಾಂಚ್‌ಪ್ಯಾಡ್ ಮೂಲಕ ಹೋಗಿರಬೇಕು.", + "page-upgrades-meta-desc": "Ethereum ಅಪ್‌ಗ್ರೇಡ್‌ಗಳ ಅವಲೋಕನ ಮತ್ತು ಅವರು ವಾಸ್ತವವನ್ನು ಮಾಡಲು ಆಶಿಸುವ ದೃಷ್ಟಿಕೋನ.", + "page-upgrades-meta-title": "Ethereum ಅಪ್‌ಗ್ರೇಡ್‌ಗಳು (ಹಿಂದೆ 'Eth2')", + "page-upgrades-proof-stake-link": "ಪಾಲನ್ನು ಸಾಬೀತುಪಡಿಸುವ ಕುರಿತು ಇನ್ನಷ್ಟು", + "page-upgrades-question-1-title": "ನವೀಕರಣಗಳು ಯಾವಾಗ ಬರುತ್ತವೆ?", + "page-upgrades-question-1-desc": "ಎಥೆರಿಯಮ್ ಅನ್ನು ಹಂತಹಂತವಾಗಿ ಅಪ್‌ಗ್ರೇಡ್ ಮಾಡಲಾಗುತ್ತಿದೆ; ನವೀಕರಣಗಳು ವಿಭಿನ್ನ ವಿತರಣಾ ದಿನಾಂಕಗಳೊಂದಿಗೆ ಭಿನ್ನವಾಗಿವೆ.", + "page-upgrades-question-2-title": "ಬೀಕನ್ ಚೈನ್ ಪ್ರತ್ಯೇಕ ಬ್ಲಾಕ್‌ಚೈನ್ ಆಗಿದೆಯೇ?", + "page-upgrades-question-2-desc": "ಹೌದು. ಬೀಕನ್ ಚೈನ್ ಎಂಬುದು ಎಥೆರಿಯಮ್‌ನ ಮೇನ್‌ನೆಟ್ ಅನ್ನು ಅಪ್‌ಗ್ರೇಡ್ ಮಾಡಲು ಬಳಸಲಾಗುವ ಸಮಾನಾಂತರ ಪ್ರೂಫ್-ಆಫ್-ಸ್ಟೇಕ್ ಬ್ಲಾಕ್‌ಚೈನ್‌ಗೆ ನೀಡಲಾದ ಹೆಸರಾಗಿದೆ. ಈಗ ಒಂದೇ ಒಂದು ಬ್ಲಾಕ್‌ಚೈನ್ ಇದೆ, ಇದು ಮೂಲ ಎಥೆರಿಯಮ್ ಬ್ಲಾಕ್‌ಚೈನ್ ಮತ್ತು ಬೀಕನ್ ಚೈನ್ ಅನ್ನು ಒಟ್ಟಿಗೆ ವಿಲೀನಗೊಳಿಸುವ ಮೂಲಕ ರೂಪುಗೊಂಡಿದೆ.", + "page-upgrades-question-3-answer-2a": "ವಿಲೀನವು dapp ಡೆವಲಪರ್‌ಗಳ ಮೇಲೆ ಕನಿಷ್ಠ ಪರಿಣಾಮ ಬೀರಿತು - ಅವರು ಇನ್ನೂ ಅದೇ ರೀತಿಯಲ್ಲಿ Ethereum ನೊಂದಿಗೆ ಸಂವಹನ ನಡೆಸುತ್ತಾರೆ.", + "page-upgrades-question-3-answer-2a-link": "ವಿಲೀನ ಮತ್ತು dapp ಡೆವಲಪರ್‌ಗಳು", + "page-upgrades-question-3-answer-2b": "ಹಂಚಿಕೆ ಯೋಜನೆಗಳನ್ನು ಇನ್ನೂ ಅಭಿವೃದ್ಧಿಪಡಿಸಲಾಗುತ್ತಿದೆ, ಆದರೆ ಲೇಯರ್ 2 ರೋಲ್‌ಅಪ್‌ಗಳನ್ನು ಗಮನದಲ್ಲಿಟ್ಟುಕೊಂಡು ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗುತ್ತದೆ.", + "page-upgrades-layer-2-rollups": "ಲೇಯರ್ 2 ರೋಲ್‌ಅಪ್‌ಗಳ ಕುರಿತು ಇನ್ನಷ್ಟು", + "page-upgrades-question-3-answer-3-link": "ಭೇಟಿ ನೀಡಿ ethresear.ch", + "page-upgrades-question-3-desc": "ನವೀಕರಣಗಳಿಗೆ ಸಿದ್ಧರಾಗಲು ನೀವು ಈಗಲೇ ಏನನ್ನೂ ಮಾಡಬೇಕಾಗಿಲ್ಲ.", + "page-upgrades-question-3-title": "ಅಪ್‌ಗ್ರೇಡ್‌ಗಳಿಗೆ ನಾನು ಹೇಗೆ ತಯಾರಿ ನಡೆಸುವುದು?", + "page-upgrades-question-4-answer-1": "ನೀವು ಇಂದು ವಹಿವಾಟನ್ನು ಕಳುಹಿಸಿದಾಗಲೆಲ್ಲಾ ಅಥವಾ ಡ್ಯಾಪ್ ಅನ್ನು ಬಳಸಿದಾಗಲೆಲ್ಲಾ, ನೀವು ಎಕ್ಸಿಕ್ಯೂಶನ್ ಲೇಯರ್ ಅನ್ನು ಬಳಸುತ್ತಿದ್ದೀರಿ, ಇದನ್ನು ಮೇನ್‌ನೆಟ್ ಎಂದೂ ಕರೆಯುತ್ತಾರೆ.", + "page-upgrades-question-4-answer-3": "ದಿ ವಿಲೀನದ ನಂತರ, ವ್ಯಾಲಿಡೇಟರ್‌ಗಳು ಸಂಪೂರ್ಣ ನೆಟ್‌ವರ್ಕ್ ಅನ್ನು ಪ್ರೂಫ್-ಆಫ್-ಸ್ಟೇಕ್ ಮೂಲಕ ಸುರಕ್ಷಿತಗೊಳಿಸುತ್ತಾರೆ.", + "page-upgrades-question-4-answer-6": "ಯಾರಾದರೂ ತಮ್ಮ ETH ಅನ್ನು ಪಣಕ್ಕಿಡುವ ಮೂಲಕ ವ್ಯಾಲಿಡೇಟರ್ ಆಗಬಹುದು.", + "page-upgrades-question-4-answer-7": "ಸ್ಟೇಕಿಂಗ್ ಕುರಿತು ಇನ್ನಷ್ಟು", + "page-upgrades-question-4-title": "ಕಾರ್ಯಗತಗೊಳಿಸುವ ಪದರ ಎಂದರೇನು?", + "page-upgrades-question-4-desc": "ದಿ ವಿಲೀನಕ್ಕೂ ಮೊದಲು, ಎಥೆರಿಯಮ್ ಬ್ಲಾಕ್‌ಚೈನ್ ಅನ್ನು ಕೆಲವೊಮ್ಮೆ 'Eth1' ಎಂದು ಕರೆಯಲಾಗುತ್ತಿತ್ತು. 'ಎಕ್ಸಿಕ್ಯೂಶನ್ ಲೇಯರ್' ಪರವಾಗಿ ಈ ಪದವನ್ನು ಹಂತಹಂತವಾಗಿ ತೆಗೆದುಹಾಕಲಾಯಿತು.", + "page-upgrades-question-5-answer-1": "ನೆಟ್‌ವರ್ಕ್‌ನಲ್ಲಿ ವ್ಯಾಲಿಡೇಟರ್ ಆಗಲು, ನೀವು 32 ETH ಪಣತೊಡಬೇಕಾಗುತ್ತದೆ. ನಿಮ್ಮ ಬಳಿ ಅಷ್ಟು ಇಲ್ಲದಿದ್ದರೆ, ಅಥವಾ ಅಷ್ಟು ಪಣತೊಡಲು ಇಚ್ಛಿಸದಿದ್ದರೆ, ನೀವು ಸ್ಟಾಕಿಂಗ್ ಪೂಲ್‌ಗಳಿಗೆ ಸೇರಬಹುದು. ಈ ಪೂಲ್‌ಗಳು ನಿಮಗೆ ಕಡಿಮೆ ಪಣತೊಡಲು ಮತ್ತು ಒಟ್ಟು ಪ್ರತಿಫಲಗಳ ಒಂದು ಭಾಗವನ್ನು ಗಳಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ.", + "page-upgrades-question-5-desc": "ನೀವು ಸ್ಟೇಕಿಂಗ್ ಲಾಂಚ್‌ಪ್ಯಾಡ್ ಅನ್ನು ಬಳಸಬೇಕಾಗುತ್ತದೆ ಅಥವಾ ಸ್ಟೇಕಿಂಗ್ ಪೂಲ್‌ಗೆ ಸೇರಬೇಕಾಗುತ್ತದೆ.", + "page-upgrades-question-5-title": "ನಾನು ಹೇಗೆ ಪಣತೊಡುವುದು?", + "page-upgrades-question-6-answer-3": "ಎಥೆರಿಯಮ್ ಫೌಂಡೇಶನ್‌ನ ಡ್ಯಾನಿ ರಯಾನ್ ನಿಯಮಿತವಾಗಿ ಸಮುದಾಯವನ್ನು ನವೀಕರಿಸುತ್ತಾರೆ:", + "page-upgrades-question-6-answer-4": "ಕಾನ್ಸೆನ್‌ಸಿಸ್‌ನ ಬೆನ್ ಎಡ್ಜಿಂಗ್ಟನ್ ಅವರು ಎಥೆರಿಯಮ್ ಅಪ್‌ಗ್ರೇಡ್‌ಗಳ ಕುರಿತು ಸಾಪ್ತಾಹಿಕ ಸುದ್ದಿಪತ್ರವನ್ನು ಹೊಂದಿದ್ದಾರೆ:", + "page-upgrades-question-6-answer-5": "ನೀವು ethresear.ch ನಲ್ಲಿ Ethereum ಸಂಶೋಧನೆ ಮತ್ತು ಅಭಿವೃದ್ಧಿಯ ಚರ್ಚೆಯಲ್ಲಿ ಭಾಗವಹಿಸಬಹುದು.", + "page-upgrades-question-6-title": "ನನ್ನ ಡ್ಯಾಪ್ ಜೊತೆ ನಾನು ಏನು ಮಾಡಬೇಕು?", + "page-upgrades-question-6-desc": "ಡಿಎಪಿಪಿ ಡೆವಲಪರ್‌ಗಳ ಮೇಲೆ ಕನಿಷ್ಠ ಪರಿಣಾಮ ಬೀರುವಂತೆ ವಿಲೀನವನ್ನು ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ, ಆದರೂ ಗಮನಿಸಬೇಕಾದ ಕೆಲವು ಸಣ್ಣ ಬದಲಾವಣೆಗಳಿವೆ.", + "page-upgrades-question-6-answer-1": "ಪೂರ್ವ-ವಿಲೀನ ಎಥೆರಿಯಮ್‌ನೊಂದಿಗೆ ಪರಿಚಿತವಾಗಿರುವ Dapp ಡೆವಲಪರ್‌ಗಳು ಕೆಲವು ಬದಲಾವಣೆಗಳ ಬಗ್ಗೆ ತಿಳಿದಿರಬೇಕು. ಈ ಬದಲಾವಣೆಗಳಲ್ಲಿ ಬ್ಲಾಕ್ ರಚನೆ ಮತ್ತು ಸಮಯ, ಕೆಲವು ಆಪ್‌ಕೋಡ್ ಬದಲಾವಣೆಗಳು, ಆನ್‌ಚೈನ್ ಯಾದೃಚ್ಛಿಕತೆಯ ಮೂಲಗಳು ಮತ್ತು ಯುಗ ಅಂತಿಮೀಕರಣದ ಪರಿಕಲ್ಪನೆ ಸೇರಿವೆ.", + "page-upgrades-question-6-answer-1-link": "ವಿಲೀನವು ಎಥೆರಿಯಮ್‌ನ ಅಪ್ಲಿಕೇಶನ್ ಪದರದ ಮೇಲೆ ಹೇಗೆ ಪರಿಣಾಮ ಬೀರಿತು", + "page-upgrades-question-6-answer-2": "ಅರ್ಜಿಗಳು ಬಹುತೇಕ ಸಂಪೂರ್ಣವಾಗಿ ಪರಿಣಾಮ ಬೀರಲಿಲ್ಲ.", + "page-upgrades-question-7-desc": "ಸಮುದಾಯದಾದ್ಯಂತದ ಅನೇಕ ವಿಭಿನ್ನ ತಂಡಗಳು ವಿವಿಧ ಎಥೆರಿಯಮ್ ನವೀಕರಣಗಳಲ್ಲಿ ಕೆಲಸ ಮಾಡುತ್ತಿವೆ.", + "page-upgrades-question-7-lighthouse-lang": "(ತುಕ್ಕು ಅನುಷ್ಠಾನ)", + "page-upgrades-question-7-lodestar-lang": "(ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಅನುಷ್ಠಾನ)", + "page-upgrades-question-7-nimbus-lang": "(ನಿಮ್ ಅನುಷ್ಠಾನ)", + "page-upgrades-question-7-prysm-lang": "(ಅನುಷ್ಠಾನಕ್ಕೆ ಹೋಗಿ)", + "page-upgrades-question-7-teams": "Ethereum ಒಮ್ಮತದ ಕ್ಲೈಂಟ್ ತಂಡಗಳು:", + "page-upgrades-question-7-teku-lang": "(ಜಾವಾ ಅನುಷ್ಠಾನ)", + "page-upgrades-question-7-title": "ಎಥೆರಿಯಮ್ ನವೀಕರಣಗಳನ್ನು ಯಾರು ನಿರ್ಮಿಸುತ್ತಿದ್ದಾರೆ?", + "page-upgrades-question-7-clients": "Ethereum ಕ್ಲೈಂಟ್‌ಗಳ ಬಗ್ಗೆ ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ", + "page-upgrades-question-8-answer-1": "ಎಥೆರಿಯಮ್ ನವೀಕರಣಗಳು ಸುರಕ್ಷತೆಯನ್ನು ಕಾಪಾಡಿಕೊಳ್ಳುವಾಗ ಮತ್ತು ಸುಸ್ಥಿರತೆಯನ್ನು ಹೆಚ್ಚಿಸುವಾಗ ವಿಕೇಂದ್ರೀಕೃತ ರೀತಿಯಲ್ಲಿ ಎಥೆರಿಯಮ್ ಅನ್ನು ಹೆಚ್ಚಿಸಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ.", + "page-upgrades-question-8-answer-2": "ಬಹುಶಃ ಅತ್ಯಂತ ಸ್ಪಷ್ಟವಾದ ಸಮಸ್ಯೆಯೆಂದರೆ ಎಥೆರಿಯಮ್ ಪ್ರತಿ ಸೆಕೆಂಡಿಗೆ 15-45 ಕ್ಕಿಂತ ಹೆಚ್ಚು ವಹಿವಾಟುಗಳನ್ನು ನಿರ್ವಹಿಸುವ ಅಗತ್ಯವಿದೆ. ಆದರೆ ನವೀಕರಣಗಳು ಇಂದು ಎಥೆರಿಯಮ್‌ನೊಂದಿಗೆ ಕೆಲವು ಇತರ ಸಮಸ್ಯೆಗಳನ್ನು ಸಹ ಪರಿಹರಿಸುತ್ತವೆ.", + "page-upgrades-question-8-answer-3": "ಹೆಚ್ಚಿನ ಬೇಡಿಕೆಯ ಸಮಯದಲ್ಲಿ ನೆಟ್‌ವರ್ಕ್ ಬಳಸಲು ದುಬಾರಿಯಾಗುತ್ತದೆ. ನೆಟ್‌ವರ್ಕ್‌ನಲ್ಲಿರುವ ನೋಡ್‌ಗಳು ಎಥೆರಿಯಮ್‌ನ ಗಾತ್ರ ಮತ್ತು ಅವುಗಳ ಕಂಪ್ಯೂಟರ್‌ಗಳು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಬೇಕಾದ ಡೇಟಾದ ಪ್ರಮಾಣದೊಂದಿಗೆ ಹೆಣಗಾಡುತ್ತಿವೆ. ಎಥೆರಿಯಮ್ ಭದ್ರತೆ ಮತ್ತು ವಿಕೇಂದ್ರೀಕರಣವನ್ನು ಆಧಾರವಾಗಿಟ್ಟುಕೊಂಡ ಮೂಲ ಅಲ್ಗಾರಿದಮ್ ಶಕ್ತಿಯುತವಾಗಿತ್ತು ಮತ್ತು ಅದನ್ನು ಹಸಿರುಗೊಳಿಸಬೇಕಾಗಿತ್ತು.", + "page-upgrades-question-8-answer-4": "2015 ರಿಂದಲೂ ಎಥೆರಿಯಮ್ ಮಾರ್ಗಸೂಚಿಯಲ್ಲಿ ಬಹಳಷ್ಟು ಬದಲಾವಣೆಗಳಾಗಿವೆ. ಆದರೆ ಪ್ರಸ್ತುತ ಪರಿಸ್ಥಿತಿಗಳು ನವೀಕರಣದ ಅಗತ್ಯವನ್ನು ಇನ್ನಷ್ಟು ಹೆಚ್ಚಿಸುತ್ತಿವೆ.", + "page-upgrades-question-8-answer-6": "ಎಥೆರಿಯಮ್ ದೃಷ್ಟಿಯನ್ನು ಅನ್ವೇಷಿಸಿ", + "page-upgrades-question-8-desc": "ಇಂದು ನಾವು ಬಳಸುವ ಎಥೆರಿಯಮ್ ಅಂತಿಮ ಬಳಕೆದಾರರಿಗೆ ಮತ್ತು ನೆಟ್ವರ್ಕ್ ಭಾಗವಹಿಸುವವರಿಗೆ ಉತ್ತಮ ಅನುಭವವನ್ನು ನೀಡುವ ಅಗತ್ಯವಿದೆ.", + "page-upgrades-question-8-title": "ನವೀಕರಣಗಳು ಏಕೆ ಅಗತ್ಯ?", + "page-upgrades-question-9-answer-1": "ನೀವು ವಹಿಸಬಹುದಾದ ಅತ್ಯಂತ ಸಕ್ರಿಯ ಪಾತ್ರವೆಂದರೆ ನಿಮ್ಮ ಇ. ಟಿ. ಎಚ್. ಅನ್ನು ತೊಡಗಿಸಿಕೊಳ್ಳುವುದು.", + "page-upgrades-question-9-answer-2": "ಕ್ಲೈಂಟ್ ವೈವಿಧ್ಯತೆಯನ್ನು ಸುಧಾರಿಸಲು ಸಹಾಯ ಮಾಡಲು ನೀವು ಎರಡನೇ ಕ್ಲೈಂಟ್ ಅನ್ನು ಸಹ ನಡೆಸಲು ಬಯಸಬಹುದು.", + "page-upgrades-question-9-answer-3": "ನೀವು ಹೆಚ್ಚು ತಾಂತ್ರಿಕವಾಗಿದ್ದರೆ, ಹೊಸ ಗ್ರಾಹಕರಲ್ಲಿ ದೋಷಗಳನ್ನು ಪತ್ತೆಹಚ್ಚಲು ನೀವು ಸಹಾಯ ಮಾಡಬಹುದು.", + "page-upgrades-question-9-answer-4": "ನೀವು ಎಥೆರಿಯಮ್ ಸಂಶೋಧಕರೊಂದಿಗಿನ ತಾಂತ್ರಿಕ ಚರ್ಚೆಗಳನ್ನೂ ಸಹ ethresear.ch ನಲ್ಲಿ ಪರಿಶೀಲಿಸಬಹುದು.", + "page-upgrades-question-9-desc": "ಕೊಡುಗೆ ನೀಡಲು ನೀವು ತಾಂತ್ರಿಕವಾಗಿರಬೇಕಾಗಿಲ್ಲ. ಈ ಸಮುದಾಯವು ಎಲ್ಲಾ ರೀತಿಯ ಕೌಶಲ್ಯ ಸಮೂಹಗಳಿಂದ ಕೊಡುಗೆಗಳನ್ನು ಹುಡುಕುತ್ತಿದೆ.", + "page-upgrades-question-9-stake-eth": "ETH ಸ್ಟೇಕ್ ಮಾಡಿ", + "page-upgrades-question-9-title": "ಎಥೆರಿಯಮ್ ನವೀಕರಣಗಳಿಗೆ ನಾನು ಹೇಗೆ ಕೊಡುಗೆ ನೀಡಬಹುದು?", + "page-upgrades-question-9-more": "ಎಥೆರಿಯಮ್ನೊಂದಿಗೆ ತೊಡಗಿಸಿಕೊಳ್ಳಲು ಹೆಚ್ಚು ಸಾಮಾನ್ಯ ಮಾರ್ಗಗಳನ್ನು ಕಂಡುಕೊಳ್ಳಿ", + "page-upgrades-question-10-title": "'ಎಥ್2 ಹಂತಗಳು ಯಾವುವು?'", + "page-upgrades-question-10-desc": "ಇಲ್ಲಿ ಕೆಲವು ವಿಷಯಗಳು ಬದಲಾಗಿವೆ.", + "page-upgrades-question-10-answer-0": "'ಎಥ್2' ಎಂಬ ಪದವನ್ನು ಹಂತಹಂತವಾಗಿ ತೆಗೆದುಹಾಕಲಾಗುತ್ತಿದೆ, ಏಕೆಂದರೆ ಇದು ಒಂದೇ ಅಪ್ಗ್ರೇಡ್ ಅಥವಾ ಹೊಸ ನೆಟ್ವರ್ಕ್ ಅನ್ನು ಪ್ರತಿನಿಧಿಸುವುದಿಲ್ಲ. ಇದು ಹೆಚ್ಚು ನಿಖರವಾಗಿ ಅನೇಕ ನವೀಕರಣಗಳ ಒಂದು ಗುಂಪಾಗಿದ್ದು, ಎಥೆರಿಯಮ್ ಅನ್ನು ಹೆಚ್ಚು ಸ್ಕೇಲೆಬಲ್, ಸುರಕ್ಷಿತ ಮತ್ತು ಸುಸ್ಥಿರವಾಗಿಸಲು ಎಲ್ಲರೂ ತಮ್ಮ ಪಾತ್ರವನ್ನು ನಿರ್ವಹಿಸುತ್ತಾರೆ. ನಿಮಗೆ ತಿಳಿದಿರುವ ಮತ್ತು ಪ್ರೀತಿಸುವ ಜಾಲವನ್ನು ಸರಳವಾಗಿ ಎಥೆರಿಯಮ್ ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ.", + "page-upgrades-question-10-answer-1": "ತಾಂತ್ರಿಕ ಮಾರ್ಗಸೂಚಿಯ ವಿಷಯದಲ್ಲಿ ಹೆಚ್ಚು ಮಾತನಾಡಲು ನಾವು ಹಿಂಜರಿಯುತ್ತೇವೆ ಏಕೆಂದರೆ ಇದು ಸಾಫ್ಟ್ವೇರ್ ಆಗಿದೆಃ ವಿಷಯಗಳು ಬದಲಾಗಬಹುದು. ನೀವು ಫಲಿತಾಂಶಗಳ ಬಗ್ಗೆ ಓದಿದಾಗ ಏನಾಗುತ್ತಿದೆ ಎಂಬುದನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು ಸುಲಭ ಎಂದು ನಾವು ಭಾವಿಸುತ್ತೇವೆ.", + "page-upgrades-question-10-answer-1-link": "ನವೀಕರಣಗಳನ್ನು ವೀಕ್ಷಿಸಿ", + "page-upgrades-question-10-answer-2": "ಆದರೆ ನೀವು ಚರ್ಚೆಗಳನ್ನು ಅನುಸರಿಸಿದ್ದರೆ, ನವೀಕರಣಗಳು ತಾಂತ್ರಿಕ ಮಾರ್ಗಸೂಚಿಗಳಿಗೆ ಹೇಗೆ ಹೊಂದಿಕೊಳ್ಳುತ್ತವೆ ಮತ್ತು ಅವು ಹೇಗೆ ಬದಲಾಗುತ್ತಿವೆ ಎಂಬುದರ ಬಗ್ಗೆ ಇಲ್ಲಿ ಇವೆ.", + "page-upgrades-question-10-answer-3": "ಹಂತ 0 ದಿ ಬೀಕನ್ ಚೈನ್ ಅನ್ನು ನೇರ ಪ್ರಸಾರ ಮಾಡುವ ಕೆಲಸವನ್ನು ವಿವರಿಸಿದೆ.", + "page-upgrades-question-10-answer-5": "ಮೊದಲ ಹಂತವು ಮೂಲತಃ ಶಾರ್ಡ್ ಚೈನ್ಗಳನ್ನು ಅನುಷ್ಠಾನಗೊಳಿಸುವತ್ತ ಗಮನಹರಿಸಿತು, ಆದರೆ ಆದ್ಯತೆಯು ದಿ ಮರ್ಜ್ಗೆ ಸ್ಥಳಾಂತರಗೊಂಡಿತು, ಅದು ಸೆಪ್ಟೆಂಬರ್ 15,2022 ರಂದು ರವಾನೆಯಾಯಿತು.", + "page-upgrades-question-10-answer-6": "ಬೀಕನ್ ಚೈನ್ಗೆ ಮೈನೆಟ್ ಅನ್ನು ಕೊನೆಯ ಶಾರ್ಡ್ ಆಗಿ ಸೇರಿಸಿದಾಗ ಶಾರ್ಡ್ ಅನುಷ್ಠಾನಗಳನ್ನು ಅನುಸರಿಸಲು ಹಂತ 1.5 ಅನ್ನು ಮೂಲತಃ ಯೋಜಿಸಲಾಗಿತ್ತು. ಆದಾಗ್ಯೂ, ರೋಲ್ ಅಪ್ ತಂತ್ರಜ್ಞಾನವು ಮುಂದುವರೆದಂತೆ, ಎಥೆರಿಯಮ್ ಸಮುದಾಯವು ಬದಲಿಗೆ ಪ್ರೂಫ್-ಆಫ್-ವರ್ಕ್ನಿಂದ ಪರಿವರ್ತನೆಯನ್ನು ತ್ವರಿತಗೊಳಿಸಿತು.", + "page-upgrades-question-10-answer-7": "2ನೇ ಹಂತದ ಯೋಜನೆಗಳು ತೀವ್ರ ಸಂಶೋಧನೆ ಮತ್ತು ಚರ್ಚೆಯ ಕೇಂದ್ರಬಿಂದುವಾಗಿದೆ. ನಮ್ಮ ಹಿಂದಿರುವ ದಿ ಮರ್ಜ, ಮತ್ತು ಲೇಯರ್ 2 ಪರಿಹಾರಗಳಲ್ಲಿನ ಪ್ರಗತಿಗಳೊಂದಿಗೆ, ರೋಲ್ ಅಪ್ ದಕ್ಷತೆಯನ್ನು ಗರಿಷ್ಠಗೊಳಿಸಲು ಡೇಟಾ ಶಾರ್ಡಿಂಗ್ನ ಹೆಚ್ಚು ಸರಳೀಕೃತ ರೂಪವನ್ನು ಒದಗಿಸಲು ಗುರಿಗಳು ಬದಲಾಗಿವೆ. ಪ್ರಸ್ತುತ ಲೇಯರ್ 2 ಗಳು ವಹಿವಾಟಿನ ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆಯನ್ನು ಅಳೆಯುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುತ್ತವೆ, ಮತ್ತು ಶಾರ್ಡಿಂಗ್ ಈ ಡೇಟಾದ ಪುರಾವೆಗಳನ್ನು ಲೇಯರ್ 1 ರಲ್ಲಿ ಅಗ್ಗದ ಮತ್ತು ಸ್ಕೇಲೆಬಲ್ ರೀತಿಯಲ್ಲಿ ಸಂಗ್ರಹಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ.", + "page-upgrades-question-10-answer-8": "ರೋಲ್ ಅಪ್-ಕೇಂದ್ರಿತ ಮಾರ್ಗಸೂಚಿಯ ಬಗ್ಗೆ ಇನ್ನಷ್ಟು", + "page-upgrades-question-11-title": "ನಾನು ಎಥ್2 ಅನ್ನು ಖರೀದಿಸಬಹುದೇ?", + "page-upgrades-question-11-desc": "ಇಲ್ಲ. ಯಾವುದೇ ಎಥ್2 ಟೋಕನ್ ಇಲ್ಲ, ಮತ್ತು ವಿಲೀನದ ನಂತರ ನಿಮ್ಮ ಇ. ಟಿ. ಎಚ್ ಬದಲಾಗಲಿಲ್ಲ.", + "page-upgrades-question-11-answer-1": "ಇ. ಟಿ. ಎಚ್. ಹೊಂದಿರುವವರು ತಮ್ಮ ಇ. ಟಿ. ಎಚ್. ಅನ್ನು ವಿಲೀನ ಅಥವಾ ಇತರ ಯಾವುದೇ ಉನ್ನತೀಕರಣದ ನಂತರ 'ಇ. ಟಿ. ಎಚ್. 2' ಗೆ ಸ್ಥಳಾಂತರಿಸಬೇಕಾಗುತ್ತದೆ ಎಂಬ ಸಾಮಾನ್ಯ ತಪ್ಪು ಕಲ್ಪನೆ ಇ. ಟಿ. ಎಚ್. 2 ಮರುನಾಮಕರಣದ ಹಿಂದಿನ ಪ್ರೇರಕ ಶಕ್ತಿಗಳಲ್ಲಿ ಒಂದಾಗಿದೆ. ಇದು ನಿಜವಲ್ಲ ಮತ್ತು ಹಿಂದೆಂದೂ ಆಗಿರಲಿಲ್ಲ.", + "page-upgrades-question-11-answer-2": " ಈ ಗೊಂದಲವನ್ನು ಸಾಮಾನ್ಯವಾಗಿ ವಂಚಕರು ಬಳಸಿಕೊಳ್ಳುತ್ತಾರೆ.", + "page-upgrades-question3-answer-1": "ಇ. ಟಿ. ಎಚ್. ಹೊಂದಿರುವವರು ಏನನ್ನೂ ಮಾಡಬೇಕಾಗಿಲ್ಲ. ನಿಮ್ಮ ಇ. ಟಿ. ಎಚ್. ಅನ್ನು ಬದಲಾಯಿಸುವ ಅಥವಾ ಮೇಲ್ದರ್ಜೆಗೇರಿಸುವ ಅಗತ್ಯವಿಲ್ಲ. ನಿಮಗೆ ಬೇರೆ ರೀತಿಯಲ್ಲಿ ಹೇಳುವ ಹಗರಣಗಳು ಬಹುತೇಕ ಖಚಿತವಾಗಿರುತ್ತವೆ, ಆದ್ದರಿಂದ ಜಾಗರೂಕರಾಗಿರಿ.", + "page-upgrades-scalable": "ಹೆಚ್ಚು ಸ್ಕೇಲೆಬಲ್", + "page-upgrades-scalable-desc": "ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು ವೇಗವಾಗಿ ಮತ್ತು ಬಳಸಲು ಅಗ್ಗವಾಗಿಸಲು ಎಥೆರಿಯಮ್ ಸೆಕೆಂಡಿಗೆ 1000 ವಹಿವಾಟುಗಳನ್ನು ಬೆಂಬಲಿಸುವ ಅಗತ್ಯವಿದೆ.", + "page-upgrades-secure": "ಹೆಚ್ಚು ಸುರಕ್ಷಿತ", + "page-upgrades-secure-desc": "ಎಥೆರಿಯಮ್ ಹೆಚ್ಚು ಸುರಕ್ಷಿತವಾಗಿರಬೇಕು. ಎಥೆರಿಯಮ್ಅನ್ನು ಅಳವಡಿಸಿಕೊಳ್ಳುವುದು ಬೆಳೆದಂತೆ, ಎಲ್ಲಾ ರೀತಿಯ ದಾಳಿಯ ವಿರುದ್ಧ ಶಿಷ್ಟಾಚಾರವು ಹೆಚ್ಚು ಸುರಕ್ಷಿತವಾಗಬೇಕು.", + "page-upgrades-shard-date": "ಶಾರ್ಡಿಂಗ್ ಅನೇಕ ಹಂತಗಳಲ್ಲಿ ದಿ ಮರ್ಜ ಅನ್ನು ಅನುಸರಿಸುತ್ತದೆ, ಕೆಲವೊಮ್ಮೆ 2023-2024 ನಲ್ಲಿ.", + "page-upgrades-shard-desc": "ಡ್ಯಾಂಕ್ಸ್ಹಾರ್ಡಿಂಗ್ ಡೇಟಾವನ್ನು ಸಂಗ್ರಹಿಸುವ ಎಥೆರಿಯಮ್ನ ಸಾಮರ್ಥ್ಯವನ್ನು ವಿಸ್ತರಿಸುತ್ತದೆ ಮತ್ತು ಥ್ರೋಪುಟ್ ಅನ್ನು ಅಳೆಯಲು ಮತ್ತು ನೆಟ್ವರ್ಕ್ ಶುಲ್ಕವನ್ನು ಕಡಿಮೆ ಮಾಡಲು ಎಲ್ 2 ಗಳೊಂದಿಗೆ ಸಾಮರಸ್ಯದಿಂದ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ. ಪ್ರೋಟೊಡ್ಯಾಂಕ್ಸ್ಹಾರ್ಡಿಂಗ್ನಿಂದ ಪ್ರಾರಂಭಿಸಿ, ಅನೇಕ ಹಂತಗಳಲ್ಲಿ ಡ್ಯಾಂಕ್ಸ್ಹಾರ್ಡಿಂಗ್ ಅನ್ನು ಪ್ರಾರಂಭಿಸಲಾಗುವುದು.", + "page-upgrades-shard-estimate": "ಅಂದಾಜುಃ 2023-2024", + "page-upgrades-shard-title": "ಶಾರ್ಡಿಂಗ್", + "page-upgrades-stay-up-to-date": "ಅಪ್ ಟು ಡೇಟ್ ಆಗಿರಿ", + "page-upgrades-stay-up-to-date-desc": "ಎಥೆರಿಯಮ್ ನವೀಕರಣಗಳಲ್ಲಿ ಕೆಲಸ ಮಾಡುವ ಸಂಶೋಧಕರು ಮತ್ತು ಅಭಿವರ್ಧಕರಿಂದ ಇತ್ತೀಚಿನದನ್ನು ಪಡೆಯಿರಿ.", + "page-upgrades-sustainable-desc": "ಇತ್ತೀಚಿನವರೆಗೂ ಎಥೆರಿಯಮ್ ಶಕ್ತಿ-ತೀವ್ರವಾಗಿತ್ತು. ಪ್ರೂಫ್-ಆಫ್-ಸ್ಟೇಕ್ಗೆ ಪರಿವರ್ತನೆಯು ನೆಟ್ವರ್ಕ್ ಶಕ್ತಿಯ ಕಡಿತವನ್ನು 99.9% ಗೆ ತಂದಿತು.", + "page-upgrades-take-part": "ಸಂಶೋಧನೆಯಲ್ಲಿ ಭಾಗವಹಿಸಿ", + "page-upgrades-take-part-desc": "ಎಥೆರಿಯಮ್ ಸಂಶೋಧಕರು ಮತ್ತು ಉತ್ಸಾಹಿಗಳು ಎಥೆರಿಯಮ್ ನವೀಕರಣಗಳಿಗೆ ಸಂಬಂಧಿಸಿದ ಎಲ್ಲವನ್ನೂ ಒಳಗೊಂಡಂತೆ ಸಂಶೋಧನಾ ಪ್ರಯತ್ನಗಳನ್ನು ಚರ್ಚಿಸಲು ಇಲ್ಲಿ ಭೇಟಿಯಾಗುತ್ತಾರೆ.", + "page-upgrades-the-upgrades": "ಎಥೆರಿಯಮ್ ನವೀಕರಣಗಳು", + "page-upgrades-the-upgrades-desc": "ಎಥೆರಿಯಮ್ ನವೀಕರಣಗಳು ಜಾಲಬಂಧದ ಸ್ಕೇಲೆಬಿಲಿಟಿ, ಭದ್ರತೆ ಮತ್ತು ಸುಸ್ಥಿರತೆಯನ್ನು ಸುಧಾರಿಸುವ ಗುರಿಯನ್ನು ಹೊಂದಿವೆ. ಎಥೆರಿಯಮ್ ಇತ್ತೀಚೆಗೆ ಭದ್ರತೆ ಮತ್ತು ಸುಸ್ಥಿರತೆಗೆ ಕೆಲವು ಪ್ರಮುಖ ನವೀಕರಣಗಳಿಗೆ ಒಳಗಾಗಿದೆ, ಮತ್ತು ಭವಿಷ್ಯದಲ್ಲಿ ಹೆಚ್ಚಿನವುಗಳು ಬರುತ್ತಿವೆ, ವಿಶೇಷವಾಗಿ ಸ್ಕೇಲೆಬಿಲಿಟಿಗೆ ಸಂಬಂಧಿಸಿವೆ.", + "page-upgrades-unofficial-roadmap": "ಇದು ಅಧಿಕೃತ ಮಾರ್ಗಸೂಚಿಯಲ್ಲ. ಅಲ್ಲಿನ ಮಾಹಿತಿಯ ಆಧಾರದ ಮೇಲೆ ಏನಾಗುತ್ತಿದೆ ಎಂಬುದನ್ನು ನಾವು ಈ ರೀತಿ ನೋಡುತ್ತೇವೆ. ಆದರೆ ಇದು ತಂತ್ರಜ್ಞಾನವಾಗಿದ್ದು, ಕ್ಷಣಾರ್ಧದಲ್ಲಿ ಎಲ್ಲವೂ ಬದಲಾಗಬಹುದು. ಆದ್ದರಿಂದ ದಯವಿಟ್ಟು ಇದನ್ನು ಬದ್ಧತೆ ಎಂದು ಪರಿಗಣಿಸಬೇಡಿ.", + "page-upgrades-upgrade-desc": "ನಮಗೆ ತಿಳಿದಿರುವ ಮತ್ತು ಪ್ರೀತಿಸುವ ಎಥೆರಿಯಮ್, ಹೆಚ್ಚು ಸ್ಕೇಲೆಬಲ್, ಹೆಚ್ಚು ಸುರಕ್ಷಿತ ಮತ್ತು ಹೆಚ್ಚು ಸಮರ್ಥನೀಯವಾಗಿದೆ...", + "page-upgrades-upgrades": "ಎಥೆರಿಯಮ್ ನವೀಕರಣಗಳು", + "page-upgrades-upgrades-aria-label": "ಎಥೆರಿಯಮ್ ಅಪ್ಗ್ರೇಡ್ ಮೆನು", + "page-upgrades-upgrades-beacon-chain": "ಬೀಕನ್ ಚೈನ್", + "page-upgrades-upgrades-guide": "ಎಥೆರಿಯಮ್ ನವೀಕರಣಗಳಿಗೆ ಮಾರ್ಗದರ್ಶಿ", + "page-upgrades-energy-consumption": "ಎಥೆರಿಯಮ್ ಶಕ್ತಿಯ ಬಳಕೆಯ ಬಗ್ಗೆ ಇನ್ನಷ್ಟು", + "page-upgrades-upgrading": "ಎಥೆರಿಯಮ್ಅನ್ನು ಆಮೂಲಾಗ್ರ ಹೊಸ ಎತ್ತರಕ್ಕೆ ಏರಿಸುವುದು", + "page-roadmap-vision": "ದೃಷ್ಟಿ", + "page-roadmap-vision-btn": "ಎಥೆರಿಯಮ್ ದೃಷ್ಟಿಯ ಬಗ್ಗೆ ಇನ್ನಷ್ಟು", + "page-roadmap-vision-desc": "ಎಥೆರಿಯಮ್ ಅನ್ನು ಮುಖ್ಯವಾಹಿನಿಗೆ ತರಲು ಮತ್ತು ಇಡೀ ಮಾನವಕುಲಕ್ಕೆ ಸೇವೆ ಸಲ್ಲಿಸಲು, ನಾವು ಎಥೆರಿಯಮ್ ಅನ್ನು ಹೆಚ್ಚು ಸ್ಕೇಲೆಬಲ್, ಸುರಕ್ಷಿತ ಮತ್ತು ಸುಸ್ಥಿರವಾಗಿಸಬೇಕು.", + "page-upgrades-what-happened-to-eth2-1": "'Eth2' ಎಂಬ ಪದವನ್ನು ದಿ ಮರ್ಜ್‌ಗಿಂತ ಮೊದಲು ಸಾಮಾನ್ಯವಾಗಿ ಬಳಸಲಾಗುತ್ತಿತ್ತು ಆದರೆ ಹೆಚ್ಚು ನಿಖರವಾದ ಪರಿಭಾಷೆಯ ಪರವಾಗಿ ಅದನ್ನು ಹಂತಹಂತವಾಗಿ ತೆಗೆದುಹಾಕಲಾಗುತ್ತಿದೆ.", + "page-upgrades-what-happened-to-eth2-1-more": "ದಿ ಮರ್ಜ್ ಬಗ್ಗೆ ಇನ್ನಷ್ಟು.", + "page-upgrades-what-happened-to-eth2-2": "'Eth1' ಮತ್ತು 'Eth2' ವಿಲೀನಗೊಂಡ ನಂತರ, ಇನ್ನು ಮುಂದೆ ಎರಡು ವಿಭಿನ್ನ Ethereum ಬ್ಲಾಕ್‌ಚೈನ್‌ಗಳು ಉಳಿದಿಲ್ಲ; ಕೇವಲ Ethereum ಮಾತ್ರ ಉಳಿದಿದೆ.", + "page-upgrades-why-cant-we-just-use-eth2-title": "ನಾವು Eth2 ಅನ್ನು ಏಕೆ ಬಳಸಬಾರದು?", + "page-upgrades-why-cant-we-just-use-eth2-mental-models-title": "ಮಾನಸಿಕ ಮಾದರಿಗಳು", + "page-upgrades-why-cant-we-just-use-eth2-mental-models-description": "Eth2 ಬ್ರ್ಯಾಂಡಿಂಗ್‌ನ ಒಂದು ಪ್ರಮುಖ ಸಮಸ್ಯೆಯೆಂದರೆ ಅದು Ethereum ನ ಹೊಸ ಬಳಕೆದಾರರಿಗೆ ಮುರಿದ ಮಾನಸಿಕ ಮಾದರಿಯನ್ನು ಸೃಷ್ಟಿಸುತ್ತದೆ. ಅವರು ಅಂತರ್ಬೋಧೆಯಿಂದ Eth1 ಮೊದಲು ಬರುತ್ತದೆ ಮತ್ತು Eth2 ನಂತರ ಬರುತ್ತದೆ ಎಂದು ಭಾವಿಸುತ್ತಾರೆ. ಅಥವಾ Eth2 ಅಸ್ತಿತ್ವದಲ್ಲಿದ್ದ ನಂತರ Eth1 ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲ. ಇವುಗಳಲ್ಲಿ ಯಾವುದೂ ನಿಜವಲ್ಲ. Eth2 ಪರಿಭಾಷೆಯನ್ನು ತೆಗೆದುಹಾಕುವ ಮೂಲಕ, ನಾವು ಎಲ್ಲಾ ಭವಿಷ್ಯದ ಬಳಕೆದಾರರನ್ನು ಈ ಗೊಂದಲಮಯ ಮಾನಸಿಕ ಮಾದರಿಯನ್ನು ನ್ಯಾವಿಗೇಟ್ ಮಾಡುವುದರಿಂದ ಉಳಿಸುತ್ತೇವೆ.", + "page-upgrades-why-cant-we-just-use-eth2-inclusivity-title": "ಒಳಗೊಳ್ಳುವಿಕೆ", + "page-upgrades-why-cant-we-just-use-eth2-inclusivity-description": "Ethereum ನ ಮಾರ್ಗಸೂಚಿಯು ವಿಕಸನಗೊಂಡಂತೆ, Ethereum 2.0 Ethereum ನ ಮಾರ್ಗಸೂಚಿಯ ತಪ್ಪಾದ ಪ್ರಾತಿನಿಧ್ಯವಾಗಿದೆ. ಪದಗಳ ಆಯ್ಕೆಯಲ್ಲಿ ನಮ್ಮ ಜಾಗರೂಕತೆ ಮತ್ತು ನಿಖರತೆಯು Ethereum ನಲ್ಲಿನ ವಿಷಯವನ್ನು ಸಾಧ್ಯವಾದಷ್ಟು ವಿಶಾಲ ಪ್ರೇಕ್ಷಕರು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ.", + "page-upgrades-why-cant-we-just-use-eth2-scam-prevention-title": "ಹಗರಣ ತಡೆಗಟ್ಟುವಿಕೆ", + "page-upgrades-why-cant-we-just-use-eth2-scam-prevention-description": "ದುರದೃಷ್ಟವಶಾತ್, ದುರುದ್ದೇಶಪೂರಿತ ನಟರು Eth2 ಎಂಬ ತಪ್ಪು ಹೆಸರನ್ನು ಬಳಸಿಕೊಂಡು ಬಳಕೆದಾರರನ್ನು ವಂಚಿಸಲು ಪ್ರಯತ್ನಿಸಿದ್ದಾರೆ, ಅವರು ತಮ್ಮ ETH ಅನ್ನು 'ETH2' ಟೋಕನ್‌ಗಳಿಗೆ ಬದಲಾಯಿಸಲು ಅಥವಾ Eth2 ಅಪ್‌ಗ್ರೇಡ್ ಮಾಡುವ ಮೊದಲು ಅವರು ಹೇಗಾದರೂ ತಮ್ಮ ETH ಅನ್ನು ಸ್ಥಳಾಂತರಿಸಬೇಕು ಎಂದು ಹೇಳುತ್ತಾರೆ. ಈ ನವೀಕರಿಸಿದ ಪರಿಭಾಷೆಯು ಈ ಹಗರಣ ವಾಹಕವನ್ನು ತೊಡೆದುಹಾಕಲು ಸ್ಪಷ್ಟತೆಯನ್ನು ತರುತ್ತದೆ ಮತ್ತು ಪರಿಸರ ವ್ಯವಸ್ಥೆಯನ್ನು ಸುರಕ್ಷಿತವಾಗಿಸಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ ಎಂದು ನಾವು ಭಾವಿಸುತ್ತೇವೆ.", + "page-upgrades-why-cant-we-just-use-eth2-staking-clarity-title": "ಸ್ಟೇಕಿಂಗ್ ಸ್ಪಷ್ಟತೆ", + "page-upgrades-why-cant-we-just-use-eth2-staking-clarity-description": "ಕೆಲವು ಸ್ಟೇಕಿಂಗ್ ಆಪರೇಟರ್‌ಗಳು 'ETH2' ಟಿಕ್ಕರ್‌ನೊಂದಿಗೆ ಬೀಕನ್ ಚೈನ್‌ನಲ್ಲಿ ಪಣತೊಟ್ಟ ETH ಅನ್ನು ಪ್ರತಿನಿಧಿಸಿದ್ದಾರೆ. ಈ ಸೇವೆಗಳ ಬಳಕೆದಾರರು ವಾಸ್ತವವಾಗಿ 'ETH2' ಟೋಕನ್ ಅನ್ನು ಸ್ವೀಕರಿಸುತ್ತಿಲ್ಲವಾದ್ದರಿಂದ ಇದು ಸಂಭಾವ್ಯ ಗೊಂದಲವನ್ನು ಸೃಷ್ಟಿಸುತ್ತದೆ. ಯಾವುದೇ 'ETH2' ಟೋಕನ್ ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲ; ಇದು ಆ ನಿರ್ದಿಷ್ಟ ಪೂರೈಕೆದಾರರ ಪಾಲಿನಲ್ಲಿ ಅವರ ಪಾಲನ್ನು ಪ್ರತಿನಿಧಿಸುತ್ತದೆ.", + "page-upgrades-what-to-do": "ನೀವು ಏನು ಮಾಡಬೇಕು?", + "page-upgrades-what-to-do-desc": "ನೀವು ಡಿಎಪಿಪಿ ಬಳಕೆದಾರ ಅಥವಾ ಇಟಿಎಚ್ ಹೊಂದಿರುವವರಾಗಿದ್ದರೆ, ನೀವು ಏನನ್ನೂ ಮಾಡುವ ಅಗತ್ಯವಿಲ್ಲ. ನೀವು ಡೆವಲಪರ್ ಆಗಿದ್ದರೆ ಅಥವಾ ಸ್ಟಾಕ್ ಮಾಡಲು ಬಯಸಿದರೆ, ಇಂದು ನೀವು ತೊಡಗಿಸಿಕೊಳ್ಳಬಹುದಾದ ಮಾರ್ಗಗಳಿವೆ.", + "page-upgrades-whats-next": "Ethereum ಅಪ್‌ಗ್ರೇಡ್‌ಗಳು ಯಾವುವು?", + "page-upgrades-whats-next-desc": "Ethereum ಮಾರ್ಗಸೂಚಿಯು ಪರಸ್ಪರ ಸಂಪರ್ಕಿತ ಪ್ರೋಟೋಕಾಲ್ ನವೀಕರಣಗಳನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ, ಅದು ನೆಟ್‌ವರ್ಕ್ ಅನ್ನು ಹೆಚ್ಚು ಸ್ಕೇಲೆಬಲ್, ಹೆಚ್ಚು ಸುರಕ್ಷಿತ ಮತ್ತು ಹೆಚ್ಚು ಸುಸ್ಥಿರವಾಗಿಸುತ್ತದೆ. ಈ ನವೀಕರಣಗಳನ್ನು Ethereum ಪರಿಸರ ವ್ಯವಸ್ಥೆಯಾದ್ಯಂತದ ಬಹು ತಂಡಗಳು ನಿರ್ಮಿಸುತ್ತಿವೆ.", + "page-upgrades-whats-next-history": "ಹಿಂದಿನ Ethereum ಅಪ್‌ಗ್ರೇಡ್‌ಗಳ ಬಗ್ಗೆ ತಿಳಿಯಿರಿ", + "page-upgrades-whats-ethereum": "ನಿರೀಕ್ಷಿಸಿ, ಎಥೆರಿಯಮ್ ಎಂದರೇನು?", + "page-upgrades-whats-new": "Ethereum ಗೆ ಮುಂದೇನು?", + "page-upgrades-security-link": "ಭದ್ರತೆ ಮತ್ತು ವಂಚನೆ ತಡೆಗಟ್ಟುವಿಕೆಯ ಕುರಿತು ಇನ್ನಷ್ಟು", + "page-staking-deposit-contract-staking-more-link": "ಸ್ಟೇಕಿಂಗ್ ಕುರಿತು ಇನ್ನಷ್ಟು", + "page-upgrades-get-involved-ethresearch-1": "ಶಾರ್ಡಿಂಗ್" +} diff --git a/src/intl/kn/page-upgrades.json b/src/intl/kn/page-upgrades.json new file mode 100644 index 00000000000..68d8aec0b82 --- /dev/null +++ b/src/intl/kn/page-upgrades.json @@ -0,0 +1,22 @@ +{ + "page-upgrades-merge-infographic-el": "ಎಥೆರಿಯಮ್ ಸ್ಟೇಟ್: ವಹಿವಾಟುಗಳು, ಅಪ್ಲಿಕೇಶನ್‌ಗಳು, ಒಪ್ಪಂದಗಳು, ಬ್ಯಾಲೆನ್ಸ್‌ಗಳು", + "page-upgrades-merge-infographic-alt-text": "ಪ್ರೂಫ್-ಆಫ್-ವರ್ಕ್‌ನಿಂದ ಪ್ರೂಫ್-ಆಫ್-ಸ್ಟೇಕ್‌ಗೆ ಪರಿವರ್ತನೆಯ ಸಮಯದಲ್ಲಿ ಬೀಕನ್ ಚೈನ್ ಎಥೆರಿಯಮ್‌ನ ಎಕ್ಸಿಕ್ಯೂಶನ್ ಲೇಯರ್‌ನಲ್ಲಿ ಹೇಗೆ ವಿಲೀನಗೊಳ್ಳುತ್ತದೆ ಎಂಬುದನ್ನು ವಿವರಿಸುವ ಇನ್ಫೋಗ್ರಾಫಿಕ್.", + "page-upgrades-beacon-date": "ರವಾನಿಸಲಾಗಿದೆ!", + "page-upgrades-merge-date": "ಸೆಪ್ಟೆಂಬರ್ 2022", + "page-upgrades-shards-date": "~2023", + "page-upgrades-pbs": "ಸನ್ನಿಹಿತವಾಗಿಲ್ಲ - 2024/25 ನಿರೀಕ್ಷಿಸಿ", + "page-upgrades-post-merge-banner-tutorial-ood": "ವಿಲೀನದ ನಂತರ ಈ ಟ್ಯುಟೋರಿಯಲ್ ಹಳೆಯದಾಗಿದೆ ಮತ್ತು ಕೆಲಸ ಮಾಡದಿರಬಹುದು. ನೀವು ಕೊಡುಗೆ ನೀಡಲು ಬಯಸಿದರೆ ದಯವಿಟ್ಟು PR ಅನ್ನು ಹೆಚ್ಚಿಸಿ.", + "page-upgrades-upgrades-guide": "ಎಥೆರಿಯಮ್ ನವೀಕರಣಗಳಿಗೆ ಮಾರ್ಗದರ್ಶಿ", + "page-upgrades-shard-title": "ಶಾರ್ಡಿಂಗ್", + "page-upgrades-upgrades-beacon-chain": "ಬೀಕನ್ ಚೈನ್", + "consensus-beaconscan-title": "ಬೀಕಾನ್ಸ್ಕನ್", + "consensus-beaconscan-in-title": "beaconcha.in", + "consensus-beaconcha-in-desc": "ಓಪನ್ ಸೋರ್ಸ್ ಬೀಕನ್ ಚೈನ್ ಎಕ್ಸ್‌ಪ್ಲೋರರ್", + "consensus-beaconscan-desc": "ಬೀಕನ್ ಚೈನ್ ಎಕ್ಸ್‌ಪ್ಲೋರರ್ - ಒಮ್ಮತದ ಪದರಕ್ಕಾಗಿ ಈಥರ್‌ಸ್ಕ್ಯಾನ್", + "consensus-become-staker": "ಹೋಲ್ಡರ್ ಆಗಿ", + "consensus-become-staker-desc": "ಸ್ಟೇಕಿಂಗ್ ಲೈವ್ ಆಗಿದೆ! ನೆಟ್‌ವರ್ಕ್ ಅನ್ನು ಸುರಕ್ಷಿತಗೊಳಿಸಲು ನಿಮ್ಮ ETH ಪ್ರೀತಿಪಾತ್ರರನ್ನು ಪಣಕ್ಕಿಡಲು ನೀವು ಬಯಸಿದರೆ, ಅಪಾಯಗಳ ಬಗ್ಗೆ ನಿಮಗೆ ತಿಳಿದಿದೆಯೆ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ.", + "consensus-explore": "ಡೇಟಾವನ್ನು ಅನ್ವೇಷಿಸಿ", + "consensus-run-beacon-chain": "ಒಮ್ಮತದ ಕ್ಲೈಂಟ್ ಅನ್ನು ರನ್ ಮಾಡಿ", + "consensus-run-beacon-chain-desc": "Ethereum ಗೆ ಸಾಧ್ಯವಾದಷ್ಟು ಕ್ಲೈಂಟ್‌ಗಳು ಚಾಲನೆಯಲ್ಲಿರಬೇಕು. ಈ Ethereum ಸಾರ್ವಜನಿಕ ಒಳಿತಿಗಾಗಿ ಸಹಾಯ ಮಾಡಿ!", + "read-more": "ಹೆಚ್ಚು ಓದಿ" +} diff --git a/src/intl/kn/page-wallets-find-wallet.json b/src/intl/kn/page-wallets-find-wallet.json index 15939077095..4d4be3265f5 100644 --- a/src/intl/kn/page-wallets-find-wallet.json +++ b/src/intl/kn/page-wallets-find-wallet.json @@ -1,17 +1,18 @@ { "page-find-wallet-clear": "ಫಿಲ್ಟರ್‌ಗಳನ್ನು ತೆರವುಗೊಳಿಸಿ", - "page-find-wallet-desc-2": "ನೀವು ಬಯಸುವ ವ್ಳೈಶಿಷ್ಠ್ಯಗಳ ಮೇಲೆ ನಿಮ್ಮ ವಾಲೆಟ್‌ ಅನ್ನು ಆಯ್ಕೆಮಾಡಿ.", - "page-find-wallet-description": "ವಾಲೆಟ್‌ಗಳಲ್ಲಿ ನೀವು ಇಷ್ಟಪಡಬಹುದಾದ ಅನೇಕ ಐಚ್ಛಿಕ ವೈಶಿಷ್ಠ್ಯಗಳಿವೆ.", + "page-find-wallet-desc-2": "ವ್ಯಾಲೆಟ್ ಎಂದರೇನು ಎಂದು ತಿಳಿದಿಲ್ಲವೇ?", + "page-find-wallet-desc-2-wallets-link": "ವ್ಯಾಲೆಟ್ ಗಳ ಬಗ್ಗೆ ತಿಳಿಯಿರಿ.", + "page-find-wallet-description": "ವ್ಯಾಲೆಟ್ ಗಳು ನಿಮ್ಮ ಇಟಿಎಚ್ ಅನ್ನು ಸಂಗ್ರಹಿಸುತ್ತವೆ ಮತ್ತು ವಹಿವಾಟು ನಡೆಸುತ್ತವೆ. ನಿಮ್ಮ ಅಗತ್ಯಗಳಿಗೆ ಸರಿಹೊಂದುವ ವಿವಿಧ ಉತ್ಪನ್ನಗಳಿಂದ ನೀವು ಆಯ್ಕೆ ಮಾಡಬಹುದು.", "page-find-wallet-last-updated": "ಕೊನೆಯ ನವೀಕರಣ", "page-find-wallet-meta-description": "ನೀವು ಬಯಸುವ ವೈಶಿಷ್ಠ್ಯಗಳ ಮೇಲೆ ಇಥಿರಿಯಮ್ ವಾಲೆಟ್‌ಗಳನ್ನು ಹುಡುಕಿ ಹೋಲಿಸಿ.", - "page-find-wallet-meta-title": "ಒಂದು ಇಥಿರಿಯಮ್ ವಾಲೆಟ್‌ ಅನ್ನು ಹುಡುಕಿ", - "page-find-wallet-title": "ವ್ಯಾಲೆಟ್ ಹುಡುಕಿ", + "page-find-wallet-meta-title": "ಇಥಿರಿಯಮ್ ವಾಲೆಟ್‌ಗಳ ಪಟ್ಟಿ | ethereum.org", + "page-find-wallet-title": "ನಿಮ್ಮ ವಾಲೆಟ್‌ಗಳನ್ನು ಆಯ್ಕೆ ಮಾಡಿ", "page-find-wallet-try-removing": "ಒಂದು ಅಥವಾ ಎರಡು ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ತೆಗೆಯಲು ಪ್ರಯತ್ನಿಸಿ", "page-stake-eth": "ETH ಸ್ಟೇಕ್ ಮಾಡಿ", - "page-find-wallet-open-source": "Open source", - "page-find-wallet-open-source-desc": "ಓಪನ್‌ ಸೋರ್ಸ್ ಸಾಫ್ಟ್‌ವೇರ್ ಯಾರಿಗಾದರೂ ಅಪ್ಲಿಕೇಶನ್‌ನ ಸತತವನ್ನು ಮತ್ತು ಸುರಕ್ಷತೆಯನ್ನು ಪರೀಕ್ಷಿಸಲು ಅವಕಾಶ ನೀಡುತ್ತದೆ", + "page-find-wallet-open-source": "ಓಪನ್ ಸೋರ್ಸ್", + "page-find-wallet-open-source-desc": "ಓಪನ್‌ ಸೋರ್ಸ್ ಸಾಫ್ಟ್‌ವೇರ್ ಯಾರಿಗಾದರೂ ಅಪ್ಲಿಕೇಶನ್‌ನ ಸಮಗ್ರತೆ ಮತ್ತು ಸುರಕ್ಷತೆಯನ್ನು ಪರೀಕ್ಷಿಸಲು ಅವಕಾಶ ನೀಡುತ್ತದೆ", "page-find-wallet-self-custody": "ಸ್ವಯಂ ಬಂಧನ", - "page-find-wallet-non-custodial": "ನಾನ್-ಕಸ್ಟೋಡಿಯಲ್", + "page-find-wallet-non-custodial": "ವೈಯಕ್ತಿಕ ಮಾಲೀಕತ್ವ", "page-find-wallet-non-custodial-desc": "ನಿಮ್ಮ ಖಾಸಗಿ ಕೀಗಳನ್ನು ನಿಯಂತ್ರಿಸದ ವಾಲೆಟ್‌ಗಳು", "page-find-wallet-hardware-wallet-support": "ಹಾರ್ಡ್‌ವೇರ್ ವಾಲೆಟ್ ಬೆಂಬಲ", "page-find-wallet-hardware-wallet-support-desc": "ಉತ್ತಮ ಸುರಕ್ಷತೆಗಾಗಿ ಹಾರ್ಡ್‌ವೇರ್ ವಾಲೆಟ್‌ಗೆ ಸಂಪರ್ಕಿಸಬಹುದಾದ ವಾಲೆಟ್‌ಗಳು", @@ -20,7 +21,7 @@ "page-find-wallet-nft-support": "NFT ಬೆಂಬಲ", "page-find-wallet-nft-support-desc": "ನಿಮ್ಮ NFT ಗಳನ್ನು ವೀಕ್ಷಿಸಲು ಮತ್ತು ಸಂವಹಿಸಲು ಬೆಂಬಲ ನೀಡುವ ವಾಲೆಟ್‌ಗಳು", "page-find-wallet-connect-to-dapps": "dapp ಗಳಿಗೆ ಸಂಪರ್ಕಿಸಿ", - "page-find-wallet-connect-to-dapps-desc": "ಇಥಿರಿಯಮ್ ನೆಟ್‍ವರ್ಕ್ ಮೇಲೆ ನಿರ್ಮಾಣವಾದ ಅಪ್ಲಿಕೇಶನ್‌ಗಳಿಗೆ ಸಂಪರ್ಕಿಸುವ ವಾಲೆಟ್‌ಗಳು", + "page-find-wallet-connect-to-dapps-desc": "WalletConnect ಅಥವಾ ಪರ್ಯಾಯವನ್ನು ಬೆಂಬಲಿಸುವ ಅಪ್ಲಿಕೇಶನ್ ಗಳಿಗೆ ನೀವು ಸಂಪರ್ಕಿಸಬಹುದು", "page-find-wallet-staking": "Staking", "page-find-wallet-staking-desc": "ವಾಲೆಟ್‌ನಿಂದ ನೇರವಾಗಿ ETH ಸ್ಟೇಕ್ ಮಾಡಿ", "page-find-wallet-swaps": "ಸ್ವ್ಯಾಪ್‍ಗಳು", @@ -41,10 +42,14 @@ "page-find-wallet-multisig-desc": "ವಹಿವಾಟವನ್ನು ಅಧಿಕೃತಗೊಳಿಸಲು ಬಹು ಸಹಿಗಳನ್ನು ಅಗತವಾಗಿ ಹೊಂದಿರುವ ವಾಲೆಟ್‌ಗಳು", "page-find-wallet-social-recovery": "ಸಾಮಾಜಿಕ ರಿಕವರಿ", "page-find-wallet-social-recovery-desc": "ಸ್ಮಾರ್ಟ್ ಕಾಂಟ್ರಾಕ್ಟ್ ವಾಲೆಟ್‌ಗಾಗಿ ಸಹಿ ಕೀಯನ್ನು ಬದಲಾಯಿಸಲು ಪಾಲಕರಿಗೆ ಅನುಮತಿಸುವ ವಾಲೆಟ್‌ಗಳು", - "page-find-wallet-features": "Features", - "page-find-wallet-security": "Security", - "page-find-wallet-smart-contract": "Smart contract", - "page-find-wallet-check-out": "Check out", + "page-find-wallet-languages-supported": "ಭಾಷೆ ಬೆಂಬಲ", + "page-find-wallet-languages-search-language": "ಭಾಷೆ ಹುಡುಕು", + "page-find-wallet-popular-languages": "ಅತ್ಯಂತ ಜನಪ್ರಿಯ", + "page-find-wallet-features": "ವೈಶಿಷ್ಟ್ಯಗಳು", + "page-find-wallet-security": "ಭದ್ರತೆ", + "page-find-wallet-smart-contract": "ಸ್ಮಾರ್ಟ್ ಒಪ್ಪಂದ", + "page-find-wallet-advanced": "ಮುಂದುವರೆದ", + "page-find-wallet-check-out": "ಪರಿಶೀಲಿಸಿ", "page-find-wallet-info-updated-on": "ಮಾಹಿತಿ ನವೀಕರಿಸಲಾಗಿದೆ", "page-find-wallet-showing-all-wallets": "ಎಲ್ಲಾ ವಾಲೆಟ್‌ಗಳನ್ನು ತೋರಿಸುತ್ತಿದೆ", "page-find-wallet-wallets": "ವ್ಯಾಲೆಟ್ ಗಳು", @@ -55,22 +60,29 @@ "page-find-wallet-windows": "ವಿಂಡೋಸ್", "page-find-wallet-chromium": "ಕ್ರೋಮಿಯಂ", "page-find-wallet-firefox": "Firefox", - "page-find-wallet-hardware": "Hardware", + "page-find-wallet-hardware": "ಹಾರ್ಡ್‌ವೇರ್", "page-find-wallet-new-to-crypto-title": "ಕ್ರಿಪ್ಟೋಗೆ ಹೊಸಬರು", - "page-find-wallet-new-to-crypto-desc": "ನೀವು ಮೊದಲ ಬಾರಿಯ ಬಳಕೆದಾರರು ಮತ್ತು ನಿಮ್ಮ ಮೊದಲನೆಯ ವಾಲೆಟ್ ಹುಡುಕುತ್ತಿದ್ದೀರಿ", + "page-find-wallet-new-to-crypto-desc": "ಮೊದಲ ಬಾರಿಗೆ ಬಳಕೆದಾರರು ಆರಂಭಿಕ ವ್ಯಾಲೆಟ್ ಅನ್ನು ಹುಡುಕುತ್ತಿದ್ದಾರೆ.", "page-find-wallet-nfts-title": "NFTs", - "page-find-wallet-nfts-desc": "ನೀವು NFT ಗಳ ಬಗ್ಗೆ ಮತ್ತು NFT ಬೆಂಬಲದ ವಾಲೆಟ್ ಬಯಸುವವರು", - "page-find-wallet-hodler-title": "ಹೋಡ್ಲರ್", - "page-find-wallet-hodler-desc": "ನೀವು ಟೋಕನ್‌ಗಳನ್ನು ಹೊಂದಿರುವವರು ಮತ್ತು ಅವನ್ನು ಮುಟ್ಟಲು ಇಚ್ಛಿಸದವರು", + "page-find-wallet-nfts-desc": "NFT ಬೆಂಬಲದ ಮೇಲೆ ಕೇಂದ್ರೀಕರಿಸಿದ ವ್ಯಾಲೆಟ್ ಗಳು.", + "page-find-wallet-hodler-title": "ದೀರ್ಘಾವಧಿ", + "page-find-wallet-hodler-desc": "ಹಾರ್ಡ್ ವೇರ್ ವ್ಯಾಲೆಟ್ ಗಳೊಂದಿಗೆ ನಿಷ್ಕ್ರಿಯ ಟೋಕನ್ ಹೋಲ್ಡಿಂಗ್.", "page-find-wallet-finance-title": "ಹಣಕಾಸು", - "page-find-wallet-finance-desc": "ನೀವು DeFi ಬಳಸುವವರು ಮತ್ತು DeFi ಅಪ್ಲಿಕೇಶನ್‌ಗಳಿಗೆ ಸಂಪರ್ಕಿಸಲು ಅನುಮತಿಸುವ ವಾಲೆಟ್ ಬಯಸುವವರು", + "page-find-wallet-finance-desc": "ಡಿಫೈ ಅಪ್ಲಿಕೇಶನ್ ಗಳ ಆಗಾಗ್ಗೆ ಬಳಕೆಯ ಮೇಲೆ ಕೇಂದ್ರೀಕರಿಸುವ ವ್ಯಾಲೆಟ್ ಗಳು.", "page-find-wallet-developer-title": "ಡೆವಲಪರ್", - "page-find-wallet-developer-desc": "ನೀವು ಡೆವೆಲಪರ್ ಮತ್ತು ಡ್ಯಾಪ್ಸ್‌ಗಳನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸಲು ಮತ್ತು ಪರೀಕ್ಷಿಸಲು ವಾಲೆಟ್ ಅಗತ್ಯವಾಗಿದೆ", + "page-find-wallet-developer-desc": "ಡಾಪ್ ಗಳನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸಲು ಮತ್ತು ಪರೀಕ್ಷಿಸಲು ಸಹಾಯ ಮಾಡುವ ವ್ಯಾಲೆಟ್ ಗಳು.", + "page-find-wallet-active": "ಸಕ್ರಿಯ", "page-find-wallet-footnote-1": "ಈ ಪುಟದಲ್ಲಿ ಪಟ್ಟಿಯಾದ ವಾಲೆಟ್‌ಗಳು ಅಧಿಕೃತ ಅಭಿಪ್ರಾಯಗಳಲ್ಲ ಮತ್ತು ಮಾಹಿತಿಯ ಉದ್ದೇಶಕ್ಕೆ ಮಾತ್ರ ಒದಗಿಸಲಾಗಿದೆ.", "page-find-wallet-footnote-2": "ಅವರ ವಿವರಣೆಗಳು ವಾಲೆಟ್ ಯೋಜನೆಗಳೇ ಒದಗಿಸಿದವುಗಳಾಗಿವೆ.", "page-find-wallet-footnote-3": "ನಾವು ಈ ಪುಟಕ್ಕೆ ಉತ್ತಮಗಳನ್ನು ನಮ್ಮ ಪಟ್ಟಿ ನೀತಿಯಲ್ಲಿನ ಮಾನದಂಡಗಳ ಆಧಾರದ ಮೇಲೆ ಸೇರಿಸುತ್ತೇವೆ. ನೀವು ನಮಗೆ ಒಂದು ವಾಲೆಟ್ ಸೇರಿಸಬೇಕೆಂದಿದ್ದರೆ, ಗಿಟ್‌ಹಬ್‌ನಲ್ಲಿ ಸಮಸ್ಯೆಯನ್ನು ಉತ್ತೇರಿಸಿ.", "page-find-wallet-mobile": "ಮೊಬೈಲ್", "page-find-wallet-desktop": "ಡೆಸ್ಕ್‌ಟಾಪ್", "page-find-wallet-browser": "ಬ್ರೌಸರ್", - "page-find-wallet-device": "ಸಾಧನ" + "page-find-wallet-device": "ಸಾಧನ", + "page-find-wallet-reset-filters": "ಮರುಹೊಂದಿಸಿ", + "page-find-wallet-visit-website": "ವೆಬ್ ಸೈಟ್ ಗೆ ಭೇಟಿ ನೀಡಿ", + "page-find-wallet-social-links": "ಲಿಂಕ್ ಗಳು", + "page-find-wallet-empty-results-title": "ಯಾವುದೇ ಫಲಿತಾಂಶಗಳಿಲ್ಲ", + "page-find-wallet-empty-results-desc": "ನಿಮ್ಮ ಮಾನದಂಡಗಳಿಗೆ ಹೊಂದಿಕೆಯಾಗುವ ಯಾವುದೇ ವ್ಯಾಲೆಟ್ ಗಳು ಇಲ್ಲ, ಕೆಲವು ಫಿಲ್ಟರ್ ಗಳನ್ನು ತೆಗೆದುಹಾಕಲು ಪ್ರಯತ್ನಿಸಿ.", + "page-find-wallet-see-wallets": "ವ್ಯಾಲೆಟ್ ಗಳನ್ನು ನೋಡಿ" } diff --git a/src/intl/kn/page-what-is-ethereum.json b/src/intl/kn/page-what-is-ethereum.json index 274a792eef1..1aa9f8f24d6 100644 --- a/src/intl/kn/page-what-is-ethereum.json +++ b/src/intl/kn/page-what-is-ethereum.json @@ -34,9 +34,12 @@ "page-what-is-ethereum-cryptocurrency-tab-content-2": "ಬಿಟ್ ಕಾಯಿನ್ ಮತ್ತು ಎಥೆರ್‌ನಂತಹ ಸ್ವತ್ತುಗಳನ್ನು \"ಕ್ರಿಪ್ಟೋಕರೆನ್ಸಿಗಳು\" ಎಂದು ಕರೆಯಲು ಕಾರಣವೆಂದರೆ ನಿಮ್ಮ ಡೇಟಾ ಮತ್ತು ಸ್ವತ್ತುಗಳ ಸುರಕ್ಷತೆಯನ್ನು ಕ್ರಿಪ್ಟೋಗ್ರಫಿಯಿಂದ, ಖಾತರಿಪಡಿಸಲಾಗುತ್ತದೆ, ಸಂಸ್ಥೆ ಅಥವಾ ನಿಗಮವು \nಪ್ರಾಮಾಣಿಕವಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ ಎಂದು ನಂಬುವ ಮೂಲಕ ಅಲ್ಲ.", "page-what-is-ethereum-cryptocurrency-tab-content-3": "ಇಥಿರಿಯಮ್ ತನ್ನದೇ ಆದ ಸ್ಥಳೀಯ ಕ್ರಿಪ್ಟೋಕರೆನ್ಸಿಯನ್ನು ಹೊಂದಿದೆ, ಇಥರ್ (ETH), ಇದನ್ನು ನೆಟ್‍ವರ್ಕ್‍ನಲ್ಲಿ ಕೆಲವು ಚಟುವಟಿಕೆಗಳಿಗೆ ಪಾವತಿಸಲು ಬಳಸಲಾಗುತ್ತದೆ. ಇದನ್ನು ಇತರ ಬಳಕೆದಾರರಿಗೆ ವರ್ಗಾಯಿಸಬಹುದು ಅಥವಾ ಇಥಿರಿಯಮ್ ನಲ್ಲಿ ಇತರ ಟೋಕನ್‌ಗಳಿಗೆ ವಿನಿಮಯ ಮಾಡಿಕೊಳ್ಳಬಹುದು. ಇಥರ್ ವಿಶೇಷವಾಗಿದೆ ಏಕೆಂದರೆ ಇದು ಇಥಿರಿಯಮ್ ನಲ್ಲಿ ಅಪ್ಲಿಕೇಶನ್‌ಗಳು ಮತ್ತು ಸಂಸ್ಥೆಗಳನ್ನು ನಿರ್ಮಿಸಲು ಮತ್ತು ಚಲಾಯಿಸಲು ಅಗತ್ಯವಿರುವ ಕಂಪ್ಯೂಟೇಶನ್‌ಗೆ ಪಾವತಿಸಲು ಬಳಸಲಾಗುತ್ತದೆ.", "page-what-is-ethereum-summary-title": "ಸಾರಾಂಶ", - "page-what-is-ethereum-summary-desc-1": "ಇಥಿರಿಯಮ್ಎನ್ನುವುದು ಇಥಿರಿಯಮ್ ಪ್ರೋಟೋಕಾಲ್ ಎಂಬ ನಿಯಮಗಳ ಗುಂಪನ್ನು ಅನುಸರಿಸುವ ಪ್ರಪಂಚದಾದ್ಯಂತದ ಕಂಪ್ಯೂಟರ್‌ಗಳ ಜಾಲವಾಗಿದೆ. ಇಥಿರಿಯಮ್ ನೆಟ್‌ವರ್ಕ್ ಸಮುದಾಯಗಳು, ಅಪ್ಲಿಕೇಶನ್‌ಗಳು, ಸಂಸ್ಥೆಗಳು ಮತ್ತು ಯಾರಾದರೂ ನಿರ್ಮಿಸಬಹುದಾದ ಮತ್ತು ಬಳಸಬಹುದಾದ ಡಿಜಿಟಲ್ ಸ್ವತ್ತುಗಳಿಗೆ ಅಡಿಪಾಯವಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ.", - "page-what-is-ethereum-summary-desc-2": "ಇಥಿರಿಯಮ್ ಎನ್ನುವುದು ಇಥಿರಿಯಮ್ ಪ್ರೋಟೋಕಾಲ್ ಎಂಬ ನಿಯಮಗಳ ಗುಂಪನ್ನು ಅನುಸರಿಸುವ ಪ್ರಪಂಚದಾದ್ಯಂತದ ಕಂಪ್ಯೂಟರ್‌ಗಳ ಜಾಲವಾಗಿದೆ. ಇಥಿರಿಯಮ್ ನೆಟ್‌ವರ್ಕ್ ಸಮುದಾಯಗಳು, ಅಪ್ಲಿಕೇಶನ್‌ಗಳು, ಸಂಸ್ಥೆಗಳು ಮತ್ತು ಯಾರಾದರೂ ನಿರ್ಮಿಸಬಹುದಾದ ಮತ್ತು ಬಳಸಬಹುದಾದ ಡಿಜಿಟಲ್ ಸ್ವತ್ತುಗಳಿಗೆ ಅಡಿಪಾಯವಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ.", - "page-what-is-ethereum-summary-desc-3": "ಇನ್ನಷ್ಟು ತಿಳಿದುಕೊಳ್ಳಲು ಓದುವುದನ್ನು ಮುಂದುವರಿಸಿ…", + "page-what-is-ethereum-summary-desc-1": "ಇಥಿರಿಯಮ್ ಸಾವಿರಾರು ಅಪ್ಲಿಕೇಶನ್‌ಗಳ ಮತ್ತು ಬ್ಲಾಕ್‌ಚೈನ್ಗಳ ಮುಖ್ಯ ವೇದಿಕೆ, ಎಲ್ಲಾ ಇಥಿರಿಯಮ್ ಪ್ರೋಟೋಕಾಲ್ ಮೂಲಕ ಸಾಧಿತವಾಗಿದೆ.", + "page-what-is-ethereum-summary-desc-2": "ಈ ಕ್ರಿಯಾಶೀಲ ಪರಿಸರವು ಹೊಸ ಆವಿಷ್ಕಾರಗಳಿಗೆ ಮತ್ತು ವಿವಿಧ ಹಂಗಾಮಿಲ್ಲದ ಅಪ್ಲಿಕೇಶನ್‌ಗಳು ಮತ್ತು ಸೇವೆಗಳಿಗೆ ಪ್ರಚೋದನೆಯನ್ನು ನೀಡುತ್ತದೆ.", + "page-what-is-ethereum-summary-bullet-1": "ಉಚಿತ ಮತ್ತು ಜಾಗತಿಕ ಇಥಿರಿಯಮ್ ಖಾತೆಗಳು", + "page-what-is-ethereum-summary-bullet-2": "ಕೃತಕ ಖಾಸಗಿ, ಯಾವುದೇ ವೈಯಕ್ತಿಕ ಮಾಹಿತಿಯ ಅಗತ್ಯವಿಲ್ಲ", + "page-what-is-ethereum-summary-bullet-3": "ನಿಷೇಧಗಳಿಲ್ಲದೆ ಯಾರೂ ಕೂಡ ಭಾಗವಹಿಸಬಹುದು", + "page-what-is-ethereum-summary-bullet-4": "ಯಾವುದೇ ಕಂಪನಿಯು ಇಥಿರಿಯಮ್ ಅನ್ನು ಹೊಂದಿಲ್ಲ ಅಥವಾ ಆತನ ಭವಿಷ್ಯವನ್ನು ನಿರ್ಧರಿಸಲು ಸಾಮರ್ಥ್ಯ ಇಲ್ಲ", "page-what-is-ethereum-btc-eth-diff-title": "ಇಥಿರಿಯಮ್ ಮತ್ತು ಬಿಟ್‌ಕಾಯಿನ್ ನಡುವಿನ ವ್ಯತ್ಯಾಸವೇನು?", "page-what-is-ethereum-btc-eth-diff-1": "2015 ರಲ್ಲಿ ಪ್ರಾರಂಭಿಸಲಾಯಿತು, ಇಥಿರಿಯಮ್ ಕೆಲವು ದೊಡ್ಡ ವ್ಯತ್ಯಾಸಗಳೊಂದಿಗೆ ಬಿಟ್‌ಕಾಯಿನ್‌ನ ನಾವೀನ್ಯತೆಯ ಮೇಲೆ ನಿರ್ಮಿಸುತ್ತದೆ.", "page-what-is-ethereum-btc-eth-diff-2": "ಪಾವತಿ ಪೂರೈಕೆದಾರರು ಅಥವಾ ಬ್ಯಾಂಕ್‌ಗಳಿಲ್ಲದೆ ಡಿಜಿಟಲ್ ಹಣವನ್ನು ಬಳಸಲು ಎರಡೂ ನಿಮಗೆ ಅವಕಾಶ ನೀಡುತ್ತದೆ. ಆದರೆ ಇಥಿರಿಯಮ್ ಪ್ರೊಗ್ರಾಮೆಬಲ್ ಆಗಿದೆ, ಆದ್ದರಿಂದ ನೀವು ಅದರ ನೆಟ್‍ವರ್ಕ್‍ನಲ್ಲಿ ವಿಕೇಂದ್ರೀಕೃತ ಅಪ್ಲಿಕೇಶನ್‍ಗಳನ್ನು ನಿರ್ಮಿಸಬಹುದು ಮತ್ತು ನಿಯೋಜಿಸಬಹುದು.", diff --git a/src/intl/kn/template-usecase.json b/src/intl/kn/template-usecase.json index a8902a4efc0..b3284c32fc2 100644 --- a/src/intl/kn/template-usecase.json +++ b/src/intl/kn/template-usecase.json @@ -1,7 +1,9 @@ { - "template-usecase-dropdown-defi": "ವಿಕೇಂದ್ರೀಕರಿತ ಹಣಕಾಸು (ಡಿಫೈ)", + "template-usecase-dropdown-ai-agents": "ಎಐ ಏಜೆಂಟ್‌ಗಳು", + "template-usecase-dropdown-defi": "ವಿಕೇಂದ್ರೀಕರಿತ ಹಣಕಾಸು (DeFi)", "template-usecase-dropdown-nft": "ಶಿಲೀಂಧ್ರವಲ್ಲದ ಟೋಕನ್ ಗಳು (NFTs)", "template-usecase-dropdown-dao": "ವಿಕೇಂದ್ರೀಕರಿತ ಸ್ವಯಂಚಾಲಿತ ಸಂಸ್ಥೆಗಳು (ಡಿಎಒಗಳು)", + "template-usecase-dropdown-payments": "ಎಥೆರಿಯಮ್ ಪಾವತಿಗಳು", "template-usecase-dropdown-social-networks": "ವಿಕೇಂದ್ರೀಕರಿತ ಸಾಮಾಜಿಕ ಜಾಲಗಳು", "template-usecase-dropdown-identity": "ವಿಕೇಂದ್ರೀಕರಿತ ಗುರುತು", "template-usecase-dropdown-desci": "ವಿಕೇಂದ್ರೀಕರಿತ ವಿಜ್ಞಾನ (ಡಿಸೈ)", @@ -9,5 +11,5 @@ "template-usecase-dropdown": "ಇಥಿರಿಯಮ್ ಬಳಕೆಯ ಪ್ರಕರಣಗಳು", "template-usecase-banner": "ಇಥಿರಿಯಮ್ ನ ಉಪಯೋಗಗಳು ಯಾವಾಗಲೂ ಅಭಿವೃದ್ಧಿ ಹೊಂದುತ್ತಿವೆ ಮತ್ತು ವಿಕಸನಗೊಳ್ಳುತ್ತಿವೆ. ವಿಷಯಗಳನ್ನು ಸ್ಪಷ್ಟವಾಗಿ ಅಥವಾ ಹೆಚ್ಚು ನವೀಕೃತಗೊಳಿಸುತ್ತದೆ ಎಂದು ನೀವು ಭಾವಿಸುವ ಯಾವುದೇ ಮಾಹಿತಿಯನ್ನು ಸೇರಿಸಿ.", "template-usecase-edit-link": "ಪುಟ ಸಂಪಾದಿಸಿ", - "template-usecase-dropdown-aria": "ಬಳಕೆ-ಕೇಸ್ ಡ್ರಾಪ್ ಡೌನ್ ಮೆನು" -} + "template-usecase-dropdown-aria": "ಬಳಕೆ-ಕೇಸ್ ಡ್ರಾಪ್‍ಡೌನ್ ಮೆನು" +} \ No newline at end of file From b38950bd27fb2e4e86d9b5eca201d4dfb423f6dd Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Thu, 1 May 2025 04:45:49 +0000 Subject: [PATCH 057/106] chore: import translations for pt-br --- .../pos/attack-and-defense/index.md | 103 +++++++++--------- .../docs/consensus-mechanisms/pos/index.md | 2 +- .../consensus-mechanisms/pos/keys/index.md | 4 + .../pos/rewards-and-penalties/index.md | 2 + .../translations/pt-br/events/index.md | 24 ++++ .../index.md | 73 +++++++++++++ .../content/translations/pt-br/web3/index.md | 4 + src/intl/pt-br/common.json | 2 + src/intl/pt-br/glossary-tooltip.json | 5 +- src/intl/pt-br/page-get-eth.json | 2 +- src/intl/pt-br/page-index.json | 21 ++-- src/intl/pt-br/page-wallets-find-wallet.json | 9 +- src/intl/pt-br/template-usecase.json | 4 +- 13 files changed, 182 insertions(+), 73 deletions(-) create mode 100644 public/content/translations/pt-br/events/index.md create mode 100644 public/content/translations/pt-br/how-to-create-an-ethereum-account/index.md diff --git a/public/content/translations/pt-br/developers/docs/consensus-mechanisms/pos/attack-and-defense/index.md b/public/content/translations/pt-br/developers/docs/consensus-mechanisms/pos/attack-and-defense/index.md index 2f15a442482..c64ba37f953 100644 --- a/public/content/translations/pt-br/developers/docs/consensus-mechanisms/pos/attack-and-defense/index.md +++ b/public/content/translations/pt-br/developers/docs/consensus-mechanisms/pos/attack-and-defense/index.md @@ -4,42 +4,45 @@ description: Aprenda sobre os vetores de ataque conhecidos na prova de participa lang: pt-br --- -Ladrões e sabotadores estão constantemente buscando oportunidades para atacar o software cliente do Ethereum. Esta página descreve os vetores de ataque conhecidos na camada de consenso do Ethereum e mostra como esses ataques podem ser defendidos. As informações nesta página são adaptadas de uma [versão mais longa do formulário](https://mirror.xyz/jmcook.eth/YqHargbVWVNRQqQpVpzrqEQ8IqwNUJDIpwRP7SS5FXs). +Ladrões e sabotadores estão constantemente buscando oportunidades para atacar o software cliente do Ethereum. Esta página descreve os vetores de ataque conhecidos na camada de consenso do Ethereum e mostra como esses ataques podem ser defendidos. As informações nesta página foram adaptadas de uma [versão longa] (https://mirror.xyz/jmcook.eth/YqHargbVWVNRQqQpVpzrqEQ8IqwNUJDIpwRP7SS5FXs). ## Pré-requisitos {#prerequisites} -São necessários alguns conhecimentos básicos de [prova de participação](/developers/docs/consensus-mechanisms/pos/). Além disso, será útil ter conhecimentos básicos sobre a [camada de incentivo](/developers/docs/consensus-mechanisms/pos/rewards-and-penalties) do Ethereum e do algoritmo de escolha de bifurcação (fork), [LMD-GHOST](/developers/docs/consensus-mechanisms/pos/gasper). +É necessário ter algum conhecimento básico sobre [proof-of-stake](/developers/docs/consensus-mechanisms/pos/). Além disso, será útil ter um entendimento básico sobre a [camada de incentivos](/developers/docs/consensus-mechanisms/pos/rewards-and-penalties) do Ethereum e o algoritmo de escolha de forks, [LMD-GHOST](/developers/docs/consensus-mechanisms/pos/gasper). -## O que os invasores querem? {#what-do-attackers-want} +## O que os atacantes querem? {#what-do-attackers-want} -Um equívoco comum é achar que um invasor bem-sucedido pode gerar um novo ether ou drenar ethers de contas arbitrárias. Nenhum desses dois é possível, pois todas as transações são executadas por todos os clientes de execução na rede. Eles devem satisfazer condições básicas de validade (por exemplo, transações são assinadas pela chave privada do remetente, o remetente tem saldo suficiente, etc.) ou então eles simplesmente se revertem. Há três classes de resultado que um invasor pode visar realistamente: reorgs, dupla finalidade ou atraso de finalidade. +Um equívoco comum é achar que um atacante bem-sucedido pode gerar um novo ether ou drenar ethers de contas arbitrárias. Nenhuma dessas duas situações é possível, pois todas as transações são executadas por todos os clientes de execução na rede. Elas devem satisfazer condições básicas de validade (por exemplo, transações são assinadas pela chave privada do remetente, o remetente tem saldo suficiente, etc.) ou então elas simplesmente são anuladas. Há três classes de resultado que um atacante pode visar realisticamente: reorgs, dupla finalidade ou atraso de finalidade. -Um **“reorg”** é uma reembaralhamento de blocos em uma nova ordem, talvez com alguma adição ou subtração de blocos na cadeia padrão. Uma reorganização maliciosa pode garantir que blocos específicos sejam incluídos ou excluídos, permitindo gastos duplos ou extração de valores ao executar transações front-running e back-running (MEV). As reorgs também podem ser usadas para evitar que certas transações sejam incluídas na cadeia padrão, o que é uma espécie de censura. A forma mais extrema de reorg é a “reversão da finalidade”, que remove ou substitui blocos que foram previamente finalizados. Isso só é possível se mais de 1/3 do ether total em stake for destruído pelo invasor — esta garantia é conhecida como “finalidade econômica” — falaremos mais sobre isso mais tarde. +Uma **“reorg”** é uma reorganização de blocos em uma nova ordem, possivelmente com a adição ou subtração de alguns blocos na cadeia padrão. Uma reorg maliciosa pode garantir que blocos específicos sejam incluídos ou excluídos, permitindo gastos duplos ou extração de valores ao executar transações front-running e back-running (MEV). As reorgs também podem ser usadas para evitar que certas transações sejam incluídas na cadeia padrão, o que é uma espécie de censura. A forma mais extrema de reorg é a “reversão de finalidade”, que remove ou substitui blocos que foram previamente finalizados. Isso só é possível se mais de ⅓ do ether total em stake for destruído pelo atacante — esta garantia é conhecida como “finalidade econômica” — falaremos sobre isso mais tarde. -**A finalidade dupla** é a condição improvável, mas severa, na qual dois forks são capazes de finalizar simultaneamente, criando uma cisão permanente na cadeia. Isso é teoricamente possível para um invasor que esteja disposto a arriscar 34% do total do ether em stake. A comunidade seria forçada a coordenar fora da cadeira e chegar a um acordo sobre qual cadeia seguir, o que exigiria força na camada social. +**Finalidade dupla** é a condição improvável, mas grave, em que dois forks conseguem finalizar simultaneamente, criando uma divisão permanente na cadeia. Isso é teoricamente possível para um atacante que esteja disposto a arriscar 34% do ether total em stake. A comunidade seria forçada a coordenar fora da cadeia e chegar a um acordo sobre qual cadeia seguir, o que exigiria força na camada social. -Um ataque de **atraso de finalidade** impede que a rede chegue às condições necessárias para finalizar as seções da cadeia. Sem finalidade, é difícil confiar em aplicativos financeiros construídos em cima do Ethereum. O objetivo de um ataque de atraso de finalidade é basicamente perturbar o Ethereum, em vez de lucrar diretamente com ele, a menos que o invasor tenha alguma posição vendida estratégica. +Um ataque de **atraso de finalidade** impede que a rede alcance as condições necessárias para finalizar seções da cadeia. Sem finalidade, é difícil confiar em aplicativos financeiros criados com base no Ethereum. O objetivo de um ataque de atraso de finalidade é basicamente perturbar o Ethereum, em vez de lucrar diretamente com ele, a menos que o atacante tenha alguma posição vendida estratégica. Um ataque à camada social poderia visar minar a confiança pública no Ethereum, desvalorizar o ether, reduzir a adoção ou enfraquecer a comunidade Ethereum para tornar a coordenação fora de banda mais difícil. -Tendo estabelecido por que adversários atacariam o Ethereum, as seções a seguir examinam _como_ eles o fariam. +Tendo estabelecido por que um adversário atacaria o Ethereum, as seções a seguir examinam _como_ ele pode fazer isso. ## Métodos de ataque {#methods-of-attack} ### Ataques na Camada 0 {#layer-0} -Em primeiro lugar, os indivíduos que não participam ativamente no Ethereum (executando o software cliente) podem atacar visando a camada social (Camada 0). A Camada 0 é a fundação sobre a qual o Ethereum é construído, e, como tal, representa uma superfície potencial sujeita a ataques com consequências que se propagam pelo resto da pilha. Alguns exemplos podem incluir: +Em primeiro lugar, os indivíduos que não participam ativamente no Ethereum (executando o software cliente) podem atacar visando a camada social (Camada 0). A Camada 0 é a fundação sobre a qual o Ethereum é construído, e, como tal, representa uma superfície potencial para ataques com consequências que se propagam pelo resto da pilha. Alguns exemplos podem incluir: - Uma campanha de desinformação poderia prejudicar a confiança que a comunidade tem no roteiro, equipes de desenvolvedores, aplicativos do Ethereum, etc. Isso poderia então diminuir o número de indivíduos dispostos a participar protegendo a rede, degradando tanto a descentralização quanto a segurança criptoeconômica. + - Ataques direcionados e/ou intimidação voltados para a comunidade de desenvolvedores. Isso pode levar à saída voluntária de desenvolvedores e desacelerar o progresso do Ethereum. - Regulamentação excessivamente zelosa também poderia ser considerada um ataque à Camada 0, uma vez que poderia desincentivar rapidamente a participação e a adoção. + - Infiltração de atores experientes, mas maliciosos, na comunidade de desenvolvedores, cujo objetivo é atrasar o progresso dando importância demais a questões simples, atrasando decisões-chave, criando spam, etc. + - Subornos a atores-chave do ecossistema Ethereum para influenciar a tomada de decisões. -O que torna estes ataques particularmente perigosos é que, em muitos casos, é necessário muito pouco capital ou conhecimentos técnicos. Um ataque à Camada 0 poderia ser um multiplicador em um ataque criptoeconômico. Por exemplo, se a censura ou a reversão da finalidade fossem alcançadas por uma parte interessada majoritária maliciosa, minar a camada social poderá tornar mais difícil coordenar uma resposta comunitária fora da banda. +O que torna estes ataques particularmente perigosos é que, em muitos casos, é necessário muito pouco capital ou conhecimentos técnicos. Um ataque à Camada 0 poderia ser um multiplicador em um ataque criptoeconômico. Por exemplo, se a censura ou a anulação da finalidade fossem alcançadas por uma parte interessada majoritária maliciosa, minar a camada social poderia dificultar a coordenação de uma resposta comunitária fora da banda. -Defender-se contra ataques à Camada 0 provavelmente não é uma tarefa simples, mas alguns princípios básicos podem ser estabelecidos. Uma delas é manter um sinal global alto de relação de ruído para informações públicas sobre o Ethereum, criado e propagado por membros honestos da comunidade por meio de blogs, servidores discord, especificações anotadas, livros, podcasts e Youtube. Aqui no ethereum.org, nos esforçamos para manter informações precisas e traduzi-las para o maior número de idiomas possível. Inundar um espaço com informações de alta qualidade e memes é uma defesa eficaz contra a desinformação. +Defender-se contra ataques à Camada 0 provavelmente não é uma tarefa simples, mas alguns princípios básicos podem ser estabelecidos. Um deles é manter um sinal global alto de relação de ruído para informações públicas sobre o Ethereum, criado e propagado por membros honestos da comunidade por meio de blogs, servidores discord, especificações anotadas, livros, podcasts e Youtube. Aqui no ethereum.org, nos esforçamos para manter informações precisas e traduzi-las para o maior número de idiomas possível. Inundar um espaço com informações de alta qualidade e memes é uma defesa eficaz contra a desinformação. Outro reforço importante contra os ataques às camadas sociais é uma declaração clara de missão e um protocolo de governança. O Ethereum se posicionou como o campeão de descentralização e segurança entre a camada 1 de contrato inteligente, enquanto também tem um elevado valor de escalabilidade e sustentabilidade. Independentemente dos desacordos que surgem na comunidade Ethereum, esses princípios fundamentais são minimamente comprometidos. A avaliação de uma narrativa contra esses princípios fundamentais e a análise destes por meio de sucessivas revisões no processo de EIP (Proposta de Melhoria Ethereum), poderá ajudar a comunidade a distinguir os bons dos maus atores e limitar o campo de influência de atores maliciosos na direção futura do Ethereum. @@ -47,95 +50,95 @@ Por fim, é fundamental que a comunidade Ethereum permaneça aberta e receptiva ### Atacando o protocolo {#attacking-the-protocol} -Qualquer um pode executar o software do cliente Ethereum. Para adicionar um validador a um cliente, um usuário precisa depositar 32 ethers em stake no contrato de depósito. Um validador permite que um usuário participe ativamente da segurança de rede Ethereum, propondo e atestando novos blocos. Os validadores agora têm voz ativa para influenciar o conteúdo futuro da blockchain. Eles podem fazer isso de forma honesta e, assim, aumentar seus ethers por meio de recompensas, ou podem tentar manipular o processo em benefício próprio, arriscando seu stake. Uma maneira de organizar um ataque é acumular uma maior proporção do stake total e, em seguida, usar isso para superar os votos dos validadores honestos. Quanto maior a proporção do stake controlado pelo atacante, maior será o seu poder de voto, especialmente em certos marcos econômicos que exploraremos mais tarde. No entanto, a maioria dos invasores não conseguirá acumular ethers suficientes para atacar dessa forma, portanto, eles têm de utilizar técnicas sutis para manipular a maioria honesta a agir de certa maneira. +Qualquer um pode executar o software cliente do Ethereum. Para adicionar um validador a um cliente, um usuário precisa depositar 32 ethers em stake no contrato de depósito. Um validador permite que um usuário participe ativamente da segurança da rede Ethereum, propondo e atestando novos blocos. Os validadores agora têm voz ativa para influenciar o conteúdo futuro da blockchain. Eles podem fazer isso de forma honesta e, assim, aumentar seus ethers por meio de recompensas, ou podem tentar manipular o processo em benefício próprio, arriscando seu stake. Uma maneira de organizar um ataque é acumular uma maior proporção do stake total e, em seguida, usar isso para superar os votos dos validadores honestos. Quanto maior a proporção do stake controlado pelo atacante, maior será o seu poder de voto, especialmente em certos marcos econômicos que exploraremos mais tarde. No entanto, a maioria dos atacantes não conseguirá acumular ethers suficientes para atacar dessa forma, portanto, eles têm de utilizar técnicas sutis para manipular a maioria honesta a agir de uma determinada maneira. -Essencialmente, todos os ataques com pouco stake são variações sutis de dois tipos de mau comportamento: subatividade (sem conseguir atestar/propor ou fazendo-o tardiamente) ou superatividade (propondo/atestando muitas vezes em um slot). Nas suas formas mais simples essas ações são facilmente manipuladas pelo algoritmo de escolha de fork e camada de incentivo, mas existem maneiras mais inteligentes de manipular o sistema em benefício de um invasor. +Essencialmente, todos os ataques com pouco stake são variações sutis de dois tipos de mau comportamento: subatividade (sem conseguir atestar/propor ou fazendo-o tardiamente) ou superatividade (propondo/atestando muitas vezes em um slot). Nas suas formas mais simples, essas ações são facilmente manipuladas pelo algoritmo de escolha de fork e camada de incentivo, mas existem maneiras mais inteligentes de manipular o sistema em benefício de um atacante. -### Ataques usando pequenas quantidades de ETH {#attacks-by-small-stakeholders} +### Ataques utilizando pequenas quantidades de ETH {#attacks-by-small-stakeholders} #### reorgs {#reorgs} -Vários artigos descreveram ataques no Ethereum que obtêm reorgs ou atraso de finalidade com apenas uma pequena proporção do total de ethers em stake. Esses ataques geralmente dependem de que o atacante retenha algumas informações de outros validadores e, em seguida, divulgue-as de maneira sutil e/ou em algum momento oportuno. Eles geralmente visam deslocar algum(ns) bloco(s) honesto(s) da cadeia padrão. [Neuder et al 2020](https://arxiv.org/pdf/2102.02247.pdf) mostrou como um validador invasor pode criar e atestar um bloco (`B`) para um determinado slot `n+1` mas evita propagá-lo para outros nós da rede. Em vez disso, eles mantêm o bloco atestado até o próximo slot `n+2`. Um validador honesto propõe um bloco (`C`) para o slot `n+2`. Quase simultaneamente, o invasor pode liberar seu bloco retido (`B`) e suas atestações retidos para isso, e também atestar `B` como a cabeça da cadeia com seus votos no slot `n+2`, efetivamente negando a existência de um bloco honesto `C`. Quando o bloco honesto `D` é lançado, o algoritmo de escolha de fork vê `D` construir em cima de `B` como mais pesado do que `D` construindo em `C`. O invasor consegue então remover o bloco honesto `C` no slot `n+2` da cadeia padrão usando uma reorganização anterior de 1 bloco. [Um invasor com 34%](https://www.youtube.com/watch?v=6vzXwwk12ZE) do stake tem uma grande chance de sucesso nesse ataque, conforme explicado [nesta nota](https://notes.ethereum.org/plgVdz-ORe-fGjK06BZ_3A#Fork-choice-by-block-slot-pair). Em teoria, porém, esse ataque poderia ser tentado com stakes menores. [Neuder et al 2020](https://arxiv.org/pdf/2102.02247.pdf) descreveu esse ataque funcionando com um stake de 30%, que mais tarde revelou-se viável com [2% do stake total](https://arxiv.org/pdf/2009.04987.pdf) e depois novamente para um [único validador](https://arxiv.org/abs/2110.10086#) usando técnicas de balanceamento que iremos examinar na próxima seção. +Vários artigos descreveram ataques ao Ethereum que realizam reorgs ou atraso de finalidade com apenas uma pequena proporção do total de ethers em stake. Geralmente, esses ataques dependem de o atacante reter algumas informações de outros validadores e, em seguida, divulgá-las de maneira sutil e/ou em algum momento oportuno. Eles geralmente visam deslocar algum(ns) bloco(s) honesto(s) da cadeia padrão. [Neuder et al. 2020 (https://arxiv.org/pdf/2102.02247.pdf) mostrou como um validador atacante pode criar e atestar um bloco ("B") para um determinado slot "n+1", mas evita propagá-lo para outros nós na rede. Em vez disso, eles mantêm o bloco atestado até o próximo slot "n+2". Um validador honesto propõe um bloco ("C") para o slot "n+2". Quase simultaneamente, o atacante pode liberar seu bloco retido ("B") e suas atestações retidas para ele, além de atestar que "B" é a cabeça da cadeia com seus votos para o slot "n+2", efetivamente negando a existência do bloco honesto "C". Quando o bloco honesto "D" é liberado, o algoritmo de escolha de fork vê "D" construindo sobre "B" como sendo mais pesado do que "D" construindo sobre "C". O atacante conseguiu, portanto, remover o bloco honesto "C" no slot "n+2" da cadeia padrão usando uma reorganização ex ante de 1 bloco. [Um atacante com 34%](https://www.youtube.com/watch?v=6vzXwwk12ZE) do stake tem uma chance muito alta de sucesso nesse ataque, como explicado [nesta nota](https://notes.ethereum.org/plgVdz-ORe-fGjK06BZ_3A#Fork-choice-by-block-slot-pair). Em teoria, porém, esse ataque poderia ser tentado com stakes menores. [Neuder et al 2020](https://arxiv.org/pdf/2102.02247.pdf) descreveu esse ataque funcionando com 30% do stake, mas posteriormente foi demonstrado que ele é viável com [2% do stake total](https://arxiv.org/pdf/2009.04987.pdf) e, depois, até mesmo para um [único validador](https://arxiv.org/abs/2110.10086#) usando técnicas de balanceamento que examinaremos na próxima seção. -![reorganização anterior](reorg-schematic.png) +![ex-ante re-org](reorg-schematic.png) -Um diagrama conceitual do ataque de reorganização de um bloco descrito acima (adaptado de https://notes.ethereum.org/plgVdz-ORe-fGjK06BZ_3A#Fork-choice-by-block-slot-pair) +Um diagrama conceitual do ataque de reorg de um bloco descrito acima (adaptado de https://notes.ethereum.org/plgVdz-ORe-fGjK06BZ_3A#Fork-choice-by-block-slot-pair) -Um ataque mais sofisticado pode dividir o conjunto do validador honesto em grupos discretos contendo visões diferentes da cabeça da cadeia. Isso é conhecido como um **ataque de balanceamento**. O invasor espera pela sua oportunidade de propor um bloco e, quando ela chega, engana e propõe dois. Ele envia um bloco para metade do conjunto do validador honesto e o outro bloco para a outra metade. O erro seria detectado pelo algoritmo de escolha de fork e o proponente de blocos seria reduzido e removido pela rede, mas os dois blocos ainda existiriam e teriam cerca de metade do conjunto validador atestando cada fork. Enquanto isso, os demais validadores maliciosos retêm suas atestações. Em seguida, ao liberar seletivamente as atestações favorecendo um ou outro fork para apenas uma quantidade de validadores suficiente enquanto o algoritmo de escolha de fork está em execução, eles fazem pender o peso acumulado das atestações a favor de um ou outro fork. Isso pode continuar indefinidamente, com os validadores invasores mantendo uma divisão igual de validadores entre os dois forks. Como nenhum fork pode atrair uma supermaioria de 2/3, a rede não seria finalizada. +Um ataque mais sofisticado pode dividir o conjunto do validador honesto em grupos discretos contendo visões diferentes da cabeça da cadeia. Isso é conhecido como um **ataque de balanceamento**. O atacante espera pela sua oportunidade de propor um bloco e, quando ela chega, engana e propõe dois. Ele envia um bloco para metade do conjunto do validador honesto e o outro bloco para a outra metade. O erro seria detectado pelo algoritmo de escolha de fork e o proponente de blocos seria reduzido e removido pela rede, mas os dois blocos ainda existiriam e teriam cerca de metade do conjunto validador atestando cada fork. Enquanto isso, os demais validadores maliciosos retêm suas atestações. Então, ao liberar seletivamente as atestações favorecendo um ou outro fork para apenas validadores suficientes no momento em que o algoritmo de escolha de fork é executado, eles inclinam o peso acumulado das atestações a favor de um ou outro fork. Isso pode continuar indefinidamente, com os validadores atacantes mantendo uma divisão igual de validadores entre os dois forks. Como nenhum fork pode atrair uma supermaioria de 2/3, a rede não seria finalizada. Os **ataques de salto** são semelhantes. Os votos são novamente retidos pelos validadores atacantes. Em vez de liberar os votos para manter uma divisão entre dois forks, eles usam seus votos em momentos oportunos para justificar pontos de verificação que alternam entre o fork A e o fork B. Esse vai e vem de justificações entre dois forks impede que existam pares de fontes justificadas e pontos de verificação que possam ser finalizados em qualquer cadeia, parando a finalidade. -Tanto os ataques de salto, quanto os ataques de balanceamento, dependem de o atacante ter um controle muito preciso sobre o momento das mensagens por toda a rede, o que é improvável. No entanto, as defesas são construídas no protocolo sob a forma de ponderação adicional dada às mensagens rápidas quando comparadas com as lentas. Isso é conhecido como [aceleração de peso do proponente](https://github.com/ethereum/consensus-specs/pull/2730). Para se defender contra ataques de salto, o algoritmo escolhido para o fork foi atualizado de modo que o último ponto de verificação justificado somente possa mudar para uma cadeia alternativa durante o [primeiro 1/3 dos slots em cada época](https://ethresear.ch/t/prevention-of-bouncing-attack-on-ffg/6114). Essa condição impede que o invasor economize votos para implantar mais tarde — o algoritmo de escolha do fork simplesmente permanece fiel ao ponto de verificação escolhido no primeiro 1/3 da época, durante o qual os validadores mais honestos teriam votado. +Tanto os ataques de salto, quanto os ataques de balanceamento, dependem de o atacante ter um controle muito preciso sobre o momento das mensagens por toda a rede, o que é improvável. No entanto, as defesas são construídas no protocolo sob a forma de ponderação adicional dada às mensagens rápidas quando comparadas com as lentas. Isso é conhecido como [aumento de peso do proponente](https://github.com/ethereum/consensus-specs/pull/2730). Para se defender contra ataques de salto, o algoritmo de escolha de fork foi atualizado para que o último checkpoint justificado só possa mudar para o de uma cadeia alternativa durante o [primeiro 1/3 dos slots em cada época](https://ethresear.ch/t/prevention-of-bouncing-attack-on-ffg/6114). Essa condição impede que o atacante economize votos para implantar mais tarde — o algoritmo de escolha do fork simplesmente permanece fiel ao ponto de verificação escolhido no primeiro 1/3 da época, durante o qual os validadores mais honestos teriam votado. Combinadas, essas medidas criam um cenário em que um proponente de blocos honesto emite seu bloco muito rapidamente após o início do slot, então há um período de ~1/3 de um slot (4 segundos), no qual esse novo bloco pode fazer com que o algoritmo de escolha de fork alterne para outra cadeia. Depois desse mesmo prazo, as atestações que chegam de validadores lentos têm peso reduzido em comparação com os que chegaram mais cedo. Isso favorece fortemente os proponentes e validadores rápidos na determinação da cabeça da cadeia e reduz substancialmente a probabilidade de um ataque de salto ou balanceamento bem-sucedido. -É importante observar que o proponente apenas defende contra “reorganizações baratas”, ou seja, tentativas feitas por um invasor com um stake pequeno. Na verdade, o próprio acelerador proponente pode ser induzido por partes interessadas maiores. Os autores [desta postagem](https://ethresear.ch/t/change-fork-choice-rule-to-mitigate-balancing-and-reorging-attacks/11127) descrevem como um invasor com 7% de stake pode implantar seus votos estrategicamente para enganar validadores honestos para construir sobre seu fork, reorganizando um bloco honesto. Esse ataque foi concebido assumindo condições de latência ideais muito improváveis. As probabilidades são ainda muito grandes para o invasor, e o stake maior também significa mais capital em risco e um desincentivo econômico maior. +É importante observar que o proponente apenas defende contra “reorgs baratas”, ou seja, tentativas feitas por um atacante com um stake pequeno. Na verdade, o próprio impulsionador do proponente pode ser induzido por partes interessadas maiores. Os autores [desta postagem](https://ethresear.ch/t/change-fork-choice-rule-to-mitigate-balancing-and-reorging-attacks/11127) descrevem como um atacante com 7% de stake pode implantar seus votos estrategicamente para enganar validadores honestos para construir sobre o seu fork, reorganizando um bloco honesto. Esse ataque foi concebido assumindo condições de latência ideais muito improváveis. As probabilidades são ainda muito grandes para o atacante, e o stake maior também significa mais capital em risco e um desincentivo econômico maior. -Um [ataque de balanceamento especificamente direcionado à regra de LMD](https://ethresear.ch/t/balancing-attack-lmd-edition/11853) também foi proposto, o que foi sugerido para ser viável, apesar do aumento do proponente. Um invasor cria duas cadeias concorrentes equivocando sua proposta de bloco e propagando cada bloco para cerca de metade da rede cada, estabelecendo um equilíbrio aproximado entre os forks. Em seguida, os validadores em conluio confundem seus votos, calculando o tempo para que metade da rede receba seus votos no fork `A` primeiro, e a outra metade receba seus votos no fork `B` primeiro. Já que a regra de LMD descarta o segundo certificado e mantém apenas o primeiro para cada validador, metade da rede vê os votos para `A` e nenhum para `B`, sendo que a outra metade vê votos para `B` e nenhum para `A`. Os autores descrevem a regra de LMD como dando ao adversário “poder notável” para montar um ataque de balanceamento. +Um [ataque de balanceamento visando especificamente a regra LMD](https://ethresear.ch/t/balancing-attack-lmd-edition/11853) também foi proposto, e foi sugerido que ele é viável apesar do impulsionamento do proponente. Um atacante cria duas cadeias concorrentes equivocando sua proposta de bloco e propagando cada bloco para cerca de metade da rede cada, estabelecendo um equilíbrio aproximado entre os forks. Em seguida, os validadores em conluio confundem seus votos, calculando o tempo para que metade da rede receba seus votos no fork "A" primeiro, e a outra metade receba seus votos no fork "B" primeiro. Já que a regra de LMD descarta o segundo certificado e mantém apenas o primeiro para cada validador, metade da rede vê os votos para "A" e nenhum para "B", sendo que a outra metade vê votos para "B" e nenhum para "A". Os autores descrevem a regra de LMD como dando ao adversário “poder notável” para montar um ataque de balanceamento. -Esse vetor de ataque LMD foi fechado [atualizando o algoritmo de escolha de fork](https://github.com/ethereum/consensus-specs/pull/2845) de modo que ele descarte os validadores equivocados da consideração da escolha do fork. Os validadores equivocados também têm sua futura influência descontada pelo algoritmo de escolha do fork. Isso evita o ataque de balanceamento descrito acima e mantém também resiliência contra ataques em avalanche. +Esse vetor de ataque LMD foi fechado ao [atualizar o algoritmo de escolha de fork](https://github.com/ethereum/consensus-specs/pull/2845) para descartar completamente os validadores que cometerem equívocos de consideração na escolha do fork. Os validadores equivocados também têm sua futura influência descontada pelo algoritmo de escolha do fork. Isso evita o ataque de balanceamento descrito acima e mantém também resiliência contra ataques em avalanche. -Outra categoria de ataque, chamada [**ataques em avalanche**](https://ethresear.ch/t/avalanche-attack-on-proof-of-stake-ghost/11854/3), foi descrita em um [artigo de março de 2022](https://arxiv.org/pdf/2203.01315.pdf). Para montar um ataque em avalanche, o invasor precisa controlar vários proponentes de bloco consecutivos. Em cada um dos slots da proposta de bloco, o invasor retém seus blocos, coletando-os até que a cadeia honesta atinja um peso igual de sub-árvore com os blocos retidos. Depois, os blocos retidos são liberados para causarem o máximo de equívoco. Os autores sugerem que o proponente impulsionando — a defesa primária contra os ataques de balanceamento e salto — não protege contra algumas variantes de ataque em avalanche. No entanto, os autores também só demonstraram o ataque a uma versão altamente idealizada do algoritmo de escolha de fork do Ethereum (eles usaram GHOST sem LMD). +Outra classe de ataque, chamada de [**ataques de avalanche**](https://ethresear.ch/t/avalanche-attack-on-proof-of-stake-ghost/11854/3), foi descrita em um [artigo de março de 2022](https://arxiv.org/pdf/2203.01315.pdf). Para montar um ataque em avalanche, o invasor precisa controlar vários proponentes de bloco consecutivos. Em cada um dos slots da proposta de bloco, o atacante retém seus blocos, coletando-os até que a cadeia honesta atinja um peso igual de sub-árvore com os blocos retidos. Depois, os blocos retidos são liberados para causarem o máximo de equívoco. Os autores sugerem que o proponente impulsionando — a defesa primária contra os ataques de balanceamento e de salto — não protege contra algumas variantes de ataque em avalanche. No entanto, os autores também só demonstraram o ataque a uma versão altamente idealizada do algoritmo de escolha de fork do Ethereum (eles usaram GHOST sem LMD). O ataque em avalanche é mitigado pela porção de LMD do algoritmo de escolha do fork LMD-GHOST. LMD significa “latest-message-driven” (dirigido à última mensagem) e se refere a uma tabela mantida por cada validador contendo a última mensagem recebida de outros validadores. Esse campo só é atualizado se a nova mensagem for de um slot posterior ao que já está na tabela para um validador em particular. Na prática, isso significa que em cada slot, a primeira mensagem recebida é aquela que aceitou e todas as mensagens adicionais são equívocos a serem ignorados. Por outras palavras, os clientes de consenso não contam equívocos — eles usam a primeira mensagem de cada validador e os equívocos são simplesmente descartados, evitando ataques em avalanche. -Há várias outras atualizações futuras possíveis para a regra de escolha do fork que podem aumentar a segurança fornecida pelo impulsionador do proponente. Uma delas é a [visualização mesclada](https://ethresear.ch/t/view-merge-as-a-replacement-for-proposer-boost/13739), na qual os atestadores congelam sua visualização da escolha do fork `n` segundos antes do início de um slot e, em seguida, o proponente ajuda a sincronizar a visualização da cadeia pela rede. Outra potencial melhoria é a [finalidade de slot único](https://notes.ethereum.org/@vbuterin/single_slot_finality), que protege contra ataques baseados no tempo da mensagem, finalizando a cadeia após apenas um slot. +Há várias outras atualizações futuras possíveis para a regra de escolha do fork que podem aumentar a segurança fornecida pelo impulsionador do proponente. Uma delas é a [view-merge](https://ethresear.ch/t/view-merge-as-a-replacement-for-proposer-boost/13739), na qual os atestadores congelam sua visão da escolha de fork "n" segundos antes do início de um slot e, em seguida, o proponente ajuda a sincronizar a visão da cadeia em toda a rede. Outra possível melhoria é a [finalidade em slot único](https://notes.ethereum.org/@vbuterin/single_slot_finality), que protege contra ataques baseados no tempo das mensagens ao finalizar a cadeia após apenas um slot. #### Atraso de finalidade {#finality-delay} -[O mesmo artigo](https://econcs.pku.edu.cn/wine2020/wine2020/Workshop/GTiB20_paper_8.pdf) que descreveu primeiro o ataque de reorganização de bloco único de baixo custo também descreveu um ataque de atraso de finalidade (também conhecido como “falha de vivacidade”) que depende de o atacante ser o proponente do bloco para um bloco de limite de época. Isso é crítico porque esses blocos de limite de época se tornam os pontos de verificação que o Casper FFG usa para finalizar partes da cadeia. O invasor simplesmente mantém seu bloco até que um número suficiente de validadores honestos usem seus votos FFG em favor do bloco anterior com limite de época como o atual alvo de finalização. Em seguida, eles liberam seus blocos retidos. Eles atestam seus blocos e os restantes validadores honestos o fazem também criando forks com pontos de verificação de destino diferentes. Se o fizerem no momento certo, evitarão a finalidade, pois não haverá uma supermaioria de 2/3 atestando outro fork. Quanto menor for o stake, mais preciso deverá ser o tempo, pois o invasor controla menos atestações diretamente, e menor será a probabilidade de o invasor controlar o validador propondo um determinado bloco de limites de época. +[O mesmo artigo](https://econcs.pku.edu.cn/wine2020/wine2020/Workshop/GTiB20_paper_8.pdf) que primeiro descreveu o ataque de reorganização de bloco único de baixo custo também descreveu um ataque de atraso na finalidade (também conhecido como “falha de vivacidade”), que depende do atacante ser o proponente do bloco de limite de época. Isso é crítico porque esses blocos de limite de época se tornam os pontos de verificação que o Casper FFG usa para finalizar partes da cadeia. O atacante simplesmente mantém seu bloco até que um número suficiente de validadores honestos usem seus votos FFG em favor do bloco anterior com limite de época como o atual alvo de finalização. Em seguida, eles liberam seus blocos retidos. Eles atestam seus blocos e os restantes validadores honestos o fazem também criando forks com pontos de verificação de destino diferentes. Se o fizerem no momento certo, evitarão a finalidade, pois não haverá uma supermaioria de 2/3 atestando outro fork. Quanto menor for o stake, mais preciso deverá ser o tempo, pois o invasor controla menos atestações diretamente, e menor será a probabilidade de o invasor controlar o validador propondo um determinado bloco de limites de época. #### Ataques de longo alcance {#long-range-attacks} -Também existe uma classe de ataque específico para blockchains de prova de participação que envolve um validador que participou do bloco de origem, mantendo um fork separado da blockchain junto com o honesto, finalmente convencendo o validador honesto definido a mudar para ele em algum tempo oportuno mais tarde. Este tipo de ataque não é possível no Ethereum devido ao dispositivo de finalidade que garante que todos os validadores concordem com o estado da cadeia honesta em intervalos regulares (“pontos de verificação”). Esse mecanismo simples neutraliza invasores de longo alcance, pois os clientes do Ethereum simplesmente não irão reorganizar blocos finalizados. Novos nós que participam da rede fazem isso encontrando um hash confiável do estado recente (um “ponto de verificação de[subjetividade fraca](https://blog.ethereum.org/2014/11/25/proof-stake-learned-love-weak-subjectivity/)”) e usando-o como um pseudo bloco de origem sobre o qual se construir. Isso cria um “gateway de confiança” para um novo nó que entra na rede antes de começar a verificar as informações por si mesmo. +Também existe uma classe de ataque específico para blockchains de prova de participação que envolve um validador que participou do bloco de origem, mantendo um fork separado da blockchain junto com o honesto, finalmente convencendo o validador honesto definido a mudar para ele em algum momento oportuno, bem mais tarde. Esse tipo de ataque não é possível no Ethereum devido ao dispositivo de finalidade, que garante que todos os validadores concordem com o estado da cadeia honesta em intervalos regulares (“pontos de verificação”). Esse mecanismo simples neutraliza atacantes de longo alcance, pois os clientes do Ethereum simplesmente não irão reorganizar blocos finalizados. Novos nós que ingressam na rede fazem isso encontrando um hash de estado recente confiável (um "ponto de verificação de [subjetividade fraca](https://blog.ethereum.org/2014/11/25/proof-stake-learned-love-weak-subjectivity/)") e o utilizando como um pseudo-bloco de origem para construir a partir dele. Isso cria um “gateway de confiança” para um novo nó que entra na rede antes de começar a verificar as informações por si mesmo. #### Negação de serviço {#denial-of-service} -O mecanismo PoS da Ethereum escolhe um único validador do conjunto total de validadores para ser o proponente de blocos em cada slot. Isso pode ser calculado usando uma função conhecida publicamente e é possível para um adversário identificar o próximo proponente de blocos um pouco antes de sua proposta de bloco. Em seguida, o invasor pode enviar spam ao proponente de bloco para evitar que eles troquem informações com seus pares. Para o resto da rede, vai parecer que o proponente de blocos estava offline e que o slot simplesmente iria ficar vazio. Isso pode ser uma forma de censura contra validadores específicos, impedindo-os de adicionar informações à blockchain. A implementação de eleições de líder único secretas (SSLE) ou eleições de líder não único secretas atenuarão os riscos de DoS, pois só o proponente de blocos sabe que foram eles selecionados e a seleção não é conhecida antecipadamente. Isso ainda não está implementado, mas é uma área ativa de [pesquisa e desenvolvimento](https://ethresear.ch/t/secret-non-single-leader-election/11789). +O mecanismo prova de participação da Ethereum escolhe um único validador do conjunto total de validadores para ser o proponente de blocos em cada slot. Isso pode ser calculado usando uma função conhecida publicamente e é possível para um adversário identificar o próximo proponente de blocos um pouco antes de sua proposta de bloco. Em seguida, o atacante pode enviar um spam ao proponente de bloco para evitar que ele troque informações com seus pares. Para o resto da rede, vai parecer que o proponente de blocos estava offline e que o slot simplesmente iria ficar vazio. Isso pode ser uma forma de censura contra validadores específicos, impedindo-os de adicionar informações à blockchain. A implementação de eleições de líder único secretas (SSLE) ou eleições de líder não único secretas atenuarão os riscos de negação de serviço, pois só o proponente de blocos sabe que foram eles os selecionados e a seleção não é conhecida antecipadamente. Isso ainda não foi implementado, mas é uma área ativa de [pesquisa e desenvolvimento](https://ethresear.ch/t/secret-non-single-leader-election/11789). -Tudo isso aponta para o fato de que é muito difícil atacar com sucesso o Ethereum com um pequeno stake. Os ataques viáveis descritos aqui requerem um algoritmo de seleção de fork idealizado, condições de rede improváveis, ou os vetores de ataque já foram fechados com patches relativamente menores para o software cliente. Isso, claro, não exclui a possibilidade de existirem zero dias na natureza, mas demonstra a alta exigência de aptidão técnica, conhecimento da camada de consenso e sorte necessárioa para que um invasor minoritário de stakes seja eficaz. Do ponto de vista de um invasor, sua melhor aposta podeá ser a de acumular o máximo de ethers possível e retornar equipado com uma maior proporção de stakes total. +Tudo isso aponta para o fato de que é muito difícil atacar com sucesso o Ethereum com um pequeno stake. Os ataques viáveis descritos aqui requerem um algoritmo de seleção de fork idealizado, condições de rede improváveis, ou os vetores de ataque já foram fechados com patches relativamente menores para o software cliente. Isso, claro, não exclui a possibilidade de existirem zero dias na natureza, mas demonstra a alta exigência de aptidão técnica, conhecimento da camada de consenso e sorte necessários para que um atacante minoritário de stakes seja eficaz. Do ponto de vista de um invasor, sua melhor aposta poderá ser a de acumular o máximo de ethers possível e retornar equipado com uma maior proporção de stakes total. -### Ataques usando >= 33% do stake total {#attackers-with-33-stake} +### Atacantes usando >= 33% do stake total {#attackers-with-33-stake} -Todos os ataques mencionados anteriormente neste artigo se tornam mais propensos a terem êxito quando o invasor tiver mais ethers em stake para votar, e mais validadores que podem ser escolhidos para propor blocos em cada slot. Um validador malicioso pode buscar, portanto, controlar o máximo possível de ethers em stake. +Todos os ataques mencionados anteriormente neste artigo se tornam mais propensos a terem êxito quando o atacante tiver mais ethers em stake para votar, e mais validadores que podem ser escolhidos para propor blocos em cada slot. Um validador malicioso pode buscar, portanto, controlar o máximo possível de ethers em stake. -33% do ether em stake é um ponto de referência para um invasor porque, com qualquer coisa maior que essa quantidade, eles têm a habilidade de evitar que a cadeia finalize sem ter que controlar com precisão as ações dos outros validadores. Eles simplesmente podem desaparecer todos juntos. Se 1/3 ou mais do ether em stake estiver atestando de forma maliciosa ou falhando em atestar, não poderá existir uma supermaioria de 2/3 e a cadeia não poderá finalizar. A defesa contra isso é o vazamento de inatividade. O vazamento de inatividade identifica os validadores que estão falhando em atestar ou atestando contrário à maioria. O ether em stake pertencente a esses validadores que não atestam é esvaziado gradualmente até que, por fim, eles representem coletivamente menos de 1/3 do total, de modo que a cadeia possa ser finalizada novamente. +33% do ether em stake é um ponto de referência para um atacante porque, com qualquer coisa maior que essa quantidade, eles têm a habilidade de evitar que a cadeia finalize sem ter que controlar com precisão as ações dos outros validadores. Eles simplesmente podem desaparecer todos juntos. Se 1/3 ou mais do ether em stake estiver atestando de forma maliciosa, ou falhando em atestar, não poderá existir uma supermaioria de 2/3 e a cadeia não poderá finalizar. A defesa contra isso é o vazamento de inatividade. O vazamento de inatividade identifica os validadores que estão falhando em atestar ou atestando contrário à maioria. O ether em stake pertencente a esses validadores que não atestam é esvaziado gradualmente até que, por fim, eles representem coletivamente menos de 1/3 do total, de modo que a cadeia possa ser finalizada novamente. O propósito do vazamento de inatividade é finalizar a cadeia novamente. No entanto, o invasor também perde uma parte do seu ether em stake. Inatividade persistente entre validadores que representam 33% do ether total em stake é muito caro, mesmo que os validadores não tenham sido removidos. -Presumindo que a rede Ethereum seja assíncrona (ou seja, há atrasos entre as mensagens sendo enviadas e recebidas), um atacante controlando 34% do stake total poderia causar dupla finalidade. Isso ocorre porque o invasor pode se enganar quando é escolhido para ser produtor de bloco e votar duas vezes com todos os seus validadores. Isso cria uma situação em que existe um fork da blockchain, cada um com 34% do ether em stake votando por ele. Cada fork requer apenas 50% dos validadores restantes para votar em seu favor para que ambos os forks sejam apoiados por uma supermaioria, devendo nesses caso ambas as cadeias poderem finalizar (pois 34% dos invasores validadores + metade do restante de 66% = 67% em cada fork). Cada um dos blocos concorrentes teria que ser recebido por cerca de 50% dos validadores honestos para que esse ataque seja viável somente quando o invasor tiver algum grau de controle sobre o tempo das mensagens que se propagam pela rede, para que eles possam levar metade dos validadores honestos para cada cadeia. O invasor destruiria necessariamente toda o seu stake (34% de ~10 milhões de ethers com o conjunto de validadores atual) para alcançar essa dupla finalidade, pois 34% de seus validadores teriam voto duplo simultaneamente — uma infração sujeita a remoção com penalidade máxima. A defesa contra este ataque é o custo muito elevado de destruir 34% do total do ethers em stake. Para se recuperar desse ataque, seria necessário que a comunidade Ethereum se coordenasse “fora de banda” e concordasse em seguir um ou outro dos forks e ignorar o outro. +Presumindo que a rede Ethereum seja assíncrona (ou seja, há atrasos entre as mensagens sendo enviadas e recebidas), um atacante controlando 34% do stake total poderia causar dupla finalidade. Isso ocorre porque o atacante pode se enganar quando é escolhido para ser produtor de bloco e votar duas vezes com todos os seus validadores. Isso cria uma situação em que existe um fork da blockchain, cada um com 34% do ether em stake votando por ele. Cada fork requer apenas 50% dos validadores restantes para votar em seu favor para que ambos os forks sejam apoiados por uma supermaioria, devendo nesses caso ambas as cadeias poderem finalizar (pois 34% dos atacantes validadores + metade do restante de 66% = 67% em cada fork). Cada um dos blocos concorrentes teria que ser recebido por cerca de 50% dos validadores honestos para que esse ataque seja viável somente quando o atacante tiver algum grau de controle sobre o tempo das mensagens que se propagam pela rede, para que eles possam levar metade dos validadores honestos para cada cadeia. O atacante destruiria necessariamente todo o seu stake (34% de ~10 milhões de ethers com o conjunto de validadores atual) para alcançar essa dupla finalidade, pois 34% de seus validadores teriam voto duplo simultaneamente — uma infração sujeita a remoção com penalidade máxima. A defesa contra este ataque é o custo muito elevado de destruir 34% do total do ethers em stake. Para se recuperar desse ataque, seria necessário que a comunidade Ethereum se coordenasse “fora de banda” e concordasse em seguir um ou outro dos forks e ignorar o outro. -### Invasores usando ~50% do stake total {#attackers-with-50-stake} +### Atacantes usando ~50% do stake total {#attackers-with-50-stake} A 50% do ether em stake, um grupo malicioso de validadores poderia, teoricamente, dividir a cadeia em dois forks de tamanho igual e, em seguida, simplesmente usar todo seu stake de 50% para votar contrariamente ao conjunto de validadores honestos, mantendo assim os dois forks e impedindo a finalidade. O vazamento de inatividade em ambos os forks levaria, por fim, ambas as cadeias a finalizar. A essa altura, a única opção é recorrer a uma recuperação social. -É muito improvável que um grupo adversário de validadores possa controlar, de forma consistente, precisamente 50% do stake total, dado um determinado grau de fluxo em números de validadores honestos, latência de rede, etc. Porém, o enorme custo de montar tal ataque, combinado com a baixa probabilidade de sucesso, parece ser um grande desincentivo para um invasor racional, especialmente quando um pequeno investimento adicional para obter _mais do que_ 50% proporciona muito mais poder. +É muito improvável que um grupo adversário de validadores consiga controlar exatamente 50% do stake total de forma consistente, devido à variação no número de validadores honestos, latência da rede, etc. O enorme custo para montar um ataque desse tipo, combinado com a baixa probabilidade de sucesso, parece ser um forte desincentivo para um atacante racional, especialmente quando um pequeno investimento adicional para obter _mais de_ 50% desbloqueia muito mais poder. -Com >50% do stake total, o invasor poderia dominar o algoritmo de escolha do fork. Nesse caso, o invasor poderia atestar com o voto majoritário, dando-lhes controle suficiente para fazer pequenas reorganizações sem precisar enganar clientes honestos. Os validadores honestos seguiriam o exemplo, pois seu algoritmo de escolha de fork também veria a cadeia preferida do invasor como a mais pesada, permitindo que a cadeia finalize. Isso permite ao invasor censurar certas transações, fazer reorganizações de curto alcance e extrair o máximo de MEV reordenando blocos a seu favor. A defesa contra isso é o enorme custo de um stake majoritário (atualmente, pouco menos de 19 bilhões de dólares) posto em risco por um invasor, pois a camada social é susceptível de intervir e adotar um fork de minoria honesta, desvalorizando o stake do invasor drasticamente. +Com >50% do stake total, o atacante poderia dominar o algoritmo de escolha do fork. Nesse caso, o atacante poderia atestar com o voto majoritário, dando-lhe controle suficiente para fazer pequenas reorganizações sem precisar enganar clientes honestos. Os validadores honestos seguiriam o exemplo, pois seu algoritmo de escolha de fork também veria a cadeia preferida do atacante como a mais pesada, permitindo que a cadeia finalize. Isso permite ao atacante censurar certas transações, fazer reorganizações de curto alcance e extrair o máximo de MEV reordenando blocos a seu favor. A defesa contra isso é o enorme custo de um stake majoritário (atualmente, pouco menos de 19 bilhões de dólares) posto em risco por um atacante, pois a camada social é susceptível de intervir e adotar um fork de minoria honesta, desvalorizando o stake do invasor drasticamente. -### Invasores usando >= 66% do stake total {#attackers-with-66-stake} +### Atacantes usando >=66% do stake total {#attackers-with-66-stake} -Um invasor com 66% ou mais do ether total em stake pode finalizar sua cadeia preferida sem ter que coagir nenhum validador honesto. O invasor pode simplesmente votar no seu fork preferido e depois finalizá-lo, simplesmente porque ele pode votar com uma supermaioria desonesta. Como parte interessada de supermaioria, o invasor sempre controlaria o conteúdo dos blocos finalizados, com o poder de gastar, retroceder e gastar novamente, censurar determinadas transações e reorganizar a cadeia como quisesse. Comprando mais ethers para controlar 66% em vez de 51%, o invasor está efetivamente comprando a habilidade de fazer reorganizações ex post e reversões de finalidade (ou seja, alterar o passado e controlar o futuro). As únicas defesas reais aqui são o enorme custo de 66% do total do ethers em stake e a opção de voltar à camada social para coordenar a adoção de um fork alternativo. Podemos explorar isso com mais detalhes na próxima seção. +Um atacante com 66% ou mais do ether total em stake pode finalizar sua cadeia preferida sem ter que coagir nenhum validador honesto. O atacante pode simplesmente votar no seu fork preferido e depois finalizá-lo, simplesmente porque ele pode votar com uma supermaioria desonesta. Como detentor da supermaioria, o atacante sempre controlaria o conteúdo dos blocos finalizados, com o poder de gastar, retroceder e gastar novamente, censurar determinadas transações e reorganizar a cadeia como quisesse. Comprando mais ethers para controlar 66% em vez de 51%, o atacante está efetivamente comprando a capacidade de fazer reorganizações ex post e anulações de finalidade (ou seja, alterar o passado e controlar o futuro). As únicas defesas reais aqui são o enorme custo de 66% do total de ethers em stake e a opção de voltar à camada social para coordenar a adoção de um fork alternativo. Podemos explorar isso com mais detalhes na próxima seção. ## Pessoas: a última linha de defesa {#people-the-last-line-of-defense} Se os validadores desonestos conseguirem finalizar sua versão preferida da cadeia, a comunidade Ethereum é colocada em uma situação difícil. A cadeia padrão inclui uma seção desonesta produzida em seu histórico, enquanto validadores honestos podem acabar sendo punidos por atestar uma cadeia alternativa (honesta). Observe que uma cadeia finalizada, mas incorreta, também poderia surgir de um bug em um cliente maioritário. No final, o último recurso é confiar na camada social — Camada 0 — para resolver a situação. -Um dos pontos fortes do consenso do Ethereum no PoS é que há uma [gama de estratégias defensivas](https://youtu.be/1m12zgJ42dI?t=1712) que a comunidade pode empregar diante de um ataque. Uma resposta mínima poderia ser tirar forçadamente os validadores dos atacantes da rede sem nenhuma penalidade adicional. Para entrar novamente na rede, o invasor teria que entrar em uma fila de ativação que garantisse que o validador definido crescesse gradualmente. Por exemplo, adicionar validadores suficientes para dobrar a quantidade de ethers em stake leva cerca de 200 dias, efetivamente fazendo com que os validadores honestos ganhem 200 dias antes que o atacante possa tentar outro ataque de 51%. No entanto, a comunidade também poderia decidir penalizar o invasor de forma mais severa, revogando recompensas passadas ou queimando alguma porção (até 100%) do seu capital em stake. +Um dos pontos fortes do consenso de prova de participação do Ethereum é que existe uma [variedade de estratégias defensivas](https://youtu.be/1m12zgJ42dI?t=1712) que a comunidade pode adotar diante de um ataque. Uma resposta mínima poderia ser tirar forçadamente os validadores dos atacantes da rede sem nenhuma penalidade adicional. Para entrar novamente na rede, o invasor teria que entrar em uma fila de ativação que garantisse que o validador definido crescesse gradualmente. Por exemplo, adicionar validadores suficientes para dobrar a quantidade de ethers em stake leva cerca de 200 dias, efetivamente fazendo com que os validadores honestos ganhem 200 dias antes que o atacante possa tentar outro ataque de 51%. No entanto, a comunidade também poderia decidir penalizar o atacante de forma mais severa, revogando recompensas passadas ou queimando alguma porção (até 100%) do seu capital em stake. -Seja qual for a penalidade imposta ao invasor, a comunidade também tem de decidir em conjunto se a cadeia desonesta, apesar de ser a favorita pelo algoritmo de escolha do fork codificado nos clientes Ethereum, é de fato inválida e se a comunidade deve construir por cima da cadeia honesta. Os validadores honestos poderiam concordar coletivamente em construir sobre um fork aceito pela comunidade da blockchain Ethereum que poderia, por exemplo, ter feito o fork da cadeia padrão antes de o ataque começar ou ter os validadores dos invasores removidos forçadamente. Os validadores honestos seriam incentivados a construir nessa cadeia, pois eles evitariam as penalidades aplicadas a eles por falhar (devidamente) em atestar a cadeia do invasor. Agências de câmbio, rampas de acesso e aplicativos construídos no Ethereum provavelmente prefeririam estar na cadeia honesta e seguir os validadores honestos na blockchain honesta. +Seja qual for a penalidade imposta ao atacante, a comunidade também tem de decidir em conjunto se a cadeia desonesta, apesar de ser a favorita pelo algoritmo de escolha do fork codificado nos clientes Ethereum, é de fato inválida e se a comunidade deve construir por cima da cadeia honesta. Os validadores honestos poderiam concordar coletivamente em construir sobre um fork aceito pela comunidade da blockchain Ethereum que poderia, por exemplo, ter feito o fork da cadeia padrão antes de o ataque começar ou ter os validadores dos atacantes removidos forçadamente. Os validadores honestos seriam incentivados a construir nessa cadeia, pois eles evitariam as penalidades aplicadas a eles por falhar (devidamente) em atestar a cadeia do invasor. Agências de câmbio, rampas de acesso e aplicativos construídos no Ethereum provavelmente prefeririam estar na cadeia honesta e seguir os validadores honestos na blockchain honesta. -No entanto, isso constituiria um desafio substancial em termos de governança. Alguns usuários e validadores certamente se perderiam ao retornar à cadeia honesta. As transações em blocos validados após o ataque poderiam ser revertidas, perturbando a camada de aplicação, o que simplesmente compromete a ética de alguns usuários que tendem a acreditar que “código é lei”. Agências de câmbio e aplicações teriam provavelmente vinculado ações fora da cadeia a transações na cadeia, que agora podem ser revertidas, começando uma cascata de retratações e revisões que seria difícil de desfazer de forma justa, especialmente se os ganhos obtidos ilicitamente tiverem sido misturados, depositados em DeFi ou em outros derivados com efeitos secundários para usuários honestos. Sem dúvida que alguns usuários, talvez mesmo institucionais, já teriam se beneficiado da cadeia desonesta, seja por esperteza ou por acaso, e poderiam se opor a um fork para proteger seus ganhos. Já foram feitos pedidos para simular a resposta da comunidade a ataques de >51%, a fim de coordenar uma ação de mitigação sensata que possa ser executada rapidamente. Existem algumas discussões úteis de Vitalik no ethresear.ch [aqui](https://ethresear.ch/t/timeliness-detectors-and-51-attack-recovery-in-blockchains/6925) e [aqui](https://ethresear.ch/t/responding-to-51-attacks-in-casper-ffg/6363) e no Twitter [aqui](https://twitter.com/skylar_eth/status/1551798684727508992?s=20&t=oHZ1xv8QZdOgAXhxZKtHEw). O objetivo de uma resposta social coordenada é o de ser muito direcionada e específica para punir o invasor e minimizar os efeitos para outros usuários. +No entanto, isso constituiria um desafio substancial em termos de governança. Alguns usuários e validadores certamente se perderiam ao retornar à cadeia honesta. As transações em blocos validados após o ataque poderiam ser anuladas, perturbando a camada de aplicação, o que simplesmente compromete a ética de alguns usuários que tendem a acreditar que “código é lei”. Agências de câmbio e aplicações teriam provavelmente vinculado ações fora da cadeia a transações na cadeia, que agora podem ser anuladas, começando uma cascata de retratações e revisões que seria difícil de desfazer de forma justa, especialmente se os ganhos obtidos ilicitamente tiverem sido misturados, depositados em DeFi ou em outros derivados com efeitos secundários para usuários honestos. Sem dúvida que alguns usuários, talvez mesmo institucionais, já teriam se beneficiado da cadeia desonesta, seja por esperteza ou por acaso, e poderiam se opor a um fork para proteger seus ganhos. Houve pedidos para ensaiar a resposta da comunidade a ataques de >51% para que uma mitigação coordenada e sensata possa ser executada rapidamente. Há uma discussão útil de Vitalik no ethresear.ch [aqui](https://ethresear.ch/t/timeliness-detectors-and-51-attack-recovery-in-blockchains/6925) e [aqui](https://ethresear.ch/t/responding-to-51-attacks-in-casper-ffg/6363) e no Twitter aqui. O objetivo de uma resposta social coordenada é o de ser muito direcionada e específica para punir o atacante e minimizar os efeitos para outros usuários. -Governança já é um tema complicado. Gerenciar uma resposta de emergência de Camada 0 para uma cadeia de finalização desonesta seria, sem dúvida, desafiante para a comunidade Ethereum, mas [aconteceu](/history/#dao-fork-summary) - [duas vezes](/history/#tangerine-whistle) no histórico do Ethereum). +Governança já é um tema complicado. Gerenciar uma resposta de emergência na Camada 0 para uma cadeia de finalização desonesta seria, sem dúvida, um desafio para a comunidade Ethereum, mas isso [já aconteceu](/history/#dao-fork-summary) — [duas vezes](/history/#tangerine-whistle) — na história da Ethereum). -No entanto, há algo que é bastante satisfatório na última tentativa no mundo real. Em última análise, mesmo com essa pilha fenomenal de tecnologia acima de nós, se o pior alguma vez acontecer, pessoas reais terão de coordenar a solução. +No entanto, há algo que é bastante satisfatório na última tentativa no mundo real. Por fim, mesmo com essa pilha fenomenal de tecnologia acima de nós, se o pior alguma vez acontecer, pessoas reais terão de coordenar a solução. ## Resumo {#summary} -Esta página explorou algumas das maneiras como os invasores poderiam tentar explorar o protocolo de consenso da prova de participação do Ethereum. Reorganizações e atrasos de finalidade foram explorados por invasores com proporções cada vez maiores do total de ethers em stake. No geral, um invasor mais rico tem mais chances de sucesso porque seu stake se traduz em poder de voto, que ele pode usar para influenciar o conteúdo de futuros blocos. Em certas quantidades limite de ether em stake, o poder do invasor aumenta de nível: +Esta página explorou algumas das maneiras como os atacantes poderiam tentar explorar o protocolo de consenso da prova de participação do Ethereum. Reorgs e atrasos de finalidade foram explorados por atacantes com proporções cada vez maiores do total de ethers em stake. No geral, um atacante mais rico tem mais chances de sucesso porque seu stake se traduz em poder de voto, que ele pode usar para influenciar o conteúdo de futuros blocos. Em certas quantidades limite de ether em stake, o poder do atacante aumenta de nível: 33%: atraso de finalidade @@ -145,19 +148,19 @@ Esta página explorou algumas das maneiras como os invasores poderiam tentar exp 66%: atraso de finalidade, dupla finalidade, censura, controle sobre o futuro e passado da blockchain -Há também uma série de ataques mais sofisticados que exigem pequenas quantidades de ether em stake, mas dependem de um invasor muito sofisticado que tenha bom controle sobre o tempo das mensagens para influenciar o conjunto de validadores honestos a seu favor. +Há também uma série de ataques mais sofisticados que exigem pequenas quantidades de ether em stake, mas dependem de um atacante muito sofisticado que tenha bom controle sobre o tempo das mensagens para influenciar o conjunto de validadores honestos a seu favor. -Em geral, apesar desses potenciais vetores de ataque, o risco de um ataque bem-sucedido é baixo, certamente menor que os equivalentes da prova de trabalho. Isso é devido ao enorme custo do ether colocado em risco por um invasor visando esmagar validadores honestos com seu poder de voto. A camada de incentivo de “cenoura e bastão” incorporada protege contra a maioria das condutas ilegais, especialmente para os invasores de baixo stake. Ataques mais sutis de salto e balanceamento também têm poucas chances de êxito, pois as condições reais da rede tornam o controle detalhado da entrega de mensagens a subconjuntos específicos de validadores muito difícil de atingir, e as equipes de clientes fecharam rapidamente os vetores de ataque de salto, balanceamento e avalanche conhecidos usando patches simples. +Em geral, apesar desses potenciais vetores de ataque, o risco de um ataque bem-sucedido é baixo, certamente menor que os equivalentes da prova de trabalho. Isso é devido ao enorme custo do ether colocado em risco por um atacante visando esmagar validadores honestos com seu poder de voto. A camada de incentivo de “cenoura e bastão” incorporada protege contra a maioria das condutas ilegais, especialmente para os atacantes de baixo stake. Ataques mais sutis de salto e balanceamento também têm poucas chances de êxito, pois as condições reais da rede tornam o controle detalhado da entrega de mensagens a subconjuntos específicos de validadores muito difícil de atingir. Além disso, as equipes de clientes fecharam rapidamente os vetores de ataque de salto, balanceamento e avalanche conhecidos usando patches simples. -Para solucionar ataques de 34%, 51% ou 66% seria provavelmente necessário uma coordenação social fora de banda. Embora isso provavelmente seja doloroso para a comunidade, a capacidade de uma comunidade responder fora da banda é um forte desincentivo para um invasor. A camada social do Ethereum é o ponto final — um ataque tecnicamente bem-sucedido ainda poderia ser neutralizado se a comunidade concordar em adotar um fork honesto. Haveria uma corrida entre o invasor e a comunidade Ethereum — os bilhões de dólares gastos em um ataque de 66% seriam provavelmente eliminados por um ataque de coordenação social bem-sucedido, se fossem entregues com rapidez suficiente. Isso deixaria o invasor com enormes quantidades de ether em stake sem liquidez em uma cadeia desonesta conhecida, ignorada pela comunidade Ethereum. A probabilidade dessa ação ser lucrativa é tão baixa que se torna um dissuasor eficaz. É por isso que o investimento na manutenção de uma camada social coesa com valores fortemente alinhados é tão importante. +Para solucionar ataques de 34%, 51% ou 66% seria provavelmente necessário uma coordenação social fora de banda. Embora isso provavelmente seja doloroso para a comunidade, a capacidade de uma comunidade responder fora da banda é um forte desincentivo para um atacante. A camada social do Ethereum é o ponto final — um ataque tecnicamente bem-sucedido ainda poderia ser neutralizado se a comunidade concordar em adotar um fork honesto. Haveria uma corrida entre o atacante e a comunidade Ethereum — os bilhões de dólares gastos em um ataque de 66% seriam provavelmente eliminados por um ataque de coordenação social bem-sucedido, se fossem entregues com rapidez suficiente. Isso deixaria o invasor com enormes quantidades de ether em stake sem liquidez em uma cadeia desonesta conhecida, ignorada pela comunidade Ethereum. A probabilidade de essa ação ser lucrativa é tão baixa que se torna um dissuasor eficaz. É por isso que o investimento na manutenção de uma camada social coesa com valores fortemente alinhados é tão importante. ## Leitura adicional {#further-reading} - [Versão mais detalhada desta página](https://mirror.xyz/jmcook.eth/YqHargbVWVNRQqQpVpzrqEQ8IqwNUJDIpwRP7SS5FXs) -- [Vitalik sobre finalidade de liquidação](https://blog.ethereum.org/2016/05/09/on-settlement-finality/) -- [Artigo sobre o GHOST LMD](https://arxiv.org/abs/2003.03052) -- [Artigo sobre o Casper-FFG](https://arxiv.org/abs/1710.09437) +- [Vitalik sobre a finalidade de regulamentação](https://blog.ethereum.org/2016/05/09/on-settlement-finality/) +- [Artigo sobre LMD GHOST](https://arxiv.org/abs/2003.03052) +- [Artigo Casper-FFG](https://arxiv.org/abs/1710.09437) - [Artigo sobre o Gasper](https://arxiv.org/pdf/2003.03052.pdf) -- [Especificações de consenso de aumento de peso do proponente](https://github.com/ethereum/consensus-specs/pull/2730) +- [Especificações de consenso sobre o aumento de peso do proponente](https://github.com/ethereum/consensus-specs/pull/2730) - [Ataques de salto em ethresear.ch](https://ethresear.ch/t/prevention-of-bouncing-attack-on-ffg/6114) - [Pesquisa SSLE](https://ethresear.ch/t/secret-non-single-leader-election/11789) diff --git a/public/content/translations/pt-br/developers/docs/consensus-mechanisms/pos/index.md b/public/content/translations/pt-br/developers/docs/consensus-mechanisms/pos/index.md index d3bae61b6cd..fd211b557a4 100644 --- a/public/content/translations/pt-br/developers/docs/consensus-mechanisms/pos/index.md +++ b/public/content/translations/pt-br/developers/docs/consensus-mechanisms/pos/index.md @@ -24,7 +24,7 @@ Enquanto na prova de trabalho, o tempo dos blocos é determinado pela dificuldad O seguinte fornece uma explicação de ponta a ponta de como uma transação é executada na proof-of-stake da Ethereum. -1. Um usuário cria e assina uma href="/developers/docs/transactions/">transação/a> com sua chave privada. Isso geralmente é feito por uma carteira ou uma biblioteca como a [ether.js](https://docs.ethers.io/v5/), [web3js](https://docs.web3js.org/), [web3py](https://web3py.readthedocs.io/en/v5/) etc, mas sem o conhecimento do usuário está fazendo uma solicitação para um nó usando o Ethereum [JSON-RPC API](/developers/docs/apis/json-rpc/). O usuário define a quantidade de gás que está disposto a pagar como gorjeta a um validador para incentivá-lo a incluir a transação em um bloco. As [dicas](/developers/docs/gas/#priority-fee) são pagas ao validador enquanto a [taxa básica](/developers/docs/gas/#base-fee) é paga queimado. +1. Um usuário cria e assina uma href="/developers/docs/transactions/">transação/a> com sua chave privada. Isso geralmente é feito por uma carteira ou uma biblioteca como a [ethers.js](https://docs.ethers.org/v6/), [web3js](https://docs.web3js.org/), [web3py](https://web3py.readthedocs.io/en/v5/) etc., mas, no fundo, o usuário está fazendo uma solicitação para um nó usando o Ethereum [JSON-RPC API](/developers/docs/apis/json-rpc/). O usuário define a quantidade de gás que está disposto a pagar como gorjeta a um validador para incentivá-lo a incluir a transação em um bloco. As [dicas](/developers/docs/gas/#priority-fee) são pagas ao validador enquanto a [taxa básica](/developers/docs/gas/#base-fee) é paga queimado. 2. A transação é enviada para um [cliente de execução](/developers/docs/nodes-and-clients/#execution-client) Ethereum que verifica a sua validade. Isto significa garantir que o remetente tem ETH suficiente para realizar a transação e eles o assinaram com a chave correta. 3. Se a transação for válida, o cliente de execução adiciona-o à sua mempool local (lista de transações pendentes) e também a transmite para outros nós por meio da rede gossip da camada de execução. Quando outros nós ouvem sobre a transação, eles a adicionam à sua mempool local também. Os usuários avançados podem abster-se de transmitir sua transações e, em vez disso, encaminhá-la a criadores de blocos especializados, como [Flashbots Auction](https://docs.flashbots.net/flashbots-auction/overview). Isso permite que eles organizem as transações nos próximos blocos para obter o máximo lucro ([MEV](/developers/docs/mev/#mev-extraction)). 4. Um dos nós validadores na rede é o proponente de bloco para o slot atual, tendo sido selecionado pseudo-aleatoriamente usando RANDAO. Este nó é responsável pela construção e transmissão do próximo bloco a ser adicionado à blockchain Ethereum e pela atualização do estado global. O nó é composto por três partes: um cliente de execução, um cliente de consenso e um cliente validador. O cliente de execução empacota transações da mempool local em um "payload de execução" e executa-os localmente para gerar uma mudança de estado. Essas informações são passadas para o cliente de consenso em que a carga da execução é agrupada como parte de um "bloco de sinalização" que também contém informações sobre as recopensas, penalidades, cortes, atestações etc. que permitem que a rede entre em acordo sobre a sequência de blocks no topo da cadeia. A comunicação entre os clientes de execução e consenso é descrita em mais detalhes em [Conectando os clientes de consenso e de execução](/developers/docs/networking-layer/#connecting-clients). diff --git a/public/content/translations/pt-br/developers/docs/consensus-mechanisms/pos/keys/index.md b/public/content/translations/pt-br/developers/docs/consensus-mechanisms/pos/keys/index.md index dcb720a62fa..88f2efa8d39 100644 --- a/public/content/translations/pt-br/developers/docs/consensus-mechanisms/pos/keys/index.md +++ b/public/content/translations/pt-br/developers/docs/consensus-mechanisms/pos/keys/index.md @@ -56,6 +56,8 @@ Separar as chaves de validação das chaves da conta Ethereum permite que vário ![esquema da chave de validação](validator-key-schematic.png) +**Nota**: Sair das funções de staking e sacar o saldo de um validador atualmente requer a assinatura de uma [mensagem de saída voluntária (VEM)](https://mirror.xyz/ladislaus.eth/wmoBbUBes2Wp1_6DvP6slPabkyujSU7MZOFOC3QpErs&1) com a chave do validador. No entanto, o [EIP-7002](https://eips.ethereum.org/EIPS/eip-7002) é uma proposta que permitirá que um usuário acione a saída de um validador e saque seu saldo assinando mensagens de saída com a chave de saque no futuro. Isso reduzirá as suposições de confiança ao permitir que os participantes que delegam ETH a [provedores de staking como serviço](https://ethereum.org/en/staking/saas/#what-is-staking-as-a-service) mantenham o controle de seus fundos. + ## Obtendo chaves de uma frase semente {#deriving-keys-from-seed} Se cada 32 ETH em stake precisavam de um novo conjunto de 2 chaves completamente independentes, o gerenciamento de chaves se tornaria rapidamente complicado, especialmente para usuários que executam vários validadores. Em vez disso, várias chaves de validação podem ser obtidas de um único segredo comum e armazenar esse segredo único permite acesso a várias chaves de validação. @@ -94,3 +96,5 @@ Cada galho é separado por uma `/`, então `m/2` significa iniciar com a chave m - [Postagem no blog da Ethereum Foundation por Carl Beekhuizen](https://blog.ethereum.org/2020/05/21/keys/) - [Geração de chave EIP-2333 BLS12-381](https://eips.ethereum.org/EIPS/eip-2333) +- [EIP-7002: Saídas acionadas pela camada de execução](https://research.2077.xyz/eip-7002-unpacking-improvements-to-staking-ux-post-merge) +- [Gerenciamento de chaves em escala](https://docs.ethstaker.cc/ethstaker-knowledge-base/scaled-node-operators/key-management-at-scale) diff --git a/public/content/translations/pt-br/developers/docs/consensus-mechanisms/pos/rewards-and-penalties/index.md b/public/content/translations/pt-br/developers/docs/consensus-mechanisms/pos/rewards-and-penalties/index.md index 86968ab5739..a9fd42681fc 100644 --- a/public/content/translations/pt-br/developers/docs/consensus-mechanisms/pos/rewards-and-penalties/index.md +++ b/public/content/translations/pt-br/developers/docs/consensus-mechanisms/pos/rewards-and-penalties/index.md @@ -84,6 +84,8 @@ O design de recompensa, penalidade e corte do mecanismo de consenso incentiva os - [Incentivos no protocolo Casper híbrido do Ethereum](https://arxiv.org/pdf/1903.04205.pdf) - [Especificação anotada de Vitalik](https://github.com/ethereum/annotated-spec/blob/master/phase0/beacon-chain.md#rewards-and-penalties-1) - [Dicas para evitar remoções no Eth2](https://medium.com/prysmatic-labs/eth2-slashing-prevention-tips-f6faa5025f50) +- [EIP-7251 explicado: aumentando o saldo máximo efetivo para validadores](https://research.2077.xyz/eip-7251_Increase_MAX_EFFECTIVE_BALANCE) +- [Análise das penalidades de remoção sob o EIP-7251](https://ethresear.ch/t/slashing-penalty-analysis-eip-7251/16509) _Fontes_ diff --git a/public/content/translations/pt-br/events/index.md b/public/content/translations/pt-br/events/index.md new file mode 100644 index 00000000000..bb121f1016d --- /dev/null +++ b/public/content/translations/pt-br/events/index.md @@ -0,0 +1,24 @@ +--- +title: Eventos Ethereum +description: Como fazer parte da comunidade Ethereum. +lang: pt-br +hideEditButton: true +--- + +# Próximos eventos {#events} + +**Todos os meses há grandes eventos da Ethereum ao redor do mundo.** Considere participar de um perto de você para conhecer pessoas que fazem parte da comunidade, aprender sobre oportunidades de emprego e desenvolver novas habilidades. + + + +Essa é uma lista não exaustiva mantida pela nossa comunidade. Conhece um evento por vir da Ethereum? [Adicione-o à lista](https://github.com/ethereum/ethereum-org-website/blob/dev/src/data/community-events.json)! + +## Encontros do Ethereum {#meetups} + +Nenhum dos eventos serve para você? Tente ir a um encontro. Os encontros são eventos menores realizados por grupos de entusiastas da Ethereum. e uma oportunidade para pessoas com um interesse em comum em Ethereum se reunirem, conversarem sobre o projeto e conhecer mais sobre os desenvolvimentos recentes. + + + +Interessado em organizar o seu próprio encontro? Confira a [BUIDL Network](https://consensys.net/developers/buidlnetwork/), uma iniciativa da ConsenSys para oferecer suporte às comunidades de encontros da Ethereum. + +Essa é uma lista não exaustiva mantida pela nossa comunidade. Você pode [ver mais encontros da Ethereum aqui](https://www.meetup.com/topics/ethereum/). Conhece algum grupo ativo de encontros? [Adicione-o a lista](https://github.com/ethereum/ethereum-org-website/blob/dev/src/data/community-meetups.json)! diff --git a/public/content/translations/pt-br/how-to-create-an-ethereum-account/index.md b/public/content/translations/pt-br/how-to-create-an-ethereum-account/index.md new file mode 100644 index 00000000000..ba33dc0a5b3 --- /dev/null +++ b/public/content/translations/pt-br/how-to-create-an-ethereum-account/index.md @@ -0,0 +1,73 @@ +--- +title: Como "criar" uma conta Ethereum +description: Um guia passo a passo sobre como criar uma conta Ethereum usando uma carteira. +lang: pt-br +--- + +# Como criar uma conta Ethereum + +**Qualquer pessoa pode criar uma conta Ethereum de graça.** Você só precisa instalar um aplicativo de carteira de criptomoedas. As carteiras criam e gerenciam sua conta Ethereum. Elas permitem enviar transações, verificar seus saldos e conectá-lo a outros aplicativos desenvolvidos em Ethereum. + +Com uma carteira, você também pode fazer login em qualquer exchange de tokens, jogos e mercados [NFT](/glossary/#nft) de forma imediata. Não há necessidade de inscrição individual. Uma única conta é compartilhada por todos os aplicativos criados com base em Ethereum. + +## Etapa 1: Escolha uma carteira + +Uma carteira é um aplicativo que ajuda você controlar a sua conta Ethereum. Existem dezenas de carteiras diferentes para escolher: móveis, de desktop ou até mesmo extensões de navegador. + + + + Lista de carteiras + + +Se for iniciante, poderá selecionar o filtro "New to crypto" (Novo em cripto) na página "find a wallet" (encontrar uma carteira) para identificar carteiras que incluam todos os recursos necessários e adequados para iniciantes. + +![Seleção de filtros na página "encontrar uma carteira"](./wallet-box.png) + +Também existem outros filtros de perfil para atender às suas necessidades. Esses são exemplos de carteiras utilizadas normalmente. Você deve fazer a sua própria pesquisa antes de confiar em qualquer software. + +## Etapa 2: Baixar e instalar o aplicativo da carteira + +Após escolher sua carteira, visite o site oficial ou a loja de aplicativos, baixe e instale-a. Todas elas são gratuitas. + +## Etapa 3: Abra o aplicativo e crie sua conta Ethereum + +Ao abrir uma nova carteira pela primeira vez, será necessário escolher entre criar uma nova conta ou importar uma já existente. Clique em criação de nova conta. **Esta é a etapa durante a qual o software da carteira gera sua conta Ethereum.** + +## Etapa 4: Salvar a frase de recuperação + +Alguns aplicativos vão te pedir para salvar uma "chave de recuperação" secreta (algumas vezes chamada de "frase semente" ou de "mnemônico"). Manter essa frase a salvo é extremamente importante! Ela é usada para gerar sua conta Ethereum e pode ser usada para fazer transações. + +**Qualquer pessoa que conheça essa frase pode tomar o controle de todos os seus fundos.** Nunca compartilhe ela com ninguém. Essa frase deve conter entre 12 e 24 palavras geradas aleatoriamente (a ordem das palavras importa). + +
+ +
Carteira instalada?
Aprenda como usá-la.
+ + Como usar uma carteira + +
+
+ +Tem interesse em outros guias? Verifique os nossos: [Guias passo a passo](/guides/) + +## Perguntas frequentes + +### Uma carteira e uma conta Ethereum são o mesmo? + +Não. A carteira é uma ferramenta de gerenciamento que ajuda você a gerenciar contas. Uma única carteira pode acessar várias contas, e uma única conta pode ser acessada por várias carteiras. A frase de recuperação é usada para criar contas e dá permissão ao aplicativo de carteira para gerenciar ativos. + +### Posso enviar bitcoins para uma conta/endereço Ethereum ou enviar ethers para uma conta/endereço Bitcoin? + +Não, não é possível. O Bitcoin e o ether existem em duas redes separadas (ou seja, blockchains diferentes), cada uma com seus próprios formatos de contabilidade e endereço. Houve várias tentativas de unir as duas redes diferentes, das quais a mais ativa atualmente é a [Wrapped Bitcoin ou WBTC](https://www.bitcoin.com/get-started/what-is-wbtc/). Isso não é uma recomendação, pois o WBTC é uma solução de custódia (ou seja, um único grupo de pessoas controla determinadas funções críticas) e é fornecido aqui apenas a título informativo. + +### Se eu tenho um endereço de ETH, o endereço é o mesmo para outras blockchains? + +Você pode usar o mesmo [endereço](/glossary/#address) em todas as blockchains que usam software subjacente semelhante ao Ethereum (conhecido como "compatível com EVM"). Esta [lista](https://chainlist.org/) mostra quais blockchains você pode usar com o mesmo endereço. Algumas blockchains, como o Bitcoin, implementam um conjunto completamente separado de regras de rede e você precisará de um endereço diferente com um formato diferente. Se você tem uma carteira de contrato inteligente então deve verificar o site do produto para ver mais informações sobre quais blockchains são permitidas porque geralmente elas têm uma abrangência limitada, porém mais segura. + +### Ter a minha própria carteira é mais seguro do que manter os meus fundos em uma corretora? + +Ter a sua própria carteira significa que você assume a responsabilidade pela segurança dos seus ativos. Infelizmente, há muitos exemplos de corretoras que cometeram erros e perderam o dinheiro dos clientes. Possuir uma carteira (com uma frase de recuperação) elimina o risco associado à confiança em alguma entidade para manter seus ativos. No entanto, você precisa protegê-la por conta própria e evitar golpes de phishing, aprovação acidental de transações ou exposição da frase de recuperação, interação com sites falsos e outros riscos de autocustódia. Os riscos e benefícios são diferentes. + +### Se eu perder minha carteira de celular/hardware, eu preciso usar o mesmo aplicativo de carteira novamente para recuperar os fundos perdidos? + +Não, você pode utilizar outra carteira. Desde que você tenha a frase semente, poderá inseri-la na maioria das carteiras e a sua conta será restaurada. Tenha cuidado se precisar fazer isso: é melhor certificar-se de que você não está conectado à Internet ao recuperar a sua carteira para não vazar a sua frase semente acidentalmente. Muitas vezes, é impossível recuperar fundos perdidos sem a frase de recuperação. diff --git a/public/content/translations/pt-br/web3/index.md b/public/content/translations/pt-br/web3/index.md index 0ffc6c44361..95db2fa28b1 100644 --- a/public/content/translations/pt-br/web3/index.md +++ b/public/content/translations/pt-br/web3/index.md @@ -6,6 +6,10 @@ lang: pt-br # Introdução à Web3 {#introduction} +
+ +
+ A centralização ajudou a integrar bilhões de pessoas à World Wide Web e criou a infraestrutura estável e robusta em que ela vive. Ao mesmo tempo, um punhado de entidades centralizadas tem uma fortaleza em grandes áreas da World Wide Web, decidindo unilateralmente o que deve e o que não deve ser permitido. Web3 é a resposta para este dilema. Em vez de uma Web monopolizada por grandes empresas de tecnologia, a Web3 adota a descentralização e está sendo construída, operada e de propriedade de seus usuários. A Web3 coloca o poder nas mãos dos indivíduos e não das corporações. Antes de falarmos sobre Web3, vamos explorar como chegamos aqui. diff --git a/src/intl/pt-br/common.json b/src/intl/pt-br/common.json index 726ec28812a..ece0958016f 100644 --- a/src/intl/pt-br/common.json +++ b/src/intl/pt-br/common.json @@ -11,6 +11,7 @@ "adding-products": "Adicionando produtos", "adding-staking-products": "Sobre nós", "adding-wallets": "Adicionando carteiras", + "ai-agents": "Agentes de IA", "aria-toggle-menu-button": "Alternar botão de menu", "aria-toggle-search-button": "Alternar botão de pesquisa", "beacon-chain": "Beacon Chain", @@ -221,6 +222,7 @@ "nav-about-description": "Um projeto público e de código aberto para a comunidade Ethereum", "nav-advanced-description": "Fique por dentro dos tópicos mais complexos", "nav-advanced-label": "Avançado", + "nav-ai-agents-description": "Explore o mundo dos agentes de IA na Ethereum", "nav-basics-description": "Entenda os fundamentos do Ethereum", "nav-basics-label": "Fundamentos", "nav-bridges-description": "Web3 passou a ser um ecossistema de blockchains L1 primárias e soluções de escalabilidade L2", diff --git a/src/intl/pt-br/glossary-tooltip.json b/src/intl/pt-br/glossary-tooltip.json index cd5df921f60..d7caa4a750c 100644 --- a/src/intl/pt-br/glossary-tooltip.json +++ b/src/intl/pt-br/glossary-tooltip.json @@ -96,12 +96,12 @@ "multisig-term": "Multi-assinaturas", "multisig-definition": "Multisig (multi-assinatura) refere-se a uma carteira ou conta digital que exige várias assinaturas ou aprovações para executar transações, aumentando a segurança.", "nft-term": "Token não fungível (NFT)", - "nft-definition": "Tokens não fungíveis (NFTs) são itens digitais exclusivos que você pode possuir, como obras de arte ou itens colecionáveis, verificados pela tecnologia blockchain. Mais sobre tokens não fungíveis (NFTs).", + "nft-definition": "Um item digital único que você pode possuir, como arte ou colecionáveis, verificado por tecnologia blockchain. Mais sobre tokens não fungíveis (NFTs).", "node-term": "Nó", "node-definition": "Um cliente de software que participa da rede. Mais sobre nós e clientes.", "ommer-term": "Bloco ommer (tio)", "ommer-definition": "Quando um minerador de prova de trabalho encontra um bloco válido, outro minerador pode ter publicado um bloco concorrente que é adicionado à ponta da blockchain primeiro. Este bloco válido, mas obsoleto, pode ser incluído por blocos mais novos como ommers e receber uma recompensa de bloco parcial. O termo \"ommer\" é o termo neutro de gênero preferido para o irmão de um bloco pai, mas às vezes também é chamado de \"tio\". Isso era comum para o Ethereum quando era uma rede de prova de trabalho. Agora que o Ethereum usa prova de participação, apenas um proponente de bloco é selecionado por slot.", - "onchain-term": "On-chain", + "onchain-term": "Onchain", "onchain-definition": "Refere-se a ações ou transações que ocorrem na blockchain e estão disponíveis publicamente.", "optimistic-rollup-term": "Acúmulo otimista", "optimistic-rollup-definition": "O Optimistic Rollup é uma solução de Camada 2 que acelera as transações no Ethereum, assumindo que elas são válidas por padrão, a menos que sejam contestadas. Mais sobre Optimistic rollups.", @@ -150,7 +150,6 @@ "validator-term": "Validador", "validator-definition": "Um em um sistema de prova de participação responsável por armazenar dados, processar transações e adicionar novos blocos à blockchain. Para ativar o software validador, você precisa ser capaz de fazer staking de 32 ETH. Mais sobre staking em Ethereum.", "validity-proof-term": "Prova de validação", - "validity-proof-definition": "Um modelo de segurança para certas soluções de camada 2 em que, para aumentar a velocidade, as transações são reunidas em lotes e enviadas ao Ethereum em uma única transação. A computação da transação é feita off-chain e então fornecida à cadeia principal com uma prova de sua validade. Este método aumenta a quantidade de transações possíveis, mantendo a segurança. Alguns rollups usam prova de fraude. Mais sobre rollups de conhecimento zero.", "wallet-term": "Carteira", "wallet-definition": "Uma carteira é uma ferramenta digital para armazenar, enviar e receber moeda digital, como uma carteira virtual para seu dinheiro on-line. Mais informações sobre carteiras Ethereum.", "web2-term": "Web2", diff --git a/src/intl/pt-br/page-get-eth.json b/src/intl/pt-br/page-get-eth.json index 76337875014..a2dd898a249 100644 --- a/src/intl/pt-br/page-get-eth.json +++ b/src/intl/pt-br/page-get-eth.json @@ -46,7 +46,7 @@ "page-get-eth-hero-image-alt": "Imagem de Get ETH hero", "page-get-eth-keep-it-safe": "Mantenha seus ETH seguros", "page-get-eth-meta-description": "Como comprar ETH com base no local onde você vive e conselhos sobre como cuidar dele.", - "page-get-eth-meta-title": "Como obter ETH", + "page-get-eth-meta-title": "Como comprar Ethereum (ETH)", "page-get-eth-need-wallet": "Você precisará de uma carteira para usar uma DEX.", "page-get-eth-new-to-eth": "Novo em ETH? Aqui está uma visão geral para você começar.", "page-get-eth-other-cryptos": "Compre com outras criptomoedas", diff --git a/src/intl/pt-br/page-index.json b/src/intl/pt-br/page-index.json index 290fdba1701..f4f257e470c 100644 --- a/src/intl/pt-br/page-index.json +++ b/src/intl/pt-br/page-index.json @@ -1,26 +1,27 @@ { - "page-index-activity-description": "Atividade de todas as redes de Ethereum", + "page-index-activity-description": "Atividade de todas as redes Ethereum", "page-index-activity-tag": "Atividade", "page-index-activity-header": "O ecossistema mais sólido", + "page-index-activity-action": "Mais atividades da Ethereum", "page-index-bento-header": "Um novo jeito de usar a internet", "page-index-bento-assets-action": "Mais sobre NFTs", "page-index-bento-assets-content": "Arte, certificados ou até mesmo imóveis podem ser tokenizados. Qualquer coisa pode ser um token negociável. A propriedade é pública e verificável.", "page-index-bento-assets-title": "A Internet de ativos", "page-index-bento-dapps-action": "Navegar pelos aplicativos", - "page-index-bento-dapps-content": "Os aplicativos Ethereum funcionam sem vender seus dados. Proteja sua privacidade.", + "page-index-bento-dapps-content": "Os aplicativos Ethereum funcionam sem vender seus dados, protegendo sua privacidade.", "page-index-bento-dapps-title": "Aplicativos inovadores", "page-index-bento-defi-action": "Conheça o sistema DeFi", - "page-index-bento-defi-content": "Bilhões de pessoas não podem abrir contas bancárias ou usar livremente seu dinheiro. O sistema financeiro do Ethereum é sempre aberto e imparcial.", + "page-index-bento-defi-content": "Bilhões de pessoas não conseguem abrir contas bancárias ou utilizar seu dinheiro livremente. O sistema financeiro Ethereum é sempre aberto e imparcial.", "page-index-bento-defi-title": "Um sistema financeiro mais justo", "page-index-bento-networks-action": "Conheça os benefícios", - "page-index-bento-networks-content": "Ethereum é o centro de inovação da blockchain. Os melhores projetos são criados com base no Ethereum.", + "page-index-bento-networks-content": "Ethereum é o centro da inovação em blockchain. Os melhores projetos são construídos no Ethereum.", "page-index-bento-networks-title": "A rede das redes", "page-index-bento-stablecoins-action": "Saiba mais", - "page-index-bento-stablecoins-content": "As stablecoins são moedas que mantêm valor estável. O preço delas corresponde ao dólar americano ou a outros ativos estáveis.", - "page-index-bento-stablecoins-title": "Cripto sem volatilidade", + "page-index-bento-stablecoins-content": "Stablecoins são moedas que mantêm um valor estável. Seu preço equivale ao dólar americano ou a outros ativos estáveis.", + "page-index-bento-stablecoins-title": "Criptomoedas sem volatilidade", "page-index-builders-action-primary": "Portal do construtor", "page-index-builders-action-secondary": "Documentação", - "page-index-builders-description": "Ethereum abriga o maior e mais vibrante ecossistema de desenvolvedores da Web3. Use JavaScript e Python, ou aprenda uma linguagem de contrato inteligente como Solidity ou Vyper para escrever seu próprio aplicativo.", + "page-index-builders-description": "Ethereum é o lar do maior e mais vibrante ecossistema de desenvolvedores da Web3. Use JavaScript e Python, ou aprenda uma linguagem de contrato inteligente como Solidity ou Vyper para escrever seu próprio aplicativo.", "page-index-builders-tag": "Construtores", "page-index-builders-header": "A maior comunidade de construtores de blockchain", "page-index-calendar-add": "Adicionar ao calendário", @@ -28,8 +29,8 @@ "page-index-calendar-title": "Próximas reuniões", "page-index-community-action": "Veja mais em ethereum.org", "page-index-community-description-1": "O site ethereum.org é criado e mantido mensalmente por centenas de tradutores, programadores, designers, redatores e membros entusiastas da comunidade.", - "page-index-community-description-2": "Venha fazer perguntas, se conectar com pessoas ao redor do mundo e contribuir com o site. Além de conseguir uma experiência prática valiosa, você vai ser guiado durante o processo!", - "page-index-community-description-3": "A comunidade ethereum.org é o lugar perfeito para começar a aprender.", + "page-index-community-description-2": "Venha fazer perguntas, se conectar com pessoas ao redor do mundo e contribuir para o site. Além de conseguir uma experiência prática valiosa, você vai ser guiado durante o processo!", + "page-index-community-description-3": "A comunidade do Ethereum.org é o lugar perfeito para começar e aprender.", "page-index-community-tag": "Comunidade ethereum.org", "page-index-community-header": "Construído pela comunidade", "page-index-cta-dapps-description": "Finanças, jogos e social", @@ -111,7 +112,7 @@ "page-index-values-censorship-legacy-label": "Censurável", "page-index-values-censorship-legacy-content-0": "As plataformas modernas e suas regras mudam frequentemente. Elas podem ser influenciadas por partes interessadas, pela gestão da empresa ou até mesmo por regimes opressivos.", "page-index-values-censorship-ethereum-label": "Resistente à censura", - "page-index-values-censorship-ethereum-content-0": "A resistência à opressão é um princípio fundamental do Ethereum. A funcionalidade de Ethereum deve sempre permanecer justa e imparcial.", + "page-index-values-censorship-ethereum-content-0": "A resistência à opressão é um princípio fundamental da Ethereum. Sua funcionalidade deve ser sempre justa e imparcial.", "page-index-values-censorship-ethereum-content-1": "O Ethereum não pode ser controlado por nenhum estado-nação, empresa ou indivíduo.", "page-index-values-open-legacy-label": "Fechado para a maioria", "page-index-values-open-legacy-content-0": "As empresas protegem sua propriedade intelectual e não compartilham. Ninguém de fora da empresa pode ver como as coisas funcionam, corrigir problemas ou fazer melhorias. É difícil para as pessoas criar novas ferramentas ou personalizar.", diff --git a/src/intl/pt-br/page-wallets-find-wallet.json b/src/intl/pt-br/page-wallets-find-wallet.json index 361bbdae053..69efa3ca6a2 100644 --- a/src/intl/pt-br/page-wallets-find-wallet.json +++ b/src/intl/pt-br/page-wallets-find-wallet.json @@ -5,7 +5,7 @@ "page-find-wallet-description": "Carteiras guardam e transacionam seu ETH. Você pode escolher entre uma variedade de produtos que atendam às suas necessidades.", "page-find-wallet-last-updated": "Última atualização", "page-find-wallet-meta-description": "Encontre e compare carteiras Ethereum com base nos recursos que você deseja.", - "page-find-wallet-meta-title": "Encontre uma carteira Ethereum", + "page-find-wallet-meta-title": "Lista de carteiras Ethereum | ethereum.org", "page-find-wallet-title": "Escolha sua carteira", "page-find-wallet-try-removing": "Tente remover um ou dois recursos", "page-stake-eth": "Participe com ETH", @@ -61,7 +61,6 @@ "page-find-wallet-chromium": "Chromium", "page-find-wallet-firefox": "Firefox", "page-find-wallet-hardware": "Hardware", - "page-find-wallet-personas-title": "O que você está procurando?", "page-find-wallet-new-to-crypto-title": "Novo em cripto", "page-find-wallet-new-to-crypto-desc": "Usuário de primeira viagem procurando uma carteira para iniciantes.", "page-find-wallet-nfts-title": "NFTs (Tokens Não Fungíveis)", @@ -71,10 +70,8 @@ "page-find-wallet-finance-title": "Finanças", "page-find-wallet-finance-desc": "Carteiras com foco na usabilidade frequente de aplicativos DeFi.", "page-find-wallet-developer-title": "Desenvolvedor", - "page-find-wallet-persona-desc": "Escolha o perfil que corresponde ao seu tipo de usuário e filtre a lista de carteiras", - "page-find-wallet-profile-filters": "Filtros de perfil", - "page-find-wallet-feature-filters": "Filtros de recursos", "page-find-wallet-developer-desc": "Carteiras que ajudam a desenvolver e testar dapps.", + "page-find-wallet-active": "ativo", "page-find-wallet-footnote-1": "As carteiras listadas nesta página não são endossos oficiais e são fornecidas apenas a título informativo.", "page-find-wallet-footnote-2": "As descrições delas foram fornecidas pelos próprios projetos da carteira.", "page-find-wallet-footnote-3": "Adicionamos produtos a esta página com base nos critérios em nossa política de listagem. Se você quiser que adicionemos uma carteira, abra um tíquete no GitHub.", @@ -82,8 +79,6 @@ "page-find-wallet-desktop": "Área de trabalho", "page-find-wallet-browser": "Navegador", "page-find-wallet-device": "Dispositivo", - "page-find-choose-to-compare": "Selecione para comparar", - "page-find-wallet-choose-features": "Escolher recursos", "page-find-wallet-reset-filters": "Redefinir", "page-find-wallet-visit-website": "Acessar site", "page-find-wallet-social-links": "Links", diff --git a/src/intl/pt-br/template-usecase.json b/src/intl/pt-br/template-usecase.json index fe4c53fc917..de526df9909 100644 --- a/src/intl/pt-br/template-usecase.json +++ b/src/intl/pt-br/template-usecase.json @@ -1,7 +1,9 @@ { + "template-usecase-dropdown-ai-agents": "Agentes de IA", "template-usecase-dropdown-defi": "Finanças descentralizadas (DeFi)", "template-usecase-dropdown-nft": "Tokens não fungíveis (NFTs)", "template-usecase-dropdown-dao": "Organizações autônomas descentralizadas (DAOs)", + "template-usecase-dropdown-payments": "Pagamentos com Ethereum", "template-usecase-dropdown-social-networks": "Redes sociais descentralizadas", "template-usecase-dropdown-identity": "Identidade descentralizada", "template-usecase-dropdown-desci": "Ciência descentralizada (DeSci)", @@ -10,4 +12,4 @@ "template-usecase-banner": "Os usos do Ethereum estão sempre se desenvolvendo e evoluindo. Adicione qualquer informação que você acha que tornará as coisas mais claras ou mais atualizadas.", "template-usecase-edit-link": "Editar página", "template-usecase-dropdown-aria": "Casos de uso: menu suspenso" -} +} \ No newline at end of file From 2ceb7bf647885c82dd0c4d70ef0d1c2fbbf7f15f Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Thu, 1 May 2025 04:45:52 +0000 Subject: [PATCH 058/106] chore: import translations for pt --- src/intl/pt/common.json | 23 +++++++++++++++------ src/intl/pt/page-get-eth.json | 4 ++-- src/intl/pt/page-index.json | 6 ++++-- src/intl/pt/page-wallets-find-wallet.json | 16 +++++++-------- src/intl/pt/page-what-is-ethereum.json | 25 +++++++++++++---------- 5 files changed, 45 insertions(+), 29 deletions(-) diff --git a/src/intl/pt/common.json b/src/intl/pt/common.json index 8f424702d2c..49d003a5a54 100644 --- a/src/intl/pt/common.json +++ b/src/intl/pt/common.json @@ -1,6 +1,6 @@ { "about-ethereum-org": "Acerca do ethereum.org", - "about-us": "Quem somos", + "about-us": "Sobre nós", "account-abstraction": "Abstração da conta", "acknowledgements": "Reconhecimentos", "adding-desci-projects": "Adicionar projetos Desci", @@ -11,6 +11,7 @@ "adding-products": "Adicionar produtos", "adding-staking-products": "Adicionar produtos de implantação", "adding-wallets": "Adicionar carteiras", + "ai-agents": "Agentes de IA", "aria-toggle-menu-button": "Botão menu alternativo", "aria-toggle-search-button": "Alternar botão de pesquisa", "beacon-chain": "Cadeia sinalizadora", @@ -97,6 +98,7 @@ "ethereum-upgrades": "Atualizações do Ethereum", "ethereum-wallets": "Carteiras Ethereum", "ethereum-whitepaper": "Documento técnico do Ethereum", + "events": "Eventos", "feedback-card-prompt-article": "Este artigo foi útil?", "feedback-card-prompt-page": "Esta página foi útil?", "feedback-card-prompt-tutorial": "Este tutorial foi útil?", @@ -202,7 +204,7 @@ "layer-2": "Camada 2", "learn": "Aprender", "learn-by-coding": "Aprenda usando programação", - "learn-hub": "Ethereum: Guia de aprendizagem completo", + "learn-hub": "Centro de Aprendizagem", "learn-menu": "Menu aprender", "learn-more": "Saber mais", "less": "Menos", @@ -219,6 +221,7 @@ "nav-about-description": "Um projeto público e open-source para a comunidade Ethereum", "nav-advanced-description": "Aprenda os tópicos mais complexos", "nav-advanced-label": "Avançado", + "nav-ai-agents-description": "Explore o mundo dos agentes de IA no Ethereum", "nav-basics-description": "Compreenda os princípios básicos do Ethereum", "nav-basics-label": "Informações básicas", "nav-bridges-description": "A Web3 evoluiu para um ecossistema de blockchains L1 primárias e soluções de dimensionamento L2", @@ -247,8 +250,9 @@ "nav-eip-label": "EIPs - Propostas de melhoria do Ethereum", "nav-emerging-description": "Conheça outros casos de utilização mais recentes para o Ethereum", "nav-emerging-label": "Casos de utilização emergentes", - "nav-enterprise-description": "Aplicações comerciais para o Ethereum", "nav-ethereum-org-description": "Este website é orientado para a comunidade - junte-se a nós e contribua também", + "nav-ethereum-networks": "Redes Ethereum", + "nav-ethereum-networks-description": "Transações mais baratas e mais rápidas para o Ethereum", "nav-ethereum-wallets-description": "Uma aplicação para interagir com a sua conta Ethereum", "nav-events-description": "Descentralização e liberdade de participação para todos", "nav-events-irl-description": "Todos os meses há grandes eventos Ethereum presenciais e online", @@ -274,18 +278,24 @@ "nav-guides-label": "Tutoriais", "nav-history-description": "Uma cronologia de todos os principais forks e atualizações", "nav-history-label": "História técnica do Ethereum", - "nav-layer-2-description": "Transações mais baratas e mais rápidas para o Ethereum", "nav-learn-by-coding-description": "Ferramentas que o ajudam a experimentar com Ethereum", "nav-local-env-description": "Escolher e configurar a sua pilha de desenvolvimento Ethereum", "nav-mainnet-description": "As aplicações de blockchain empresariais podem ser construídas na rede pública Ethereum principal", + "nav-networks-home-description": "Transações mais baratas e mais rápidas para o Ethereum", + "nav-networks-introduction-label": "Introdução", + "nav-networks-introduction-description": "O Ethereum expandiu-se para uma rede de redes", + "nav-networks-explore-networks-label": "Explore redes", + "nav-networks-explore-networks-description": "Escolha a rede a utilizar", + "nav-networks-learn-label": "O que são redes de camada 2?", + "nav-networks-learn-description": "Saiba por que razão precisamos delas", "nav-nft-description": "Uma forma de representar algo único como um ativo baseado na Ethereum", "nav-open-research-description": "Um dos principais pontos fortes do Ethereum é a sua comunidade de investigação ativa", "nav-open-research-label": "Pesquisa aberta", "nav-overview-description": "Tudo sobre a formação Ethereum", "nav-overview-label": "Visão geral", "nav-participate-overview-description": "Visão geral sobre como participar", + "nav-payments-description": "Os pagamentos com Ethereum estão a mudar a forma como enviamos e recebemos dinheiro", "nav-primary": "Principal", - "nav-private-description": "Recursos para programadores para empresas privadas Ethereum", "nav-quizzes-description": "Descubra até que ponto compreende o Ethereum e as criptomoedas", "nav-quizzes-label": "Teste os seus conhecimentos", "nav-refi-description": "Um sistema económico alternativo baseado em princípios regenerativos", @@ -356,6 +366,7 @@ "page-last-updated": "Última atualização da página", "participate": "Participar", "participate-menu": "Menu de participação", + "payments-page": "Pagamentos", "pbs": "Separação proponente-construtor", "pools": "Participação agrupada", "privacy-policy": "Política de privacidade", @@ -432,4 +443,4 @@ "wrapped-ether": "Wrapped Ether", "yes": "Sim", "zero-knowledge-proofs": "Provas de conhecimento-zero" -} \ No newline at end of file +} diff --git a/src/intl/pt/page-get-eth.json b/src/intl/pt/page-get-eth.json index ce2650606f4..1f2c814040f 100644 --- a/src/intl/pt/page-get-eth.json +++ b/src/intl/pt/page-get-eth.json @@ -1,5 +1,5 @@ { - "page-get-eth-article-keeping-crypto-safe": "As chaves para manter as suas criptomoedas seguras", + "page-get-eth-article-keeping-crypto-safe": "Os segredos para manter as suas criptomoedas seguras", "page-get-eth-article-protecting-yourself": "Proteja-se a si mesmo e os seus fundos", "page-get-eth-article-store-digital-assets": "Como armazenar ativos digitais na Ethereum", "page-get-eth-article-protecting-yourself-desc": "MyCrypto", @@ -46,7 +46,7 @@ "page-get-eth-hero-image-alt": "Obtenha a imagem do herói ETH", "page-get-eth-keep-it-safe": "Manter o seu ETH seguro", "page-get-eth-meta-description": "Como comprar ETH com base no local de residência e conselhos sobre como cuidar dele.", - "page-get-eth-meta-title": "Como obter ETH", + "page-get-eth-meta-title": "Como comprar Ethereum (ETH)", "page-get-eth-need-wallet": "Vai precisar de uma carteira para usar uma DEX.", "page-get-eth-new-to-eth": "Novo na área de ETH? Aqui está um resumo, para começar.", "page-get-eth-other-cryptos": "Compre com outra moeda digital", diff --git a/src/intl/pt/page-index.json b/src/intl/pt/page-index.json index 65834ead58a..ac69363fd35 100644 --- a/src/intl/pt/page-index.json +++ b/src/intl/pt/page-index.json @@ -2,6 +2,7 @@ "page-index-activity-description": "Atividade de todas as redes Ethereum", "page-index-activity-tag": "Atividade", "page-index-activity-header": "O ecossistema mais forte", + "page-index-activity-action": "Mais Atividade Ethereum", "page-index-bento-header": "Uma nova forma de usar a Internet", "page-index-bento-assets-action": "Mais sobre NFTs", "page-index-bento-assets-content": "Arte, certificados e até imobiliário podem ser tokenizados. Tudo pode transformar-se num token transacionável. A propriedade é pública e verificável.", @@ -65,7 +66,7 @@ "page-index-learn-tag": "Aprender", "page-index-learn-header": "Compreender a Ethereum", "page-index-meta-description": "O Ethereum é uma plataforma global e descentralizada para dinheiro e novos tipos de aplicações. No Ethereum, pode escrever código que controla dinheiro e construir aplicações acessíveis em qualquer lugar do mundo.", - "page-index-meta-title": "O guia completo para a Ethereum", + "page-index-meta-title": "Ethereum.org- o guia completo para Ethereum", "page-index-network-stats-total-eth-staked": "Ethereum para a proteção do valor", "page-index-network-stats-tx-cost-description": "Custo médio das transações", "page-index-network-stats-tx-day-description": "Transações nas últimas 24 h", @@ -85,6 +86,7 @@ "page-index-values-description": "Faça parte da revolução digital", "page-index-values-header": "A Internet está a mudar", "page-index-values-legacy": "Legado", + "page-index-values-tag": "Valores", "page-index-values-ownership-legacy-label": "Propriedade restrita", "page-index-values-ownership-legacy-content-0": "Com um banco ou plataforma de rede social comum, os seus ativos e dados são geridos pela organização. Confia na organização em termos de acesso e controlo.", "page-index-values-ownership-legacy-content-1": "Pode utilizar os seus dados de formas com as quais possa não concordar, com base nas suas políticas.", @@ -110,7 +112,7 @@ "page-index-values-censorship-legacy-label": "Censurável", "page-index-values-censorship-legacy-content-0": "As plataformas modernas e as suas regras mudam frequentemente. Podem ser influenciadas pelos acionistas, pela direção da empresa ou até por regimes opressivos.", "page-index-values-censorship-ethereum-label": "Resistente à censura", - "page-index-values-censorship-ethereum-content-0": "A resistência à opressão é fundamental na Ethereum. A sua funcionalidade deve manter-se sempre justa e imparcial.", + "page-index-values-censorship-ethereum-content-0": "A resistência à opressão é fundamental na Ethereum. A sua funcionalidade deve ser sempre justa e imparcial.", "page-index-values-censorship-ethereum-content-1": "A Ethereum não pode ser controlada por qualquer estado, empresa ou indivíduo.", "page-index-values-open-legacy-label": "Fechada à maioria", "page-index-values-open-legacy-content-0": "As empresas protegem a sua propriedade intelectual e não partilham. Ninguém fora da empresa pode ver como as coisas funcionam, resolver p+roblemas ou fazer melhorias. É difícil às pessoas criar novas ferramentas ou personalizar.", diff --git a/src/intl/pt/page-wallets-find-wallet.json b/src/intl/pt/page-wallets-find-wallet.json index 11abeac5ac2..d37970c9cdc 100644 --- a/src/intl/pt/page-wallets-find-wallet.json +++ b/src/intl/pt/page-wallets-find-wallet.json @@ -2,25 +2,25 @@ "page-find-wallet-clear": "Limpar filtros", "page-find-wallet-desc-2": "Não sabe o que é uma carteira?", "page-find-wallet-desc-2-wallets-link": "Aprenda sobre carteiras.", - "page-find-wallet-description": "As carteiras armazenam e transacionam o seu ETH. Pode escolher entre uma variedade de produtos que se adaptam às suas necessidades.", + "page-find-wallet-description": "As carteiras armazenam e permitem transacionar o seu ETH. Pode escolher entre uma variedade de produtos adaptados às suas necessidades.", "page-find-wallet-last-updated": "Última atualização", "page-find-wallet-meta-description": "Encontre e compare as carteiras Ethereum com base nas características que pretende.", - "page-find-wallet-meta-title": "Encontrar uma carteira Ethereum", + "page-find-wallet-meta-title": "Lista de carteiras Ethereum | ethereum.org", "page-find-wallet-title": "Escolha a sua carteira", "page-find-wallet-try-removing": "Tente remover uma ou duas funcionalidades", "page-stake-eth": "Bloquear ETH", "page-find-wallet-open-source": "Código aberto", "page-find-wallet-open-source-desc": "O software de código aberto permite a qualquer pessoa auditar a integridade e a segurança da aplicação", "page-find-wallet-self-custody": "Autocustódia", - "page-find-wallet-non-custodial": "Proprietários pessoais", + "page-find-wallet-non-custodial": "Custódia própria", "page-find-wallet-non-custodial-desc": "Carteiras que não controlam as suas chaves privadas", - "page-find-wallet-hardware-wallet-support": "Suporte para carteira de hardware", + "page-find-wallet-hardware-wallet-support": "Suporte para carteira hardware", "page-find-wallet-hardware-wallet-support-desc": "Carteiras que podem ligar-se a uma carteira de hardware para maior segurança", "page-find-wallet-rpc-importing": "Importação de RPC", "page-find-wallet-rpc-importing-desc": "Carteiras que suportam endpoints RPC personalizados para ligação a diferentes nós ou redes", - "page-find-wallet-nft-support": "Apoio NFT", + "page-find-wallet-nft-support": "Suporte para NFTs", "page-find-wallet-nft-support-desc": "Carteiras que permitem ver e interagir com os seus NFT", - "page-find-wallet-connect-to-dapps": "Ligar a dapps", + "page-find-wallet-connect-to-dapps": "Ligar-se a dapps", "page-find-wallet-connect-to-dapps-desc": "Pode ligar-se à aplicações que suportem carteiras de conexão ou uma outra alternativa", "page-find-wallet-staking": "Staking", "page-find-wallet-staking-desc": "Bloquear ETH diretamente da carteira", @@ -37,7 +37,7 @@ "page-find-wallet-buy-crypto": "Comprar moeda digital", "page-find-wallet-buy-crypto-desc": "Comprar moeda digital com moeda fiduciária diretamente na carteira \n *Nota: a compra de moeda digital pode ser específica da região", "page-find-wallet-sell-for-fiat": "Vender por moeda fiduciária", - "page-find-wallet-sell-for-fiat-desc": "Vender moeda digital para moeda fiduciária diretamente na carteira \n *Nota: o levantamento de moeda digital pode ser específico da região", + "page-find-wallet-sell-for-fiat-desc": "Vender criptomoedas por moeda fiduciária diretamente na carteira \n *Nota: o levantamento de moeda digital pode ser específico da região", "page-find-wallet-multisig": "Multisig", "page-find-wallet-multisig-desc": "Carteiras que requerem várias assinaturas para autorizar uma transação", "page-find-wallet-social-recovery": "Recuperação social", @@ -61,7 +61,6 @@ "page-find-wallet-chromium": "Chromium", "page-find-wallet-firefox": "Firefox", "page-find-wallet-hardware": "Hardware", - "page-find-wallet-personas-title": "O que procura?", "page-find-wallet-new-to-crypto-title": "Novidade no mundo das moedas digitais", "page-find-wallet-new-to-crypto-desc": "Utilizador pela primeira vez à procura de uma carteira para iniciar.", "page-find-wallet-nfts-title": "NFT", @@ -72,6 +71,7 @@ "page-find-wallet-finance-desc": "Carteiras com foco no uso frequente de aplicações DeFi.", "page-find-wallet-developer-title": "Programador", "page-find-wallet-developer-desc": "Carteiras que ajudam a desenvolver e testar dapps.", + "page-find-wallet-active": "ativo", "page-find-wallet-footnote-1": "As carteiras listadas nesta página não são recomendações oficiais e são fornecidas apenas para fins informativos.", "page-find-wallet-footnote-2": "As suas descrições foram fornecidas pelos próprios projetos de carteiras.", "page-find-wallet-footnote-3": "Adicionamos produtos a esta página com base nos critérios da nossa política de admissão. Se pretender que adicionemos uma carteira, levante uma questão no GitHub.", diff --git a/src/intl/pt/page-what-is-ethereum.json b/src/intl/pt/page-what-is-ethereum.json index 2a38c169f46..4d1276e0188 100644 --- a/src/intl/pt/page-what-is-ethereum.json +++ b/src/intl/pt/page-what-is-ethereum.json @@ -2,21 +2,21 @@ "page-what-is-ethereum-alt-img-bazaar": "Ilustração de uma pessoa a espreitar para um mercado, pretendendo representar a Ethereum", "page-what-is-ethereum-alt-img-comm": "Uma ilustração dos membros da comunidade Ethereum a trabalharem juntos", "page-what-is-ethereum-alt-img-lego": "Uma ilustração de uma mão a criar um logótipo ETH feito de peças de Lego", - "page-what-is-ethereum-banking-card": "Banca para todos", + "page-what-is-ethereum-banking-card": "Serviços financeiros para todos", "page-what-is-ethereum-banking-card-desc": "Nem todos têm acesso a serviços financeiros. Uma conexão com a internet é tudo o que é necessário para acessar o Ethereum e os produtos de empréstimo, financiamento e poupança construídos sobre ele.", "page-what-is-ethereum-build": "Crie algo com a Ethereum", "page-what-is-ethereum-build-desc": "Se pretende criar algo com a Ethereum, leia os nossos documentos, experimente alguns tutoriais, ou verifique as ferramentas de que precisa para começar.", "page-what-is-ethereum-censorless-card": "Resistente à censura", "page-what-is-ethereum-censorless-card-desc": "Nenhum governo ou empresa tem controlo sobre a Ethereum. A descentralização torna quase impossível que alguém impeça a receção de pagamentos ou a utilização de serviços na Ethereum.", "page-what-is-ethereum-comm-desc": "A nossa comunidade inclui pessoas de todas as origens, incluindo artistas, cripto-anarquistas, empresas da Fortune 500, e agora você. Descubra como se pode envolver ainda hoje.", - "page-what-is-ethereum-commerce-card": "Garantias comerciais", + "page-what-is-ethereum-commerce-card": "Garantias no comércio", "page-what-is-ethereum-commerce-card-desc": "Os clientes transacionam com a garantia integrada e segura de que os fundos só mudarão de mãos quando se fornece o acordado. Da mesma forma, os programadores trabalham com a certeza de que as regras não serão alteradas ao longo do processo.", "page-what-is-ethereum-composable-card": "Produtos compostos", "page-what-is-ethereum-composable-card-desc": "Todas as aplicações são construídas na mesma cadeia de blocos com um estado global partilhado, o que significa que podem ser construídas umas a partir das outras (como peças de Lego). Isto permite melhores produtos e experiências e garante que ninguém pode remover as ferramentas em que as aplicações se baseiam.", "page-what-is-ethereum-community": "A comunidade Ethereum", "page-what-is-ethereum-desc": "A fundação para o nosso futuro digital", "page-what-is-ethereum-explore": "Explorar a Ethereum", - "page-what-is-ethereum-internet-card": "Uma internet aberta", + "page-what-is-ethereum-internet-card": "Uma Internet aberta", "page-what-is-ethereum-internet-card-desc": "Qualquer um pode interagir com a rede Ethereum ou construir aplicações sobre ela. Isto permite-lhe controlar os seus próprios ativos e identidade, em vez de serem controlados por algumas mega-corporações.", "page-what-is-ethereum-meet-comm": "Conheça a comunidade", "page-what-is-ethereum-meta-description": "Aprenda sobre Ethereum, o que faz e como pode utilizá-la.", @@ -34,9 +34,12 @@ "page-what-is-ethereum-cryptocurrency-tab-content-2": "O motivo dos ativos como ‘bitcoin’ e ether serem chamados de “criptomoedas” é que a segurança dos dados e ativos é garantida pela criptografia, e não pela confiança em uma instituição ou corporação para agir de forma honesta.", "page-what-is-ethereum-cryptocurrency-tab-content-3": "A Ethereum tem a sua própria criptomoeda nativa, o ether (ETH), que é utilizado para pagar algumas atividades na rede. Pode ser transferido para outros utilizadores ou trocado por outros tokens na Ethereum. O ether é especial porque é utilizado para pagar a computação necessária para criar e executar aplicações e organizações na Ethereum.", "page-what-is-ethereum-summary-title": "Resumo", - "page-what-is-ethereum-summary-desc-1": "A Ethereum é uma rede de computadores em todo o mundo que seguem um conjunto de regras designado por protocolo Ethereum. A rede Ethereum funciona como a base para comunidades, aplicações, organizações e ativos digitais que qualquer pessoa pode construir e utilizar.", - "page-what-is-ethereum-summary-desc-2": "Pode criar uma conta Ethereum em qualquer lugar, a qualquer momento, e explorar um mundo de aplicações ou desenvolver as suas próprias. A principal inovação é o facto de poder fazer tudo isso sem confiar numa autoridade central que poderia mudar as regras ou restringir o seu acesso.", - "page-what-is-ethereum-summary-desc-3": "Para saber mais, continue a ler…", + "page-what-is-ethereum-summary-desc-1": "Ethereum é a plataforma principal para milhares de aplicações e blockchains, todas suportadas pelo protocolo Ethereum.", + "page-what-is-ethereum-summary-desc-2": "Este ecossistema vibrante fomenta a inovação e uma vasta gama de aplicações e serviços descentralizados.", + "page-what-is-ethereum-summary-bullet-1": "Contas Ethereum Globais e gratuitas", + "page-what-is-ethereum-summary-bullet-2": "Pseudoprivada, não é necessária informação pessoal", + "page-what-is-ethereum-summary-bullet-3": "Sem restrições todos podem participar", + "page-what-is-ethereum-summary-bullet-4": "Nenhuma empresa é proprietária do Ethereum ou decide o seu futuro", "page-what-is-ethereum-btc-eth-diff-title": "Qual é a diferença entre a Ethereum e a Bitcoin?", "page-what-is-ethereum-btc-eth-diff-1": "Lançada em 2015, a Ethereum baseia-se na inovação da Bitcoin, com algumas grandes diferenças.", "page-what-is-ethereum-btc-eth-diff-2": "Ambas permitem utilizar o dinheiro digital sem fornecedores de serviços de pagamento ou bancos. Mas a Ethereum é programável, então, também poderá criar e implementar aplicações descentralizadas na sua rede.", @@ -52,9 +55,9 @@ "page-what-is-ethereum-slide-2-title": "A ajuda mais rápida em tempos de crise", "page-what-is-ethereum-slide-2-desc-1": "Se tiver a sorte de ter várias opções bancárias por meio de instituições fiáveis no seu local de residência, pode dar como garantida a liberdade financeira, segurança e estabilidade que oferecem. Mas para muitas pessoas em todo o mundo que enfrentam repressão política ou dificuldades económicas, as instituições financeiras podem não oferecer a proteção ou os serviços de que precisam.", "page-what-is-ethereum-slide-2-desc-2": "Quando guerras, catástrofes económicas ou repressões às liberdades civis atingiram os residentes da Venezuela, Cuba, Afeganistão, Nigéria, Bielorrússia e Ucrânia, as criptomoedas representaram a opção mais rápida e, muitas vezes, a única para manter a autonomia financeira.1 Como demonstrado por esses exemplos, criptomoedas como a Ethereum podem fornecer acesso irrestrito à economia global quando as pessoas são isoladas do mundo exterior. Além disso, as stablecoins oferecem uma reserva de valor quando as moedas locais estão colapsando devido à hiperinflação.", - "page-what-is-ethereum-slide-3-title": "Capacitamos os criadores", + "page-what-is-ethereum-slide-3-title": "A capacitar criadores", "page-what-is-ethereum-slide-3-desc-1": "Só em 2021, artistas, músicos, escritores e outros criadores utilizaram a Ethereum para ganhar cerca de 3,5 mil milhões de dólares coletivamente. Isso torna a Ethereum uma das maiores plataformas globais para criadores, juntamente com o Spotify, o YouTube e o Etsy. Saiba mais.", - "page-what-is-ethereum-slide-4-title": "Capacitamos os jogadores", + "page-what-is-ethereum-slide-4-title": "A capacitar jogadores", "page-what-is-ethereum-slide-4-desc-1": "Os jogos para ganhar (onde os jogadores realmente são recompensados por jogar os jogos) surgiram recentemente e estão a transformar a indústria de jogos. Tradicionalmente, é muitas vezes proibido negociar ou transferir bens dentro do jogo para outros jogadores por dinheiro real. Isso obriga os jogadores a usar sites de mercado negro que são frequentemente um risco de segurança. O jogo em blockchain abraça a economia do jogo e incentiva esse comportamento de maneira fiável.", "page-what-is-ethereum-slide-4-desc-2": "Além disso, os jogadores são incentivados por conseguirem trocar tokens no jogo por dinheiro real e assim serem verdadeiramente recompensados pelo seu tempo de jogo.", "page-what-is-ethereum-meet-ether-title": "Conheça o ether, a criptomoeda da Ethereum", @@ -67,7 +70,7 @@ "page-what-is-ethereum-who-runs-ethereum-title": "Quem executa a Ethereum?", "page-what-is-ethereum-who-runs-ethereum-desc-1": "A Ethereum não é controlada por nenhuma entidade específica. Existe sempre que há computadores conectados executando software que segue o protocolo Ethereum e adiciona à blockchain da Ethereum. Cada um desses computadores é conhecido como um nó. Os nós podem ser executados por qualquer pessoa, embora para participar da segurança da rede seja necessário stake ETH (o token nativo da Ethereum). Qualquer pessoa com 32 ETH pode fazer isso sem precisar de permissão.", "page-what-is-ethereum-who-runs-ethereum-desc-2": "Mesmo o código fonte da Ethereum não é elaborado por uma única entidade. Qualquer pessoa pode sugerir alterações ao protocolo e discutir melhorias. Existem várias implementações do protocolo Ethereum que são produzidas por organizações independentes em várias linguagens de programação e são, normalmente, desenvolvidas de forma aberta e incentivam as contribuições da comunidade.", - "page-what-is-ethereum-run-a-node": "Executar um nó", + "page-what-is-ethereum-run-a-node": "Execute um nó", "page-what-is-ethereum-smart-contract-title": "O que são contratos inteligentes?", "page-what-is-ethereum-smart-contract-desc-1": "Os contratos inteligentes são programas de computador que residem na cadeia de blocos Ethereum. São executados quando desencadeados por uma transação de um utilizador. Tornam a Ethereum muito flexível no que pode realizar. Esses programas atuam como blocos de construção para aplicações e organizações descentralizados.", "page-what-is-ethereum-smart-contract-desc-2": "Já usou um produto que mudou os seus termos de serviço? Ou removeu uma funcionalidade que considerava útil? Assim que um contrato inteligente é publicado na Ethereum, ficará online e operacional enquanto a Ethereum existir. Nem mesmo o autor pode removê-lo. Como os contratos inteligentes são automatizados, não discriminam nenhum utilizador e sempre estão prontos a utilizar.", @@ -82,7 +85,7 @@ "page-what-is-ethereum-energy-desc-1": "Em 15 de setembro de 2022, a Ethereum passou pela atualização chamada 'The Merge', que fez a transição da Ethereum de proof-of-work (prova de trabalho) para proof-of-stake (prova de participação).", "page-what-is-ethereum-energy-desc-2": "A Fusão foi a maior atualização da Ethereum e reduziu o consumo de energia necessário para garantir a Ethereum em 99,95%, criando uma rede mais segura com um custo de carbono muito menor. A Ethereum agora é uma blockchain de baixo carbono ao mesmo tempo em que melhora a sua segurança e escalabilidade.", "page-what-is-ethereum-more-on-energy-consumption": "Mais sobre o consumo de energia", - "page-what-is-ethereum-energy-consumption-chart-legend": "Consumo de energia anual em TWh/ano", + "page-what-is-ethereum-energy-consumption-chart-legend": "Consumo energético anual em TWh/ano", "energy-consumption-chart-global-data-centers-label": "Centros de dados globais", "energy-consumption-gold-mining-cbeci-label": "Mineração de ouro", "energy-consumption-chart-btc-pow-label": "BTC PoW", @@ -121,5 +124,5 @@ "page-what-is-ethereum-get-eth-title": "Obtenha algum ETH", "page-what-is-ethereum-explore-dapps-alt": "Explorar dapps", "page-what-is-ethereum-explore-dapps-description": "\"Dapps\" são aplicações construídas em Ethereum. \"Dapps\" estão a revolucionar modelos de negócio e a inventar novos.", - "page-what-is-ethereum-explore-dapps-title": "Experimente algumas dapps" + "page-what-is-ethereum-explore-dapps-title": "Experimente algumas Dapps" } From 33f3157757a15774aaa782645e3af06640b6c816 Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Thu, 1 May 2025 04:45:56 +0000 Subject: [PATCH 059/106] chore: import translations for ro --- src/intl/ro/common.json | 22 ++++-- src/intl/ro/page-get-eth.json | 51 ++++++++----- src/intl/ro/page-index.json | 10 ++- src/intl/ro/page-wallets-find-wallet.json | 89 +++++++++++++++++++++-- src/intl/ro/page-what-is-ethereum.json | 9 ++- 5 files changed, 142 insertions(+), 39 deletions(-) diff --git a/src/intl/ro/common.json b/src/intl/ro/common.json index 2c1bd157ead..1f533151b9f 100644 --- a/src/intl/ro/common.json +++ b/src/intl/ro/common.json @@ -11,6 +11,7 @@ "adding-products": "Adăugare de produse", "adding-staking-products": "Adăugarea produselor de mizare", "adding-wallets": "Adăugarea portofelelor", + "ai-agents": "Agenți AI", "aria-toggle-menu-button": "Activați butonul pentru meniu", "aria-toggle-search-button": "Activează butonul de căutare", "beacon-chain": "Lanțul Beacon", @@ -97,6 +98,7 @@ "ethereum-upgrades": "Actualizările Ethereum", "ethereum-wallets": "Portofelele Ethereum", "ethereum-whitepaper": "Cartea albă Ethereum", + "events": "Evenimente", "feedback-card-prompt-article": "A fost util acest articol?", "feedback-card-prompt-page": "A fost utilă această pagină?", "feedback-card-prompt-tutorial": "A fost util acest tutorial?", @@ -202,7 +204,7 @@ "layer-2": "Nivel 2", "learn": "Învață", "learn-by-coding": "Învățați codificând", - "learn-hub": "Ethereum: un ghid de învățare complet", + "learn-hub": "Centru de învățare", "learn-menu": "Meniu de învățare", "learn-more": "Află mai multe", "less": "Mai puțin", @@ -219,6 +221,7 @@ "nav-about-description": "Un proiect public, open source pentru comunitatea Ethereum", "nav-advanced-description": "Află mai multe despre subiecte mai complexe", "nav-advanced-label": "Avansat", + "nav-ai-agents-description": "Explorați lumea agenților AI pe Ethereum", "nav-basics-description": "Aprofundează noțiunile de bază ale Ethereum", "nav-basics-label": "Noțiuni de bază", "nav-bridges-description": "Web3 a evoluat într-un ecosistem de blockchainuri L1 principale și soluții de scalare L2", @@ -247,8 +250,9 @@ "nav-eip-label": "EIP-uri - Propuneri de îmbunătățire Ethereum", "nav-emerging-description": "Află cazuri de utilizare noi pentru Ethereum", "nav-emerging-label": "Cazuri de utilizare emergente", - "nav-enterprise-description": "Aplicații în afaceri pentru Ethereum", "nav-ethereum-org-description": "Acest site este creat și gestionat de comunitate. Vino alături de noi și contribuie și tu", + "nav-ethereum-networks": "Rețelele Ethereum", + "nav-ethereum-networks-description": "Tranzacții mai ieftine și mai rapide pentru Ethereum", "nav-ethereum-wallets-description": "O aplicație pentru interacțiuni cu contul tău Ethereum", "nav-events-description": "Descentralizare și libertate de a participa pentru oricine", "nav-events-irl-description": "În fiecare lună, sunt organizate evenimente majore Ethereum cu participare fizică și online", @@ -274,18 +278,24 @@ "nav-guides-label": "Folosirea ghidurilor", "nav-history-description": "O cronologie a tuturor bifurcațiilor și update-urilor importante", "nav-history-label": "Istoricul tehnic al Ethereum", - "nav-layer-2-description": "Tranzacții mai ieftine și mai rapide pentru Ethereum", "nav-learn-by-coding-description": "Instrumente care te ajută să experimentezi cu Ethereum", "nav-local-env-description": "Alege și configurează stiva de dezvoltare Ethereum", "nav-mainnet-description": "Aplicațiile blockchain pentru companii pot fi create pe rețeaua principală publică Ethereum", + "nav-networks-home-description": "Tranzacții mai ieftine și mai rapide pentru Ethereum", + "nav-networks-introduction-label": "Introducere", + "nav-networks-introduction-description": "Ethereum s-a extins într-o rețea de rețele", + "nav-networks-explore-networks-label": "Explorați rețelele", + "nav-networks-explore-networks-description": "Alegeți rețeaua pe care să o folosiți", + "nav-networks-learn-label": "Ce sunt rețelele pe stratul 2?", + "nav-networks-learn-description": "Aflați de ce avem nevoie de ele", "nav-nft-description": "O modalitate de a reprezenta orice lucru unic ca activ bazat pe Ethereum", "nav-open-research-description": "Unul prin principalele puncte forte ale Ethereum este comunitatea de cercetare activă", "nav-open-research-label": "Deschidere cercetare", "nav-overview-description": "Toate proiectele de educație Ethereum", "nav-overview-label": "Prezentare generală", "nav-participate-overview-description": "Prezentare a modalității de participare", + "nav-payments-description": "Plățile cu Ethereum schimbă modul în care trimitem și primim bani", "nav-primary": "Principal", - "nav-private-description": "Resurse destinate dezvoltatorilor din Ethereum-ul privat pentru întreprinderi", "nav-quizzes-description": "Află cât de bine înțelegi Ethereum și criptomonedele", "nav-quizzes-label": "Testează-ți cunoștințele", "nav-refi-description": "Un sistem economic alternativ, bazat pe principii regenerative", @@ -306,6 +316,7 @@ "nav-roadmap-security": "O securitate mai bună", "nav-roadmap-security-description": "Eforturi depuse pentru ca Ethereum să continue să reziste tuturor tipurilor de atacuri în viitor", "nav-roadmap-security-label": "Securitate îmbunătățită", + "nav-roadmap-user-experience": "O mai bună experiență a utilizatorului", "nav-roadmap-ux-description": "Utilizarea Ethereum trebuie simplificată", "nav-roadmap-ux-label": "O mai bună experiență a utilizatorului", "nav-run-a-node-description": "Ai control absolut în timp ce contribui la protejarea securității rețelei", @@ -355,6 +366,7 @@ "page-last-updated": "Ultima actualizare a paginii", "participate": "Participă", "participate-menu": "Meniu Participare", + "payments-page": "Plăți", "pbs": "Separare ofertant-constructor", "pools": "Miză cumulată", "privacy-policy": "Politică de confidențialitate", @@ -431,4 +443,4 @@ "wrapped-ether": "Ether „Wrapped”", "yes": "Da", "zero-knowledge-proofs": "Dovezi zero-knowledge" -} \ No newline at end of file +} diff --git a/src/intl/ro/page-get-eth.json b/src/intl/ro/page-get-eth.json index c2fe0c1353d..0eab5354826 100644 --- a/src/intl/ro/page-get-eth.json +++ b/src/intl/ro/page-get-eth.json @@ -2,30 +2,43 @@ "page-get-eth-article-keeping-crypto-safe": "Cheile pentru păstrarea în siguranță a criptomonedei dvs.", "page-get-eth-article-protecting-yourself": "Protecția dvs. și a fondurilor dvs.", "page-get-eth-article-store-digital-assets": "Cum să stocați active digitale pe Ethereum", + "page-get-eth-article-protecting-yourself-desc": "MyCrypto", + "page-get-eth-article-keeping-crypto-safe-desc": "Coinbase", + "page-get-eth-article-store-digital-assets-desc": "ConsenSys", "page-get-eth-cex": "Schimburi centralizate", - "page-get-eth-cex-desc": "Schimburile constituie acțiuni prin care puteți cumpăra cripto folosind monedele tradiționale. Acestea dețin custodia asupra oricărui ETH pe care îl cumpărați până când îl trimiteți într-un portofel pe care îl controlați.", + "page-get-eth-cex-desc": "Exchange-urile sunt companii care îți permit să cumperi criptomonede folosind monede tradiționale. Ele păstrează custodia asupra oricărui ETH achiziționat până când îl transferi într-un portofel pe care îl controlezi.", "page-get-eth-checkout-dapps-btn": "Vedeți aplicațiile dapp", "page-get-eth-community-safety": "Postările comunității despre securitate", - "page-get-eth-description": "Ethereum și ETH nu sunt controlate de niciun guvern și nicio companie – sunt descentralizate. Aceasta înseamnă că oricine este liber să utilizeze ETH.", + "page-get-eth-description": "Ethereum nu este controlat de o singură organizație. Este descentralizat.", "page-get-eth-dex": "Schimburi descentralizate (DEX-uri)", - "page-get-eth-dex-desc": "Dacă doriți să aveți mai mult control, cumpărați ETH în mod direct, între participanți. Cu un DEX puteți tranzacționa fără a transfera unei companii centralizate controlul asupra fondurilor dvs.", + "page-get-eth-dex-desc": "Dacă doriți mai mult control, cumpărați ETH folosind contracte inteligente. Cu un schimb descentralizat puteți tranzacționa active digitale fără să oferiți control asupra fondurilor dumneavoastră vreunei companii centralizate.", + "page-get-eth-peers": "Primiți ETH de la alte persoane", + "page-get-eth-peers-desc": "Odată ce aveți un cont Ethereum, tot ce trebuie să faceți este să împărtășiți adresa pentru a începe să trimiteți și să primiți ETH (și alte tokenuri) între participanți.", + "page-get-eth-staking": "Recompense pentru mizare", + "page-get-eth-staking-desc": "Dacă aveți deja niște ETH, puteți câștiga mai mult rulând un nod validator. Sunteți plătit(ă) în ETH pentru această muncă de verificare în ETH.", + "page-get-eth-earn": "Câștigați ETH", + "page-get-eth-earn-desc": "Puteți câștiga ETH lucrând pentru DAO-uri sau companii care plătesc în criptomonede, câștigând recompense, identificând erorile în software sau prin alte metode.", + "page-get-eth-daos-link-desc": "Aflați despre DAO-uri", + "page-get-eth-cex-link-desc": "Consultați lista cu schimburi", + "page-get-eth-staking-link-desc": "Învățați mai multe despre mizare", "page-get-eth-dexs": "Schimburi descentralizate (DEX-uri)", "page-get-eth-dexs-desc": "Schimburile descentralizate sunt piețe deschise pentru ETH și alte tokenuri. Acestea conectează direct cumpărătorii cu vânzătorii.", - "page-get-eth-dexs-desc-2": "În loc să folosească un terț de încredere pentru a proteja fondurile în procesul de tranzacție, utilizează codul. ETH-ul vânzătorului va fi transferat numai atunci când plata este garantată. Acest tip de cod este cunoscut sub numele de contract inteligent.", - "page-get-eth-dexs-desc-3": "Aceasta înseamnă că sunt mai puține restricții geografice decât la alternativele centralizate. Dacă cineva vinde ceea ce doriți și acceptă o metodă de plată pe care o puteți utiliza, sunteți gata de a porni. DEX-urile vă pot permite să cumpărați ETH cu alte tokenuri, cu PayPal sau chiar plătind în numerar în persoană.", + "page-get-eth-dexs-desc-2": "În loc să folosească un terț de încredere pentru a proteja fondurile în procesul de tranzacție, utilizează codul. ETH-ul vânzătorului va fi transferat numai atunci când plata este garantată. Acest tip de cod este cunoscut drept contract inteligent.", + "page-get-eth-dexs-desc-3": "Acest lucru înseamnă că sunt mai puține restricții geografice decât în cazul alternativelor centralizate. Dacă cineva vinde ceea ce vă doriți și acceptă o metodă de plată pe care o puteți oferi, sunteți pregătit(ă) să finalizați tranzacția.", + "page-get-eth-dexs-desc-4": "Notă: majoritatea schimburilor descentralizate folosesc ether înfășurat (WETH) pentru a funcționa. Aflaţi mai multe despre etherul înfășurat.", "page-get-eth-do-not-copy": "Exemplu: nu copiați", "page-get-eth-exchanges-disclaimer": "Am strâns aceste informații manual. Dacă observați ceva greșit, anunțați-ne la", - "page-get-eth-exchanges-empty-state-text": "Introduceți-vă țara de reședință pentru a vedea o listă de portofele și schimburi pe care le puteți utiliza pentru a cumpăra ETH", + "page-get-eth-exchanges-empty-state-text": "Introduceți țara de rezidență pentru a vedea lista de schimburi pe care le puteți utiliza", "page-get-eth-exchanges-except": "Cu excepția", "page-get-eth-exchanges-header": "În ce țară locuiți?", "page-get-eth-exchanges-header-exchanges": "Schimburi", "page-get-eth-exchanges-header-wallets": "Portofele", - "page-get-eth-exchanges-intro": "Schimburile și portofelele au restricții privind locurile unde pot vinde cripto.", + "page-get-eth-exchanges-intro": "Schimburile au restricții în privința locurilor în care pot vinde criptomonede. Aceasta este o listă orientativă de servicii despre care se crede că funcționează în fiecare țară. Includerea lor aici nu reprezintă o recomandare. Efectuați cercetări!", "page-get-eth-exchanges-no-exchanges": "Ne pare rău, nu cunoaștem schimburi care să vă permită să cumpărați ETH din această țară. Dacă dvs. cunoașteți, comunicați-ne la", - "page-get-eth-exchanges-no-exchanges-or-wallets": "Ne pare rău, nu cunoaștem schimburi sau portofele care să vă permită să cumpărați ETH din această țară. Dacă dvs. cunoașteți, comunicați-ne la", + "page-get-eth-exchanges-no-exchanges-or-wallets": "Ne pare rău, nu cunoaștem schimburi care să vă permită să cumpărați ETH din această țară. Dacă dvs. cunoașteți, comunicați-ne la", "page-get-eth-exchanges-no-wallets": "Ne pare rău, nu cunoaștem niciun portofel care să vă permită să cumpărați ETH din această țară. Dacă dvs. cunoașteți, comunicați-ne la", "page-get-eth-exchanges-search": "Introduceți unde locuiți...", - "page-get-eth-exchanges-success-exchange": "Poate dura câteva zile ca să vă înregistrați pentru un schimb, din cauza verificărilor legale ce se efectuează.", + "page-get-eth-exchanges-success-exchange": "Înregistrarea la un exchange poate dura câteva zile din cauza verificărilor legale.", "page-get-eth-exchanges-success-wallet-link": "portofelele", "page-get-eth-exchanges-success-wallet-paragraph": "Acolo unde locuiți, puteți cumpăra ETH direct din aceste portofele. Aflați mai multe despre", "page-get-eth-exchanges-usa": "Statele Unite ale Americii (SUA)", @@ -33,34 +46,34 @@ "page-get-eth-hero-image-alt": "Obțineți imaginea eroului ETH", "page-get-eth-keep-it-safe": "Mențineți-vă ETH-ul în siguranță", "page-get-eth-meta-description": "Cum să cumpărați ETH în funcție de locul de domiciliu și sfaturi despre cum să aveți grijă de acesta.", - "page-get-eth-meta-title": "Cum să cumpărați ETH", + "page-get-eth-meta-title": "Cumpărarea Ethereum (ETH)", "page-get-eth-need-wallet": "Veți avea nevoie de un portofel pentru a utiliza un DEX.", "page-get-eth-new-to-eth": "Nu ați mai folosit ETH? Iată o prezentare generală ca să demarați.", "page-get-eth-other-cryptos": "Cumpărați cu altă cripto", - "page-get-eth-protect-eth-desc": "Dacă intenționați să cumpărați mult ETH, vă recomandăm să îl păstrați într-un portofel pe care îl controlați, nu într-un schimb. Aceasta deoarece un schimb este o țintă probabilă pentru hackeri. Dacă un hacker obține accesul, vă puteți pierde fondurile. Pe când în primul caz dvs. dețineți controlul portofelului.", - "page-get-eth-protect-eth-in-wallet": "Protejați-vă ETH-ul într-un portofel", + "page-get-eth-protect-eth-desc": "Una dintre principalele caracteristici ale Ethereum este că puteți controla activele gestionând propriul cont. Aceasta înseamnă că nu trebuie să vă încredințați altor entități activele proprii și sunteți protejați de orice custode care acționează necinstit, care intră în faliment sau care este atacat. Însă, aceasta înseamnă și că sunteți responsabil(ă) de propria securitate.", + "page-get-eth-protect-eth-in-wallet": "Păstrați ETH în propriul portofel", "page-get-eth-search-by-country": "Căutați după țară", - "page-get-eth-security": "Dar acest lucru înseamnă și că trebuie să vă ocupați serios de securitatea fondurilor. În privința ETH-ului, nu vă puneți încrederea într-o instituție bancară pentru a se îngriji de banii dvs., ci aveți încredere în dvs. înșivă.", + "page-get-eth-security": "Înseamnă că trebuie să tratați cu seriozitate siguranța fondurilor. Cu ETH, nu vă încredeți într-o bancă sau companie care să aibă grijă de activele dumneavoastră. Dumneavoastră sunteți cel/cea care își asumă responsabilitatea siguranței.", "page-get-eth-smart-contract-link": "Aflați mai multe despre contractele inteligente", "page-get-eth-swapping": "Schimbați jetoane pe ETH-ul altor persoane. Și invers.", - "page-get-eth-try-dex": "Încercați un Dex", + "page-get-eth-try-dex": "Încercați un schimb descentralizat", "page-get-eth-use-your-eth": "Folosiți-vă ETH-ul", "page-get-eth-use-your-eth-dapps": "Acum, că dețineți ceva ETH, uitați-vă la câteva aplicații Ethereum (dapp-uri). Există dapp-uri pentru finanțe, rețele sociale, jocuri și multe alte categorii.", "page-get-eth-wallet-instructions": "Urmați instrucțiunile portofelului", - "page-get-eth-wallet-instructions-lost": "Dacă pierdeți accesul la portofel, vă pierdeți accesul la fonduri. Portofelul dvs. trebuie să vă ofere instrucțiuni despre cum să vă protejați de aceasta. Aveți grijă să le urmați cu atenție – în majoritatea cazurilor, nimeni nu vă poate ajuta dacă vă pierdeți accesul la portofel.", + "page-get-eth-wallet-instructions-lost": "Dacă pierdeți accesul la cont, pierdeți accesul la fonduri. Portofelul dumneavoastră ar trebui să vă ofere instrucțiuni legate de protecție. Respectați instrucțiunile cu mare atenție. În marea majoritate a cazurilor, nimeni nu vă poate ajuta daca pierdeți accesul la cont.", "page-get-eth-wallets": "Portofele", "page-get-eth-wallets-link": "Aflați mai multe despre portofele", "page-get-eth-wallets-purchasing": "Unele portofele vă permit să cumpărați cripto cu un card de debit/credit, prin transfer bancar sau chiar cu Apple Pay. Se aplică restricții geografice.", - "page-get-eth-warning": "Aceste DEX-uri nu sunt pentru începători, întrucât aveți nevoie de ceva ETH pentru a le utiliza.", + "page-get-eth-warning": "Aceste schimburi descentralizate nu sunt destinate începătorilor, dată fiind cantitatea de ETH necesară. Acestea sunt doar niște exemple, fără a fi produse promovate. Efectuați propria cercetare!", "page-get-eth-what-are-DEX's": "Ce sunt DEX-urile?", "page-get-eth-whats-eth-link": "Ce este ETH-ul?", - "page-get-eth-where-to-buy-desc": "Puteți cumpăra ETH prin schimburi sau direct din portofele.", + "page-get-eth-where-to-buy-desc": "Puteți câștiga ETH, puteți primi de la cunoscuți sau puteți cumpăra în urma schimburilor şi din aplicații.", "page-get-eth-where-to-buy-desc-2": "Verificați ce servicii puteți utiliza în funcție de locul de domiciliu.", - "page-get-eth-where-to-buy-title": "De unde puteți cumpăra ETH", + "page-get-eth-where-to-buy-title": "De unde puteți obține ETH", "page-get-eth-your-address": "Adresa dvs. ETH", "page-get-eth-your-address-desc": "Când descărcați un portofel, acesta vă va crea o adresă publică ETH. Iată cum arată o astfel de adresă:", "page-get-eth-your-address-desc-3": "Considerați-o adresa dvs. de e-mail, doar că în loc de mesaje poate primi ETH. Dacă doriți să transferați ETH dintr-un schimb către portofel, utilizați-vă adresa ca destinatar. Aveți grijă să mai controlați o dată înainte de a trimite!", "page-get-eth-your-address-wallet-link": "Vedeți portofelele", - "listing-policy-raise-issue-link": "Semnalați o problemă", + "listing-policy-raise-issue-link": "Ridică problema", "page-find-wallet-last-updated": "Ultima actualizare pe" } diff --git a/src/intl/ro/page-index.json b/src/intl/ro/page-index.json index 66e47094a63..4916662975d 100644 --- a/src/intl/ro/page-index.json +++ b/src/intl/ro/page-index.json @@ -2,8 +2,9 @@ "page-index-activity-description": "Activitatea din toate rețelele Ethereum", "page-index-activity-tag": "Activitate", "page-index-activity-header": "Cel mai puternic ecosistem", + "page-index-activity-action": "Mai multe activități în Ethereum", "page-index-bento-header": "O nouă modalitate de a folosi internetul", - "page-index-bento-assets-action": "Află mai multe despre NFT-uri", + "page-index-bento-assets-action": "Mai multe despre NFT-uri", "page-index-bento-assets-content": "Operele de artă, certificatele sau chiar și bunurile imobiliare pot fi tokenizate. Orice poate fi un token care poate fi tranzacționat. Proprietatea este publică și poate fi verificată.", "page-index-bento-assets-title": "Internetul activelor", "page-index-bento-dapps-action": "Răsfoire aplicații", @@ -65,7 +66,7 @@ "page-index-learn-tag": "Învață", "page-index-learn-header": "Aprofundați Ethereum", "page-index-meta-description": "Ethereum este o platformă mondială, descentralizată, care se ocupă de bani și noi tipuri de aplicații. Pe Ethereum se pot crea coduri pentru controlul banilor și se pot elabora aplicații accesibile oriunde în lume.", - "page-index-meta-title": "Ghidul complet la Ethereum", + "page-index-meta-title": "Ethereum.org: Ghid complet pentru Ethereum", "page-index-network-stats-total-eth-staked": "Acordați importanță protejării Ethereum", "page-index-network-stats-tx-cost-description": "Costul mediu al tranzacției", "page-index-network-stats-tx-day-description": "Tranzacții în ultimele 24 de ore", @@ -85,6 +86,7 @@ "page-index-values-description": "Intrați în revoluția digitală", "page-index-values-header": "Internetul se schimbă", "page-index-values-legacy": "Moștenirea", + "page-index-values-tag": "Valori", "page-index-values-ownership-legacy-label": "Proprietate restricționată", "page-index-values-ownership-legacy-content-0": "Activele și datele dumneavoastră sunt gestionate de organizație folosind o bancă obișnuită sau o rețelea de socializare. Vă bazați pe acestea pentru a acces și control.", "page-index-values-ownership-legacy-content-1": "Acestea vă pot folosi datele în moduri cu care este posibil să nu fiți deacord, în funcție de politici.", @@ -98,7 +100,7 @@ "page-index-values-privacy-legacy-content-0": "Nu ne putem aștepta ca guvernele, corporațiile sau alte organizații anonime să ne acorde confidențialitate din bunăvoință.", "page-index-values-privacy-legacy-content-1": "Cele mai multe aplicații strâng cât mai multe informații cu caracter personal posibil, astfel încât să vă poată viza cu marketing personalizat.", "page-index-values-privacy-ethereum-label": "Axați pe confidențialitate", - "page-index-values-privacy-ethereum-content-0": "Comunitatea Ethereum respectă confidențialitatea. Aveți dreptul de a folosi aplicațiile fără a vă identifica sau fără a comunica informații de contact.", + "page-index-values-privacy-ethereum-content-0": "Comunitatea Ethereum respectă confidențialitatea. Aveți dreptul de a folosi aplicațiile fără a vă identifica și fără a comunica informații de contact.", "page-index-values-integration-legacy-label": "Fragmentare", "page-index-values-integration-legacy-content-0": "Cele mai multe aplicații vă îndeamnă să creați conturi separate, ceea ce îngreunează păstrarea tuturor detaliilor de conectare și a tuturor înregistrărilor.", "page-index-values-integration-ethereum-label": "Integrare", @@ -110,7 +112,7 @@ "page-index-values-censorship-legacy-label": "Cenzura", "page-index-values-censorship-legacy-content-0": "Platformele moderne și regulile acestora se schimbă des. Acestea pot fi influențate de acționari, conducerea companiei sau chiar de regimuri autoritare.", "page-index-values-censorship-ethereum-label": "Rezistența la cenzură", - "page-index-values-censorship-ethereum-content-0": "Rezistența la autoritate este esențială pentru Ethereum. Funcționalitatea sa trebuie să rămână întotdeauna corectă și imparțială.", + "page-index-values-censorship-ethereum-content-0": "Rezistența la opresiune este esențială pentru Ethereum. Funcționalitatea sa trebuie să rămână întotdeauna corectă și imparțială.", "page-index-values-censorship-ethereum-content-1": "Ethereum nu poate fi controlată de niciun stat național, nicio companie sau nicio persoană.", "page-index-values-open-legacy-label": "Închis pentru cei mai mulți", "page-index-values-open-legacy-content-0": "Companiile își protejează proprietatea intelectuală și nu comunică. Nimeni din afara companiei nu poate afla cum funcționează lucrurile, cum sunt rezolvate problemele sau cum se efectuează îmbunătățirile. Oamenilor le este dificil să creeze instrumente noi sau să efectueze personalizări.", diff --git a/src/intl/ro/page-wallets-find-wallet.json b/src/intl/ro/page-wallets-find-wallet.json index ff56926d4ae..f463a2df9b0 100644 --- a/src/intl/ro/page-wallets-find-wallet.json +++ b/src/intl/ro/page-wallets-find-wallet.json @@ -1,15 +1,88 @@ { "page-find-wallet-clear": "Ștergeți filtrele", - "page-find-wallet-desc-2": "Așa că alegeți-vă un portofel în funcție de funcționalitățile dorite.", - "page-find-wallet-description": "Portofelele au o mulțime de funcționalități facultative care v-ar putea plăcea.", + "page-find-wallet-desc-2": "Nu știți ce este un portofel?", + "page-find-wallet-desc-2-wallets-link": "Aflați ce sunt portofelele.", + "page-find-wallet-description": "Portofelele stochează și vă permit tranzacționarea ETH-ului dumneavoastră. Puteți alege dintr-o gamă variată de produse adaptate nevoilor dvs.", "page-find-wallet-last-updated": "Ultima actualizare pe", "page-find-wallet-meta-description": "Găsiți și comparați portofele Ethereum pe baza funcționalităților dorite.", - "page-find-wallet-meta-title": "Găsiți un portofel Ethereum", - "page-find-wallet-title": "Găsiți un portofel", + "page-find-wallet-meta-title": "Lista Portofelelor Ethereum | ethereum.org", + "page-find-wallet-title": "Alege-ți portofelul", "page-find-wallet-try-removing": "Încercați să eliminați una sau două funcționalități", "page-stake-eth": "Mizați ETH", - "page-find-wallet-swaps": "Schimburi de tokenuri descentralizate", - "page-find-wallet-swaps-desc": "Tranzacționează între ETH și alte token-uri direct din portofel.", - "page-find-wallet-multisig": "Conturi cu multi-semnătură", - "page-find-wallet-multisig-desc": "Pentru o securitate suplimentară, portofelele cu multi-semnătură necesită mai multe conturi pentru a autoriza anumite tranzacții." + "page-find-wallet-open-source": "Open source", + "page-find-wallet-open-source-desc": "Software-ul open source permite oricui să verifice integritatea și securitatea aplicației", + "page-find-wallet-self-custody": "Custodie proprie", + "page-find-wallet-non-custodial": "Proprietate personală", + "page-find-wallet-non-custodial-desc": "Portofele care nu controlează cheile dumneavoastră private", + "page-find-wallet-hardware-wallet-support": "Suport pentru portofele hardware", + "page-find-wallet-hardware-wallet-support-desc": "Portofele care se pot conecta la portofelul hardware pentru o mai bună securitate", + "page-find-wallet-rpc-importing": "Se importă RPC", + "page-find-wallet-rpc-importing-desc": "Portofele care suportă puncte finale RPC personalizate pentru a se conecta la diferite noduri sau rețele", + "page-find-wallet-nft-support": "Suport pentru NFT", + "page-find-wallet-nft-support-desc": "Portofele care permit afișarea și interacțiunea cu NFT-urile tale", + "page-find-wallet-connect-to-dapps": "Conectarea la aplicațiile dapp", + "page-find-wallet-connect-to-dapps-desc": "Te poți conecta la aplicații care acceptă WalletConnect sau o alternativă", + "page-find-wallet-staking": "Mizarea", + "page-find-wallet-staking-desc": "Mizarea ETH direct din portofel", + "page-find-wallet-swaps": "Schimburi", + "page-find-wallet-swaps-desc": "Schimbați tokenuri ERC-20 direct în portofel", + "page-find-wallet-layer-2": "Stratul 2", + "page-find-wallet-layer-2-desc": "Portofele care susțin straturi 2 Ethereum", + "page-find-wallet-gas-fee-customization": "Personalizare taxă pe gaz", + "page-find-wallet-gas-fee-customization-desc": "Personalizați cantitățile de gaz (taxa de bază, taxa de prioritate și taxa maximă)", + "page-find-wallet-ens-support": "Asistență pentru ENS", + "page-find-wallet-ens-support-desc": "Portofele care susțin Ethereum Name Service (ENS)", + "page-find-wallet-token-importing": "Importare jetoane", + "page-find-wallet-token-importing-desc": "Importați orice jeton ERC-20 pentru utilizare în portofel", + "page-find-wallet-buy-crypto": "Cumpărați criptomonede", + "page-find-wallet-buy-crypto-desc": "Cumpărați criptomonede cu bani reali direct din portofel\n*Notă: cumpărarea criptomonedelor poate varia în funcție de regiune", + "page-find-wallet-sell-for-fiat": "Vindeți pentru bani reali", + "page-find-wallet-sell-for-fiat-desc": "Vindeți criptomonede pentru bani reali direct din portofel\n*Notă: retragerea criptomonedelor poate varia în funcție de regiune", + "page-find-wallet-multisig": "Semnături multiple", + "page-find-wallet-multisig-desc": "Portofele care necesită mai multe semnături pentru a autoriza o tranzacție", + "page-find-wallet-social-recovery": "Recuperare socială", + "page-find-wallet-social-recovery-desc": "Portofele care permit persoanelor de încredere să schimbe cheia de semnare pentru portofelele bazate pe contract inteligent", + "page-find-wallet-languages-supported": "Suport lingvistic", + "page-find-wallet-languages-search-language": "Căutare limbă", + "page-find-wallet-popular-languages": "Cele mai populare", + "page-find-wallet-features": "Funcționalități", + "page-find-wallet-security": "Securitate", + "page-find-wallet-smart-contract": "Contract inteligent", + "page-find-wallet-advanced": "Avansat", + "page-find-wallet-check-out": "Consultați", + "page-find-wallet-info-updated-on": "informații actualizate la", + "page-find-wallet-showing-all-wallets": "Afișarea tuturor portofelelor", + "page-find-wallet-wallets": "portofele", + "page-find-wallet-iOS": "iOS", + "page-find-wallet-android": "Android", + "page-find-wallet-linux": "Linux", + "page-find-wallet-macOS": "macOS", + "page-find-wallet-windows": "Windows", + "page-find-wallet-chromium": "Chromium", + "page-find-wallet-firefox": "Firefox", + "page-find-wallet-hardware": "Hardware", + "page-find-wallet-new-to-crypto-title": "Nou în cripto", + "page-find-wallet-new-to-crypto-desc": "Utilizator începător căutând un portofel pentru începători.", + "page-find-wallet-nfts-title": "NFT-uri", + "page-find-wallet-nfts-desc": "Portofele axate pe suport pentru NFT.", + "page-find-wallet-hodler-title": "Pe termen lung", + "page-find-wallet-hodler-desc": "Jeton pasiv în portofele hardware.", + "page-find-wallet-finance-title": "Finanțe", + "page-find-wallet-finance-desc": "Portofele axate pe utilizarea frecventă a aplicațiilor DeFi.", + "page-find-wallet-developer-title": "Dezvoltator", + "page-find-wallet-developer-desc": "Portofele care ajută la dezvoltarea și testarea aplicațiilor dapp.", + "page-find-wallet-active": "activ", + "page-find-wallet-footnote-1": "Portofelele listate pe această pagină nu reprezintă recomandări oficiale și sunt furnizate doar în scopuri informative.", + "page-find-wallet-footnote-2": "Descrierile au fost furnizate de proiectele portofelelor.", + "page-find-wallet-footnote-3": "Adăugăm produse pe această pagină pe baza criteriilor din politica noastră de listare. Dacă doriți să adăugăm un portofel, ridicați o problemă pe GitHub.", + "page-find-wallet-mobile": "Mobil", + "page-find-wallet-desktop": "Desktop", + "page-find-wallet-browser": "Browser", + "page-find-wallet-device": "Dispozitiv", + "page-find-wallet-reset-filters": "Resetare", + "page-find-wallet-visit-website": "Vizitați pagina web", + "page-find-wallet-social-links": "Linkuri", + "page-find-wallet-empty-results-title": "Nu există rezultate", + "page-find-wallet-empty-results-desc": "Nu există nici un portofel care să se potrivească criteriilor dumneavoastră. Încercați să eliminați filtre.", + "page-find-wallet-see-wallets": "Vizualizare portofele" } diff --git a/src/intl/ro/page-what-is-ethereum.json b/src/intl/ro/page-what-is-ethereum.json index 3cc312e2db9..f9bd759bc66 100644 --- a/src/intl/ro/page-what-is-ethereum.json +++ b/src/intl/ro/page-what-is-ethereum.json @@ -34,9 +34,12 @@ "page-what-is-ethereum-cryptocurrency-tab-content-2": "Motivul pentru care activele precum bitcoin și ether sunt numite „criptomonede” este acela că securitatea datelor și a activelor tale este garantată prin criptografie, nu prin încrederea într-o instituție sau o corporație că acționează în mod onest.", "page-what-is-ethereum-cryptocurrency-tab-content-3": "Ethereum are propria sa criptomonedă nativă, numită ether (ETH), care este folosită pentru a plăti anumite activități în cadrul rețelei. Aceasta poate fi transferată altor utilizatori sau poate fi schimbată cu alte tokenuri pe platforma Ethereum. Ether este specială deoarece este folosită pentru a plăti calculul necesar construirii și rulării aplicațiilor și organizațiilor de pe platforma Ethereum.", "page-what-is-ethereum-summary-title": "Rezumat", - "page-what-is-ethereum-summary-desc-1": "Ethereum este o rețea de computere din întreaga lume care urmează un set de reguli numite protocolul Ethereum. Rețeaua Ethereum constituie fundația pe baza căreia oricine poate construi și utiliza comunități, aplicații, organizații și active digitale.", - "page-what-is-ethereum-summary-desc-2": "Puteți crea un cont Ethereum de oriunde, oricând și puteți explora o lume de aplicații sau vă puteți construi propria aplicație. Inovația de bază este că puteți face toate acestea fără a trebui să aveți încredere într-o autoritate centrală care ar putea schimba regulile sau care v-ar putea restricționa accesul.", - "page-what-is-ethereum-summary-desc-3": "Continuați să citiți pentru a afla mai multe…", + "page-what-is-ethereum-summary-desc-1": "Ethereum este platforma principala pentru mii de aplicații si blockchainuri, toate funcționând pe baza protocolului Ethereum.", + "page-what-is-ethereum-summary-desc-2": "Acest ecosistem dinamic creează inovație și o gamă largă de aplicații și de servicii descentralizate.", + "page-what-is-ethereum-summary-bullet-1": "Conturi Ethereum gratis și globale", + "page-what-is-ethereum-summary-bullet-2": " Pseudo-privat, nu necesită informații personale", + "page-what-is-ethereum-summary-bullet-3": " Fără restricții oricine poate participa", + "page-what-is-ethereum-summary-bullet-4": " Nicio companie nu deține Ethereum sau decide viitorul Ethereum", "page-what-is-ethereum-btc-eth-diff-title": "Care este diferența dintre Ethereum și Bitcoin?", "page-what-is-ethereum-btc-eth-diff-1": "Lansată în 2015, Ethereum se bazează pe inovarea Bitcoin, cu câteva mari diferențe.", "page-what-is-ethereum-btc-eth-diff-2": "Amândouă vă permit să folosiți bani digitali fără furnizori de plăți sau bănci. Dar Ethereum este programabil, astfel încât să puteți construi și implementa aplicații descentralizate în rețeaua proprie.", From 370e89d7dd54d3d38732d847959fd0ae6a7ea8e5 Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Thu, 1 May 2025 04:45:59 +0000 Subject: [PATCH 060/106] chore: import translations for ru --- src/intl/ru/common.json | 14 +++++++++++++- src/intl/ru/page-get-eth.json | 8 ++++---- src/intl/ru/page-index.json | 3 ++- src/intl/ru/page-wallets-find-wallet.json | 16 ++++++++-------- src/intl/ru/page-what-is-ethereum.json | 15 +++++++++------ 5 files changed, 36 insertions(+), 20 deletions(-) diff --git a/src/intl/ru/common.json b/src/intl/ru/common.json index e70d0de3d27..407b6cf2028 100644 --- a/src/intl/ru/common.json +++ b/src/intl/ru/common.json @@ -11,6 +11,7 @@ "adding-products": "Добавление продуктов", "adding-staking-products": "Добавление продуктов, использующих стейкинг", "adding-wallets": "Добавление кошельков", + "ai-agents": "ИИ-агенты", "aria-toggle-menu-button": "Переключение кнопки меню", "aria-toggle-search-button": "Переключение кнопки поиска", "beacon-chain": "Сеть Beacon", @@ -221,6 +222,7 @@ "nav-about-description": "Публичный проект с открытым кодом для сообщества Ethereum", "nav-advanced-description": "Узнавайте о более сложных темах", "nav-advanced-label": "Дополнительно", + "nav-ai-agents-description": "Исследуйте мир ИИ-агентов в сети Ethereum", "nav-basics-description": "Разберитесь в основах Ethereum", "nav-basics-label": "Основы", "nav-bridges-description": "Web3 становится экосистемой, состоящей из первичных блокчейнов L1 и решений для масштабирования L2", @@ -250,6 +252,8 @@ "nav-emerging-description": "Узнавайте самые свежие примеры использования Ethereum", "nav-emerging-label": "Новые варианты использования", "nav-ethereum-org-description": "Этот сайт развивается сообществом, станьте его участником и внесите свой вклад", + "nav-ethereum-networks": "Сети Ethereum", + "nav-ethereum-networks-description": "Транзакции Ethereum дешевле и быстрее", "nav-ethereum-wallets-description": "Приложение для взаимодействия с вашим аккаунтом Ethereum", "nav-events-description": "Децентрализация и свобода участия для каждого", "nav-events-irl-description": "Каждый месяц проходят крупные мероприятия Ethereum — как онлайн, так и в очном режиме", @@ -275,16 +279,23 @@ "nav-guides-label": "Практические руководства", "nav-history-description": "График всех основных ветвлений и обновлений", "nav-history-label": "Техническая история Ethereum", - "nav-layer-2-description": "Транзакции Ethereum дешевле и быстрее", "nav-learn-by-coding-description": "Инструменты, помогающие экспериментировать с Ethereum", "nav-local-env-description": "Выберите и настройте свой стек разработки Ethereum", "nav-mainnet-description": "Блокчейн-приложения для компаний можно создавать на публичной основной сети Ethereum", + "nav-networks-home-description": "Транзакции Ethereum дешевле и быстрее", + "nav-networks-introduction-label": "Введение", + "nav-networks-introduction-description": "Ethereum разросся до сети из сетей", + "nav-networks-explore-networks-label": "Исследуйте сети", + "nav-networks-explore-networks-description": "Выбирайте, какую сеть использовать", + "nav-networks-learn-label": "Что такое сети уровня 2?", + "nav-networks-learn-description": "Узнайте, зачем они нам", "nav-nft-description": "Способ представить что-либо уникальное как актив на основе Ethereum", "nav-open-research-description": "Одно из ключевых преимуществ Ethereum — активное сообщество исследователей", "nav-open-research-label": "Текущие исследования", "nav-overview-description": "Обучающие материалы по Ethereum на любые темы", "nav-overview-label": "Обзор", "nav-participate-overview-description": "Обзор возможностей для участия", + "nav-payments-description": "Платежи Ethereum меняют наш подход к отправке и получению денег", "nav-primary": "Основной", "nav-quizzes-description": "Узнайте, насколько хорошо вы разбираетесь в Ethereum и криптовалютах", "nav-quizzes-label": "Проверьте свои знания", @@ -356,6 +367,7 @@ "page-last-updated": "Последнее обновление страницы", "participate": "Участвуйте", "participate-menu": "Меню участия", + "payments-page": "Платежи", "pbs": "Разделение предлагающих и строителей", "pools": "Объединенный стейкинг", "privacy-policy": "Политика о конфиденциальности", diff --git a/src/intl/ru/page-get-eth.json b/src/intl/ru/page-get-eth.json index bf911179358..9d66cb935bc 100644 --- a/src/intl/ru/page-get-eth.json +++ b/src/intl/ru/page-get-eth.json @@ -22,8 +22,8 @@ "page-get-eth-cex-link-desc": "Просматривайте список бирж", "page-get-eth-staking-link-desc": "Узнавайте больше о стейкинге", "page-get-eth-dexs": "Децентрализованные биржи (DEX)", - "page-get-eth-dexs-desc": "Децентрализованные биржи - открытые торговые площадки для ETH и других токенов. Они напрямую соединяют покупателей и продавцов.", - "page-get-eth-dexs-desc-2": "Вместо использования доверенных третьих лиц для защиты средств в сделке они используют код. ETH продавца будут переданы только тогда, когда оплата будет гарантирована. Этот тип кода известен как смарт-контракт.", + "page-get-eth-dexs-desc": "Децентрализованные биржи — это открытые торговые площадки для ETH и других токенов. Они напрямую соединяют покупателей и продавцов.", + "page-get-eth-dexs-desc-2": "Вместо использования доверенной третьей стороны для обеспечения безопасности средств при транзакциях используется код. ETH продавца будут переданы только тогда, когда оплата будет гарантирована. Этот тип кода известен как смарт-контракт.", "page-get-eth-dexs-desc-3": "Это означает, что существует меньше географических ограничений, чем при использовании централизованных альтернатив. Если кто-то продает то, что вы хотите, и принимает способ оплаты, который вы можете предоставить, то все готово.", "page-get-eth-dexs-desc-4": "Примечание: многие децентрализованные биржи (DEX) используют обернутый эфир (WETH) для работы. Узнайте больше об обернутом эфире.", "page-get-eth-do-not-copy": "Пример: не копировать", @@ -46,7 +46,7 @@ "page-get-eth-hero-image-alt": "Получить изображение героя ETH", "page-get-eth-keep-it-safe": "Сохранение ваших ETH в безопасности", "page-get-eth-meta-description": "Как купить ETH в том месте, где вы живете, и советы, как позаботиться о них.", - "page-get-eth-meta-title": "Как получить ETH", + "page-get-eth-meta-title": "Как купить Ethereum (ETH)", "page-get-eth-need-wallet": "Вам понадобится кошелек, чтобы использовать DEX.", "page-get-eth-new-to-eth": "Новичок в ETH? Вот обзор, чтобы помочь вам начать.", "page-get-eth-other-cryptos": "Купить за другую криптовалюту", @@ -72,7 +72,7 @@ "page-get-eth-where-to-buy-title": "Где получить ETH", "page-get-eth-your-address": "Ваш адрес ETH", "page-get-eth-your-address-desc": "Когда вы загружаете кошелек, он создает для вас общедоступный адрес ETH. Вот пример такого адреса:", - "page-get-eth-your-address-desc-3": "Думайте об этом, как о вашем адресе электронной почты, но вместо сообщений вы получаете ETH. Если вы хотите перевести ETH из биржи в свой кошелек, используйте ваш адрес в качестве точки назначения. Дважды проверьте его перед отправкой!", + "page-get-eth-your-address-desc-3": "Представьте это как ваш электронный адрес, только вместо писем на него можно получать ETH. Если вы хотите перевести ETH из биржи в свой кошелек, используйте ваш адрес в качестве точки назначения. Дважды проверьте его перед отправкой!", "page-get-eth-your-address-wallet-link": "Просмотреть кошельки", "listing-policy-raise-issue-link": "Поднять вопрос", "page-find-wallet-last-updated": "Последнее обновление" diff --git a/src/intl/ru/page-index.json b/src/intl/ru/page-index.json index 85da64de266..9a5172ed5f9 100644 --- a/src/intl/ru/page-index.json +++ b/src/intl/ru/page-index.json @@ -2,6 +2,7 @@ "page-index-activity-description": "Активность во всех сетях Ethereum", "page-index-activity-tag": "Активность", "page-index-activity-header": "Самая мощная экосистема", + "page-index-activity-action": "Больше об активности в Ethereum", "page-index-bento-header": "Новый способ использования интернета", "page-index-bento-assets-action": "Подробнее об NFT", "page-index-bento-assets-content": "Искусство, сертификаты и даже недвижимость можно токенизировать. Торгуемым токеном может быть что угодно. Это публичная собственность, которую можно подтвердить.", @@ -111,7 +112,7 @@ "page-index-values-censorship-legacy-label": "Высокая степень контроля", "page-index-values-censorship-legacy-content-0": "Современные платформы и их правила часто меняются. На них могут влиять заинтересованные стороны, руководство компании или даже деспотичные режимы.", "page-index-values-censorship-ethereum-label": "Устойчивость к цензуре", - "page-index-values-censorship-ethereum-content-0": "Устойчивость к внешнему давлению — ключевой принцип Ethereum. Ее функциональность всегда должна оставаться честной и беспристрастной.", + "page-index-values-censorship-ethereum-content-0": "Устойчивость к внешнему давлению — ключевой принцип Ethereum. Работа этой сети всегда должна оставаться честной и беспристрастной.", "page-index-values-censorship-ethereum-content-1": "Ethereum не могут контролировать государства, компании или отдельные лица.", "page-index-values-open-legacy-label": "Закрытость от большинства", "page-index-values-open-legacy-content-0": "Компании защищают свою интеллектуальную собственность и не делятся ей. Никто извне не может узнать, как они выполняют работу, устраняют проблемы и внедряют улучшения. Людям сложно создавать новые инструменты или настраивать существующие.", diff --git a/src/intl/ru/page-wallets-find-wallet.json b/src/intl/ru/page-wallets-find-wallet.json index d90a99854a4..85b4c76b8f7 100644 --- a/src/intl/ru/page-wallets-find-wallet.json +++ b/src/intl/ru/page-wallets-find-wallet.json @@ -5,14 +5,14 @@ "page-find-wallet-description": "Кошельки позволяют хранить ЕТН и совершать соответствующие транзакции. Вы можете выбрать из ряда продуктов те, которые подходят именно вам.", "page-find-wallet-last-updated": "Последнее обновление", "page-find-wallet-meta-description": "Найдите и сравните кошельки Ethereum на основе функций, которые вам нужны.", - "page-find-wallet-meta-title": "Найти кошелек Ethereum", + "page-find-wallet-meta-title": "Список кошельков Ethereum | ethereum.org", "page-find-wallet-title": "Выберите кошелек", "page-find-wallet-try-removing": "Попробуйте удалить одну или две функции", "page-stake-eth": "Вложить ETH", "page-find-wallet-open-source": "Открытый исходный код", "page-find-wallet-open-source-desc": "Программное обеспечение с открытым исходным кодом позволяет любому желающему проверить целостность и безопасность приложения", "page-find-wallet-self-custody": "Самоконтроль", - "page-find-wallet-non-custodial": "Личное владение", + "page-find-wallet-non-custodial": "Не кастодиальный", "page-find-wallet-non-custodial-desc": "Кошельки, которые не контролируют ваши закрытые ключи", "page-find-wallet-hardware-wallet-support": "Поддержка аппаратных кошельков", "page-find-wallet-hardware-wallet-support-desc": "Кошельки, которые могут подключаться к аппаратному кошельку для повышения безопасности", @@ -38,9 +38,9 @@ "page-find-wallet-buy-crypto-desc": "Покупайте криптовалюту за фиатные деньги прямо в кошельке \n * Примечание: покупка криптовалюты может зависеть от региона", "page-find-wallet-sell-for-fiat": "Продать за фиатные деньги", "page-find-wallet-sell-for-fiat-desc": "Продавайте криптовалюту в фиатные деньги прямо в кошельке \n * Примечание: вывод криптовалюты может зависеть от региона", - "page-find-wallet-multisig": "Мультиподпись", + "page-find-wallet-multisig": "Мультиподписной", "page-find-wallet-multisig-desc": "Кошельки, требующие нескольких подписей для авторизации транзакции", - "page-find-wallet-social-recovery": "Социальное восстановление", + "page-find-wallet-social-recovery": "Восстановление через доверенных лиц", "page-find-wallet-social-recovery-desc": "Кошельки, позволяющие опекунам изменять ключ подписи для кошельков умных контрактов", "page-find-wallet-languages-supported": "Поддержка языков", "page-find-wallet-languages-search-language": "Поиск языка", @@ -49,7 +49,7 @@ "page-find-wallet-security": "Безопасность", "page-find-wallet-smart-contract": "Смарт-контракт", "page-find-wallet-advanced": "Дополнительно", - "page-find-wallet-check-out": "Ознакомьтесь", + "page-find-wallet-check-out": "Посмотреть", "page-find-wallet-info-updated-on": "информация обновлена", "page-find-wallet-showing-all-wallets": "Показаны все кошельки", "page-find-wallet-wallets": "кошельки", @@ -65,11 +65,11 @@ "page-find-wallet-new-to-crypto-desc": "Вы — начинающий пользователь, ищущий свой первый кошелек.", "page-find-wallet-nfts-title": "NFT", "page-find-wallet-nfts-desc": "Кошельки с развитой поддержкой NFT.", - "page-find-wallet-hodler-title": "Долгосрочные", + "page-find-wallet-hodler-title": "Долгосрочное хранение", "page-find-wallet-hodler-desc": "Пассивное хранение токенов в аппаратных кошельках.", - "page-find-wallet-finance-title": "Финансы", + "page-find-wallet-finance-title": "Финансовые операции", "page-find-wallet-finance-desc": "Кошельки с акцентом на частом использовании приложений децентрализованных финансов (DeFi).", - "page-find-wallet-developer-title": "Разработчик", + "page-find-wallet-developer-title": "Для разработчиков", "page-find-wallet-developer-desc": "Кошельки, которые помогают разрабатывать и тестировать децентрализованные приложения (dapps).", "page-find-wallet-active": "активные", "page-find-wallet-footnote-1": "Кошельки, перечисленные на этой странице, не являются официально подтвержденными и представлены исключительно в информационных целях.", diff --git a/src/intl/ru/page-what-is-ethereum.json b/src/intl/ru/page-what-is-ethereum.json index 952829662e2..559436b73d0 100644 --- a/src/intl/ru/page-what-is-ethereum.json +++ b/src/intl/ru/page-what-is-ethereum.json @@ -1,5 +1,5 @@ { - "page-what-is-ethereum-alt-img-bazaar": "Изображение человека, всматривающегося в базар, призвано быть олицетворением Ethereum", + "page-what-is-ethereum-alt-img-bazaar": "Иллюстрация человека, заглядывающего на базар, символизирующая Ethereum", "page-what-is-ethereum-alt-img-comm": "Рисунок членов сообщества Ethereum, работающих вместе", "page-what-is-ethereum-alt-img-lego": "Иллюстрация руки, создающей логотип ETH из кубиков Lego", "page-what-is-ethereum-banking-card": "Банковское обслуживание для каждого", @@ -34,9 +34,12 @@ "page-what-is-ethereum-cryptocurrency-tab-content-2": "Активы, такие как биткоин и эфир, называются криптовалютами, потому что безопасность ваших данных и активов обеспечивается криптографией, а не доверием к учреждению или корпорации, когда вы полагаетесь на честность их действий.", "page-what-is-ethereum-cryptocurrency-tab-content-3": "Ethereum имеет собственную криптовалюту, называемую «эфир» (ETH), которая используется для оплаты определенных действий в сети. Ее можно передавать другим пользователям или обменивать на другие токены в сети Ethereum. Особенность эфира в том, что он используется для оплаты вычислений, необходимых для создания и запуска приложений и организаций на базе Ethereum.", "page-what-is-ethereum-summary-title": "Обзор", - "page-what-is-ethereum-summary-desc-1": "Ethereum — это сеть компьютеров по всему миру, которые следуют набору правил, называемых протоколом Ethereum. Сеть Ethereum является основой для сообществ, приложений, организаций и цифровых активов, которые может создать и использовать каждый.", - "page-what-is-ethereum-summary-desc-2": "Вы можете зарегистрировать учетную запись Ethereum откуда угодно и в любое время и исследовать мир приложений или создать свое собственное. Основное новшество заключается в том, что вы можете делать все это, не полагаясь на центральный орган, способный менять правила или ограничивать ваш доступ.", - "page-what-is-ethereum-summary-desc-3": "Продолжите читать, чтобы узнать больше…", + "page-what-is-ethereum-summary-desc-1": "Ethereum — основная платформа для тысяч приложений и блокчейнов, которые работают на протоколе Ethereum.", + "page-what-is-ethereum-summary-desc-2": "Эта динамичная экосистема стимулирует инновации и широкий спектр децентрализованных приложений и сервисов.", + "page-what-is-ethereum-summary-bullet-1": "Свободные и глобальные аккаунты Ethereum", + "page-what-is-ethereum-summary-bullet-2": "Псевдоприватный, персональная информация не требуется", + "page-what-is-ethereum-summary-bullet-3": "Без ограничений, каждый может принять участие", + "page-what-is-ethereum-summary-bullet-4": "Ни одна компания не владеет Ethereum и не решает его будущее", "page-what-is-ethereum-btc-eth-diff-title": "В чем разница между Ethereum и биткоином?", "page-what-is-ethereum-btc-eth-diff-1": "Платформа Ethereum, запущенная в 2015 году, основывается на инновациях биткоина, но при этом имеет ряд существенных отличий.", "page-what-is-ethereum-btc-eth-diff-2": "Обе технологии позволяют вам использовать цифровые деньги без участия поставщиков платежных услуг или банков. Но платформа Ethereum является программируемой, так что вы также можете создавать и развертывать децентрализованные приложения в ее сети.", @@ -48,7 +51,7 @@ "page-what-is-ethereum-why-would-i-use-ethereum-2": "Значение Ethereum также трудно переоценить для людей, которые столкнулись с неопределенностью в отношении безопасности, надежности или мобильности своих активов из-за внешних сил, находящихся вне их контроля.", "page-what-is-ethereum-slide-1-title": "Более дешевые и быстрые международные платежи", "page-what-is-ethereum-slide-1-desc-1": "Стабильные монеты — это новый тип криптовалют, стоимость которых основана на более стабильных активах. Большинство из них привязаны к доллару США, тем самым сохраняя стоимость валюты. Это позволяет сделать очень дешевую и стабильную глобальную систему платежей. Многие современные стабильные монеты построены на сети Ethereum.", - "page-what-is-ethereum-slide-1-desc-2": "Ethereum и стабильные монеты упрощают процесс отправки денег за границу. Перемещение средств по всему миру часто занимает всего несколько минут, в отличие от нескольких рабочих дней или даже недель, которые могут потребоваться обычному банку. Причем перемещение осуществляется за меньшую цену. Кроме того, не взимается дополнительная комиссия за транзакцию на высокую сумму, и нет никаких ограничений на то, куда и зачем вы отправляете деньги.", + "page-what-is-ethereum-slide-1-desc-2": "Ethereum и стабильные монеты упрощают процесс международных денежных переводов. Перемещение средств по всему миру часто занимает всего несколько минут, в отличие от нескольких рабочих дней или даже недель, которые могут потребоваться обычному банку. Причем перемещение осуществляется за меньшую цену. Кроме того, не взимается дополнительная комиссия за транзакцию на высокую сумму, и нет никаких ограничений на то, куда и зачем вы отправляете деньги.", "page-what-is-ethereum-slide-2-title": "Самая быстрая помощь во время кризиса", "page-what-is-ethereum-slide-2-desc-1": "Если вам повезло иметь несколько вариантов банковского обслуживания в надежных учреждениях, где вы живете, вы можете принимать как должное финансовую свободу, безопасность и стабильность, которые они предлагают. Но для многих людей по всему миру, вынужденных сталкиваться с политическими репрессиями или экономическими трудностями, финансовые учреждения могут не предоставлять необходимой защиты или услуг.", "page-what-is-ethereum-slide-2-desc-2": "Когда война, экономические катастрофы или подавление гражданских свобод поразили жителей Венесуэлы, Кубы, Афганистана, Нигерии, Беларуси и Украины, криптовалюты представляли собой самый быстрый и зачастую единственный способ сохранить финансовое агентство.1 Как видно из этих примеров, криптовалюты, такие как Ethereum, могут обеспечить беспрепятственный доступ к глобальной экономике, когда люди отрезаны от внешнего мира. Кроме того, стейблкоины предлагают средство сбережения, когда местные валюты рушатся из-за гиперинфляции.", @@ -71,7 +74,7 @@ "page-what-is-ethereum-smart-contract-title": "Что такое умные контракты?", "page-what-is-ethereum-smart-contract-desc-1": "Смарт-контракты — это компьютерные программы, существующие на основе блокчейна Ethereum. Они выполняются при инициировании транзакцией от пользователя. Они делают Ethereum очень гибкой платформой для реализации ее возможностей. Эти программы служат строительными блоками для децентрализованных приложений и организаций.", "page-what-is-ethereum-smart-contract-desc-2": "Вы когда-нибудь использовали продукт, который изменил свои условия предоставления услуг? Или убрал функцию, которая вам была полезна? Как только умный контракт опубликован в Ethereum, он будет доступен онлайн и будет работать, пока существует Ethereum. Даже автор контракта не сможет его аннулировать. Так как умные контракты автоматизированы, они не дискриминируют пользователей и всегда готовы к использованию.", - "page-what-is-ethereum-smart-contract-desc-3": "Популярными примерами применения умных контрактов являются: приложения для размещения вкладов, децентрализованные биржи, страхование, квадратичное финансирование, социальные сети, NFT. В общем, практически все, что можно себе представить.", + "page-what-is-ethereum-smart-contract-desc-3": "Популярные примеры умных контрактов: приложения для кредитования, децентрализованные биржи, страхование, квадратичное финансирование, социальные сети, NFT. В общем, практически все, что можно себе представить.", "page-what-is-ethereum-more-on-smart-contracts": "Подробнее об умных контрактах", "page-what-is-ethereum-explore-dapps": "Посмотреть dapps", "page-what-is-ethereum-criminal-activity-title": "Говорят, что криптовалюты используют как инструмент в преступной деятельности. Это правда?", From 4d6510da9c18a4b2eb41f9a0b919428f4cd14af0 Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Thu, 1 May 2025 04:46:03 +0000 Subject: [PATCH 061/106] chore: import translations for sl --- src/intl/sl/page-dapps.json | 144 ++++++++++++++++------ src/intl/sl/page-get-eth.json | 61 +++++---- src/intl/sl/page-layer-2.json | 58 +++++++++ src/intl/sl/page-wallets-find-wallet.json | 90 ++++++++++++-- src/intl/sl/page-wallets.json | 79 ++++++------ src/intl/sl/page-what-is-ethereum.json | 124 +++++++++++++++++-- 6 files changed, 437 insertions(+), 119 deletions(-) create mode 100644 src/intl/sl/page-layer-2.json diff --git a/src/intl/sl/page-dapps.json b/src/intl/sl/page-dapps.json index 84307f5502b..9d4ccc13445 100644 --- a/src/intl/sl/page-dapps.json +++ b/src/intl/sl/page-dapps.json @@ -1,32 +1,47 @@ { "page-dapps-1inch-logo-alt": "Logotip 1inch", - "page-dapps-dexguru-logo-alt": "Logotip DexGuru", "page-dapps-aave-logo-alt": "Logotip Aave", "page-dapps-add-button": "Predlagaj dapp", "page-dapps-add-title": "Dodajanje decentralizirane aplikacije", + "page-dapps-ankr-logo-alt": "Logotip Ankr", + "page-dapps-api3-logo-alt": "Logotip API3", + "page-dapps-arweave-logo-alt": "Logotip ARweave", "page-dapps-audius-logo-alt": "Logotip Audius", - "page-dapps-augur-logo-alt": "Logotip Augur", "page-dapps-axie-infinity-logo-alt": "Logotip Axie Infinity", "page-dapps-balancer-logo-alt": "Logotip Balancer", "page-dapps-brave-logo-alt": "Logotip Brave", + "page-dapps-beginner-friendly-description": "Nekaj decentraliziranih aplikacij, ki so primerne za začetnike. Več decentraliziranih aplikacij raziščite spodaj.", + "page-dapps-beginner-friendly-header": "Primerno za začetnike", "page-dapps-category-arts": "Umetnost in moda", "page-dapps-category-browsers": "Brskalniki", + "page-dapps-category-code-marketplaces": "Trgi kode", "page-dapps-category-collectibles": "Digitalni zbirateljski predmeti", - "page-dapps-category-competitive": "Tekmovanje", + "page-dapps-category-competitive": "Igre Web3", "page-dapps-category-computing": "Orodja za razvijalce", - "page-dapps-category-dex": "Menjave žetonov", - "page-dapps-category-investments": "Naložbe", + "page-dapps-category-dex": "Borze", + "page-dapps-category-investments": "Investicijski skladi", "page-dapps-category-lending": "Kreditiranje in posojila", "page-dapps-category-lottery": "Množično financiranje", "page-dapps-category-marketplaces": "Tržišča", "page-dapps-category-music": "Glasba", "page-dapps-category-payments": "Plačila", "page-dapps-category-insurance": "Zavarovanje", - "page-dapps-category-portfolios": "Portfelji", - "page-dapps-category-trading": "Trgovanje in napovedni trgi", + "page-dapps-category-portfolios": "Upravljanje portfelja", + "page-dapps-category-trading": "Napovedni trgi", "page-dapps-category-utilities": "Pripomočki", "page-dapps-category-worlds": "Virtualni svetovi", + "page-dapps-category-demand-aggregator": "Zbirniki povpraševanja", + "page-dapps-category-derivatives": "Izvedeni finančni instrumenti", + "page-dapps-category-liquid-staking": "Likvidno zastavljanje", + "page-dapps-category-experiences": "Skupne izkušnje", + "page-dapps-category-guilds": "Cehi donosa", + "page-dapps-category-avatar": "Avatarji", "page-dapps-choose-category": "Izberite kategorijo", + "page-dapps-category-social": "Družabni mediji", + "page-dapps-category-content": "Vsebina", + "page-dapps-category-community": "Skupnost", + "page-dapps-category-messaging": "Sporočanje", + "page-dapps-category-identity": "Identiteta", "page-dapps-collectibles-benefits-1-description": "Ko se umetnost na Ethereumu pretvori v žetone, je mogoče dokazati lastništvo, kar lahko vidijo vsi. Potovanju svoje umetnine lahko sledite vse od stvaritve do trenutnega imetnika. To preprečuje ponaredke.", "page-dapps-collectibles-benefits-1-title": "Lastništvo je mogoče dokazati", "page-dapps-collectibles-benefits-2-description": "Plačevanje za pretočno predvajanje glasbe ali kupovanje umetnin je precej bolj pošteno do izvajalcev in umetnikov. Z Ethereumom je potrebe po posrednikih manjša, če pa so potrebni, njihovi stroški niso tako visoki, saj platformam ni potrebno plačati infrastrukture omrežja.", @@ -41,37 +56,53 @@ "page-dapps-collectibles-description": "To so aplikacije, ki so osredotočene na digitalno lastništvo in povečujejo potencialne prihodke ustvarjalcev ter izumljajo nove načine vlaganja v priljubljene ustvarjalce in njihovo delo.", "page-dapps-collectibles-title": "Decentralizirane umetnine in zbirateljski predmeti", "page-dapps-compound-logo-alt": "Logotip Compound", + "page-dapps-convex-logo-alt": "Logotip Convex", "page-dapps-cryptopunks-logo-alt": "Logotip CryptoPunks", "page-dapps-cryptovoxels-logo-alt": "Logotip Cryptovoxels", - "page-dapps-dapp-description-1inch": "Pomaga vam, da se izognete visokemu odstopanju med cenami s skupnim seštevkom najboljših cen.", + "page-dapps-cyberconnect-logo-alt": "Logotip CyberConnect", + "page-dapps-dapp-description-1inch": "Pomaga vam izogniti se visokemu zdrsu cen z združevanjem najboljših cen.", "page-dapps-dapp-description-aave": "Posojajte svoje žetone in služite obresti ter kadarkoli opravite dvig.", + "page-dapps-dapp-description-ankr": "Nabor različnih infrastrukturnih produktov Web3 za razvoj, zaslužek, igre in še več – vse na verigi blokov.", + "page-dapps-dapp-description-api3": "Viri podatkov o referenčnih cenah prve stranke, ki decentraliziranim aplikacijam v 10 omrežjih (in še več) omogočajo povezavo s podatki o cenah sredstev v realnem času, vključno s cenami kriptovalut in Forex.", + "page-dapps-dapp-description-arweave": "Trajno in trajnostno shranjujte podatke z enkratno vnaprejšnjo pristojbino.", "page-dapps-dapp-description-async-art": "Ustvarjajte, zbirajte in trgujte #ProgramabilnoUmetnost – digitalne risbe, razdeljene v »plasti«, ki jih lahko dodajate skupni sliki. Vsaka matrica in plast je ERC721 žeton.", "page-dapps-dapp-description-audius": "Decentralizirana platforma za pretočno predvajanje. Poslušanje = denar za ustvarjalce, ne založbe.", - "page-dapps-dapp-description-augur": "Stavite na rezultate športnih, gospodarskih in drugih svetovnih dogodkov.", "page-dapps-dapp-description-axie-infinity": "Trgujte in se bojujte z bitji, imenovanimi Axieji. Služite z igranjem – na voljo za mobilne naprave", "page-dapps-dapp-description-balancer": "Balancer je avtomatizirani upravitelj portfeljev in platforma za trgovanje.", "page-dapps-dapp-description-brave": "Služite žetone z brskanjem in z njimi podpirajte svoje najljubše ustvarjalce.", "page-dapps-dapp-description-cent": "Družbeno omrežje, kjer z objavljanjem NFT-jev služite denar.", "page-dapps-dapp-description-compound": "Posojajte svoje žetone in služite obresti ter kadarkoli opravite dvig.", - "page-dapps-dapp-description-cryptopunks": "Kupujte, oddajajte ponudbe in prodajajte pankerje – eni izmed prvih zbirateljskih predmetov v obliki žetonov na Ethereumu.", + "page-dapps-dapp-description-convex": "Convex ponudnikom likvidnosti na platformi Curve omogoča, da zaslužijo provizije od trgovanja in zahtevajo povečani CRV brez zaklepanja svojega CRV.", + "page-dapps-dapp-description-cryptopunks": "Kupujte, oddajajte ponudbe in prodajajte CryptoPunke – ene izmed prvih zbirateljskih predmetov v obliki žetonov na Ethereumu.", "page-dapps-dapp-description-cryptovoxels": "Ustvarjajte umetnostne galerije, postavljajte trgovine in kupujte zemljišča – virtualni svet na Ethereumu.", + "page-dapps-dapp-description-cyberconnect": "Decentralizirani protokol socialnega grafa, ki decentraliziranim aplikacijam pomaga zagnati omrežne učinke in zgraditi prilagojene socialne izkušnje.", "page-dapps-dapp-description-dark-forest": "Osvajajte planete v neskončnem vesolju, ki je postopkovno generirano in kriptografsko določeno.", "page-dapps-dapp-description-decentraland": "Zbirajte virtualna zemljišča v in trgujte z njimi v virtualnem svetu, ki ga lahko raziskujete.", "page-dapps-dapp-description-ens": "Uporabnikom prijazna imena za naslove Ethereum in decentralizirana spletna mesta.", "page-dapps-dapp-description-foundation": "Vlagajte v edinstvene izdaje digitalnih umetnin in z izdelki trgujte z drugimi kupci.", "page-dapps-dapp-description-gitcoin": "Zaslužite kriptovalute s sodelovanjem na odprtokodni programski opremi.", "page-dapps-dapp-description-gitcoin-grants": "Množično financiranje projektov skupnosti Ethereum s povečanimi prispevki.", + "page-dapps-dapp-description-gm": "Platforma vse v enem za klepet, forume in glasovne klice, ki si dejansko deli prihodke s svojimi ustvarjalci.", "page-dapps-dapp-description-gods-unchained": "Strateška igra z zbirateljskimi karticami. Z igranjem zaslužite kartice, ki jih lahko prodate v resničnem življenju.", "page-dapps-dapp-description-golem": "Dostopajte do računalniške zmogljivosti ali oddajte svoje vire.", + "page-dapps-dapp-description-graph": "Protokol za indeksiranje za poizvedovanje omrežij, kot sta Ethereum in IPFS.", + "page-dapps-dapp-description-ipfs": "Hipermedijski protokol enakovrednih udeležencev, zasnovan za ohranjanje in rast znanja človeštva, tako da postane splet nadgradljiv, odporen in bolj odprt.", "page-dapps-dapp-description-radicle": "Varno in enakovredno programersko sodelovanje brez posrednikov.", + "page-dapps-dapp-description-kyberswap": "Menjajte in zaslužite po najboljših tečajih.", + "page-dapps-dapp-description-kiwinews": "Poiščite zanimive novice, članke in izdelke o Ethereumu, ki so jih za razvijalce kurirali razvijalci. Razpravljajte o njih s kolegi razvijalci, ustanovitelji in vlagatelji.", + "page-dapps-dapp-description-lido": "Poenostavljeno in varno zastavljanje digitalnih sredstev.", "page-dapps-dapp-description-loopring": "Platforma za trgovanje v omrežju enakovrednih uporabnikov, zasnovana za hitrost.", "page-dapps-dapp-description-marble-cards": "Ustvarjajte edinstvene digitalne kartice na podlagi URL-jev in trgujte z njimi.", "page-dapps-dapp-description-matcha": "Išče po številnih borzah in vam pomaga najti najboljše cene.", - "page-dapps-dapp-description-nifty-gateway": "Na verigi kupujte izdelke vrhunskih umetnikov, športnikov, blagovnih znamk in ustvarjalcev.", - "page-dapps-dapp-description-oasis": "Trgujte s stabilnim kovancem Ethereum, imenovanim Dai, si izposojajte in varčujte z njim.", + "page-dapps-dapp-description-meeds": "Središča skupnosti Web3 za dobo decentraliziranega dela. Pošteno in pregledno nagradite prispevke, ki štejejo.", + "page-dapps-dapp-description-mirror": "Zgrajena na Web3 za Web3, Mirrorjeva robustna platforma za objavljanje premika meje spletnega pisanja.", + "page-dapps-dapp-description-multichain": "Končni usmerjevalnik za Web3. Gre za infrastrukturo, razvito za poljubne interakcije med verigami.", + "page-dapps-dapp-description-nifty-gateway": "Kupite dela na verigi od vrhunskih umetnikov, športnikov, blagovnih znamk in ustvarjalcev.", + "page-dapps-dapp-description-summerfi": "Trgujte s stabilnim kovancem Ethereum, imenovanim Dai, si izposojajte in varčujte z njim.", "page-dapps-dapp-description-opensea": "Kupujte, prodajajte, odkrivajte in trgujte z omejenimi izdajami izdelkov.", "page-dapps-dapp-description-opera": "V brskalniku pošiljajte kriptovalute trgovcem, drugim uporabnikom in aplikacijam.", - "page-dapps-dapp-description-poap": "Zbiranje NGT-jev, ki dokazujejo vašo udeležbo na različnih virtualnih ali dogodkih v živo. Uporabite jih, da se pridružite nagradnim igram, glasujete, sodelujete ali pa se z njimi le pohvalite.", + "page-dapps-dapp-description-osuvox": "3D avatarji, ki živijo na verigi blokov.", + "page-dapps-dapp-description-poap": "Zbiranje NFT-jev, ki dokazujejo vašo udeležbo na različnih virtualnih ali dogodkih v živo. Uporabite jih, da se pridružite nagradnim igram, glasujete, sodelujete ali pa se z njimi le pohvalite.", "page-dapps-dapp-description-polymarket": "Stavite na rezultate. Trgujte na informacijskih trgih.", "page-dapps-dapp-description-pooltogether": "Loterija, kjer ne morete izgubiti. Nagrade vsak teden.", "page-dapps-dapp-description-index-coop": "Kripto indeksni skladi, ki vam omogočijo izpostavljenost vašega portfelja DeFi žetonom.", @@ -82,12 +113,17 @@ "page-dapps-dapp-description-rotki": "Odprtokodno orodje za sledenje portfeljev, analize, računovodsko in davčno poročanje, ki spoštuje vašo zasebnost.", "page-dapps-dapp-description-krystal": "Platforma, ki omogoča, da na enem mestu dostopate do priljubljenih storitev DeFi.", "page-dapps-dapp-description-rarible": "Ustvarjajte, prodajajte in kupujte zbirateljske predmete v obliki žetonov.", + "page-dapps-dapp-description-request-finance": "Paket finančnih orodij za kripto račune, plačilne liste in stroške.", + "page-dapps-dapp-description-rubic": "Tehnološki agregator med verigami za uporabnike in decentralizirane aplikacije.", "page-dapps-dapp-description-sablier": "Sproti pretočno predvajajte denar.", + "page-dapps-dapp-description-spatial": "Ustvarite svoj avatar po meri in 3D svetove.", + "page-dapps-dapp-description-spruce": "Odprtokodni nabor orodij, ki omogoča, da nadzor nad identiteto in podatki ostane pri uporabnikih.", + "page-dapps-dapp-description-status": "Zasnovano za omogočanje prostega pretoka informacij, zaščito pravice do zasebnih, varnih pogovorov in spodbujanje suverenosti posameznikov.", "page-dapps-dapp-description-superrare": "Kupujte digitalne umetnine neposredno od umetnikov ali na sekundarnih trgih.", - "page-dapps-dapp-description-token-sets": "Strategije vlaganja v kriptovalute, ki se samodejno znova uravnovesijo.", + "page-dapps-dapp-description-synthetix": "Synthetix je protokol za izdajanje sintetičnih sredstev in trgovanje z njimi.", "page-dapps-dapp-description-uniswap": "Preprosto menjajte žetone ali zagotovite žetone za % nagrade.", - "page-dapps-dapp-description-dexguru": "Neskrbniški terminal za trgovanje za trgovce DeFi", - "page-dapps-dapp-description-synthetix": "Synthetix je protokol za izdajanje sintetičnih sredstev in trgovanje z njimi", + "page-dapps-dapp-description-xmtp": "Pošiljajte sporočila med računi na verigi blokov, vključno z neposrednimi sporočili, opozorili, objavami in še več.", + "page-dapps-dapp-description-yearn": "Yearn Finance je agregator donosa. Posameznikom, organizacijam DAO in drugim protokolom omogoča način, kako položiti digitalna sredstva in prejemati donos.", "page-dapps-docklink-dapps": "Uvod v decentralizirane aplikacije", "page-dapps-docklink-smart-contracts": "Pametne pogodbe", "page-dapps-dark-forest-logo-alt": "Logotip Dark Forest", @@ -103,13 +139,11 @@ "page-dapps-desc": "Poiščite aplikacijo Ethereum in jo preizkusite.", "page-dapps-doge-img-alt": "Slika psa »doge«, ki uporablja računalnik", "page-dapps-editors-choice-dark-forest": "Igrajte proti drugim in osvajajte planete ter preizkusite vrhunsko tehnologijo za razširljivost in zasebnost Ethereuma. Morda je primernejše za tiste, ki že poznajo Ethereum.", - "page-dapps-editors-choice-description": "Nekaj decentraliziranih aplikacij, ki jih ekipa ethereum.org trenutno obožuje. Spodaj raziščite več aplikacij.", "page-dapps-editors-choice-foundation": "Vlagajte v kulturo. Kupujte, trgujte in prodajajte edinstvene digitalne umetnine in modne izdelke nekaterih neverjetnih umetnikov, glasbenikov in blagovnih znamk.", - "page-dapps-editors-choice-header": "Izbira urednikov", "page-dapps-editors-choice-pooltogether": "Kupite srečko za loterijo, v kateri ne morete izgubiti. Vsak teden se obresti, ki jih proizvede celoten sklad srečk, pošljejo enemu srečnem zmagovalcu. Denar lahko dobite nazaj, kadar želite.", "page-dapps-editors-choice-uniswap": "Preprosto zamenjajte svoje žetone. Priljubljena aplikacija v skupnosti, ki omogoča trgovanje žetonov z drugimi v omrežju.", "page-dapps-ens-logo-alt": "Logotip Ethereum Name Service", - "page-dapps-explore-dapps-description": "Mnoge decentralizirane aplikacije so še vedno eksperimentalne in preskušajo možnosti decentraliziranih omrežij. Je pa na trgu nekaj uspešnih zgodnjih projektov v kategorijah tehnologije, financ, igralništva in zbirateljskih predmetov.", + "page-dapps-explore-dapps-description": "Veliko decentraliziranih aplikacij je še vedno eksperimentalnih in preizkuša možnosti decentraliziranih omrežij. Vendar pa so nekateri zgodnji akterji v kategorijah tehnologije, financ, iger in zbirateljskih predmetov že dosegli uspeh.", "page-dapps-explore-dapps-title": "Raziščite dec. aplikacije", "page-dapps-features-1-description": "Po uvedbi kode decentraliziranih aplikacij v Ethereum je ni mogoče odstraniti. Prav tako lahko vsak uporablja funkcije decentraliziranih aplikacij. Aplikacijo lahko še vedno uporabljate, tudi če ekipa, ki jo je razvila, razpade. Ko je enkrat na Ethereumu, tam tudi ostane.", "page-dapps-features-1-title": "Brez lastnikov", @@ -118,18 +152,18 @@ "page-dapps-features-3-description": "Ker Ethereum vključuje ETH, plačila potekajo neposredno v Ethereumu. Razvijalcem ni treba zapravljati časa z integracijo s tretjimi ponudniki plačil.", "page-dapps-features-3-title": "Vgrajena plačila", "page-dapps-features-4-description": "Koda decentraliziranih aplikacij je pogosto privzeto odprta in združljiva. Ekipe redno razvijajo na podlagi dela drugih ekip. Če želite uporabnikom omogočiti menjavo žetonov v vaši decentralizirani aplikaciji, lahko preprosto dodate kodo druge decentralizirane aplikacije.", - "page-dapps-features-4-title": "Plug and play", + "page-dapps-features-4-title": "Priključi in uporabljaj", "page-dapps-features-5-description": "Pri večini decentraliziranih aplikacij vam ni treba razkriti, kdo ste v resničnem svetu. Račun Ethereum uporabite za prijavo in potrebujete le še denarnico.", - "page-dapps-features-5-title": "Ena anonimna prijava", + "page-dapps-features-5-title": "En anonimni vpis", "page-dapps-features-6-description": "Kriptografija zagotavlja, da napadalci ne morejo ponarejati transakcij in drugih interakcij z decentralizirano aplikacijo v vašem imenu. Dejanja v decentraliziranih aplikacijah pooblastite s svojim računom Ethereum, običajno prek denarnice, zato varno spravite svoje poverilnice.", "page-dapps-features-6-title": "Zaščiteno s kriptografijo", "page-dapps-features-7-description": "Ko se aplikacija izvaja na Ethereumu, bo prenehala delovati samo, če preneha delovati tudi Ethereum. Omrežja Ethereumove velikosti je izjemno težko napasti.", - "page-dapps-features-7-title": "Brez prekinitev delovanja", + "page-dapps-features-7-title": "Brez izpadov", "page-dapps-finance-benefits-1-description": "Finančne storitve, ki delujejo na Ethereumu, nimajo zahtev za prijavo. Če imate sredstva in internetno povezavo, imate vse, kar potrebujete.", "page-dapps-finance-benefits-1-title": "Odprt dostop", - "page-dapps-finance-benefits-2-description": "Obstaja celoten svet žetonov, ki jih lahko uporabljate v teh finančnih produktih. Ljudje več čas razvijajo nove žetone na Ethereumu.", + "page-dapps-finance-benefits-2-description": "Obstaja celoten svet žetonov, ki jih lahko uporabljate v teh finančnih produktih. Ljudje ves čas razvijajo nove žetone na Ethereumu.", "page-dapps-finance-benefits-2-title": "Nova ekonomija žetonov", - "page-dapps-finance-benefits-3-description": "Nekatere ekipe so razvile stabilne kovance – manj nestabilno kriptovaluto. Ti vam bodo omogočali eksperimentiranje in uporabo kriptovalut brez tveganja in negotovosti.", + "page-dapps-finance-benefits-3-description": "Ekipe so razvile stabilne kovance – manj nestanovitno kriptovaluto. Ti omogočajo eksperimentiranje in uporabo kriptovalut brez tveganj in negotovosti.", "page-dapps-finance-benefits-3-title": "Stabilni kovanci", "page-dapps-finance-benefits-4-description": "Vsi finančni produktu v svetu Ethereuma so modularni in združljivi drug z drugim. Na trg ves čas prihajajo nove konfiguracije teh modulov in širijo možnosti uporabe kriptovalut.", "page-dapps-finance-benefits-4-title": "Medsebojno povezane finančne storitve", @@ -138,9 +172,9 @@ "page-dapps-finance-button": "Finance", "page-dapps-finance-description": "Te aplikacije se osredotočajo na razvoj finančnih storitev z uporabo kriptovalut. Ponujajo storitve, kot so kreditiranje, posojila, služenje obresti in zasebna plačila – osebni podatki niso potrebni.", "page-dapps-finance-title": "Decentralizirane finance", - "page-dapps-foundation-logo-alt": "Logotip Ethereum Foundation", + "page-dapps-foundation-logo-alt": "Logotip Foundation", "page-dapps-gaming-benefits-1-description": "Naj gre za virtualna zemljišča ali menjalne karte – s svojimi predmeti lahko trgujete na trgih za združljive predmete. Predmeti v igrah imajo vrednost tudi v resničnem svetu.", - "page-dapps-gaming-benefits-1-title": "Predmeti v igrah služijo tudi kot žetoni", + "page-dapps-gaming-benefits-1-title": "Predmeti v igrah so tudi žetoni", "page-dapps-gaming-benefits-2-description": "Svoje predmete in v nekaterih primerih tudi napredek, imate v lasti vi, ne igričarska podjetja. To pomeni, da ne boste ničesar izgubili, če je podjetje, ki upravlja igro, napadeno, pri njem pride do okvar strežnika ali razpade.", "page-dapps-gaming-benefits-2-title": "Shranjene igre so na varnem", "page-dapps-gaming-benefits-3-description": "Tako kot so plačila na Ethereum na voljo vsem in jih lahko vsakdo potrdi, lahko igre to lastnost uporabijo za zagotavljanje poštenosti. V teoriji je mogoče potrditi vse, od število kritičnih zadetkov do velikosti vojnega plena nasprotnika.", @@ -150,26 +184,31 @@ "page-dapps-gaming-button": "Igre", "page-dapps-gaming-description": "To so aplikacije, ki se osredotočajo na ustvarjanje virtualnih svetov in bitke z drugimi igralci z uporabo zbirateljskih predmetov, ki imajo vrednost v resničnem svetu.", "page-dapps-gaming-title": "Decentralizirane igre", - "page-dapps-get-some-eth-description": "Dejanja v decentraliziranih aplikacijah vključujejo provizijo", - "page-dapps-get-started-subtitle": "Če želite poskusiti decentralizirano aplikacijo, boste potrebovali denarnico in nekaj ETH. Denarnica vam bo omogočala povezavo ali prijavo, ETH pa boste potrebovali za plačilo provizij na transakcije.", + "page-dapps-get-some-eth-description": "Dejanja v decentraliziranih aplikacijah vključujejo provizijo za transakcijo.", + "page-dapps-get-started-subtitle": "Če želite preizkusiti decentralizirano aplikacijo, boste potrebovali denarnico in nekaj ETH. Denarnica vam bo omogočila povezavo ali prijavo. ETH pa boste potrebovali za plačilo morebitnih provizij za transakcije.", "page-dapps-get-started-title": "Začnite", "page-dapps-gitcoin-grants-logo-alt": "Logotip Gitcoin Grants", "page-dapps-gitcoin-logo-alt": "Logotip Gitcoin", + "page-dapps-gm-logo-alt": "Logotip gm.xyz", "page-dapps-gods-unchained-logo-alt": "Logotip Gods Unchained", "page-dapps-golem-logo-alt": "Logotip Golem", + "page-dapps-graph-logo-alt": "Logotip Graph", "page-dapps-radicle-logo-alt": "Logotip Radicle", "page-dapps-hero-header": "Orodja in storitve, ki jih poganja Ethereum", "page-dapps-hero-subtitle": "Decentralizirane aplikacije so rastoče gibanje aplikacij, ki uporabljajo Ethereum za preobrazbo poslovnih modelov ali razvijanje novih.", - "page-dapps-how-dapps-work-p1": "Zaledna koda (pametne pogodbe) decentraliziranih aplikacij se izvaja v decentraliziranem omrežju in ne v centraliziranem strežniku. Verigo blokov Ethereum uporabljajo za shrambo podatkov, pametne pogodbe pa za logiko svoje aplikacije.", - "page-dapps-how-dapps-work-p2": "Pametna pogodba je kot nabor pravil na verigi, ki so vidna vsem, in se izvaja v skladu s temi pravili. Predstavljajte si prodajni avtomat: če vstavite dovolj sredstev in izberete pravo možnost, boste prejeli želeni izdelek. Tako kot prodajni avtomati lahko pametne pogodbe hranijo vaša sredstva na podoben način kot Ethereum račun. To kodi omogoča posredovanje sporazumov in transakcij.", + "page-dapps-how-dapps-work-p1": "Zaledna koda (pametne pogodbe) decentraliziranih aplikacij se izvaja v decentraliziranem omrežju in ne na centraliziranem strežniku. Za shranjevanje podatkov uporabljajo verigo blokov Ethereum, za logiko aplikacije pa pametne pogodbe.", + "page-dapps-how-dapps-work-p2": "Pametna pogodba je kot nabor pravil, ki živijo na verigi in so vidna vsem ter se izvajajo natančno po teh pravilih. Predstavljajte si avtomat: če vanj vložite dovolj sredstev in izberete pravi izdelek, boste dobili, kar želite. In tako kot avtomati, lahko pametne pogodbe hranijo sredstva, podobno kot vaš račun Ethereum. To omogoča kodi, da posreduje pri dogovorih in transakcijah.", "page-dapps-how-dapps-work-p3": "Ko so decentralizirane aplikacije uvedene v omrežje Ethereum, jih ni več mogoče spremeniti. Decentralizirane aplikacije so lahko decentralizirane, ker jih nadzira logika, napisana v pogodbi, in ne posameznik ali podjetje.", "page-dapps-how-dapps-work-title": "Delovanje dec. aplikacij", + "page-dapps-ipfs-logo-alt": "Logotip IPFS", + "page-dapps-kyberswap-logo-alt": "Logotip KyberSwap", "page-dapps-learn-callout-button": "Začnite razvijati", "page-dapps-learn-callout-description": "Portal naše skupnosti za razvijalce vsebuje dokumente, orodja in okvire, ki vam bodo pomagali začeti razvijati decentralizirano aplikacijo.", "page-dapps-learn-callout-image-alt": "Ilustracija roke, ki sestavlja simbol ETH iz lego kock.", "page-dapps-learn-callout-title": "Kako razviti decentralizirano aplikacijo", + "page-dapps-lido-logo-alt": "Logotip Lido", "page-dapps-loopring-logo-alt": "Logotip Loopring", - "page-dapps-magic-behind-dapps-description": "Uporaba decentraliziranih aplikacij se morda zdi podobna običajnimi aplikacijam, vendar imajo v zakulisju nekaj posebnih lastnosti, ki jih prevzemajo od Ethereumovih supermoči. V tem se decentralizirane aplikacije razlikujejo od aplikacij.", + "page-dapps-magic-behind-dapps-description": "Uporaba decentraliziranih aplikacij se morda zdi podobna običajnim aplikacijam, vendar imajo v zakulisju nekaj posebnih lastnosti, ki jih prevzemajo od Ethereumovih supermoči. V tem se decentralizirane aplikacije razlikujejo od aplikacij.", "page-dapps-magic-behind-dapps-link": "Zakaj je Ethereum odličen?", "page-dapps-magic-behind-dapps-title": "Čarovnija v zakulisju dec. aplikacij", "page-dapps-magic-title-1": "Čarovnija", @@ -178,27 +217,47 @@ "page-dapps-marble-cards-logo-alt": "Logotip marble.cards", "page-dapps-async-logo-alt": "Logotip Async", "page-dapps-matcha-logo-alt": "Logotip Matcha", + "page-dapps-meeds-logo-alt": "Logotip Meeds", + "page-dapps-metaverse-benefits-title": "metaverzum", + "page-dapps-metaverse-benefits-description": "Kateri vidik Ethereuma omogoča uspešnost metaverzuma?", + "page-dapps-metaverse-benefits-1-title": "NFT-ji", + "page-dapps-metaverse-benefits-1-description": "Edinstveni predmeti v igri, ki so v lasti uporabnikov in interoperabilni med virtualnimi svetovi in tržnicami, ki podpirajo iste standarde.", + "page-dapps-metaverse-benefits-2-title": "Skupnosti v lasti uporabnikov", + "page-dapps-metaverse-benefits-2-description": "Identitete so v lasti uporabnikov z neskončnimi priložnostmi za raziskovanje in ustvarjanje socialnih omrežij v več virtualnih svetovih.", + "page-dapps-metaverse-button": "Metaverzum", + "page-dapps-metaverse-title": "Metaverzum", + "page-dapps-metaverse-description": "To so aplikacije, ki uporabnikom omogočajo svobodno sodelovanje v virtualnih svetovih. Uporabniki lahko oblikujejo osebna omrežja in prevzamejo lastništvo digitalnih sredstev.", + "page-dapps-mirror-logo-alt": "Logotip Mirror", "page-dapps-mobile-options-header": "Brskajte po drugi kategoriji", + "page-dapps-multichain-logo-alt": "Logotip Multichain", "page-dapps-nifty-gateway-logo-alt": "Logotip Nifty Gateway", - "page-dapps-oasis-logo-alt": "Logotip Oasis", + "page-dapps-summerfi-logo-alt": "Logotip Summer.fi", "page-dapps-opensea-logo-alt": "Logotip OpenSea", "page-dapps-opera-logo-alt": "Logotip Opera", + "page-dapps-osuvox-logo-alt": "Logotip OSUVOX", "page-dapps-polymarket-logo-alt": "Logotip Polymarket", "page-dapps-poap-logo-alt": "Logotip Proof of Attendance Protocol", "page-dapps-pooltogether-logo-alt": "Logotip PoolTogether", "page-dapps-rarible-logo-alt": "Logotip Rarible", - "page-dapps-ready-button": "Začni", + "page-dapps-ready-button": "Pojdi", "page-dapps-ready-description": "Izberite dec. aplikacijo, ki jo želite preskusiti", "page-dapps-ready-title": "Pripravljeni?", + "page-dapps-request-finance-logo-alt": "Logotip Request Finance", + "page-dapps-rubic-logo-alt": "Logotip Rubic", "page-dapps-sablier-logo-alt": "Logotip Sablier", "page-dapps-set-up-a-wallet-button": "Poišči denarnico", "page-dapps-set-up-a-wallet-description": "Denarnica je vaša »prijava« za decentralizirano aplikacijo", "page-dapps-set-up-a-wallet-title": "Nastavite denarnico", + "page-dapps-social-button": "Socialno", + "page-dapps-social-description": "To so aplikacije, ki se osredotočajo na ustvarjanje decentraliziranih socialnih omrežij z uporabo tehnologij decentralizirane identitete, kjer so digitalne identitete in socialni grafi v lasti uporabnikov.", + "page-dapps-social-title": "Socialno", + "page-dapps-spatial-logo-alt": "Logotip Spatial", + "page-dapps-spruce-logo-alt": "Logotip Spruce", + "page-dapps-status-logo-alt": "Logotip Status", "page-dapps-superrare-logo-alt": "Logotip SuperRare", "page-dapps-technology-button": "Tehnologija", "page-dapps-technology-description": "To so aplikacije, ki so osredotočene na decentralizacijo razvijalskih orodij, vključevanje kriptoekonomskih sistemov v obstoječe tehnologije in ustvarjanje trgov za odprtokodni razvoj.", "page-dapps-technology-title": "Decentralizirana tehnologija", - "page-dapps-token-sets-logo-alt": "Logotip Token Sets", "page-dapps-uniswap-logo-alt": "Logotip Uniswap", "page-dapps-wallet-callout-button": "Poišči denarnico", "page-dapps-wallet-callout-description": "Tudi denarnice so decentralizirane aplikacije. Poiščite ustrezno glede na funkcije, ki vam ustrezajo.", @@ -212,11 +271,18 @@ "page-dapps-more-on-nft-gaming-button": "Več o tokeniziranih predmetih v igrah", "page-dapps-dapp-description-pwn": "Preprosta posojila, zavarovana s poljubnimi žetoni ali žetoni NFT v Ethereumu.", "page-dapps-pwn-image-alt": "Logotip PWN", - "page-dapps-dapp-description-yearn": "Yearn Finance je agregator dohodka. Posameznikom, organizacijam DAO in drugim protokolom omogoča način polaganja digitalnih sredstev in prejemanja dohodka.", + "page-dapps-xmtp-logo-alt": "Logotip XMTP", + "opage-dapps-yearn-logo-alt": "Logotip Yearn", "page-dapps-yearn-image-alt": "Logotip Yearn", - "page-dapps-dapp-description-convex": "Convex ponudnikom likvidnosti na platformi Curve omogoča, da zaslužijo provizije od trgovanja in zahtevajo povečani CRV brez zaklepanja svojega CRV.", "page-dapps-convex-image-alt": "Logotip Convex", - "foundation": "Fundacija", - "transaction-fees": "Kaj so provizije za transakcijo?", - "page-wallets-get-some": "Pridobite nekaj ETH" + "foundation": "Foundation", + "page-wallets-get-some": "Kupite ETH", + "page-dapps-dapp-description-curve": "Curve je DEX, osredotočen na stabilne kovance.", + "page-dapps-curve-image-alt": "Logotip Curve", + "page-dapps-dapp-description-dodo": "DODO je ponudnik likvidnosti na verigi, ki izkorišča algoritem Proactive Market Maker (PMM).", + "page-dapps-dodo-image-alt": "Logotip DODO", + "page-dapps-dapp-description-artblocks": "Art Blocks je namenjen oživljanju prepričljivih del sodobne generativne umetnosti.", + "page-dapps-artblocks-image-alt": "Logotip Art Blocks", + "page-dapps-explore-title": "Želite prebrskati več aplikacij?", + "page-dapps-explore": "Preverite na stotine decentraliziranih aplikacij" } diff --git a/src/intl/sl/page-get-eth.json b/src/intl/sl/page-get-eth.json index 6d0e7ea39c2..c94a5d11376 100644 --- a/src/intl/sl/page-get-eth.json +++ b/src/intl/sl/page-get-eth.json @@ -1,61 +1,78 @@ { + "page-get-eth-article-keeping-crypto-safe": "Ključi do varnega shranjevanja kriptovalut", + "page-get-eth-article-protecting-yourself": "Zaščitite sebe in svoja sredstva", + "page-get-eth-article-store-digital-assets": "Kako hraniti digitalna sredstva na Ethereumu", + "page-get-eth-article-protecting-yourself-desc": "MyCrypto", + "page-get-eth-article-keeping-crypto-safe-desc": "Coinbase", + "page-get-eth-article-store-digital-assets-desc": "ConsenSys", "page-get-eth-cex": "Centralizirane borze", "page-get-eth-cex-desc": "Borze so podjetja, ki omogočajo nakup kriptovalut z uporabo tradicionalnih valut. Imajo skrbništvo nad vsemi ETH, ki jih kupite, dokler jih ne pošljete v denarnico, ki je pod vašim nadzorom.", - "page-get-eth-checkout-dapps-btn": "Preverite dec. aplikacije", + "page-get-eth-checkout-dapps-btn": "Oglejte si dec. aplikacije", "page-get-eth-community-safety": "Objave skupnosti o varnosti", - "page-get-eth-description": "Ethereum in ETH nista pod nadzorom katerekoli vlade ali podjetja – sta decentralizirana. To pomeni, da lahko vsak uporablja ETH.", + "page-get-eth-description": "Ethereum ni pod nadzorom nobene posamezne organizacije – je decentraliziran.", "page-get-eth-dex": "Decentralizirane borze (DEX)", - "page-get-eth-dex-desc": "Če želite več nadzora, kupite ETH od enakovrednega uporabnika. Z decentralizirano borzo lahko trgujete, ne da bi nadzor nad svojimi sredstvi dodelili centraliziranemu podjetju.", + "page-get-eth-dex-desc": "Če želite več nadzora, kupite ETH z uporabo pametnih pogodb. Z DEX-om lahko trgujete z digitalnimi sredstvi, ne da bi kdajkoli prepustili nadzor nad svojimi sredstvi centraliziranemu podjetju.", + "page-get-eth-peers": "Prejmite ETH od svojih vrstnikov", + "page-get-eth-peers-desc": "Ko imate račun Ethereum, morate le deliti svoj naslov, da začnete pošiljati in prejemati ETH (in druge žetone) od vrstnika do vrstnika.", + "page-get-eth-staking": "Nagrade zastavljanja", + "page-get-eth-staking-desc": "Če že imate nekaj ETH, lahko zaslužite več z vodenjem vozlišča potrjevalca. Za to delo preverjanja ste plačani v ETH.", + "page-get-eth-earn": "Zaslužite ETH", + "page-get-eth-earn-desc": "ETH lahko zaslužite z delom za DAO-je ali podjetja, ki plačujejo v kriptovalutah, z osvajanjem nagrad, iskanjem programskih napak in še več.", + "page-get-eth-daos-link-desc": "Izvedite več o DAO-jih", + "page-get-eth-cex-link-desc": "Oglejte si seznam borz", + "page-get-eth-staking-link-desc": "Izvedite več o zastavljanju", "page-get-eth-dexs": "Decentralizirane borze (DEX)", "page-get-eth-dexs-desc": "Decentralizirane borze so odprti trgi za ETH in druge žetone. Neposredno povezujejo kupce in prodajalce.", "page-get-eth-dexs-desc-2": "Namesto, da bi za varovanje sredstev pri transakciji uporabljale zaupanja vredno tretjo osebo, uporabljajo kodo. Prodajalčev ETH bo prenesen šele, ko bo plačilo zagotovljeno. Ta vrsta kode se imenuje pametna pogodba.", - "page-get-eth-dexs-desc-3": "To pomeni, da je manj geografskih omejitev kot pri centraliziranih alternativah. Če nekdo prodaja, kar želite, in sprejema način plačila, ki ga lahko zagotovite, ste pripravljeni za trgovanje. Decentralizirane borze omogočajo kupovanje ETH z drugimi žetoni, PayPalom ali celo dostavo denarja v živo.", - "page-get-eth-do-not-copy": "Primer: Ne kopirajte", + "page-get-eth-dexs-desc-3": "To pomeni, da je manj geografskih omejitev kot pri centraliziranih alternativah. Če nekdo prodaja, kar želite, in sprejema način plačila, ki ga lahko zagotovite, ste pripravljeni za trgovanje.", + "page-get-eth-dexs-desc-4": "Opomba: številni DEX-i za delovanje uporabljajo oviti ether (WETH). Izvedite več o ovitem etherju.", + "page-get-eth-do-not-copy": "Primer: ne kopirajte", "page-get-eth-exchanges-disclaimer": "Te informacije smo zbrali ročno. Če opazite kakršnokoli napako, nas obvestite na", - "page-get-eth-exchanges-empty-state-text": "Vnesite svojo državo prebivališča za ogled seznama denarnic in borz, ki jih lahko uporabite za nakup ETH", + "page-get-eth-exchanges-empty-state-text": "Vnesite svojo državo prebivališča, da si ogledate seznam borz, ki jih morda lahko uporabljate.", "page-get-eth-exchanges-except": "Razen", "page-get-eth-exchanges-header": "V kateri državi živite?", "page-get-eth-exchanges-header-exchanges": "Borze", "page-get-eth-exchanges-header-wallets": "Denarnice", - "page-get-eth-exchanges-intro": "Borze in denarnice imajo omejitve glede tega, kje lahko prodajajo kriptovalute.", + "page-get-eth-exchanges-intro": "Borze imajo omejitve glede tega, kje lahko prodajajo kriptovalute. To je okvirni seznam storitev, za katere menimo, da delujejo v vsaki državi. Vključitev tukaj ni potrditev – opravite lastno raziskavo!", "page-get-eth-exchanges-no-exchanges": "Žal ne poznamo borz, ki bi omogočale kupovanje ETH v tej državi. Če jih poznate vi, nam sporočite na", - "page-get-eth-exchanges-no-exchanges-or-wallets": "Žal ne poznamo borz ali denarnic, ki bi omogočale kupovanje ETH v tej državi. Če jih poznate vi, nam sporočite na", + "page-get-eth-exchanges-no-exchanges-or-wallets": "Žal ne poznamo borz ali denarnic, ki bi vam omogočale nakup ETH v tej državi. Če jih poznate, nam sporočite na", "page-get-eth-exchanges-no-wallets": "Žal ne poznamo denarnic, ki bi omogočale kupovanje ETH v tej državi. Če jih poznate vi, nam sporočite na", + "page-get-eth-exchanges-search": "Vnesite kraj svojega bivanja ...", "page-get-eth-exchanges-success-exchange": "Registracija na borzi lahko traja več dni zaradi njihovih pravnih pregledov.", "page-get-eth-exchanges-success-wallet-link": "denarnice", "page-get-eth-exchanges-success-wallet-paragraph": "V kraju, kjer živite, lahko ETH kupite neposredno prek teh denarnic. Preberite več o", "page-get-eth-exchanges-usa": "Združene države Amerike (ZDA)", - "page-get-eth-get-wallet-btn": "Pridobite denarnico", + "page-get-eth-get-wallet-btn": "Pridobite si denarnico", "page-get-eth-hero-image-alt": "Uvodna slika Pridobite ETH", - "page-get-eth-keep-it-safe": "Varovanje vašega ETH", + "page-get-eth-keep-it-safe": "Varno shranjevanje ETH", "page-get-eth-meta-description": "Kako kupiti ETH glede na vaše prebivališče in nasveti, kako paziti nanj.", - "page-get-eth-meta-title": "Kako kupiti ETH", + "page-get-eth-meta-title": "Kako kupiti Ethereum (ETH)", "page-get-eth-need-wallet": "Za uporabo decentralizirane borze boste potrebovali denarnico.", - "page-get-eth-new-to-eth": "Ali ste nov uporabnik ETH? Tukaj preberite, kako začeti.", + "page-get-eth-new-to-eth": "Ste novi pri ETH? Tukaj je kratek pregled za začetek.", "page-get-eth-other-cryptos": "Kupite z drugimi kriptovalutami", - "page-get-eth-protect-eth-desc": "Če nameravate kupiti veliko ETH-jev, jih boste morda želeli hraniti na denarnici pod svojim nadzorom, ne na borzi. Razlog je ta, da so borze pogoste tarče za hekerje. Če heker pridobi dostop, lahko izgubite vsa sredstva, denarnico pa nadzirate samo vi.", - "page-get-eth-protect-eth-in-wallet": "Zaščitite svoj ETH v denarnici", + "page-get-eth-protect-eth-desc": "Ena glavnih značilnosti Ethereuma je, da obdržite nadzor nad lastnimi sredstvi z upravljanjem svojega računa. To pomeni, da vam ni treba zaupati svojim sredstvom nobeni tretji osebi in ste zaščiteni pred tem, da bi skrbnik deloval nepošteno, šel v stečaj ali bil napaden. Vendar pa to pomeni tudi, da prevzamete odgovornost za lastno varnost.", + "page-get-eth-protect-eth-in-wallet": "Hranite svoj ETH v svoji denarnici", "page-get-eth-search-by-country": "Iskanje po državi", - "page-get-eth-security": "Vendar to pomeni tudi, da morate varnost svojih sredstev jemati resno. Z ETH ne zaupate banki, da bo pazila na vaš denar, temveč zaupate samemu sebi.", + "page-get-eth-security": "To pomeni, da morate varnost svojih sredstev jemati resno. Z ETH ne zaupate banki ali podjetju, da bo skrbelo za vaša sredstva, temveč zanjo prevzemate odgovornost sami.", "page-get-eth-smart-contract-link": "Več o pametnih pogodbah", "page-get-eth-swapping": "Zamenjajte svoje žetone za ETH drugih. In obratno.", "page-get-eth-try-dex": "Poskusite DEX", "page-get-eth-use-your-eth": "Uporabite svoj ETH", "page-get-eth-use-your-eth-dapps": "Zdaj, ko imate nekaj ETH, si oglejte nekaj aplikacij na Ethereumu (decentralizirane aplikacije). Na voljo so aplikacije za finance, družbene medije, igre in številne druge kategorije.", "page-get-eth-wallet-instructions": "Sledite navodilom denarnice", - "page-get-eth-wallet-instructions-lost": "Če izgubite dostop do denarnice, boste izgubili dostop do svojih sredstev. Denarnica mora imeti navodila, kako se zaščititi pred tem. Skrbno jih upoštevajte. V večini primerov vam ne more nihče pomagati, če izgubite dostop do denarnice.", + "page-get-eth-wallet-instructions-lost": "Če izgubite dostop do svojega računa, boste izgubili dostop do svojih sredstev. Vaša denarnica bi vam morala dati navodila za zaščito pred tem. Pazljivo jih upoštevajte – v večini primerov vam nihče ne more pomagati, če izgubite dostop do svojega računa.", "page-get-eth-wallets": "Denarnice", "page-get-eth-wallets-link": "Več o denarnicah", "page-get-eth-wallets-purchasing": "Nekatere denarnice omogočajo kupovanje kriptovalut z debetno/kreditno kartico, bančnim nakazilom ali celo storitvijo Apple Pay. Veljajo geografske omejitve.", - "page-get-eth-warning": "Te decentralizirane borze niso namenjene začetnikom, saj boste za uporabo potrebovali nekaj ETH.", - "page-get-eth-what-are-DEX's": "Kaj so dec. borze?", + "page-get-eth-warning": "Ti DEX-i niso primerni za začetnike, saj boste za njihovo uporabo potrebovali nekaj ETH. To so le primeri, ne priporočeni izdelki. Opravite lastno raziskavo!", + "page-get-eth-what-are-DEX's": "Kaj so DEX-i?", "page-get-eth-whats-eth-link": "Kaj je ETH?", - "page-get-eth-where-to-buy-desc": "ETH lahko kupite prek borz ali neposredno prek denarnic.", + "page-get-eth-where-to-buy-desc": "ETH lahko zaslužite, prejmete od svojih vrstnikov ali kupite na borzah in v aplikacijah.", "page-get-eth-where-to-buy-desc-2": "Preverite, katere storitve lahko uporabljate, glede na to, kje živite.", - "page-get-eth-where-to-buy-title": "Kje kupiti ETH", - "page-get-eth-your-address": "Vaš naslov ETH", + "page-get-eth-where-to-buy-title": "Kje dobiti ETH", + "page-get-eth-your-address": "Vaš ETH naslov", "page-get-eth-your-address-desc": "Ko prenesete denarnico, bo ta v vašem imenu ustvarila javni naslov za ETH. Videti je tako:", - "page-get-eth-your-address-desc-3": "Na ta naslov lahko gledate kot na svoj e-poštni naslovu, samo da lahko namesto pošte prejmete ETH. Če želite ETH prenesti z borze v svojo denarnico, kot cilj uporabite svoj naslov. Pred pošiljanjem ga vedno dvakrat preverite!", + "page-get-eth-your-address-desc-3": "Na ta naslov lahko gledate kot na svoj e-poštni naslov, le da namesto pošte prejema ETH. Če želite prenesti ETH z borze v svojo denarnico, uporabite svoj naslov kot cilj. Pred pošiljanjem ga vedno dvakrat preverite!", "page-get-eth-your-address-wallet-link": "Oglejte si denarnice", "listing-policy-raise-issue-link": "Ustvari zadevo", "page-find-wallet-last-updated": "Nazadnje posodobljeno" diff --git a/src/intl/sl/page-layer-2.json b/src/intl/sl/page-layer-2.json new file mode 100644 index 00000000000..eb9c9330de5 --- /dev/null +++ b/src/intl/sl/page-layer-2.json @@ -0,0 +1,58 @@ +{ + "page-layer-2-hero-title": "Raven 2", + "page-layer-2-hero-header": "Ethereum omrežja", + "page-layer-2-hero-description": "Uporabljajte Ethereum za zgolj delček stroškov.", + "page-layer-2-hero-button-2-content": "Več informacij", + "page-layer-2-period": ".", + "page-layer-2-calloutCard-1-title": "Provizije v višini 0,01 USD", + "page-layer-2-calloutCard-1-description": "Lahko trgujete, pošiljate denar po svetu ali uporabljate aplikacije brez skrbi zaradi visokih stroškov.", + "page-layer-2-calloutCard-2-title": "Skoraj takojšnje transakcije", + "page-layer-2-calloutCard-2-description": "Ne glede na to, ali opravljate hitro plačilo ali sodelujete v decentraliziranih financah (DeFi), vse transakcije trajajo le nekaj sekund.", + "page-layer-2-calloutCard-3-title": "Podprto z Ethereumom", + "page-layer-2-calloutCard-3-description": "Časovno preizkušena in decentralizirana veriga blokov Ethereum deluje kot poravnalna plast za druga novejša omrežja.", + "page-layer-2-meta-title": "Uvod v Ethereum raven 2: prednosti in uporaba", + "page-layer-2-meta-description": "Spoznajte omrežja Ethereum raven 2", + "page-layer-2-powered-by-ethereum-title": "Poganja Ethereum", + "page-layer-2-powered-by-ethereum-description-1": "Ethereum ni več le eno samo omrežje.", + "page-layer-2-powered-by-ethereum-description-2": "S stotinami verig blokov, ki so zdaj zgrajene na njem, je Ethereum postal stroškovno učinkovitejši, hitrejši in dostopnejši za vsakdanjo uporabo.", + "page-layer-2-powered-by-ethereum-description-3": "Sprejmite prihodnost tako, da se pridružite enemu izmed številnih omrežij, ki jih poganja Ethereum!", + "page-layer-2-man-and-dog-alt": "Moški in pes se igrata", + "page-layer-2-blockchain-transaction-cost": "Povprečni strošek transakcije na verigi blokov Ethereum", + "page-layer-2-networks-transaction-cost": "Povprečni strošek transakcije na omrežjih, podprtih z Ethereumom", + "page-layer-2-network-of-networks-title": "Omrežje omrežij", + "page-layer-2-network-of-networks-description": "Moč in varnost Ethereuma zagotavljata platformo za gradnjo drugih omrežij. Z enim samim računom je vse združljivo in se brezhibno poveže.", + "page-layer-2-ethereum-logo-alt": "Ethereum", + "page-layer-2-ready-to-start-title": "Ste pripravljeni začeti?", + "page-layer-2-ready-to-start-description": "Oglejte si vsa različna omrežja, ki so vam na voljo.", + "page-layer-2-ready-to-start-button": "Raziščite omrežja", + "page-layer-2-go": "Pojdi", + "page-layer-2-walking-alt": "Hoja", + "page-layer-2-why-do-we-need-multiple-networks-1": "Zakaj potrebujemo več omrežij na Ethereumu?", + "page-layer-2-why-do-we-need-multiple-networks-2": "Zakaj obstajajo vsa ta omrežja in ne samo eno omrežje Ethereum?", + "page-layer-2-faq-title": "Pogosta vprašanja", + "page-layer-2-faq-ExpandableCard-1-title": "Kako lahko vem, da je omrežje del Ethereuma?", + "page-layer-2-faq-ExpandableCard-1-description-1": "Obstaja veliko različnih načinov, kako lahko kategoriziramo omrežja v povezavi z Ethereumom. Številna omrežja trdijo, da razširjajo Ethereum, da bi pridobila na priljubljenosti. Vendar pa je ena jasna perspektiva, ali omrežje shranjuje svoje podatke na glavnem omrežju Ethereum. To močno poveča varnost uporabnikov in vizijo Ethereuma brez dovoljenj. Takšni projekti se pogosto imenujejo »rollupi«. Če so podatki shranjeni drugje, potem projekt ni neposredna razširitev Ethereuma, temveč je neodvisen. Oglejte si nekaj najbolj priljubljenih", + "page-layer-2-faq-ExpandableCard-1-description-2": "Nekatere specifične industrije, kot so igre ali nefinančne aplikacije, morda ne zahtevajo tako neposrednega odnosa, saj so za njih primernejše druge tehnologije.", + "page-layer-2-faq-ExpandableCard-2-title": "So vsa ta omrežja varna?", + "page-layer-2-faq-ExpandableCard-2-description-1": "Čeprav so na splošno zasnovana z robustnimi varnostnimi funkcijami, je njihova varnost odvisna od osnovne tehnologije, varnosti pametnih pogodb in", + "page-layer-2-faq-ExpandableCard-2-link": "zrelosti omrežja", + "page-layer-2-faq-ExpandableCard-2-description-2": "Uporabniki naj opravijo skrbni pregled, začnejo z majhnimi transakcijami in spremljajo razvoj, da zagotovijo varno uporabo.", + "page-layer-2-faq-ExpandableCard-3-title": "Zakaj Ethereum ne more razširiti svoje verige namesto zanašanja na ta omrežja?", + "page-layer-2-faq-ExpandableCard-3-description": "Ethereum ne more zlahka razširiti svoje glavne verige, ker mora ostati varen in decentraliziran. Če bi bila glavna veriga hitrejša, bi lahko postala manj varna in bolj centralizirana. Omrežja Ethereum pomagajo pri obdelavi transakcij zunaj glavne verige in nato uporabljajo glavno verigo za varnost, kar omogoča Ethereumu obravnavati več transakcij brez izgube varnosti ali decentralizacije.", + "page-layer-2-faq-ExpandableCard-4-title": "Zakaj ni 'uradnih' omrežij Ethereum?", + "page-layer-2-faq-ExpandableCard-4-description": "Tako kot ni 'uradnega' odjemalca Ethereum, ni niti 'uradne' plasti 2 Ethereum. Ethereum je brez dovoljenj - tehnično lahko vsak ustvari plast 2! Več ekip bo implementiralo svojo različico plasti 2, in ekosistem kot celota bo imel koristi od raznolikosti pristopov oblikovanja, ki so optimizirani za različne primere uporabe. Podobno kot imamo več odjemalcev Ethereum, ki so jih razvile različne ekipe, da bi zagotovili raznolikost v omrežju, se bodo tudi plasti 2 v prihodnosti razvijale na ta način.", + "page-layer-2-callout-1-title": "Raziščite različna omrežja", + "page-layer-2-callout-1-description": "Spoznajte, kako se omrežja med seboj razlikujejo in kako daleč so prišla v svojem razvoju.", + "page-layer-2-callout-2-title": "Vas zanimajo podrobnosti?", + "page-layer-2-callout-2-description": "Vas zanima tehnologija in razlogi za ta pristop razširjanja? Izvedite več o razmišljanju in različnih tehnoloških pristopih.", + "page-layer-2-arbitrum-description": "Arbitrum One je splošnonamenski Optimistic Rollup, ki ga je zgradil Offchain Labs in ga upravlja Arbitrum DAO.", + "page-layer-2-base-description": "Base je optimistični rollup, zgrajen z OP naborom orodij. Ponuja poceni in razvijalcem prijazno možnost, da kdorkoli kjerkoli gradi na verigi.", + "page-layer-2-optimism-description": "OP Mainnet je EVM-ekvivalenten Optimistic Rollup. Njegov cilj je biti hiter, preprost in varen.", + "page-layer-2-blast-description": "Blast je EVM-združljiv Optimistic Rollup, ki podpira naravni donos.", + "page-layer-2-zksync2-description": "ZKsync Era je splošnonamenski ZK Rollup s polno EVM združljivostjo.", + "page-layer-2-linea-description": "Linea je ZK Rollup, ki ga poganja Consensys zkEVM, zasnovan za razširitev omrežja Ethereum.", + "page-layer-2-scroll-description": "Scroll je ZK Rollup, ki razširja zmogljivosti Ethereuma s pomočjo tehnologije ZK in združljivosti z EVM.", + "page-layer-2-starknet-description": "Starknet je splošnonamenski ZK Rollup, ki temelji na STARKs in Cairo VM.", + "page-layer-2-mode-description": "Mode je optimistični rollup na OP naboru orodij, ki ustvarja gospodarstvo AIFi.", + "page-layer-2-taiko-description": "Taiko je decentraliziran ZK-EVM rollup, ekvivalenten Ethereumu, ki omogoča brezhibno komunikacijo med verigami." +} diff --git a/src/intl/sl/page-wallets-find-wallet.json b/src/intl/sl/page-wallets-find-wallet.json index 7f750e1baa6..d69bc40e2b2 100644 --- a/src/intl/sl/page-wallets-find-wallet.json +++ b/src/intl/sl/page-wallets-find-wallet.json @@ -1,16 +1,88 @@ { "page-find-wallet-clear": "Počisti filtre", - "page-find-wallet-desc-2": "Zato izberite denarnico glede na funkcije, ki jih želite.", - "page-find-wallet-description": "Denarnice imajo številne neobvezne funkcije, ki vam bodo morda všeč.", + "page-find-wallet-desc-2": "Ne veste, kaj je denarnica?", + "page-find-wallet-desc-2-wallets-link": "Več o denarnicah.", + "page-find-wallet-description": "Denarnice shranjujejo in omogočajo transakcije z vašim ETH-om. Izbirate lahko med različnimi izdelki, ki ustrezajo vašim potrebam.", "page-find-wallet-last-updated": "Nazadnje posodobljeno", "page-find-wallet-meta-description": "Poiščite in primerjajte denarnice Ethereum glede na funkcije, ki jih želite.", - "page-find-wallet-meta-title": "Poiščite denarnico Ethereum", - "page-find-wallet-title": "Poiščite denarnico", + "page-find-wallet-meta-title": "Seznam denarnic za Ethereum | ethereum.org", + "page-find-wallet-title": "Izberite denarnico", "page-find-wallet-try-removing": "Poskusite odstraniti funkcijo ali dve", "page-stake-eth": "Zastavite ETH", - "page-find-wallet-swaps": "Decentralizirana zamenjava žetonov", - "page-find-wallet-swaps-desc": "Trgujte med ETH in drugimi žetoni neposredno v svoji denarnici.", - "page-find-wallet-multisig": "Računi z več podpisi", - "page-find-wallet-multisig-desc": "Denarnice z več podpisi za dodatno varnost zahtevajo več kot en račun za odobritev določenih transakcij.", - "page-find-wallet-showing": "Prikazano " + "page-find-wallet-open-source": "Odprta koda", + "page-find-wallet-open-source-desc": "Odprtokodna programska oprema omogoča vsakomur, da preveri integriteto in varnost aplikacije", + "page-find-wallet-self-custody": "Lastna hramba", + "page-find-wallet-non-custodial": "Neskrbniška", + "page-find-wallet-non-custodial-desc": "Denarnice, ki ne nadzorujejo vaših zasebnih ključev", + "page-find-wallet-hardware-wallet-support": "Podpora za strojne denarnice", + "page-find-wallet-hardware-wallet-support-desc": "Denarnice, ki se lahko povežejo s strojno denarnico za boljšo varnost", + "page-find-wallet-rpc-importing": "Uvoz RPC", + "page-find-wallet-rpc-importing-desc": "Denarnice, ki podpirajo prilagojena RPC izhodišča za povezavo z drugimi vozlišči ali omrežji", + "page-find-wallet-nft-support": "Podpora NFT", + "page-find-wallet-nft-support-desc": "Denarnice, ki podpirajo ogled in delo z vašimi NFT-ji", + "page-find-wallet-connect-to-dapps": "Povezava z decentraliziranimi aplikacijami", + "page-find-wallet-connect-to-dapps-desc": "Lahko se povežete z aplikacijami, ki podpirajo WalletConnect ali drugo alternativo", + "page-find-wallet-staking": "Zastavljanje", + "page-find-wallet-staking-desc": "Zastavljanje ETH neposredno iz denarnice", + "page-find-wallet-swaps": "Menjave", + "page-find-wallet-swaps-desc": "Zamenjajte žetone ERC-20 neposredno v denarnici", + "page-find-wallet-layer-2": "Raven 2", + "page-find-wallet-layer-2-desc": "Denarnice, ki podpirajo ravni 2 na Ethereumu", + "page-find-wallet-gas-fee-customization": "Prilagoditev provizije za plin", + "page-find-wallet-gas-fee-customization-desc": "Prilagodite višine svojih provizij za plin (osnovna provizija, prioritetna provizija in največja provizija)", + "page-find-wallet-ens-support": "Podpora ENS", + "page-find-wallet-ens-support-desc": "Denarnice, ki podpirajo Ethereum Name Service (ENS)", + "page-find-wallet-token-importing": "Uvoz žetonov", + "page-find-wallet-token-importing-desc": "Uvozite katerikoli žeton ERC-20 za uporabo v denarnici", + "page-find-wallet-buy-crypto": "Nakup kriptovalut", + "page-find-wallet-buy-crypto-desc": "Kupite kriptovalute z valuto fiat neposredno v denarnici \n *Opomba: Nakup kriptovalut je lahko odvisen od regije", + "page-find-wallet-sell-for-fiat": "Prodajte za valuto fiat", + "page-find-wallet-sell-for-fiat-desc": "Prodajte kriptovalute za valuto fiat neposredno v denarnici \n *Opomba: Prodaja/dvig kriptovalut je lahko odvisen od regije", + "page-find-wallet-multisig": "Večnivojski podpis", + "page-find-wallet-multisig-desc": "Denarnice, pri katerih je za odobritev transakcije potrebnih več podpisov", + "page-find-wallet-social-recovery": "Družbena obnovitev", + "page-find-wallet-social-recovery-desc": "Denarnice, ki omogočajo skrbnikom spremembo ključa za podpisovanje v pametnih pogodbenih denarnicah", + "page-find-wallet-languages-supported": "Jezikovna podpora", + "page-find-wallet-languages-search-language": "Poiščite jezik", + "page-find-wallet-popular-languages": "Najbolj priljubljeni", + "page-find-wallet-features": "Funkcije", + "page-find-wallet-security": "Varnost", + "page-find-wallet-smart-contract": "Pametna pogodba", + "page-find-wallet-advanced": "Napredno", + "page-find-wallet-check-out": "Oglej si", + "page-find-wallet-info-updated-on": "informacije posodobljene dne", + "page-find-wallet-showing-all-wallets": "Prikazovanje vseh denarnic", + "page-find-wallet-wallets": "denarnice", + "page-find-wallet-iOS": "iOS", + "page-find-wallet-android": "Android", + "page-find-wallet-linux": "Linux", + "page-find-wallet-macOS": "macOS", + "page-find-wallet-windows": "Windows", + "page-find-wallet-chromium": "Chromium", + "page-find-wallet-firefox": "Firefox", + "page-find-wallet-hardware": "Strojna denarnica", + "page-find-wallet-new-to-crypto-title": "Novi pri kriptovalutah", + "page-find-wallet-new-to-crypto-desc": "Uporabnik začetnik, ki išče začetniško denarnico.", + "page-find-wallet-nfts-title": "NFT-ji", + "page-find-wallet-nfts-desc": "Denarnice, ki se osredotočajo na podporo za NFT-je.", + "page-find-wallet-hodler-title": "Dolgoročni imetnik", + "page-find-wallet-hodler-desc": "Pasivno hranjenje žetonov na strojnih denarnicah.", + "page-find-wallet-finance-title": "Finance", + "page-find-wallet-finance-desc": "Denarnice, osredotočene na pogosto uporabo aplikacij DeFi.", + "page-find-wallet-developer-title": "Razvijalec", + "page-find-wallet-developer-desc": "Denarnice, ki pomagajo pri razvoju in testiranju decentraliziranih aplikacij.", + "page-find-wallet-active": "aktiven", + "page-find-wallet-footnote-1": "Denarnice, navedene na tej strani, niso uradno priporočene in so navedene zgolj v informativne namene.", + "page-find-wallet-footnote-2": "Njihovi opisi so bili navedeni s strani projektov, ki so izdelali denarnice.", + "page-find-wallet-footnote-3": "Na to stran dodajamo izdelke glede na kriterije v naši politiki navajanja. Če želite, da dodamo denarnico, odprite težavo na GitHubu.", + "page-find-wallet-mobile": "Mobilni", + "page-find-wallet-desktop": "Namizni", + "page-find-wallet-browser": "Brskalnik", + "page-find-wallet-device": "Naprava", + "page-find-wallet-reset-filters": "Ponastavi", + "page-find-wallet-visit-website": "Obiščite spletno stran", + "page-find-wallet-social-links": "Povezave", + "page-find-wallet-empty-results-title": "Ni zadetkov", + "page-find-wallet-empty-results-desc": "Ni denarnic, ki bi ustrezale vašim kriterijem, poskusite odstraniti nekatere filtre.", + "page-find-wallet-see-wallets": "Poglejte denarnice" } diff --git a/src/intl/sl/page-wallets.json b/src/intl/sl/page-wallets.json index b66c33d2736..5b1bfa837ac 100644 --- a/src/intl/sl/page-wallets.json +++ b/src/intl/sl/page-wallets.json @@ -1,63 +1,66 @@ { - "page-wallets-accounts-addresses": "Denarnice, računi in naslovi", + "page-wallets-accounts-addresses": "Denarnice, računi, ključi in naslovi", "page-wallets-accounts-addresses-desc": "Vredno je razumeti razliko med nekaterimi ključnimi izrazi.", - "page-wallets-accounts-ethereum-addresses": "Ethereum račun ima svoj Ethereum naslov, kot ima e-poštni predal svoj e-poštni naslov. Uporabite ga lahko za pošiljanje sredstev na posamezen račun.", + "page-wallets-accounts-ethereum-addresses": "Račun Ethereum ima naslov, podobno kot ima poštni predal e-poštni naslov. Ta naslov se uporablja za prepoznavo vaših digitalnih sredstev.", "page-wallets-alt": "Slika robota s trezorjem namesto telesa, ki predstavlja Ethereum denarnico", - "page-wallets-ethereum-account": "Ethereum račun je subjekt, ki lahko izvršuje transakcije in ima stanje.", - "page-wallets-blog": "Spletni dnevnik Coinbase", + "page-wallets-ethereum-account": "Račun Ethereum je par ključev. En ključ se uporablja za ustvarjanje naslova, ki ga lahko prosto delite, drugi ključ pa morate hraniti na skrivnem, saj se uporablja za podpisovanje. Skupaj vam ti ključi omogočajo posedovanje sredstev in opravljanje transakcij.", + "page-wallets-blog": "Coinbase blog", "page-wallets-bookmarking": "Dodajte denarnico med zaznamke", - "page-wallets-bookmarking-desc": "Če uporabljate spletno denarnico, dodajte to spletno mesto med zaznamke in se zaščitite pred goljufijami z lažnim predstavljanjem.", - "page-wallets-cd": "Fizične strojne denarnice, ki omogočajo shranjevanje kriptovalut brez spletne povezave – zelo varne", - "page-wallets-desc-2": "Denarnico potrebujete za pošiljanje sredstev in upravljanje ETH.", - "page-wallets-desc-2-link": "Več o ETH", - "page-wallets-desc-3": "Denarnica je samo orodje za upravljanje vašega Ethereum računa. To pomeni, da lahko kadarkoli zamenjate ponudnike denarnic. Številne denarnice omogočajo tudi upravljanje različnih Ethereum računov iz ene aplikacije.", - "page-wallets-desc-4": "Razlog je ta, da denarnice nimajo skrbništva nad vašimi sredstvi, temveč ga imate vi. So samo orodje za upravljanje s tistim, kar je dejansko vaše.", - "page-wallets-description": "Denarnice Ethereum so aplikacije, ki omogočajo interakcijo z računom Ethereum. Nanje lahko gledate kot na aplikacije za internetno bančništvo, vendar brez banke. Denarnica omogoča preverjanje stanja, pošiljanje transakcij in povezovanje z aplikacijami.", - "page-wallets-desktop": "Namizne aplikacije, če svoja sredstva rajši upravljate prek sistemov MacOS, Windows ali Linux", - "page-wallets-ethereum-wallet": "Denarnica je produkt, ki vam omogoča upravljanje z vašim Ethereum računom. Prek nje lahko spremljate vaše stanje, izvršujete transakcije in še več.", + "page-wallets-bookmarking-desc": "Če uporabljate spletno denarnico, dodajte spletno mesto med zaznamke, da se zaščitite pred lažnimi spletnimi stranmi.", + "page-wallets-cd": "Fizične strojne denarnice so naprave, ki vam omogočajo shranjevanje kriptovalut brez povezave – to je zelo varno", + "page-wallets-desc-2": "Denarnice so orodja, ki jih večina ljudi uporablja za upravljanje digitalnih sredstev in identitete.", + "page-wallets-desc-2-link": "Več o ETH-u", + "page-wallets-desc-3": "Vaša denarnica je orodje za interakcijo z vašim računom Ethereum. To pomeni, da lahko ponudnika denarnice kadarkoli zamenjate. Mnoge denarnice vam omogočajo upravljanje več Ethereum računov iz ene aplikacije.", + "page-wallets-desc-4": "Ponudniki denarnic nimajo skrbništva nad vašimi sredstvi. Omogočajo vam le, da vidite svoja sredstva na omrežju Ethereum in vam ponujajo orodja za lahko upravljanje z njimi.", + "page-wallets-description": "Ethereum denarnice so aplikacije, ki vam omogočajo nadzor nad vašim računom. Tako kot fizična denarnica vsebuje vse, kar potrebujete za dokazovanje identitete in upravljanje premoženja. Vaša denarnica omogoča prijavo v aplikacije, pregled stanja, pošiljanje transakcij in potrditev identitete.", + "page-wallets-desktop": "Namizne aplikacije, če raje upravljate svoja sredstva prek macOS, Windows ali Linuxa.", + "page-wallets-ethereum-wallet": "Denarnica je orodje, ki vam omogoča interakcijo z vašim računom z uporabo vaših ključev. Omogoča vam ogled stanja na računu, pošiljanje transakcij in drugo.", "page-wallets-explore": "Raziščite Ethereum", "page-wallets-features-desc": "Lahko vam pomagamo izbrati denarnico glede na funkcije, ki so vam pomembne.", - "page-wallets-features-title": "Ali želite denarnico izbrati glede na funkcije?", - "page-wallets-find-wallet-btn": "Poišči denarnico", + "page-wallets-features-title": "Primerjajte denarnice na podlagi značilnosti", + "page-wallets-find-wallet-btn": "Poiščite denarnico", "page-wallets-find-wallet-link": "Poiščite denarnico", - "page-wallets-get-some": "Pridobite nekaj ETH", + "page-wallets-get-some": "Kupite ETH", "page-wallets-get-some-alt": "Slika roke, ki ustvarja logotip ETH iz lego kock", - "page-wallets-get-some-btn": "Pridobite nekaj ETH", + "page-wallets-get-some-btn": "Kupite ETH", "page-wallets-get-some-desc": "ETH je izvorna kriptovaluta Ethereuma. Za uporabo aplikacij na Ethereumu boste potrebovali nekaj ETH v svoji denarnici.", - "page-wallets-how-to-store": "Kako hraniti digitalna sredstva na Ethereumu", - "page-wallets-keys-to-safety": "Temelji zaščite kriptovalut", + "page-wallets-keys-to-safety": "Ključi do varnega shranjevanja kriptovalut", "page-wallets-manage-funds": "Aplikacija za upravljanje premoženja", - "page-wallets-manage-funds-desc": "Vaša denarnica prikazuje vaša stanja in zgodovino transakcij ter ponuja način pošiljanja/prejemanja sredstev. Nekatere denarnice lahko ponujajo še več.", + "page-wallets-manage-funds-desc": "Vaša denarnica prikazuje stanje in zgodovino transakcij ter omogoča pošiljanje/prejemanje sredstev. Nekatere denarnice ponujajo še več.", "page-wallets-meta-description": "Kaj morate vedeti za uporabo denarnic Ethereum.", - "page-wallets-meta-title": "Denarnice Ethereum", - "page-wallets-mobile": "Mobilne aplikacije, ki omogočajo dostop do sredstev kjerkoli", + "page-wallets-meta-title": "Ethereum denarnice: Nakup, shranjevanje in pošiljanje kriptovalut", + "page-wallets-mobile": "Mobilne aplikacije, ki omogočajo dostop do vaših sredstev od kjerkoli.", "page-wallets-more-on-dapps-btn": "Več o decentraliziranih aplikacijah", - "page-wallets-most-wallets": "Večina denarnic omogoča generiranje računa Ethereum. Zato ga pred prenosom denarnice ne potrebujete.", - "page-wallets-protecting-yourself": "Kako zaščitite sebe in svoje premoženje", - "page-wallets-seed-phrase": "Napišite svojo varnostno frazo", + "page-wallets-most-wallets": "Večina denarnic omogoča ustvarjanje Ethereum računa, zato ga pred namestitvijo denarnice ne potrebujete.", + "page-wallets-protecting-yourself": "Zaščitite sebe in svoja sredstva", + "page-wallets-seed-phrase": "Zapišite si svojo obnovitveno frazo", "page-wallets-seed-phrase-desc": "Denarnice vam bodo pogosto ponudile varnostno frazo, ki jo morate zapisati na varno mesto. To je edini način, na katerega boste lahko obnovili denarnico.", "page-wallets-seed-phrase-example": "Tukaj je primer:", "page-wallets-seed-phrase-snippet": "there aeroplane curve vent formation doge possible product distinct under spirit lamp", - "page-wallets-seed-phrase-write-down": "Ne shranite je v računalnik. Zapišite si jo in jo shranite na varno.", - "page-wallets-slogan": "Ključ do vaše digitalne prihodnosti", - "page-wallets-stay-safe": "Kako ostanete varni?", - "page-wallets-stay-safe-desc": "Denarnice predstavljajo nekoliko drugačen način razmišljanja. Finančna svoboda in sposobnost uporabe sredstev kjerkoli vključujeta določeno stopnjo odgovornosti – v svetu kriptovalut ni podpore za stranke.", - "page-wallets-subtitle": "Denarnice omogočajo dostop do vaših sredstev in aplikacij na Ethereumu. Samo vi bi morali imeti dostop do svoje denarnice.", - "page-wallets-take-responsibility": "Prevzemite odgovornost za svoje premoženje", - "page-wallets-take-responsibility-desc": "Centralizirane borze bodo povezale vašo denarnico z uporabniškim imenom in geslom, ki ju je mogoče obnoviti na običajen način. Toda ne pozabite, da skrbništvo svojih sredstev zaupate borzi. Če je to podjetje napadeno ali gre v srečaj, so vaša sredstva ogrožena.", + "page-wallets-seed-phrase-write-down": "Ne shranjujte je na računalniku. Zapišite si jo in jo shranite na varno mesto.", + "page-wallets-slogan": "Držite ključe svoje digitalne prihodnosti v svojih rokah", + "page-wallets-stay-safe": "Kako ostati varen", + "page-wallets-stay-safe-desc": "Finančna svoboda ter možnost dostopa in uporabe sredstev kjer koli prinašata odgovornost – v kriptosvetu ni podpore za stranke. Sami ste odgovorni za varno shranjevanje svojih ključev.", + "page-wallets-subtitle": "Denarnice vam pomagajo pri dostopu do vaših digitalnih sredstev in pri prijavi v aplikacije.", + "page-wallets-take-responsibility": "Prevzemite odgovornost za svoja sredstva", + "page-wallets-take-responsibility-desc": "Centralizirane borze bodo vašo denarnico povezale z uporabniškim imenom in geslom, ki ju lahko ponovno dobite na običajen način. Ne pozabite pa, da ste tej borzi zaupali skrbništvo nad svojimi sredstvi. Če zaide borza v finančne težave, bodo vaša sredstva izpostavljena tveganju.", "page-wallets-tips": "Več nasvetov za zagotavljanje varnosti", "page-wallets-tips-community": "Iz skupnosti", "page-wallets-title": "Denarnice Ethereum", "page-wallets-triple-check": "Trikrat preverite vse", "page-wallets-triple-check-desc": "Ne pozabite, da transakcij ni mogoče razveljaviti in denarnice ni mogoče enostavno obnoviti, zato bodite previdni.", - "page-wallets-try-dapps": "Poskusite dec. aplikacije", - "page-wallets-try-dapps-alt": "Slika članov skupnosti Ethereum, ki sodelujejo", - "page-wallets-try-dapps-desc": "Decentralizirane aplikacije so aplikacije, razvite na Ethereumu. So cenejše, bolj poštene in bolj podatkom prijazne od tradicionalnih aplikacij.", + "page-wallets-try-dapps": "Preizkusite nekaj decentraliziranih aplikacij", + "page-wallets-try-dapps-alt": "Ilustracija članov skupnosti Ethereum, ki sodelujejo", + "page-wallets-try-dapps-desc": "Decentralizirane aplikacije so zgrajene na Ethereumu. So cenejše, bolj poštene in prijaznejše do vaših podatkov kot večina tradicionalnih aplikacij.", "page-wallets-types": "Vrste denarnic", - "page-wallets-web-browser": "Spletne denarnice, ki omogočajo interakcijo z računom prek spletnega brskalnika", + "page-wallets-types-desc": "Obstaja nekaj načinov, kako lahko delate s svojim računom preko vmesnika ali drugače:", + "page-wallets-web-browser": "Brskalniške denarnice so spletne aplikacije, ki omogočajo neposredno interakcijo z vašim računom v brskalniku", + "page-wallets-web-browser-extension": "Brskalniške razširitve denarnic so razširitve, ki jih prenesete in vam omogočajo interakcijo z vašim računom in aplikacijami prek brskalnika", "page-wallets-whats-a-wallet": "Kaj je denarnica Ethereum?", "page-wallets-your-ethereum-account": "Vaš račun Ethereum", - "page-wallets-your-ethereum-account-desc": "Vaša denarnica je okno v vaš račun Ethereum – stanje, zgodovina transakcij in drugo. Vendar lahko ponudnike denarnice kadarkoli zamenjate.", + "page-wallets-your-ethereum-account-desc": "Vaša denarnica je okno v vaš račun Ethereum – stanje, zgodovina transakcij in drugo. Ponudnike denarnice lahko kadarkoli zamenjate.", "page-wallets-your-login": "Vaša prijava za aplikacije na Ethereumu", - "page-wallets-your-login-desc": "Denarnica vam omogoča povezovanje s poljubno decentralizirano aplikacijo z uporabo Ethereum računa. Deluje kot prijava, ki jo lahko uporabite prek številnih decentraliziranih aplikacij." + "page-wallets-your-login-desc": "Vaša denarnica omogoča povezovanje z aplikacijami z uporabo vašega računa Ethereum. Je kot prijava, ki jo lahko uporabljate v številnih aplikacijah.", + "additional-reading-how-to-create-an-ethereum-account": "Kako ustvariti Ethereum račun", + "additional-reading-how-to-use-a-wallet": "Kako uporabljati denarnico" } diff --git a/src/intl/sl/page-what-is-ethereum.json b/src/intl/sl/page-what-is-ethereum.json index 1349a8993f8..123472e4b1d 100644 --- a/src/intl/sl/page-what-is-ethereum.json +++ b/src/intl/sl/page-what-is-ethereum.json @@ -1,26 +1,128 @@ { "page-what-is-ethereum-alt-img-bazaar": "Slika osebe, ki kuka na tržnico, ki naj bi predstavljala Ethereum", - "page-what-is-ethereum-alt-img-comm": "Slika članov skupnosti Ethereum, ki sodelujejo", - "page-what-is-ethereum-alt-img-lego": "Slika roke, ki ustvarja logotip ETH iz lego kock", + "page-what-is-ethereum-alt-img-comm": "Ilustracija članov skupnosti Ethereum, ki sodelujejo", + "page-what-is-ethereum-alt-img-lego": "Slika roke, ki sestavlja logotip ETH iz lego kock", "page-what-is-ethereum-banking-card": "Bančništvo za vse", - "page-what-is-ethereum-banking-card-desc": "Dostop do finančnih storitev ni nekaj, kar bi imeli vsi. Vse, kar potrebujete za dostop do Ethereuma in produktov za kreditiranje, posojila in varčevanje, ki so na voljo na njem, pa je internetna povezava.", + "page-what-is-ethereum-banking-card-desc": "Vsi nimajo dostopa do finančnih storitev. Internetna povezava je vse, kar potrebujete za dostop do Ethereuma in produktov za posojanje, izposojo in varčevanje, ki so zgrajeni na njem.", "page-what-is-ethereum-build": "Ustvarite nekaj z Ethereumom", - "page-what-is-ethereum-build-desc": "Če želite začeti razvijati na Ethereumu, preberite naše dokumente, poskusite nekaj vadnic ali si oglejte orodja, ki jih potrebujete za začetek.", - "page-what-is-ethereum-censorless-card": "Odporen na cenzuro", + "page-what-is-ethereum-build-desc": "Če želite poskusiti razvijati z Ethereumom, preberite našo dokumentacijo, preizkusite nekaj vadnic ali si oglejte orodja, ki jih potrebujete za začetek.", + "page-what-is-ethereum-censorless-card": "Odporen proti cenzuri", "page-what-is-ethereum-censorless-card-desc": "Nobena vlada ali podjetje nima nadzora nad Ethereumom. Zaradi te decentralizacije je skoraj nemogoče, da bi vam kdorkoli poskušal preprečiti prejemanje plačil ali uporabo storitev na Ethereumu.", "page-what-is-ethereum-comm-desc": "Naša skupnost vključuje ljudi iz različnih ozadij, vključno z umetniki, kriptouporniki, podjetji s seznama Fortune 500, in zdaj tudi vas. Preberite več o tem, kako se lahko vključite že danes.", "page-what-is-ethereum-commerce-card": "Zagotovila pri trgovanju", - "page-what-is-ethereum-commerce-card-desc": "Ethereum ustvarja pravičnejše okolje. Stranke imajo varno, vgrajeno zagotovilo, da bodo njihova sredstva prenesena šele, ko zagotovite, kar ste se dogovorili. Za poslovanje ne potrebujete vpliva velikih podjetij.", + "page-what-is-ethereum-commerce-card-desc": "Stranke imajo varno, vgrajeno zagotovilo, da bodo sredstva porabljena, le če od vas dobijo, kar je bilo dogovorjeno. Podobno so lahko tudi razvijalci gotovi, da se pravila ne bodo spremenila.", + "page-what-is-ethereum-composable-card": "Sestavljivi produkti", + "page-what-is-ethereum-composable-card-desc": "Vse aplikacije so zgrajene na isti blokovni verigi s skupnim globalnim stanjem, kar pomeni, da se lahko aplikacije gradijo druga na drugi (podobno kot pri Lego kockah). To omogoča izdelavo boljših produktov in izkušenj ter zagotavlja, da nihče ne more odstraniti orodij, od katerih so aplikacije odvisne.", "page-what-is-ethereum-community": "Skupnost Ethereum", - "page-what-is-ethereum-desc": "Osnova za digitalno prihodnost", + "page-what-is-ethereum-desc": "Temelj naše digitalne prihodnosti", "page-what-is-ethereum-explore": "Raziščite Ethereum", - "page-what-is-ethereum-internet-card": "Zasebnejši internet", - "page-what-is-ethereum-internet-card-desc": "Za uporabo aplikacije Ethereum vam ni potrebno navesti vseh svojih osebnih podatkov. Ethereum gradi gospodarstvo na osnovi vrednosti, ne nadzora.", + "page-what-is-ethereum-internet-card": "Odprt internet", + "page-what-is-ethereum-internet-card-desc": "Vsakdo lahko komunicira z omrežjem Ethereum ali na njem gradi aplikacije. To vam omogoča, da nadzirate svoja sredstva in identiteto, namesto, da jih nadzira nekaj velikih korporacij.", "page-what-is-ethereum-meet-comm": "Spoznajte skupnost", "page-what-is-ethereum-meta-description": "Preberite več o Ethereumu, zakaj ga je mogoče uporabiti in kako ga lahko poskusite sami.", "page-what-is-ethereum-meta-title": "Kaj je Ethereum?", "page-what-is-ethereum-p2p-card": "Omrežje enakovrednih računalnikov", - "page-what-is-ethereum-p2p-card-desc": "Ethereum omogoča pošiljanje denarja ali sklepanje pogodb neposredno z drugimi. Uporaba posredniških podjetij ni potrebna.", + "page-what-is-ethereum-p2p-card-desc": "Ethereum vam omogoča, da koordinirate, sklepate sporazume ali prenašate digitalna sredstva neposredno z drugimi ljudmi. Ni vam treba uporabljati posrednikov.", "page-what-is-ethereum-start-building-btn": "Začnite razvijati", - "page-what-is-ethereum-title": "Kaj je Ethereum?" + "page-what-is-ethereum-title": "Kaj je Ethereum?", + "page-what-is-ethereum-subtitle": "Vodič za popolne začetnike, ki pojasnjuje, kako deluje Ethereum, prednosti, ki jih prinaša, in kako ga uporablja več milijonov ljudi po svetu.", + "page-what-is-ethereum-button-lets-start": "Začnite", + "page-what-is-ethereum-blockchain-tab-title": "Kaj je blokovna veriga?", + "page-what-is-ethereum-blockchain-tab-content": "Blokovna veriga je podatkovna baza transakcij, ki se posodablja in uporablja na mnogo računalnikih v omrežju. Vsakič, ko je dodan nov set transakcij, mu pravimo “blok” - iz tega izhaja izraz blokovna veriga. Javne blokovne verige, kot je Ethereum, omogočajo vsakomur, da dodaja podatke, jih pa ne more izbrisati. Če bi kdo želel spremeniti kakršnokoli informacijo ali bi želel goljufati, bi morali to storiti na večini računalnikov v omrežju. To pa je veliko računalnikov! Zato so decentralizirane blokovne verige, kot je Ethereum, zelo varne.", + "page-what-is-ethereum-cryptocurrency-tab-title": "Kaj je kriptovaluta?", + "page-what-is-ethereum-cryptocurrency-tab-content-1": "Kriptovaluta je pojem, ki opisuje veliko različnih tipov zamenljivih digitalnih žetonov, ki jih varuje blokovna veriga. Vse se je začelo z Bitcoinom. Bitcoin se lahko uporablja za prenos vrednosti med dvema deležnikoma, ne da bi morali zaupati posredniku. Zaupati morate le kodi Bitcoin, ki je popolnoma odprta in javno dostopna.", + "page-what-is-ethereum-cryptocurrency-tab-content-2": "Bitcoinu in Ethereumu pravimo \"kriptovaluti\" zato, ker je varnost vaših podatkov in sredstev zagotovljena s kriptografijo in ne z zaupanjem v poštenost poslovanja inštitucij ali korporacij.", + "page-what-is-ethereum-cryptocurrency-tab-content-3": "Ethereum ima svojo kriptovaluto eter (ETH), ki se uporablja za plačilo nekaterih dejavnosti na omrežju. Prenesete jo lahko drugim uporabnikom ali zamenjate za druge žetone na Ethereumu. Eter je poseben zato, ker se ga uporablja tudi za plačilo računske moči, ki je potrebna za izdelavo in poganjanje aplikacij in organizacij na omrežju Ethereum.", + "page-what-is-ethereum-summary-title": "Povzetek", + "page-what-is-ethereum-summary-desc-1": "Ethereum je glavna platforma za na tisoče aplikacij in blokovnih verig, ki jih poganja protokol Ethereum.", + "page-what-is-ethereum-summary-desc-2": "Ta živahni ekosistem spodbuja inovacije in širok nabor decentraliziranih aplikacij in storitev.", + "page-what-is-ethereum-summary-bullet-1": "Brezplačni in globalni računi Ethereum", + "page-what-is-ethereum-summary-bullet-2": "Psevdo-zasebno, osebni podatki niso potrebni", + "page-what-is-ethereum-summary-bullet-3": "Brez omejitev, vsakdo lahko sodeluje", + "page-what-is-ethereum-summary-bullet-4": "Nobenega podjetja ni, ki bi bilo lastnik Ethereuma ali odločalo o njegovi prihodnosti", + "page-what-is-ethereum-btc-eth-diff-title": "Kakšna je razlika med Ethereumom in Bitcoinom?", + "page-what-is-ethereum-btc-eth-diff-1": "Ethereum je bil lansiran leta 2015 in temelji na inovaciji, ki jo je predstavljal Bitcoin, čeprav je med njima tudi nekaj velikih razlik.", + "page-what-is-ethereum-btc-eth-diff-2": "Oba omogočata uporabo digitalnega denarja, brez plačilnih ponudnikov ali bank. Vendar je Ethereum programirljiv, tako da lahko na njegovem omrežju tudi izdelujete in objavljate decentralizirane aplikacije.", + "page-what-is-ethereum-btc-eth-diff-3": "Bitcoin nam omogoča pošiljanje osnovnih sporočil drug drugemu o tem, kar menimo, da ima vrednost. Ugotavljanje vrednosti brez vpliva centralnega organa že samo po sebi pomeni veliko. Ethereum pa to še razširi: namesto osnovnega pošiljanja sporočil lahko napišete kakršenkoli osnovni program ali pogodbo. Napišejo in sklepajo se lahko pogodbe kakršnekoli vrste, zato na omrežju Ethereum nastajajo velike inovacije.", + "page-what-is-ethereum-btc-eth-diff-4": "Bitcoin je le plačilno omrežje, Ethereum pa je bolj podoben trgu finančnih storitev, iger, družabnih omrežij in drugih aplikacij.", + "page-what-is-ethereum-what-can-eth-do-title": "Kaj vse omogoča Ethereum?", + "page-what-is-ethereum-why-would-i-use-ethereum-title": "Zakaj bi uporabljali Ethereum?", + "page-what-is-ethereum-why-would-i-use-ethereum-1": "Če vas zanimajo bolj odporni, odprti in zaupanja vredni načini za globalno koordinacijo, ustanavljanje organizacij, izdelavo aplikacij in deljenje vrednosti, je Ethereum za vas. Ethereum je zgodba, ki smo jo napisali vsi mi skupaj, zato pridite in odkrijte, kakšne neverjetne svetove lahko skupaj zgradimo z njim.", + "page-what-is-ethereum-why-would-i-use-ethereum-2": "Ethereum je bil neprecenljive vrednosti tudi za ljudi, ki so se soočali z negotovostjo glede varnosti, pravilnega delovanja ali premičnosti njihovih sredstev, zaradi zunanjih sil, ki so bile izven njihovega nadzora.", + "page-what-is-ethereum-slide-1-title": "Cenejša in hitrejša čezmejna plačila", + "page-what-is-ethereum-slide-1-desc-1": "Stabilni kovanci so nova vrsta kriptovalut, ki se zanašajo na bolj stabilna sredstva kot temelj svoje vrednosti. Večina stabilnih kovancev je povezana z ameriškim dolarjem in zato ohranjajo vrednost te valute. Ti omogočajo nizkocenoven, stabilen globalni plačilni sistem. Mnogi sedanji stabilni kovanci so nastali na omrežju Ethereum.", + "page-what-is-ethereum-slide-1-desc-2": "Ethereum in stabilni kovanci poenostavljajo proces čezmejnega pošiljanja denarja. Pogosto je za prenos sredstev po vsem svetu potrebno le nekaj minut, namesto nekaj delovnih dni ali tednov, kot jih potrebuje povprečna banka, in to le za majhen odstotek stroškov transakcije, ki bi nastali v banki. Prav tako ni večjih stroškov za transakcije večje vrednosti in tudi ni nobenih omejitev glede tega, kam ali zakaj pošiljate svoj denar.", + "page-what-is-ethereum-slide-2-title": "Najhitrejša pomoč v kriznih časih", + "page-what-is-ethereum-slide-2-desc-1": "Če imate to srečo, da je v kraju, kjer živite, na voljo več možnosti bančnega poslovanja prek ustanov, ki jim zaupate, so finančna svoboda, varnost in stabilnost, ki jih te omogočajo, za vas morda samoumevne. Mnogim ljudem po vsem svetu, ki se soočajo s politično represijo ali težkimi razmerami v gospodarstvu, pa finančne ustanove ne nudijo zaščite ali storitev, ki jih potrebujejo.", + "page-what-is-ethereum-slide-2-desc-2": "Ko so vojna, gospodarske katastrofe ali posegi v državljanske svoboščine prizadeli prebivalce Venezuele, Kube, Afganistana, Nigerije, Belorusije in Ukrajine, so bile kriptovalute najhitrejša in pogosto edina možnost za ohranitev finančne neodvisnosti.1 Kot je razvidno iz teh primerov, lahko kriptovalute, kot je Ethereum, omogočijo neomejen dostop do svetovnega gospodarstva, ko so ljudje odrezani od zunanjega sveta. Poleg tega stabilni kovanci nudijo shranjevalnik vrednosti, ko lokalne valute propadajo zaradi hiperinflacije.", + "page-what-is-ethereum-slide-3-title": "Opolnomočimo ustvarjalce", + "page-what-is-ethereum-slide-3-desc-1": "Samo v letu 2021 so umetniki, glasbeniki, pisatelji in drugi ustvarjalci z uporabo Ethereuma skupaj zaslužili okoli 3,5 milijarde USD. Ethereum je torej ena od največjih platform na svetu za ustvarjalce - ob Spotifyu, YouTubu in Etsyju. Preberite več.", + "page-what-is-ethereum-slide-4-title": "Opolnomočimo igričarje", + "page-what-is-ethereum-slide-4-desc-1": "Pred kratkim so se pojavile igrice za služenje (pri katerih so igralci dejansko nagrajeni za igranje iger) in te iz temelja spreminjajo igričarsko panogo. Doslej je bilo običajno prepovedano, da bi igralci trgovali s sredstvi v okviru igrice ali jih prenašali na druge igralce v zameno za pravi denar. To je igričarje prisililo v uporabo spletnih mest na črnem trgu, pri katerih je pogosto prisotno tveganje. Igranje z blokovnimi verigami pa dopušča trgovanje med igričarji in spodbuja takšno obnašanje z zaupanjem.", + "page-what-is-ethereum-slide-4-desc-2": "Poleg tega so v tem primeru igralci spodbujeni, saj lahko z žetoni v okviru igrice trgujejo za pravi denar in so torej resnično nagrajeni za čas igranja igrice.", + "page-what-is-ethereum-meet-ether-title": "Spoznajte ether, kriptovaluto Ethereuma", + "page-what-is-ethereum-meet-ether-desc-1": "Pri mnogih postopkih na omrežju Ethereum je treba opraviti nekaj dela na njegovem vgrajenem računalniku (ki mu pravimo tudi Ethereum Virtual Machine). Te računalniške operacije pa niso brezplačne; treba jih je plačati z uporabo Ethereumove lastne kriptovalute, ki se imenuje ether (ETH). To pomeni, da morate imeti na voljo vsaj majhno količino ethrov za uporabo v omrežju.", + "page-what-is-ethereum-meet-ether-desc-2": "Eter je popolnoma digitalen, lahko ga pošljete komurkoli, kjerkoli na svetu. Ponudbe etra ne nadzira nobena vlada ali podjetje - je decentraliziran in popolnoma transparenten. Eter je izdan na nadzorovan način v skladu s protokolom in to le deležnikom, ki varujejo omrežje.", + "page-what-is-ethereum-what-is-ether": "Kaj je ether?", + "page-what-is-ethereum-get-eth": "Pridobite ETH", + "page-what-is-ethereum-explore-applications": "Preglejte aplikacije", + "page-what-is-ethereum-learn-defi": "Izvedite o DeFi", + "page-what-is-ethereum-who-runs-ethereum-title": "Kdo upravlja Ethereum?", + "page-what-is-ethereum-who-runs-ethereum-desc-1": "Ethereuma ne nadzira noben posamezni subjekt. Obstaja, ko so računalniki s programsko opremo v skladu s protokolom Ethereum povezani in dodajajo vsebine blokovni verigi Ethereum. Vsak povezan računalnik je imenovan vozlišče. Vozlišča lahko upravlja kdorkoli, za sodelovanje pri varovanju omrežja pa morate zastaviti ETH (Ethereumov žeton). To lahko stori kdorkoli z 32 ETH, brez dovoljenja.", + "page-what-is-ethereum-who-runs-ethereum-desc-2": "Celo Ethereumove izvorne kode ni izdelal en sam subjekt. Kdorkoli lahko predlaga spremembe protokola in se pogovarja o možnih posodobitvah. Obstaja veliko implementacij protokola Ethereum, ki jih izdelujejo neodvisne organizacije v različnih programskih jezikih. Te implementacije so ponavadi zgrajene v javnosti in spodbujajo prispevke skupnosti.", + "page-what-is-ethereum-run-a-node": "Upravljajte vozlišče", + "page-what-is-ethereum-smart-contract-title": "Kaj so pametne pogodbe?", + "page-what-is-ethereum-smart-contract-desc-1": "Pametne pogodbe so računalniški programi, ki delujejo na blokovni verigi Ethereum. Izvajajo se, ko jih sproži transakcija, ki jo izvede uporabnik. Zaradi teh pogodb je Ethereum zelo fleksibilen glede svojih funkcionalnosti. Ti programi delujejo kot gradniki za decentralizirane aplikacije in organizacije.", + "page-what-is-ethereum-smart-contract-desc-2": "Ste kdaj že uporabljali produkt, ki je spremenil svoje pogoje uporabe? Ali pa je odstranil funkcijo, ki se vam je zdela uporabna? Ko je pametna pogodba objavljena na omrežju Ethereum, bo tam ostala dokler bo Ethereum obstajal. Niti avtor je ne more odstraniti. Ker so pametne pogodbe avtomatizirane, ne diskriminirajo med uporabniki in so vedno pripravljene za uporabo.", + "page-what-is-ethereum-smart-contract-desc-3": "Popularni primeri pametnih pogodb so aplikacije za posojila, decentralizirane borze, zavarovanja, financiranje, socialna omrežja, NFT-ji - pravzaprav, karkoli si lahko zamislite.", + "page-what-is-ethereum-more-on-smart-contracts": "Več o pametnih pogodbah", + "page-what-is-ethereum-explore-dapps": "Raziščite dec. aplikacije", + "page-what-is-ethereum-criminal-activity-title": "Slišal sem, da se kripto uporablja za kriminalne aktivnosti. Je to res?", + "page-what-is-ethereum-criminal-activity-desc-1": "Kot vsaka tehnologija, bo tudi Ethereum kdaj zlorabljen. Vse Ethereumove transakcije se izvedejo na odprti blokovni verigi, zato je oblastem ponavadi še lažje slediti nezakonitim aktivnostim, kot pa v tradicionalnem finančnem sistemu. Zaradi tega lahko rečemo, da je Ethereum manj priljubljena opcija za tiste, ki bi raje videli, da njihova dejanja ostanejo nevidna.", + "page-what-is-ethereum-criminal-activity-desc-2": "Kripto se za kriminalne aktivnosti uporablja veliko manj, kot fiat valute, so ugotovili v nedavnem poročilu Europola, agencije Evropske unije za kazenski pregon:", + "page-what-is-ethereum-criminal-activity-desc-3": "\"Uporaba kriptovalut za nezakonite dejavnosti po vsej verjetnosti predstavlja le majhen del celotne ekonomije kriptovalut in zgleda, da je ta del primerljivo manjši, kot delež nezakonitih sredstev, ki se uporabljajo v klasični ekonomiji.\"", + "page-what-is-ethereum-energy-title": "Kaj pa Ethereumova poraba energije?", + "page-what-is-ethereum-energy-desc-1": "15. septembra 2022 je Ethereum prešel skozi nadgradnjo The Merge, ki je Ethereum preoblikovala iz proof-of-work v proof-of-stake.", + "page-what-is-ethereum-energy-desc-2": "Nadgradnja Merge je bila največja nadgradnja omrežja Ethereum in je zmanjšala porabo energije, potrebne za varovanje Ethereuma za 99,95 % ter tako dosegla bolj varno omrežje ob dosti manjšem ogljikovem odtisu. Ethereum je zdaj nizkoogljična blokovna veriga, ob povečani varnosti in razširljivosti.", + "page-what-is-ethereum-more-on-energy-consumption": "Več o porabi električne energije", + "page-what-is-ethereum-energy-consumption-chart-legend": "Letna poraba energije v TWh/leto", + "energy-consumption-chart-global-data-centers-label": "Podatkovni centri po svetu", + "energy-consumption-gold-mining-cbeci-label": "Rudarjenje zlata", + "energy-consumption-chart-btc-pow-label": "BTC PoW", + "energy-consumption-chart-netflix-label": "Netflix", + "energy-consumption-chart-eth-pow-label": "ETH PoW", + "energy-consumption-chart-gaming-us-label": "Igranje igric v ZDA", + "energy-consumption-chart-airbnb-label": "AirBnB", + "energy-consumption-chart-paypal-label": "PayPal", + "energy-consumption-chart-eth-pos-label": "ETH PoS", + "page-what-is-ethereum-the-merge-update": "Posodobitev Merge", + "page-what-is-ethereum-additional-reading": "Dodatno branje", + "page-what-is-ethereum-week-in-ethereum": "Novice tedna pri Ethereumu", + "page-what-is-ethereum-week-in-ethereum-desc": "- Tedensko glasilo, ki povzema ključne dogodke po ekosistemu.", + "page-what-is-ethereum-kernel-dreamers": "Kernel", + "page-what-is-ethereum-kernel-dreamers-desc": "Sanje Ethereuma", + "page-what-is-ethereum-atoms-institutions-blockchains": "Atomi, inštitucije in blokovne verige", + "page-what-is-ethereum-atoms-institutions-blockchains-desc": "- Zakaj so blokovne verige pomembne?", + "page-what-is-ethereum-ethereum-in-numbers-title": "Ethereum v številkah", + "page-what-is-ethereum-ethereum-in-numbers-stat-1-desc": "Projekti zgrajeni na Ethereumu", + "page-what-is-ethereum-ethereum-in-numbers-stat-2-desc": "Računi (denarnice) s stanjem ETH", + "page-what-is-ethereum-ethereum-in-numbers-stat-3-desc": "Pametne pogodbe na Ethereumu", + "page-what-is-ethereum-ethereum-in-numbers-stat-4-desc": "Vrednost zavarovana na Ethereumu", + "page-what-is-ethereum-ethereum-in-numbers-stat-5-desc": "Zaslužek ustvarjalcev na Ethereumu v letu 2021", + "page-what-is-ethereum-ethereum-in-numbers-stat-6-desc": "Število transakcij danes", + "adoption-chart-column-now-label": "Zdaj", + "adoption-chart-investors-label": "Investitorji", + "adoption-chart-developers-label": "Razvijalci", + "adoption-chart-companies-label": "Podjetja", + "adoption-chart-artists-label": "Ustvarjalci", + "adoption-chart-musicians-label": "Glasbeniki", + "adoption-chart-writers-label": "Pisci", + "adoption-chart-gamers-label": "Igričarji", + "adoption-chart-refugees-label": "Begunci", + "page-what-is-ethereum-get-eth-alt": "Kupite ETH", + "page-what-is-ethereum-get-eth-description": "ETH je osnovna valuta Ethereuma. Za uporabo aplikacij na Ethereumu boste potrebovali nekaj ETH v svoji denarnici.", + "page-what-is-ethereum-get-eth-title": "Kupite ETH", + "page-what-is-ethereum-explore-dapps-alt": "Raziščite dec. aplikacije", + "page-what-is-ethereum-explore-dapps-description": "Dapps so aplikacije, zgrajene na Ethereumu. Dapps spreminjajo trenutne poslovne modele in izumljajo nove.", + "page-what-is-ethereum-explore-dapps-title": "Preizkusite nekaj decentraliziranih aplikacij" } From 88dc562c16a3c8d692078a571eb28734c5872e51 Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Thu, 1 May 2025 04:46:07 +0000 Subject: [PATCH 062/106] chore: import translations for sn --- src/intl/sn/common.json | 42 ++++++----- src/intl/sn/page-get-eth.json | 79 ++++++++++++++++++++ src/intl/sn/page-index.json | 45 ++++++------ src/intl/sn/page-wallets-find-wallet.json | 88 +++++++++++++++++++++++ src/intl/sn/page-what-is-ethereum.json | 9 ++- 5 files changed, 223 insertions(+), 40 deletions(-) create mode 100644 src/intl/sn/page-get-eth.json create mode 100644 src/intl/sn/page-wallets-find-wallet.json diff --git a/src/intl/sn/common.json b/src/intl/sn/common.json index 2daea4bd054..a2d3a3e5ae0 100644 --- a/src/intl/sn/common.json +++ b/src/intl/sn/common.json @@ -5,13 +5,14 @@ "acknowledgements": "Kutenda", "adding-desci-projects": "Kuwedzera Mapurojekiti eDesci", "adding-developer-tools": "Kuwedzera Maturusi eVagadziri", - "adding-exchanges": "Kuwedzera maExchange", - "adding-glossary-terms": "Kuwedzerwa kwemamwe manzwi anoenderana neCryptocurrency yedu", - "adding-layer-2s": "Kuwedzera Layer 2s", + "adding-exchanges": "Kuwedzera Kuchinjana", + "adding-glossary-terms": "Kuwedzerwa Kwemamwe Manzwi", + "adding-layer-2s": "Kuwedzera maLayer 2", "adding-products": "Kuwedzera Zvigadzirwa", - "adding-staking-products": "Kuwedzera Zvigadzirwa zveStaking", + "adding-staking-products": "Kuwedzera Zvigadzirwa zveKubata", "adding-wallets": "Kuwedzera Zvikwama", - "aria-toggle-menu-button": "Sarura bhatani re menu", + "ai-agents": "Vamiriri veAI", + "aria-toggle-menu-button": "Sarura bhatani re menyu", "aria-toggle-search-button": "Sarura bhatani rekutsvaga", "beacon-chain": "Beacon Chain", "bridges": "Mabhiriji eBlockchain", @@ -50,7 +51,7 @@ "developers": "Vagadziri", "developers-home": "Imba yevagadziri", "docs": "Madhokumendi", - "docsearch-error-help": "Pamwe ungada kutarisa konekisheni yenetiweki yako.", + "docsearch-error-help": "Pamwe ungada kutarisa konekisheni yetaneti yako.", "docsearch-error-title": "Tatadza kutora mhinduro", "docsearch-no-results-missing": "Unofunga kuti kutsvaga uku kune mhinduro here?", "docsearch-no-results-missing-link": "Tizivise.", @@ -68,23 +69,23 @@ "docsearch-to-select": "Kusarudza", "documentation": "Zvinyorwa", "down": "Kuzasi", - "ecosystem": "Ecosystem", + "ecosystem": "Nzvimbo yezvipenyu", "edit-page": "Kuedhita peji", - "ef-blog": "Blog reEthereum Foundation", + "ef-blog": "Blogu reEthereum Foundation", "eips": "Zvinokurudzirwa Pakuvandudza Ethereum", "energy-consumption": "Kushandiswa kwesimba neEthereum", "enterprise": "Zvemakambani", - "enterprise-mainnet": "Enterprise - Mainnet Ethereum", - "enterprise-menu": "Menyu yeBhizinesi", - "enterprise-private": "Bhizinesi- Ethereum Yemuridzi", - "esp": "Purogiramu yeRubatsiro yeEcosystem", + "enterprise-mainnet": "Zvemakambani - Mainnet Ethereum", + "enterprise-menu": "Menyu yeZvemakambani", + "enterprise-private": "Zvemakambani - Ethereum Yemuridzi", + "esp": "Purogiramu yeRubatsiro yeNzvimbo yeZvipenyu", "eth-current-price": "Mutengo weETH weparizvino (USD)", "ethereum": "Ethereum", "ethereum-basics": "Zvishoma nezveEthereum", "ethereum-brand-assets": "Zvinhu zvebhurandi zveEthereum", "ethereum-bug-bounty": "Chirongwa chebug bounty cheEthereum", "ethereum-events": "Zviitiko zveEthereum", - "ethereum-foundation": "Foundation yeEthereum", + "ethereum-foundation": "Ethereum Foundation", "ethereum-foundation-logo": "Logo yeEthereum Foundation", "ethereum-glossary": "Mazwi nemazita anoshandidzana nekushandiswa kweEthereum", "ethereum-governance": "Hurumende yeEthereum", @@ -96,7 +97,7 @@ "ethereum-support": "Tsigiro yeveEthereum", "ethereum-upgrades": "Kuvandudzwa kweEthereum", "ethereum-wallets": "Zvikwama zveEthereum", - "ethereum-whitepaper": "Ethereum Whitepaper", + "ethereum-whitepaper": "Bepa Jena reEthereum", "feedback-card-prompt-article": "Chinyorwa ichi chakubatsira here?", "feedback-card-prompt-page": "Peji iri rakubatsira here?", "feedback-card-prompt-tutorial": "Chidzidzo ichi chakubatsira here?", @@ -202,7 +203,7 @@ "layer-2": "Chikamu chechi 2", "learn": "Dzidza", "learn-by-coding": "Dzidzira nekucoder", - "learn-hub": "Hub yeKudzidza", + "learn-hub": "Nzvimbo yeKudzidza", "learn-menu": "Menyu yekudzidza", "learn-more": "Dzidza zvimwe", "less": "Zvishoma", @@ -219,6 +220,7 @@ "nav-about-description": "Purojekiti yeparuzhinji yenharaunda yeEthereum", "nav-advanced-description": "Dzidza zvemisoro yenyaya yakakura", "nav-advanced-label": "Zvepamberi", + "nav-ai-agents-description": "Nakidzwa nezvinoitwa nemaagenzi eAI paethereum", "nav-basics-description": "Nzwisisa pamusoro pezvemavambo zveEthereum", "nav-basics-label": "Zvekutanga", "nav-bridges-description": "Web3 yakura kuita masai sai ekutangira eL1 blockchains nepekuvandudza L2", @@ -248,6 +250,8 @@ "nav-emerging-description": "Ziva zvitsva zvine chekuita nemashandisirwo nevashandisi veEthereum", "nav-emerging-label": "Mikana mitsva ichangoburwa yemashandisiro", "nav-ethereum-org-description": "Website ino inovandudzwa nevashandisi vayo—joinawo ubatsire", + "nav-ethereum-networks": "Mataneti eEthereum", + "nav-ethereum-networks-description": "Nzira dzine mutengo wakaderera uye unokasira wekutenga nekubhadhara nawo Ethereum", "nav-ethereum-wallets-description": "Apu inodyidzana neakaundi yako yeEthereum", "nav-events-description": "Kupa vamwe mukana nemvumo kune vose vangada kuva pachirongwa", "nav-events-irl-description": "Mwedzi woga woga kune zviitiko zvikuru zvekuonana uye zvepaindaneti zvine chekuita neEthereum", @@ -273,16 +277,22 @@ "nav-guides-label": "Nhungamiro dzekuita nadzo", "nav-history-description": "Tsananguro yezvawedzerwa nemaforks ese anokosha uye maapudheti", "nav-history-label": "Nhorrondo yakadzika yeEthereum", - "nav-layer-2-description": "Nzira dzine mutengo wakaderera uye unokasira wekutenderedza nawo Ethereum", "nav-learn-by-coding-description": "Maturusi anokubetsera kutamba tamba neEthereum", "nav-local-env-description": "Sarudza nekugadzira stack rako rekugadzira nekuvandudza Ethereum yako", "nav-mainnet-description": "Zvekushandisa zveEnterprise blockchain zvinogona kugadzirwa panzvimbo yeruzhinji yeEthereum Mainnet", + "nav-networks-home-description": "Nzira dzine mutengo wakaderera uye unokasira wekutenga nekubhadhara nawo Ethereum", + "nav-networks-introduction-description": "Ethereum yakura kuita netiweki inopfuura manetiweki ese", + "nav-networks-explore-networks-label": "Ona manetiweki", + "nav-networks-explore-networks-description": "Sarudza taneti iyo yaunoda kushandisa", + "nav-networks-learn-label": "Chii chinonzi mataneti eLayer 2?", + "nav-networks-learn-description": "Dzidza kuti sei tizvida", "nav-nft-description": "Nzira yekuparura chero chipi sechinhu chehukoshwa cheEthereum", "nav-open-research-description": "Chimwe chakasimbira ethereum rutsigiro rwainowana kubva kune vanhu vazhinji vetsvakiridzo nezvayo", "nav-open-research-label": "Tsvakurudzo yepachena", "nav-overview-description": "Zvose zvine chekuita nekudzidza nezveEthereum", "nav-overview-label": "Mamiriro azvo zvese", "nav-participate-overview-description": "Nzira yekupinda nayo mazviri", + "nav-payments-description": "Kubhadharana kweEthereum kuri kuchinja nzira yekutumira nekugamuchira mari", "nav-primary": "Pekutangira", "nav-quizzes-description": "Tarisa kuti unozvizvinzwisisa kusvika papi zveEthereum nezvemacryptocurrency", "nav-quizzes-label": "Imboedza ruzivo rwako rwecryptocurrency", diff --git a/src/intl/sn/page-get-eth.json b/src/intl/sn/page-get-eth.json new file mode 100644 index 00000000000..f6c9890f5a6 --- /dev/null +++ b/src/intl/sn/page-get-eth.json @@ -0,0 +1,79 @@ +{ + "page-get-eth-article-keeping-crypto-safe": "Nzira dzekuchengetedza nadzo matokeni ako akachengetedzeka", + "page-get-eth-article-protecting-yourself": "Kuzvichengetedza iwe nemari yako", + "page-get-eth-article-store-digital-assets": "Machengetedzerwo emidziyo yepafoni pa Ethereum", + "page-get-eth-article-protecting-yourself-desc": "MyCrypto", + "page-get-eth-article-keeping-crypto-safe-desc": "Coinbase", + "page-get-eth-article-store-digital-assets-desc": "ConsenSys", + "page-get-eth-cex": "Kuchinjana kunoitwa panzvimbo imwe chete", + "page-get-eth-cex-desc": "Exchanges mabhizimisi anokutendera kutenga crypto uchishandisa mari yemazuva ese. Ndiyo anenge achichengeta ETH yaunotenga kusvikira waitumira kuchikwama chaunodzora.", + "page-get-eth-checkout-dapps-btn": "Ona nezvema-dapps", + "page-get-eth-community-safety": "Zvakatumirwa nevemunharaunda pamusoro pechengetedzeko", + "page-get-eth-description": "Ethereum haidzorwi nesangano rimwe chete - inodzorwa nevanhu vakawanda.", + "page-get-eth-dex": "Decentralized exchanges (DEXs)", + "page-get-eth-dex-desc": "Kana uchida kuwedzera hudzori, tenga ETH uchishandisa masmart contract. NeDEX unokwanisa kutengesa midziyo yako yepafoni usingarasikirwe nesimba rekudzora mari yako kune kambani imwe chete.", + "page-get-eth-peers": "Gamuchira ETH kubva kune vamwe vako", + "page-get-eth-peers-desc": "Kana wangove nehomwe yeEthereum, chaunongoda kugovera kero yako kuti utange kutumira nekutambira ETH (nemamwe matokens) kubva kune imwe shamwari yako kuenda kune mumwe.", + "page-get-eth-staking": "Mibhadharo yemikando", + "page-get-eth-staking-desc": "Kana wanga uine ETH nechekare, unokwanisa kuwana yakawedzerwa nekugadzira muchina weumabharani wekutsinhira unonzi validator node. Unobhadharwa kuita basa rekuvherifaya muETH.", + "page-get-eth-earn": "Wana ETH", + "page-get-eth-earn-desc": "Unogona kuwana ETH nekushandira maDAO kana makambani anobhadhara necrypto, kuhwina mabounties, kuwana zvinokanganisa mashandiro emapurogiramu emichina nezvimwe zvakawanda.", + "page-get-eth-daos-link-desc": "Dzidza nezveDeFi", + "page-get-eth-cex-link-desc": "Ona mundandanda wema-exchanges", + "page-get-eth-staking-link-desc": "Dzidza zvakawanda pamusoro pekuita mikando", + "page-get-eth-dexs": "Decentralized exchanges (DEXs)", + "page-get-eth-dexs-desc": "Decentralized exchanges misika yakavhurikira munhu wese yeETH nemamwe matokeni. Misika iyi inobatanidza vatengi nevatengesi pamwe chete zvakananga.", + "page-get-eth-dexs-desc-2": "Pachinzvimbo pekushandisa vamwe wetatu kuchengetedza mari panofambiswa mari, vanoshandisa kodhi. ETH yeari kutengesa inozotumirwa chete kana paine gutsikano yekuti kubhadhara kuchaitika. Mhando kodhi idzi inonzi smart contract.", + "page-get-eth-dexs-desc-3": "Izvi zvinoreva kuti pane ganhuriro yenharaunda shoma kana zvichienzaniswa nenzira dzinodzorwa panzvimbo imwe. Kana munhu achitengesa zvaunoda uye achitambira mabhadhariro aunokwanisa kushanda nawo, zvinenge zvaringana.", + "page-get-eth-dexs-desc-4": "Cherechedza: maDEX mazhinji anoshandisa ether yemuputirwa (WETH) kuti ashande. Dzidza nezve ether yemuputirwa.", + "page-get-eth-do-not-copy": "Muenzaniso: Usakopa", + "page-get-eth-exchanges-disclaimer": "Takaunganidza ruzivo urwu tisingashandisi michina. Ukawana chakakanganiswa, tizivise pa", + "page-get-eth-exchanges-empty-state-text": "Nyora zita renyika yaunogara kuti uone uwandu hwema-exchanges aunokwanisa kushandisa", + "page-get-eth-exchanges-except": "Kunze kwe", + "page-get-eth-exchanges-header": "Unogara munyika ipi?", + "page-get-eth-exchanges-header-exchanges": "Maexchanges", + "page-get-eth-exchanges-header-wallets": "Zvikwama", + "page-get-eth-exchanges-intro": "Maexchanges ane kwaanorambidzwa kutengesa crypto. Pane huwandu hwemishando inofungidzirwa kuti inoshanda munyika yega yega. Kuvemo muuhwandu uhwu hakusi kusimbiswa kwehuchokwadi - unofanirwa kuita tsvagurudzo yako wega!", + "page-get-eth-exchanges-no-exchanges": "Tine urombo, hatizivi exchange dzinokutenderai kutenga ETH kubva munyika iyi. Kana muchiziva, tizivisei pa", + "page-get-eth-exchanges-no-exchanges-or-wallets": "Tine urombo, hatizivi exchange dzinokutenderai kutenga ETH kubva munyika iyi. Kana muchiziva, tizivisei pa", + "page-get-eth-exchanges-no-wallets": "Tine urombo, hatizivi zvikwama zvinokutenderai kutenga ETH kubva munyika iyi. Kana muchiziva, tizivisei pa", + "page-get-eth-exchanges-search": "Nyora kwaunogara...", + "page-get-eth-exchanges-success-exchange": "Zvinogona kutora mazuva kuti unyoreswe paexchange nekuda kwetsvagurudzo dzinoitwa pamutemo.", + "page-get-eth-exchanges-success-wallet-link": "zvikwama", + "page-get-eth-exchanges-success-wallet-paragraph": "Kwaunogara, unotenderwa kutenga zvakananga ETH uchishandisa zvikwama izvi. Dzidza zvizere pamusoro pe", + "page-get-eth-exchanges-usa": "United States of America (USA)", + "page-get-eth-get-wallet-btn": "Wana chikwama", + "page-get-eth-hero-image-alt": "Wana mufananidzo wegamba reETH", + "page-get-eth-keep-it-safe": "Kuchengetedza ETH yako pakanaka", + "page-get-eth-meta-description": "Ungatenga ETH sei zvichienderana nekwaunogara uye mazano ekuti ungaichengetedza sei.", + "page-get-eth-meta-title": "Matengero aungaita Ethereum (ETH)", + "page-get-eth-need-wallet": "Unofanira unechikwama kuti ushandise DEX.", + "page-get-eth-new-to-eth": "Uri mutsva kuETH? Tarisa kuti ungatanga sei.", + "page-get-eth-other-cryptos": "Tenga neimwe crypto", + "page-get-eth-protect-eth-desc": "Imwe ficha yakakurumbira yeEthereum ndeyekuti unogona kuchengeta hupfumi hwako kuburikidza nekumaneja homwe yako. Zvinoreva kuti hausungirwi kuvimba nerimwewo sangano, uye wakachengetedzwa kubva kune angaita zvisina kutendeka pakuchengeta pfuma, kana anenge abhuroka kana kubirwa. Zvinorevawo kuti unenge wava kutora mugove pachengetedzeka kwepfuma yako.", + "page-get-eth-protect-eth-in-wallet": "Chengeta ETH yako muchikwama chako", + "page-get-eth-search-by-country": "Tsvaga uchishandisa nyika", + "page-get-eth-security": "Zvinoreva kuti unofanira kukoshesa nhau yekuchengetedza mari yako. NeETH, hausi kuvimba nebhangi kana kambani kuti ikuchengetere pfuma yako, uri kuzviitira vega basa iri.", + "page-get-eth-smart-contract-link": "Zvizhinji pama-smart contracts", + "page-get-eth-swapping": "Tsinhanisa matokens ako neETH yevamwe. Kana kuadzosa futi kwauri.", + "page-get-eth-try-dex": "Edza DEX", + "page-get-eth-use-your-eth": "Shandisa ETH yako", + "page-get-eth-use-your-eth-dapps": "Zvino zvawava neETH, imbotarisa zvimwe zvishandiswa zveEthereum (dapps). Pane madapps ezvemari, ekutandara, mitambo nemamwe akasiyana-siyana.", + "page-get-eth-wallet-instructions": "Tevedzera mirairo yekushandiswa kwechikwama", + "page-get-eth-wallet-instructions-lost": "Kana ukarasikirwa neakaundi yako, unorasikirwawo nemari yako. Chikwama chako chinofanirwa kukupa rairo dzekuti izvi zvisaitika. Iva nechokwadi kuti waitevedzera nemazvo - kazhinji, hapana anokwanisa kukubatsira kana warasikirwa neakaundi yako.", + "page-get-eth-wallets": "Zvikwama", + "page-get-eth-wallets-link": "Zvizhinji nezve zvikwama", + "page-get-eth-wallets-purchasing": "Zvimwe zvikwama zvinokutendera kutenga crypto nemakadhi emabhanga, kutumira nemabhangi kana Apple Pay. Dziviso dzenzvimbo dzinoshandiswa.", + "page-get-eth-warning": "MaDEX aya haasi evachangotanga sezvo uchida ETH kuti umashandise. Iyi inongova mienzaniso, kwete zvishandiswa zvatinokurudzira kana kusimbisa. Ita tsvagurudzo dzako wega!", + "page-get-eth-what-are-DEX's": "Chii chinonzi maDEX?", + "page-get-eth-whats-eth-link": "Chii Chinonzi ETH?", + "page-get-eth-where-to-buy-desc": "Unogona kuwana ETH, kuitambira kubva kune vamwe vanhu, kana kuitenga kubva kuma exchange nemadapps.", + "page-get-eth-where-to-buy-desc-2": "Tarisa kuti ndezvipi zvishandiswa zvaunokwanisa kushandisa kwaugere.", + "page-get-eth-where-to-buy-title": "Kwekuwana ETH", + "page-get-eth-your-address": "Kero yako yeETH", + "page-get-eth-your-address-desc": "Paunodhaunirodha chikwama, chinokugadzirira kero yeETH yeveruzhinji. Inoratidzika seizvi:", + "page-get-eth-your-address-desc-3": "Ingoitora sekero yako yeimeiri, asi panzvimbo yetsamba, inokwanisa kutambira ETH. Kana uchida kutumira ETH kubva kuexchange kuchikwama chako, shandisa kero yako. Iva nechokwadi kuti waiongorora zvakakwana usati watumira!", + "page-get-eth-your-address-wallet-link": "Tsvaga zvikwama", + "listing-policy-raise-issue-link": "Taura kana pane chirikunetsa", + "page-find-wallet-last-updated": "Chakapedzisira kuvandudzwa" +} diff --git a/src/intl/sn/page-index.json b/src/intl/sn/page-index.json index 7041b6304f5..0f6dd02f9b6 100644 --- a/src/intl/sn/page-index.json +++ b/src/intl/sn/page-index.json @@ -2,59 +2,61 @@ "page-index-activity-description": "Zviitiko zvepamanetiweki ese eEthereum", "page-index-activity-tag": "Chiitiko", "page-index-activity-header": "Kudyidzana kwakasimba", + "page-index-activity-action": "Zvimwe zviitiko paEthereum", "page-index-bento-header": "Nzira itsva yekushandisa indaneti", "page-index-bento-assets-action": "Zvizere panyaya yeNFTs", "page-index-bento-assets-content": "Zveati, masetifiketsi kunyange dzimba dzinogona kuiswa mumatokeni. Chinhu chese chinogona kutengeseka sematokeni. Huridzi hwezvinhu hunoonekwa neruzhinji uye hwakaonekwa huchokwadi hwazvo.", - "page-index-bento-assets-title": "Indaneti yemaassets", + "page-index-bento-assets-title": "Indaneti yezvinhu", "page-index-bento-dapps-action": "Tsvaga maapu paindaneti", "page-index-bento-dapps-content": "Maapu eEthereum anoshanda asingatengesi mashoko ako. Chengetedza zvakavanzika zvako.", "page-index-bento-dapps-title": "Maapu ekuitisa hudobidobi", "page-index-bento-defi-action": "Cherechedza DeFi", - "page-index-bento-defi-content": "Mabhiriyoni evanhu haakwanise kuvhura maakaundi ekubhanga kana kuti kushandisa mari yavo vakasununguka. Ethereum inoshanda kumunhu vese uye isina kwayakarerekera.", + "page-index-bento-defi-content": "Mabhiriyoni evanhu haakwanise kuvhura maakaundi ekubhanga kana kuti kushandisa mari yavo vakasununguka. Ethereum inoshanda kumunhu yese uye isina kwayakarerekera.", "page-index-bento-defi-title": "Dare reupfumi rakanakira wose", "page-index-bento-networks-action": "Ona zvaunogona kuwana", "page-index-bento-networks-content": "Ethereum ndiwo muzinda wemabasa makuru ehunyanzvi. Mapurojekiti emhando akavakirwa paEthereum.", - "page-index-bento-networks-title": "Netiweki yemamwe manetiweki", + "page-index-bento-networks-title": "Indaneti", "page-index-bento-stablecoins-action": "Dzidza zvimwe", "page-index-bento-stablecoins-content": "Stablecoins imari inoramba isingachinji hukoshi hwayo. Mutengo wayo unoenzanirana nedhora rekuAmerika kana kuti mimwe midziyo ine hukoshi husingachinji-chinji.", "page-index-bento-stablecoins-title": "Crypto isingachinji-chinji", - "page-index-builders-action-primary": "Peji Yekutanga", + "page-index-builders-action-primary": "Peji Yevavaki", "page-index-builders-action-secondary": "Zvinyorwa", "page-index-builders-description": "Ethereum ndiyo nzvimbo yevagadziri vakuru uye vakakurumbira vemaapu vepaWEb3. Shandisa JavaScript uye Python, kana kuti dzidza mutauro unoshandiswa pamakondirakiti wakadai seSolidity kana kuti Vyper pakunyora zvine chokuita neapu yako.", - "page-index-builders-tag": "Vagadziri", - "page-index-builders-header": "Vagadziri vakuru vevanoshandidzana nekambani", + "page-index-builders-tag": "Vavaki", + "page-index-builders-header": "Vavaki vakuru vevanoshandidzana nekambani", "page-index-calendar-add": "Isa pane karenda", "page-index-calendar-fallback": "Hapana runhare rwuri kuuya", - "page-index-calendar-title": "Zvekuita zvinotevera", + "page-index-calendar-title": "Kufona kunotevera", "page-index-community-action": "Zvizhinji pa ethereum.org", "page-index-community-description-1": "Webhusaiti ye-ethereum.org yakagadzirwa uye kutarisirwa nemazana evashanduri, nyanzvi dzekuisa makodhi, vanodhizaina, vanoita zvekukopa mashoko uye nhengo dzevazvipiri vane chido mwedzi mumwe nemumwe.", "page-index-community-description-2": "Huya ubvunze mibvunzo, usangane nevanhu vakasiyana-siyana kupota pasi rose uye ubatsiridze pakuumba webhusaiti iyi. Uchawana ruzivo rwakakodzera uye kutungamirirwa pakuita basa iri!", "page-index-community-description-3": "Pa-ethereum.org ndipo panzvimbo pekutangira uye pekudzidzira pakanaka.", - "page-index-community-tag": "Vanhu wepaEthereum.org", + "page-index-community-tag": "Vanhu vepaEthereum.org", "page-index-community-header": "Yakagadzirwa nevanhu vanoishandisa", "page-index-cta-dapps-description": "Zvemari, magemhu, uye kutandadzana", - "page-index-cta-dapps-label": "Edza apps", + "page-index-cta-dapps-label": "Edza maapu", "page-index-cta-get-eth-description": "Mari yeEthereum", "page-index-cta-get-eth-label": "Tora ETH", - "page-index-cta-networks-description": "Ine muripo uri pasi-pasi", + "page-index-cta-networks-description": "Nakidzwa muripo uri pasi-pasi", "page-index-cta-networks-label": "Sarudza netiweki", "page-index-cta-wallet-description": "Gadzira maakaundi uye utarisire zvakanaka midziyo inokosha", "page-index-cta-wallet-label": "Sarudza chikwama", "page-index-description": "Puratifomu yemberi inowanikwa maapu ekuitisa hudobidobi uye ine manetiweki emakambani makuru", "page-index-developers-code-example-description-0": "Gadzira bhanga rinosundwa nepfungwa dzawakaruka wega", "page-index-developers-code-example-description-1": "Gadzira matokeni aunogona kutumira kumwe uye kushandisa pamaapu akawanda", - "page-index-developers-code-example-description-2": "Shandisa mitauro iripo kuti ushande neEthereum uye mamwe maapu", + "page-index-developers-code-example-description-2": "Shandisa mitauro iripo kuti ugone kudyidzana neEthereum uye mamwe maapu", "page-index-developers-code-example-description-3": "Fungdzirazve masevhisi aripo seeruzhinji, maapu anogona kushandiswa nevese-vese", - "page-index-developers-code-example-title-0": "Bhangi rako", + "page-index-developers-code-example-title-0": "Bhangi rako iwe", "page-index-developers-code-example-title-1": "Mari yako iwe", - "page-index-developers-code-example-title-2": "Homwe yeJavaScript Ethereum wallet", - "page-index-developers-code-example-title-3": "Masai sai avose asingadi kukumbirwa bvumo", - "page-index-developers-code-examples": "Muenzaniso", + "page-index-developers-code-example-title-2": "Chikwama cheJavaScript Ethereum", + "page-index-developers-code-example-title-3": "DNS yakavhurika, isingadi kukumbirwa bvumo", + "page-index-developers-code-examples": "Mienzaniso yemakodhi", "page-index-events-action": "Ona zviitiko zvese", + "page-index-events-header": "Zviitiko", "page-index-events-subtitle": "Vanoshandisa Ethereum vanova nezviitiko pasi rose, gore rese", "page-index-hero-image-alt": "Mufananidzo weguta ramangwana uchimirira nharaunda yeEthereum.", "page-index-join-action-contribute-description": "Tsvaga nzira dzakasiyana-siyan dzaunogona kubatsira nadzo ethereum.org kuti ivandudzike uye ive nani.", - "page-index-join-action-contribute-label": "Mabatsiriro aunogona kuita", + "page-index-join-action-contribute-label": "Zvekuita kuti ubatsire", "page-index-join-action-discord-description": "Kubvunza mibvunzo, kuronga mipiro uye kujowina muzvikumbiro zvevanoishandisa.", "page-index-join-action-github-description": "Batsira pakuisa makodhi, pakudhizaina, pakunyora nyaya, nezvakada kudaro.", "page-index-join-action-twitter-description": "Kuti ugare uine mashoko achangobva kubuda uye nhau dzinokosha.", @@ -64,7 +66,7 @@ "page-index-learn-tag": "Dzidza", "page-index-learn-header": "Nzwisisa Ethereum", "page-index-meta-description": "Ethereum ipuratifomu yemari yepasi rose uye mhando itsva dzemaapu. Ethereum inoshandiswa kuita mabasa akasiyana sokuchengetedza nekutambidzana mari uye kugadzira mamwe maapu anowanikwa pasi rose.", - "page-index-meta-title": "Mashoko azere emashandisirwo eEthereum", + "page-index-meta-title": "Ethereum.org: Mashoko azere emashandisirwo eEthereum", "page-index-network-stats-total-eth-staked": "Koshesa kuchengetedza Ethereum", "page-index-network-stats-tx-cost-description": "Mutengo uri paavhareji wekufambiswa kwemari pakubhadharana", "page-index-network-stats-tx-day-description": "Kubhadharana kwaitwa mumaawa 24 apfuura", @@ -75,8 +77,8 @@ "page-index-popular-topics-action": "Mimwe misoro yenyaya", "page-index-popular-topics-roadmap": "Mepu yenzira yeEthereum", "page-index-popular-topics-start": "Matangiro aungaita, danho nedanho", - "page-index-popular-topics-wallets": "Chii chinonzi crypto wallets?", - "page-index-popular-topics-whitepaper": "Ethereum Whitepaper", + "page-index-popular-topics-wallets": "Zvii zvinonzi zvikwama zvecrypto?", + "page-index-popular-topics-whitepaper": "Bepa jena reEthereum", "page-index-posts-action": "Verenga zvizhinji pamawebhusaiti aya", "page-index-posts-header": "Zvichangobva kutumirwa", "page-index-posts-subtitle": "Zvichangobva kutumirwa pa-blog uye mashoko achangobva kupiwa nevanoishandisa", @@ -84,6 +86,7 @@ "page-index-values-description": "Iva pachikamu chekuitwa kwezvinhu pachishandiswa makombiyuta", "page-index-values-header": "Indaneti iri kuchinja", "page-index-values-legacy": "Nhaka", + "page-index-values-tag": "Tsika", "page-index-values-ownership-legacy-label": "Huridzi hune zviga", "page-index-values-ownership-legacy-content-0": "Uchishandisa bhanga kana panzvimbo yedandemutande reruzhinji, midziyo yako inokosha nemashoko zvinotarisirwa nesangano. Unotsamira pavari kuti uzviwane uye pakuzvidzora.", "page-index-values-ownership-legacy-content-1": "Vanogona kushandisa mashoko ako munzira yausingabvumirani nayo, zvichienderana nemitemo yavo.", @@ -91,7 +94,7 @@ "page-index-values-ownership-ethereum-content-0": "NeEthereum, iwe ndiwe wega une mukana wekuona uye kudzora zvinhu. Hakuna mumwe anokwanisa kushandisa midziyo yako inokosha. Unogona kusarudza waunoda kupa mvumo yekuita izvi.", "page-index-values-fairness-legacy-label": "Zvekusarura ganda", "page-index-values-fairness-legacy-content-0": "Nhasi, haasi munhu wese anokwanisa kubatsirwa nevanobata nhau dzemari. Vamwe vanhu vanosangana nezvipingamupinyi pakuti wavane rubatsiro urwu nekuda kwekwavanogara kana kuti nyika yavo.", - "page-index-values-fairness-ethereum-label": "Mukwana Wakaenzanirana Wekuwaniswa Rubatsiro", + "page-index-values-fairness-ethereum-label": "Kuwanikwa kune wese", "page-index-values-fairness-ethereum-content-0": "Tinodavira kuti munhu wese anofanira kubvumirwa kuti abatsirikane pahurongwa hunoitwa pasi rose. Ichi ndicho chikonzero nei Ethereum ichipa munhu wese mukana wakaenzanirana pasi rose, pasinei nekuti ndiwe ani kana kuti unobva kupi.", "page-index-values-privacy-legacy-label": "Hapana zvakavanzika", "page-index-values-privacy-legacy-content-0": "Hatitarisiri hurumende, makambani mahombe, kana kuti mamwe masangano makuru asingazivikanwi kuti ahwanze zvatiri achishandisa mari yavo.", @@ -103,7 +106,7 @@ "page-index-values-integration-ethereum-label": "Yakabataidzwa", "page-index-values-integration-ethereum-content-0": "NeEthereum unokwanisa kushandisazve akaundi imwe chete pamaapu ese. Hapana kunyoresa kwakazvimirira kunodiwa.", "page-index-values-decentralization-legacy-label": "Inobataidza zvose panzvimbo imwe chete", - "page-index-values-decentralization-legacy-content-0": "Varidzi vemakambani ndevanazvinamabhizimisi vakazvimirira nevane masheya. Vanhu ava ndivo vane simba pamafambisirwo ebhizimisi uye ndivo vanowana zvakawanda kubva pakubudirira kwaro.", + "page-index-values-decentralization-legacy-content-0": "Varidzi vemakambani ndevanazvina mabhizimisi vakazvimirira nevane masheya. Vanhu ava ndivo vane simba pamafambisirwo ebhizimisi uye ndivo vanowana zvakawanda kubva pakubudirira kwaro.", "page-index-values-decentralization-ethereum-label": "Haina kuisa zvose panzvimbo imwe", "page-index-values-decentralization-ethereum-content-0": "Kungofanana neindaneti, Ethereum haisi yemunhu. Inogoveranwa uye kuumbwa zvakafanana nevese. Hapana muridzi mumwe chete wayo anoidzora.", "page-index-values-censorship-legacy-label": "Inoongorora zvakaita mashoko", diff --git a/src/intl/sn/page-wallets-find-wallet.json b/src/intl/sn/page-wallets-find-wallet.json new file mode 100644 index 00000000000..653be24cc36 --- /dev/null +++ b/src/intl/sn/page-wallets-find-wallet.json @@ -0,0 +1,88 @@ +{ + "page-find-wallet-clear": "Bvisa ma-filter", + "page-find-wallet-desc-2": "Hauzivi kuti chikwama chii?", + "page-find-wallet-desc-2-wallets-link": "Dzidza pamusoro pezvikwama.", + "page-find-wallet-description": "Zvikwama zvinochengeta nekuita zvine chokuita nekuchinjaniswa kweETH yako. Unogona kusarudza kubva mune zvigadzirwa zvakawanda zvinonyatsoenderana nezvaunoda.", + "page-find-wallet-last-updated": "Chakapedzisira kuvandudzwa", + "page-find-wallet-meta-description": "Tsvaga uenzanise zvikwana zveEthereum zvichienderana nemaficha aunoda.", + "page-find-wallet-meta-title": "Mundandanda weHomwe dzeEthereum | ethereum.org", + "page-find-wallet-title": "Sarudza chikwama chako", + "page-find-wallet-try-removing": "Edza kubvisa ficha imwe chete kana mbiri", + "page-stake-eth": "Isa mukando weETH", + "page-find-wallet-open-source": "Kwazvinobva kwakavhurikira wese", + "page-find-wallet-open-source-desc": "Software inogona kuwanikwa nevese inotendera munhu ani naani zvake kuti aongorore kuvimbika nekuchengetedzeka kweapu", + "page-find-wallet-self-custody": "Kuzvichengetera", + "page-find-wallet-non-custodial": "Kuva muridzi pachako", + "page-find-wallet-non-custodial-desc": "Zvikwama zvisingadzore makiyi ako akavandiswa", + "page-find-wallet-hardware-wallet-support": "Tsigiro yechikwama chinobatika pamuchina", + "page-find-wallet-hardware-wallet-support-desc": "Zvikwama zvinokwanisa kudyidzana nechikwama chemuchina chinobatika kuitira chengetedzo iri nani", + "page-find-wallet-rpc-importing": "Kupinzwa kweRPC", + "page-find-wallet-rpc-importing-desc": "Zvikwama zvinotsigira maRPC akazvimiririra kuti zvikwanise kubatana nema-nodes akasiyana-siyana kana mamwe madandemutande", + "page-find-wallet-nft-support": "Kutsigirwa kwemaNFT", + "page-find-wallet-nft-support-desc": "Zvikwama zvinotsigira kuona nekudyidzana kwako nemaNFT ako", + "page-find-wallet-connect-to-dapps": "Konekita kumadapps", + "page-find-wallet-connect-to-dapps-desc": "Unokwanisa kukonekita kumaapu anotsigira WallettConnect kana mamwewo", + "page-find-wallet-staking": "Mikando", + "page-find-wallet-staking-desc": "Isa mukando weETH kubva muchikwama zvakananga", + "page-find-wallet-swaps": "Kuchinjanisa", + "page-find-wallet-swaps-desc": "Chinjanisa matokens eERC-20 zvakananga muchikwama", + "page-find-wallet-layer-2": "Layer 2", + "page-find-wallet-layer-2-desc": "Zvikwama zvnotsigira ma layer 2 paEthereum", + "page-find-wallet-gas-fee-customization": "Kugadziriswa kwemutengo wegasi", + "page-find-wallet-gas-fee-customization-desc": "Sarudza huwandu hwegasi (mari yekutanga, mari yekuchimbidzisa basa nemari yakawandisa ingabhadharwa)", + "page-find-wallet-ens-support": "Kutsigirwa kweENS", + "page-find-wallet-ens-support-desc": "Zvikwama zvinotsigira Ethereum Name Service (ENS)", + "page-find-wallet-token-importing": "Kuuyiswa kwematokeni", + "page-find-wallet-token-importing-desc": "Pinza token ipi zvayo yemhando yeERC-20 kuti uishandise muchikwama chako", + "page-find-wallet-buy-crypto": "Tenga crypto", + "page-find-wallet-buy-crypto-desc": "Tenga crypto nemari yemazuva ese zvakananga muchikwama\n*Chenjera: mvumo yekutenga crypto inogona kuenderana nenzvimbo", + "page-find-wallet-sell-for-fiat": "Tengesa uwane mari yemazuva ese", + "page-find-wallet-sell-for-fiat-desc": "Tengesa crypto uchiwana mari zvakananga muchikwama imomo\n* Chenjera: mvumo dzekuburitsa crypto dzinosiyana nzvimbo nenzvimbo", + "page-find-wallet-multisig": "Multisig", + "page-find-wallet-multisig-desc": "Homwe dzinoda vanosainira vakati wandei kuti vabvumire kuti kutengeserana kuitike", + "page-find-wallet-social-recovery": "Kudzikinura homwe yemagariro", + "page-find-wallet-social-recovery-desc": "Homwe dzinotendera vachengeti kuti vachinge makiyi ekusainisa homwe dzemhando yemasmart contract", + "page-find-wallet-languages-supported": "Rubatsiro rwemitauro", + "page-find-wallet-languages-search-language": "Tsvaga mutauro", + "page-find-wallet-popular-languages": "Zvakakurumbira", + "page-find-wallet-features": "Features", + "page-find-wallet-security": "Chengetedzo", + "page-find-wallet-smart-contract": "Kondirakiti yeSmart", + "page-find-wallet-advanced": "Zvakadzama", + "page-find-wallet-check-out": "Tarisa uone", + "page-find-wallet-info-updated-on": "zivo yakavandudzwa musi wa", + "page-find-wallet-showing-all-wallets": "Kuratidza zvikwama zvese", + "page-find-wallet-wallets": "zvikwama", + "page-find-wallet-iOS": "iOS", + "page-find-wallet-android": "Android", + "page-find-wallet-linux": "Linux", + "page-find-wallet-macOS": "macOS", + "page-find-wallet-windows": "Windows", + "page-find-wallet-chromium": "Chromium", + "page-find-wallet-firefox": "Firefox", + "page-find-wallet-hardware": "Zvishandiswa zvinobatika", + "page-find-wallet-new-to-crypto-title": "Mutsva kucrypto", + "page-find-wallet-new-to-crypto-desc": "Mushandisi mutsva ari kutsbaga chikwama chevachangotanga.", + "page-find-wallet-nfts-title": "NFTs", + "page-find-wallet-nfts-desc": "Zvikwama zvakatarisa kutsigira maNFT.", + "page-find-wallet-hodler-title": "Zvenguva yakareba", + "page-find-wallet-hodler-desc": "Kuchengeta matokens zvakarivara uchishandisa homwe zvemichina inobatika.", + "page-find-wallet-finance-title": "Zvemari", + "page-find-wallet-finance-desc": "Zvikwama zvakatarisa kushandiswa kwakanyanya kwemaapu eDeFi.", + "page-find-wallet-developer-title": "Vavaki", + "page-find-wallet-developer-desc": "Homwe dzinobatsira kugadzirwa nekuongororwa kwema dapps.", + "page-find-wallet-active": "active", + "page-find-wallet-footnote-1": "Zvikwama zvakanyorwa papeji rino hazvina kupihwa rusimbiso ruri pamutemo uye zvakanyorerwa kupa dzidziso nefundo chete.", + "page-find-wallet-footnote-2": "Zvakanyorwa kutsanangura pamusoro pezvikwama zvakapihwa nevagadziri vezvikwama zvacho pauzima.", + "page-find-wallet-footnote-3": "Tinowedzera zvishandiswa papeji rino tichishandisa zviri muurongwa hwedu.. Kana muchida kuti tiwedzere chimwe chikwama, nyoresai pa Github.", + "page-find-wallet-mobile": "Zvepafoni", + "page-find-wallet-desktop": "Desktop", + "page-find-wallet-browser": "Browser", + "page-find-wallet-device": "Chishandiswa", + "page-find-wallet-reset-filters": "Dzorera pakutanga", + "page-find-wallet-visit-website": "Shanyira website", + "page-find-wallet-social-links": "Hochekoche", + "page-find-wallet-empty-results-title": "Hapana zvawanikwa", + "page-find-wallet-empty-results-desc": "Hapana chikwama chinoringana nezvamasarudza, edzai kubvisa zvimwe.", + "page-find-wallet-see-wallets": "Tarisa zvikwama" +} diff --git a/src/intl/sn/page-what-is-ethereum.json b/src/intl/sn/page-what-is-ethereum.json index 86fd1ba63d1..6f90ec0e15c 100644 --- a/src/intl/sn/page-what-is-ethereum.json +++ b/src/intl/sn/page-what-is-ethereum.json @@ -34,9 +34,12 @@ "page-what-is-ethereum-cryptocurrency-tab-content-2": "Chikonzero upfumi hwakaita sebitcoin ne ether huchinzi \"macryptocurrencies\" inyaya kekuti kuchengetedzeka kweruzivo nehupfumi hwako hwunotsigirwa necryptography, kwete nekuvimba nesangano kana kambani kuti ichaita basa yakavimbika.", "page-what-is-ethereum-cryptocurrency-tab-content-3": "Ethereum ine cryptocurrency yayo inonzi ether (ETH), inoshandiswa kubhadhara kuita zvimwe zviitwa padandemutande. Inokwanisa kutumirwa kune vamwe vanhu kana kutsinhaniswa nemamwe matokens paEthereum. Ether yakakosha nekuti inoshandiswa kubhadhara kutambwa svomho dzemichina zvinodikwana kuvaka nekutekenya zvishandiswa nemasangano pamusoro peEthereum.", "page-what-is-ethereum-summary-title": "Pfupiso", - "page-what-is-ethereum-summary-desc-1": "Ethereum inetiweki yemakombiyuta ari pasi rose anotevedza chitsama cherairo chinonzi Ethereum protocol. Dandemutande reEthereum ndiro hwaro remapoka, zvishandiswa, masangano nehupfumi hwepamichina inogona kuvakwa nekushandiswa naani zvake.", - "page-what-is-ethereum-summary-desc-2": "Unogona kugadzira akaundi yeEthereum uri kupi zvako, panguva ipi zvayo uye unokwanisa kuongorora munda wezvishandiswa kana kuvaka yako. Mongo weshanduko iyi ndeyekuti unokwanisa kutia zvese izvi usina vezvemitemo vanokwanisa kushandura mitemo kana kukudzivisa kushandisa.", - "page-what-is-ethereum-summary-desc-3": "Ramba uchiverenga udzidze zvakawanda…", + "page-what-is-ethereum-summary-desc-1": "Ethereum chikuva chikuru chine mapurogiramu uye ma-blockchains akasiyana-siyana, ese achisundwa nemashandiro eEthereum.", + "page-what-is-ethereum-summary-desc-2": "Uku kushandidzana kwakadzama kunosimbaradza hunyanzvi hwekutanga kugadzirwa kwezvinhu uye mapurogiramu akawanda nemasevhisi anokwanisa kushandiswa nemunhu wese-wese.", + "page-what-is-ethereum-summary-bullet-1": "Ndeepachena uye achiwanisa pasi rose maakaundi eEthereum", + "page-what-is-ethereum-summary-bullet-2": "Akavanzika, hapadiwe mashoko ane chokuita nemunhu", + "page-what-is-ethereum-summary-bullet-3": "Pasina zvirambidzo chero munhu anogona kupinda", + "page-what-is-ethereum-summary-bullet-4": "Hapana kambani inoritaura kana kuronga zvichauya Ethereum", "page-what-is-ethereum-btc-eth-diff-title": "Ndeupi mutsauko uri pakati peEthereum neBitcoin?", "page-what-is-ethereum-btc-eth-diff-1": "Ichitangwa muna 2015, Ethereum yakavakwa panheyo dzekubudirira kweBitcoin asi iine mitsauko mikuru yakati wandei.", "page-what-is-ethereum-btc-eth-diff-2": "Dzese dziviri dzinokutendera kushandisa mari yedhigitari pasina vanofambisa zvekubhadharwa kana mabhanga. Asi Ethereum inokwanisa kupurogiramwa, naizvozvo unokwanisa kuvaka nekutepfenyura maapu panetiweki yayo.", From 49c1e6bcaa8a73f0cc4a06056554f903f273c707 Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Thu, 1 May 2025 04:46:11 +0000 Subject: [PATCH 063/106] chore: import translations for sw --- src/intl/sw/common.json | 25 ++++++++++++++++------- src/intl/sw/page-get-eth.json | 4 ++-- src/intl/sw/page-index.json | 10 +++++---- src/intl/sw/page-wallets-find-wallet.json | 8 ++++---- src/intl/sw/page-what-is-ethereum.json | 9 +++++--- 5 files changed, 36 insertions(+), 20 deletions(-) diff --git a/src/intl/sw/common.json b/src/intl/sw/common.json index 854c6e359a7..1dc743bce5d 100644 --- a/src/intl/sw/common.json +++ b/src/intl/sw/common.json @@ -11,6 +11,7 @@ "adding-products": "Kuongeza Bidhaa", "adding-staking-products": "Kuongeza bidhaa za hisa", "adding-wallets": "Kuongeza pochi", + "ai-agents": "Wakala za AI", "aria-toggle-menu-button": "Badilisha kitufe cha orodha", "aria-toggle-search-button": "Badilisha kitufe cha utafutaji", "beacon-chain": "Mlolongo wa beacon", @@ -74,9 +75,9 @@ "eips": "Pendekezo la uboreshaji wa Ethereum", "energy-consumption": "Matumizi ya nishati ya Ethereum", "enterprise": "Biashara", - "enterprise-mainnet": "Taasisi - Mainnet (Inayofanya kazi sasa na moja kwa moja) Ethereum", + "enterprise-mainnet": "Taasisi - Mainnet (Inayofanya kazi sasa na moja kwa moja) Etherium", "enterprise-menu": "Oradha ya biashara", - "enterprise-private": "Taasisi - Ethereum binafsi", + "enterprise-private": "Taasisi - Etherium binafsi", "esp": "Programu ya usaidizi kwenye ikolojia", "eth-current-price": "Bei ya sasa ya ETH(USD)", "ethereum": "Ethereum", @@ -97,6 +98,7 @@ "ethereum-upgrades": "Visasisho vya Ethereum", "ethereum-wallets": "Pochi za Ethereum", "ethereum-whitepaper": "Karatasi nyeupe ya Ethereum", + "events": "Matukio", "feedback-card-prompt-article": "Je! makala haya yamekusaidia?", "feedback-card-prompt-page": "Je! ukurasa huu umekusaidia?", "feedback-card-prompt-tutorial": "Umesaidika na mafunzo haya?", @@ -202,7 +204,7 @@ "layer-2": "Safu ya 2", "learn": "Jifunze", "learn-by-coding": "Jifunze kwa usimbuaji", - "learn-hub": "Ethereum: Mwongozo Kamili wa Kujifunza", + "learn-hub": "Kitovu cha kujifunza", "learn-menu": "Orodha ya kujifunza", "learn-more": "Jifunze zaidi", "less": "Kidogo", @@ -219,6 +221,7 @@ "nav-about-description": "Mradi wa huria wa umma kwa ajili ya jamii ya Ethereum", "nav-advanced-description": "Pata maelezo kuhusu mada nzito zaidi", "nav-advanced-label": "Ya hali ya juu", + "nav-ai-agents-description": "Pekua mazingira ya ulimwengu wa mawakala wa AI kwenye ethereum", "nav-basics-description": "Elewa mambo ya msingi ya Ethereum", "nav-basics-label": "Mambo ya msingi", "nav-bridges-description": "Web3 imekua mfumo wa ikolojia wa minyororo bloku ya msingi ya L1 na programu za uboreshaji wa L2", @@ -247,8 +250,9 @@ "nav-eip-label": "Pendekezo la uboreshaji wa Ethereum", "nav-emerging-description": "Fahamu visa vingine vipya zaidi vya matumizi vya Ethereum", "nav-emerging-label": "Kesi za matumizi zinazoibuka", - "nav-enterprise-description": "Programu za biashara za Ethereum", "nav-ethereum-org-description": "Tovuti hii inachochewa kijamii—jiunge nasi na uchangie pia", + "nav-ethereum-networks": "Mitandao ya Ethereum", + "nav-ethereum-networks-description": "Miamala ya bei nafuu na ya haraka ya Ethereum", "nav-ethereum-wallets-description": "Programu ya kutumia akaunti yako ya Ethereum", "nav-events-description": "Ugatuaji na uhuru wa kushiriki kwa kila mtu", "nav-events-irl-description": "Kila mwezi kuna matukio makubwa ya Ethereum ya ana kwa ana au mtandaoni", @@ -274,18 +278,23 @@ "nav-guides-label": "Jinsi ya kutumia miongozo", "nav-history-description": "Ratiba ya migawanyiko na taarifa zote kuu", "nav-history-label": "Historia ya kiufundi ya Ethereum", - "nav-layer-2-description": "Miamala nafuu na ya haraka ya Ethereum", "nav-learn-by-coding-description": "Zana za kukusaidia kujaribu Ethereum", "nav-local-env-description": "Chagua na ufungue bloku ya maendeleo yako ya Ethereum", "nav-mainnet-description": "Programu za mnyororo wa bloku za biashara zinaweza kuundwa kwenye Mtandao Mkuu wa umma wa Ethereum", + "nav-networks-home-description": "Miamala ya bei nafuu na ya haraka ya Ethereum", + "nav-networks-introduction-description": "Ethereum imepanuka kuwa mtandao wa mitandao", + "nav-networks-explore-networks-label": "Chunguza mitandao", + "nav-networks-explore-networks-description": "Chagua mtandao wa kutumia", + "nav-networks-learn-label": "Mitandao ya safu ya pili ni nini?", + "nav-networks-learn-description": "Jifunze kwa nini tunazihitaji", "nav-nft-description": "Njia ya kuwakilisha kitu chochote cha pekee kama mali zilizojengwa na Ethereum", "nav-open-research-description": "Moja ya nguvu za msingi za Ethereum ni jamii yake ya utafiti wa mara kwa mara", "nav-open-research-label": "Tafiti zilizowazi", "nav-overview-description": "Masuala yote yanayohusu elimu ya Ethereum", "nav-overview-label": "Muhtasari", "nav-participate-overview-description": "Muhtasari kuhusu jinsi ya kushiriki", + "nav-payments-description": "Malipo ya Ethereum yanabadilisha jinsi tunavyotuma na kupokea fedha", "nav-primary": "Msingi", - "nav-private-description": "Rasilimali za msanidi wa Ethereum ya biashara ya kibinafsi", "nav-quizzes-description": "Fahamu jinsi ya kuelewa vyema Ethereum na cryptocurrency", "nav-quizzes-label": "Jaribu maarifa yako", "nav-refi-description": "Mfumo wa uchumi mbadala uliojengwa kwa kanuni endelevu", @@ -306,6 +315,7 @@ "nav-roadmap-security": "Usalama bora", "nav-roadmap-security-description": "Kuhakiklisha kuwa Ethereum inaendelea kuwa imara kwa aina zote za mashambulizi siku zijazo", "nav-roadmap-security-label": "Usalama ulioimarishwa", + "nav-roadmap-user-experience": "Uzoefu bora wa mtumiaji", "nav-roadmap-ux-description": "Kutumia Ethereum kunahitaji kurahisishwa", "nav-roadmap-ux-label": "Uzoefu bora wa mtumiaji", "nav-run-a-node-description": "Kuwa huru kikamilifu huku ukisaidia kulinda mtandao", @@ -355,6 +365,7 @@ "page-last-updated": "Ukurasa ulisasishwa mwisho", "participate": "Shiriki", "participate-menu": "Menyu ya kushiriki", + "payments-page": "Malipo", "pbs": "Utengano wa mpendekezaji-mjenzi", "pools": "Usimamishaji wa hisa wa kundi", "privacy-policy": "Sera ya faragha", @@ -431,4 +442,4 @@ "wrapped-ether": "Ether iliyofungamanishwa", "yes": "Ndiyo", "zero-knowledge-proofs": "Ushahidi usio na utambuzi" -} \ No newline at end of file +} diff --git a/src/intl/sw/page-get-eth.json b/src/intl/sw/page-get-eth.json index 7a63c176587..755872d6537 100644 --- a/src/intl/sw/page-get-eth.json +++ b/src/intl/sw/page-get-eth.json @@ -1,5 +1,5 @@ { - "page-get-eth-article-keeping-crypto-safe": "Funguo za kuweka crypto salama yako", + "page-get-eth-article-keeping-crypto-safe": "Funguo za kuweka crypto yako salama", "page-get-eth-article-protecting-yourself": "Jihadhari wewe mwenyewe na fedha zako", "page-get-eth-article-store-digital-assets": "Jinsi ya kuhifadhi mali ya dijiti kwenye Ethereum", "page-get-eth-article-protecting-yourself-desc": "MyCrypto", @@ -46,7 +46,7 @@ "page-get-eth-hero-image-alt": "Pata picha ya shujaa wa ETH", "page-get-eth-keep-it-safe": "Weka ETH yako salama", "page-get-eth-meta-description": "Jinsi ya kununua ETH kulingana na eneo unaloishi na ushauri wa jinsi ya kuiangalia.", - "page-get-eth-meta-title": "Jinsi ya kupata ETH", + "page-get-eth-meta-title": "Jinsi ya kununua Ethereum (ETH)", "page-get-eth-need-wallet": "Utahitaji pochi ili kutumia DEX.", "page-get-eth-new-to-eth": "Je wewe ni mgeni katika ETH? Huu hapa ni muhtasari wa kuanzia.", "page-get-eth-other-cryptos": "Nunua kwa kutumia kripto nyingine", diff --git a/src/intl/sw/page-index.json b/src/intl/sw/page-index.json index 271b4d886dd..53edfb9caec 100644 --- a/src/intl/sw/page-index.json +++ b/src/intl/sw/page-index.json @@ -2,8 +2,9 @@ "page-index-activity-description": "Shughuli kutoka kwa mitandao yote ya Ethereum", "page-index-activity-tag": "Shughuli", "page-index-activity-header": "Mfumo ikolojia wenye nguvu zaidi", + "page-index-activity-action": "Matukio zaidi ya Ethereum", "page-index-bento-header": "Njia mpya ya kutumia mtandao", - "page-index-bento-assets-action": "Zaidi juu ya NFTs", + "page-index-bento-assets-action": "Maelezo zaidi kuhusu NFT", "page-index-bento-assets-content": "Sanaa, vyeti au hata mali isiyohamishika inaweza kuwa tokeni. Kitu chochote kinaweza kuwa tokeni inayoweza kuuzwa. Umiliki ni wa umma na unaweza kuthibitishwa.", "page-index-bento-assets-title": "Mtandao wa mali", "page-index-bento-dapps-action": "Vinjari programu", @@ -65,7 +66,7 @@ "page-index-learn-tag": "Jifunze", "page-index-learn-header": "Elewa Ethereum", "page-index-meta-description": "Ethereum ni jukwaa la kimataifa, ambalo halitegemei wamiliki wa madaraka kwa pesa na aina mpya za programu. Kwenye Ethereum, unaweza kuandika msimbo unaodhibiti pesa, na kuunda programu zinazoweza kupatikana mahali popote ulimwenguni.", - "page-index-meta-title": "Mwongozo kamili wa Ethereum", + "page-index-meta-title": "Ethereum.org: Mwongozo kamili wa Ethereum", "page-index-network-stats-total-eth-staked": "Thamani ya kulinda Ethereum", "page-index-network-stats-tx-cost-description": "Gharama wastani wa muamala", "page-index-network-stats-tx-day-description": "Muamala ndani ya saa 24 zilizopita", @@ -85,6 +86,7 @@ "page-index-values-description": "Kuwa sehemu ya mabadiliko ya kidijitali", "page-index-values-header": "Mtandao unabadilika", "page-index-values-legacy": "Urithi", + "page-index-values-tag": "Maadili", "page-index-values-ownership-legacy-label": "Umiliki uliowekwa vikwazo", "page-index-values-ownership-legacy-content-0": "Ukiwa na benki ya kawaida au jukwaa la mitandao ya kijamii, mali na data yako inadhibitiwa na shirika. Unazitegemea kwa ufikiaji na udhibiti.", "page-index-values-ownership-legacy-content-1": "Wanaweza kutumia data yako kwa njia ambazo huenda hukubaliani nazo, kulingana na sera zao.", @@ -98,7 +100,7 @@ "page-index-values-privacy-legacy-content-0": "Hatuwezi kutarajia serikali, mashirika, au mashirika mengine makubwa yasiyo na uso kutupatia ufaragha kutokana na manufaa yao.", "page-index-values-privacy-legacy-content-1": "Programu nyingi hukusanya taarifa zako za kibinafsi iwezekanavyo ili ziweze kukulenga kwa uuzaji unaokufaa.", "page-index-values-privacy-ethereum-label": "Faragha iliyoelekezwa", - "page-index-values-privacy-ethereum-content-0": "Jumuiya ya Ethereum inaheshimu faragha. Una haki ya kutumia programu bila kujidhihirisha au maelezo yako ya mawasiliano.", + "page-index-values-privacy-ethereum-content-0": "Jamii ya Ethereum inatilia maanani faragha. Una haki ya kutumia mfumo bila ya kutokuwa na hofu ya stara ya habari za utambulisho wako, au habari zako za mawasiliano.", "page-index-values-integration-legacy-label": "Kugawanyika", "page-index-values-integration-legacy-content-0": "Programu nyingi hukusukuma kuunda akaunti tofauti, hivyo kufanya iwe vigumu kukumbuka maelezo yako yote ya kuingia na kusajili.", "page-index-values-integration-ethereum-label": "Jumuishi", @@ -110,7 +112,7 @@ "page-index-values-censorship-legacy-label": "Inayoweza kudhibitiwa", "page-index-values-censorship-legacy-content-0": "Majukwaa ya kisasa na sheria zake mara nyingi hubadilika. Wanaweza kuathiriwa na washikadau, usimamizi wa kampuni au hata utawala dhalimu.", "page-index-values-censorship-ethereum-label": "Inapinga Udhibiti", - "page-index-values-censorship-ethereum-content-0": "Upinzani wa ukandamizaji ni kipau mbele ya Ethereum. Utendaji wake unapaswa kuwa wa haki kila wakati na bila upendeleo.", + "page-index-values-censorship-ethereum-content-0": "Upinzani wa ukandamizaji ni kipaumbele cha Ethereum. Utendaji wake unapaswa kuwa wa haki kila wakati na bila upendeleo.", "page-index-values-censorship-ethereum-content-1": "Ethereum haiwezi kudhibitiwa na taifa lolote, kampuni au mtu binafsi.", "page-index-values-open-legacy-label": "Imefungwa kwa wengi", "page-index-values-open-legacy-content-0": "Makampuni hulinda mali zao za kiakili na hazishiriki. Hakuna mtu nje ya kampuni anayeweza kuona jinsi mambo yanavyofanya kazi, kurekebisha matatizo, au kufanya maboresho. Ni vigumu kwa watu kuunda zana mpya au kubinafsisha.", diff --git a/src/intl/sw/page-wallets-find-wallet.json b/src/intl/sw/page-wallets-find-wallet.json index aacd4846658..46c5269f305 100644 --- a/src/intl/sw/page-wallets-find-wallet.json +++ b/src/intl/sw/page-wallets-find-wallet.json @@ -5,7 +5,7 @@ "page-find-wallet-description": "Pochi hutunza na kuhamisha ETH yako. unaweza kuchagua kutoka katika bidhaa nyingi zinazofaa katika uhitaji wako.", "page-find-wallet-last-updated": "Usasisho wa mwisho", "page-find-wallet-meta-description": "Tafuta na linganisha pochi za Ethereum na huduma unazohitaji.", - "page-find-wallet-meta-title": "Tafuta pochi ya Ethereum", + "page-find-wallet-meta-title": "Orodha ya Pochi za Ethereum | ethereum.org", "page-find-wallet-title": "Chagua pochi yako", "page-find-wallet-try-removing": "Jaribu kuondoa kipengele kimoja ama viwili", "page-stake-eth": "Weka ETH", @@ -61,17 +61,17 @@ "page-find-wallet-chromium": "Kromium", "page-find-wallet-firefox": "FireFox", "page-find-wallet-hardware": "Maunzi", - "page-find-wallet-personas-title": "Je unatazama nini?", "page-find-wallet-new-to-crypto-title": "Kripto mpya", "page-find-wallet-new-to-crypto-desc": "Mtumiaji wa kwanza kutafuta pochi kwa wanao anza.", "page-find-wallet-nfts-title": "NFTs", "page-find-wallet-nfts-desc": "Mikoba inayolenga usaidizi wa NFT.", - "page-find-wallet-hodler-title": "Muda mrefu", + "page-find-wallet-hodler-title": "Kwa muda mrefu", "page-find-wallet-hodler-desc": "Ishara za kupita zilizo na pochi za vifaa.", "page-find-wallet-finance-title": "Fedha", "page-find-wallet-finance-desc": "Pochi inayozingatia zaidi matumizi ya programu gatuzi.", "page-find-wallet-developer-title": "Msanidi programu", "page-find-wallet-developer-desc": "Pochi zinazosaidia kuunda na kujaribu D'apps.", + "page-find-wallet-active": "inatumika\n", "page-find-wallet-footnote-1": "Pochi zilizoorodheshwa hapa sio ridhaa rasmi, bali kwa kutoa taarifa peke yake.", "page-find-wallet-footnote-2": "Maelezo yametolewa na kazi za pochi zenyewe.", "page-find-wallet-footnote-3": "Tunaongeza bidhaa kwenye ukurasa huu kwa msingi wa sera za orodha. Kama ungependa tuongeze pochi, andika suala kwenye GitHub.", @@ -80,7 +80,7 @@ "page-find-wallet-browser": "Kivinjari", "page-find-wallet-device": "Kifaa", "page-find-wallet-reset-filters": "Kuweka upya", - "page-find-wallet-visit-website": "Tembelea tovuti", + "page-find-wallet-visit-website": "Tembelea tovuti hii", "page-find-wallet-social-links": "Viunganishi", "page-find-wallet-empty-results-title": "Hakuna matokeo", "page-find-wallet-empty-results-desc": "Hakuna pochi linalo endana na matwaka yako, jaribu kuondoa baadhi ya chaguzi.", diff --git a/src/intl/sw/page-what-is-ethereum.json b/src/intl/sw/page-what-is-ethereum.json index 0d31434e065..09cd9f5e150 100644 --- a/src/intl/sw/page-what-is-ethereum.json +++ b/src/intl/sw/page-what-is-ethereum.json @@ -34,9 +34,12 @@ "page-what-is-ethereum-cryptocurrency-tab-content-2": "Sababu ya mali kama bitcoin na ether kuitwa “sarafu za dijitali” ni kwamba usalama wa data na mali yako umehakikishwa na kriptographia, si kwa kuamini taasisi wala shirika kutenda kwa uaminifu.", "page-what-is-ethereum-cryptocurrency-tab-content-3": "Ethereum inayo sarafu ya kidijitali iitwayo ether (ETH), ambayo inayotumika kulipia shughuli fulani kwenye mtandao. Inaweza kuhamishwa kwa watumizi wengine ama kubadilishwa ili kupata tokeni nyingine kwenye Ethereum. Ether ni ya kipekee kwa sababu inaweza kutumika kulipa hesabu zinazohitajika kuunda na kuendesha programu na mashirika kwenye Ethereum.", "page-what-is-ethereum-summary-title": "Muhtasari", - "page-what-is-ethereum-summary-desc-1": "Ethereum ni mtandao wa kompyuta zilizo ulimwenguni kote ambazo hufuata sheria ziitwazo itifaki ya Ethereum. Mtandao wa Ethereum hutumika kam msingi wa jamii, programu, mashirika na mali za dijitali ambazo yeyote anaweza kuunda na kutumia.", - "page-what-is-ethereum-summary-desc-2": "Unaweza kufungua akaunti ya Ethereum ukiwa kokote na wakati wowote na kugundua programu nyingi duniani au uunde zako. Msingi wa ubunifu ni kuwa unaweza kufanya haya yote pasipo na mamlaka makuu ambayo yanaweza kubadili sheria ama kukuzuia idhini ya ufikiaji.", - "page-what-is-ethereum-summary-desc-3": "Endelea kusoma ili ujue zaidi…", + "page-what-is-ethereum-summary-desc-1": "Ethereum ni jukwaa kuu la maelfu ya programu na mnyororo wa bloku, yote ikifanya kazi kwa itifaki ya Ethereum.", + "page-what-is-ethereum-summary-desc-2": "Mfumo wa ikolojia hii inachochea uvumbuzi na aina mbalimbali za programu na huduma zisizo za utegemezi.", + "page-what-is-ethereum-summary-bullet-1": "Ya bure na ya ulimwenguEthereum Akaunti", + "page-what-is-ethereum-summary-bullet-2": "Fasili binafsi, Haitajiwi taarifa binafsi", + "page-what-is-ethereum-summary-bullet-3": "Bila vikwazo mtu yeyote anaweza kushiriki", + "page-what-is-ethereum-summary-bullet-4": "hakuna kampuni inayomiliki ethereum au kuamua mustakabali wake", "page-what-is-ethereum-btc-eth-diff-title": "Kuna tofauti gani kati ya Ethereum na Bitcoin?", "page-what-is-ethereum-btc-eth-diff-1": "Ethereum ilizinduliwa mwaka 2015 na ilijengwa juu ya teknolojia ya Bitcoin ikileta mabadiliko makubwa kwenye teknolojia ya blokucheni.", "page-what-is-ethereum-btc-eth-diff-2": "Unaweza kutumia pesa za dijiti bila watoa malipo ama benki kwenye Ethereum na Bitcoin. Ila Ethereum inaweza kusanidiwa, kwahiyo unaweza kujenga na kutuma(zindua) programu ama (app) zilizogatuliwa kwenye mtandao wa Ethereum.", From 80d97dc75ec7cec49764c4c0025c975f5b421e0c Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Thu, 1 May 2025 04:46:15 +0000 Subject: [PATCH 064/106] chore: import translations for te --- src/intl/te/common.json | 3 ++ src/intl/te/page-get-eth.json | 7 ++- src/intl/te/page-index.json | 3 +- src/intl/te/page-wallets-find-wallet.json | 63 ++++++++++++----------- 4 files changed, 43 insertions(+), 33 deletions(-) diff --git a/src/intl/te/common.json b/src/intl/te/common.json index c17aaf02774..5ffe40c1611 100644 --- a/src/intl/te/common.json +++ b/src/intl/te/common.json @@ -11,6 +11,7 @@ "adding-products": "ప్రోడక్ట్‌లను జోడించడం", "adding-staking-products": "స్టేకింగ్ ఉత్పత్తులను జోడించడం", "adding-wallets": "వాలెట్‌లను జోడించడం", + "ai-agents": "AI ఏజెంట్లు", "aria-toggle-menu-button": "మెను బటన్", "aria-toggle-search-button": "వెతుకటుకు బటన్", "beacon-chain": "బీకన్ చైన్", @@ -97,6 +98,7 @@ "ethereum-upgrades": "Ethereum నవీకరణలు", "ethereum-wallets": "Ethereum వాలెట్‌లు", "ethereum-whitepaper": "Ethereum వైట్‌పేపర్", + "events": "సంఘటనలు", "feedback-card-prompt-article": "ఈ ఆర్టికల్ ఉపయోగపడిందా?", "feedback-card-prompt-page": "ఈ పేజీ ఉపయోగపడిందా?", "feedback-card-prompt-tutorial": "ఈ ట్యుటోరియల్ ఉపయోగపడిందా?", @@ -219,6 +221,7 @@ "nav-about-description": "Ethereum కమ్యూనిటీ కోసం ఒక పబ్లిక్, ఓపెన్ సోర్స్ ప్రాజెక్ట్", "nav-advanced-description": "మరింత క్లిష్టమైన టాపిక్‌లను నేర్చుకోండి", "nav-advanced-label": "అధునాతనం", + "nav-ai-agents-description": "Ethereumలో AI ఏజెంట్ల ప్రపంచాన్ని అన్వేషించండి", "nav-basics-description": "Ethereum యొక్క ప్రాథమికాంశాలను అర్థం చేసుకోండి", "nav-basics-label": "బేసిక్స్", "nav-bridges-description": "ప్రాథమిక L1 బ్లాక్‌చెయిన్‌లు మరియు L2 స్కేలింగ్ సొల్యూషన్‌ల యొక్క పర్యావరణ వ్యవస్థగా వెబ్ 3 అభివృద్ధి చెందింది", diff --git a/src/intl/te/page-get-eth.json b/src/intl/te/page-get-eth.json index 3fc3be9a7cd..d9b83a0222a 100644 --- a/src/intl/te/page-get-eth.json +++ b/src/intl/te/page-get-eth.json @@ -11,9 +11,10 @@ "page-get-eth-community-safety": "సెక్యూరిటీ మీద కమ్యూనిటీ చేసిన పోస్టులు", "page-get-eth-description": "Ethereum ఏ ఒక్క సంస్థచే నియంత్రించబడదు - ఇది వికేంద్రీకరించబడింది.", "page-get-eth-dex": "డిసెంట్రలైజ్డ్ బజారులు (DEXs)", - "page-get-eth-dex-desc": "మీకు మరింత నియంత్రణ కావాలంటే, స్మార్ట్ కాంట్రాక్టులను ఉపయోగించి ETH కొనుగోలు చేయండి. ఒక DEXతో మీరు మీ నిధులపై నియంత్రణను కేంద్రీకృత కంపెనీకి ఇవ్వకుండా డిజిటల్ ఆస్తులను ట్రేడ్ చేయవచ్చు.", + "page-get-eth-dex-desc": "మీకు మరింత నియంత్రణ కావాలంటే, స్మార్ట్ కాంట్రాక్ట్‌లను ఉపయోగించి ETHను కొనుగోలు చేయండి. DEXతో మీరు కేంద్రీకృత కంపెనీకి మీ నిధుల నియంత్రణను ఇవ్వకుండా డిజిటల్ ఆస్తులను వ్యాపారం చేయవచ్చు.", "page-get-eth-peers": "మీ తోటివారి నుండి ETHని స్వీకరించండి", "page-get-eth-peers-desc": "మీరు Ethereum ఖాతాను కలిగి ఉన్న తర్వాత, ETH (మరియు ఇతర టోకెన్‌లు) పీర్-టు-పీర్‌లను పంపడం మరియు స్వీకరించడం ప్రారంభించడానికి మీరు మీ అడ్రస్ పంచుకోవడం మాత్రమే.", + "page-get-eth-staking": "స్టేకింగ్ రివార్డులు", "page-get-eth-staking-desc": "మీరు ఇప్పటికే కొంత ETHని కలిగి ఉన్నట్లయితే, మీరు వాలిడేటర్ నోడ్‌ని అమలు చేయడం ద్వారా మరింత సంపాదించవచ్చు. ETHలో ఈ వెరిఫికేషన్ పనిని చేసినందుకు మీకు డబ్బు లభిస్తుంది.", "page-get-eth-earn": "ETH సంపాదించండి", "page-get-eth-earn-desc": "మీరు DAOలు లేదా క్రిప్టోలో చెల్లించే కంపెనీల కోసం పని చేయడం, బహుమతులను గెలుచుకోవడం, సాఫ్ట్‌వేర్ బగ్‌లను కనుగొనడం మరియు మరిన్ని చేయడం ద్వారా ETHని సంపాదించవచ్చు.", @@ -24,6 +25,7 @@ "page-get-eth-dexs-desc": "డిసెంట్రలైజ్డ్ ఎక్స్చేంజి‌లు అంటే ETH మరియు ఇతర టోకెన్స్‌కు ఓపెన్ బజార్లు. అవి కొనేవాళ్ళని మరియు అమ్మేవాళ్ళని డైరెక్ట్‌గా కలుపుతుంది.", "page-get-eth-dexs-desc-2": "లావాదేవీలో నిధులను రక్షించడానికి విశ్వసనీయ మూడవ పక్షాన్ని ఉపయోగించకుండా, వారు కోడ్‌ని ఉపయోగిస్తారు. చెల్లింపు హామీ ఇచ్చినప్పుడు మాత్రమే విక్రేత యొక్క ETH బదిలీ చేయబడుతుంది. ఈ రకమైన కోడ్‌ని స్మార్ట్ కాంట్రాక్ట్ అంటారు.", "page-get-eth-dexs-desc-3": "అంటే కేంద్రీకృత ప్రత్యామ్నాయాల కంటే తక్కువ భౌగోళిక పరిమితులు ఉన్నాయి. ఎవరైనా మీకు కావలసినదాన్ని విక్రయిస్తుంటే మరియు మీరు అందించగల చెల్లింపు పద్ధతిని అంగీకరిస్తున్నట్లయితే, మీరు వెళ్ళడం మంచిది.", + "page-get-eth-dexs-desc-4": "గమనిక: చాలా డెక్స్‌లు పని చేయడానికి రాప్‌డ్ ఈథర్(WETH) ను ఉపయోగిస్తాయి. రాప్‌డ్ ఈథర్ గురించి మరింత తెలుసుకోండి.", "page-get-eth-do-not-copy": "ఉదాహరణ: దీనిని కాపీ చేయవద్దు", "page-get-eth-exchanges-disclaimer": "మేము మీ ఇన్ఫర్మేషన్‌ను మానుల్‌గా సేకరించాము, మీకు ఏమైనా తప్పుగా అనిపిస్తే, మాకు తెలియజేయండి", "page-get-eth-exchanges-empty-state-text": "మీరు ఉపయోగించగల ఎక్స్ఛేంజీల జాబితాను చూడటానికి మీ నివాస దేశాన్ని నమోదు చేయండి", @@ -44,7 +46,7 @@ "page-get-eth-hero-image-alt": "ETH హీరో ఇమేజ్‌ను పొందండి", "page-get-eth-keep-it-safe": "మీ ETHను సేఫ్‌గా ఉంచడం", "page-get-eth-meta-description": "మీరు ఉన్న ప్రదేశం బట్టి ETHని ఎలా కొనాలి మరియు దానిని ఎలా జాగ్రత్త గా చూస్కోవాలి.", - "page-get-eth-meta-title": "ETH పొందడం ఎలా", + "page-get-eth-meta-title": "Ethereum(ETH)ను ఎలా కొనుగోలు చేయాలి", "page-get-eth-need-wallet": "మీకు ఒక వాలెట్ అవసరం DEX వాడటానికి.", "page-get-eth-new-to-eth": "ETHకి కొత్తనా? ఇక్కడ మీరు ఎలా మొదలు పెట్టాలి అన్నది పూర్తిగా ఉంది.", "page-get-eth-other-cryptos": "ఇతర క్రిప్టో తో కొనండి", @@ -72,5 +74,6 @@ "page-get-eth-your-address-desc": "మీరు ఒక వాలెట్ ని డౌన్లోడ్ చేయగానే ఆ వాలెట్ మీకు ఒక పబ్లిక్ ETH అడ్రస్ ని నియమిస్తుంది. ఆ అడ్రస్ ఎలా ఉంటాది అంటే:", "page-get-eth-your-address-desc-3": "ఇది ఒక email అడ్రస్ లా అనుకోండి, కాని మెయిల్స్ కు బదులుగా అది ETH ని అందుకుంటుంది. మీరు ETH ని ఏదైనా బజారు నుంచి మీ వాలెట్ కి పంపించాలి అనుకుంటే మీరు మీ అడ్రస్ ని డెస్టినేషన్ గా పెట్టాలి. మీ అడ్రస్ ని రెండు సార్లు చెక్ చేసి పంపించండి!", "page-get-eth-your-address-wallet-link": "వాల్లెట్స్‌ని చెక్ చేయండి ", + "listing-policy-raise-issue-link": "సమస్యను లేవనెత్తండి", "page-find-wallet-last-updated": "చివరగా అప్‌డేట్ చేయబడింది" } diff --git a/src/intl/te/page-index.json b/src/intl/te/page-index.json index 46d61bb2e03..823b389220b 100644 --- a/src/intl/te/page-index.json +++ b/src/intl/te/page-index.json @@ -2,6 +2,7 @@ "page-index-activity-description": "అన్ని Ethereum నెట్‌వర్క్‌ల నుండి యాక్టివిటీ", "page-index-activity-tag": "యాక్టివిటీ", "page-index-activity-header": "బలమైన పర్యావరణ వ్యవస్థ", + "page-index-activity-action": "ఇంకెక్కువ Ethereum కార్యకలాపం", "page-index-bento-header": "ఇంటర్నెట్‌ను ఉపయోగించడానికి కొత్త మార్గం", "page-index-bento-assets-action": "NFTలపై మరింత సమాచారము", "page-index-bento-assets-content": "కళ, సర్టిఫికెట్లు లేదా రియల్ ఎస్టేట్ కూడా టోకనైజ్ చేయబడవచ్చు. ఏదైనా ట్రేడబుల్ టోకెన్ కావచ్చు. యాజమాన్యం పబ్లిక్ మరియు ధృవీకరించదగినది.", @@ -111,7 +112,7 @@ "page-index-values-censorship-legacy-label": "సెన్సార్ చేయదగినది", "page-index-values-censorship-legacy-content-0": "ఆధునిక ప్లాట్‌ఫారమ్‌లు మరియు దాని నియమాలు తరచుగా మారుతూ ఉంటాయి. వారు వాటాదారులు, కంపెనీ నిర్వహణ లేదా అణచివేత పాలనల ద్వారా కూడా ప్రభావితమవుతారు.", "page-index-values-censorship-ethereum-label": "సెన్సార్షిప్-రెసిస్టెంట్", - "page-index-values-censorship-ethereum-content-0": "అణచివేతకు ప్రతిఘటన Ethereum యొక్క ప్రధాన ప్రధానమైనది. దీని కార్యాచరణ ఎల్లప్పుడూ న్యాయంగా మరియు నిష్పక్షపాతంగా ఉండాలి.", + "page-index-values-censorship-ethereum-content-0": "అణచివేతకు ప్రతిఘటన Ethereum యొక్క ప్రధాన సూత్రం. దీని కార్యాచరణ ఎల్లప్పుడూ న్యాయంగా మరియు నిష్పక్షపాతంగా ఉండాలి.", "page-index-values-censorship-ethereum-content-1": "Ethereum ఏ దేశ రాష్ట్రం, కంపెనీ లేదా వ్యక్తిచే నియంత్రించబడదు.", "page-index-values-open-legacy-label": "చాలా వరకు మూసివేయబడింది", "page-index-values-open-legacy-content-0": "కంపెనీలు తమ మేధో సంపత్తిని రక్షిస్తాయి మరియు భాగస్వామ్యం చేయవు. కంపెనీ వెలుపలి ఎవరూ విషయాలు ఎలా పని చేస్తారో చూడలేరు, సమస్యలను పరిష్కరించలేరు లేదా మెరుగుదలలు చేయలేరు. వ్యక్తులు కొత్త సాధనాలను సృష్టించడం లేదా అనుకూలీకరించడం కష్టం.", diff --git a/src/intl/te/page-wallets-find-wallet.json b/src/intl/te/page-wallets-find-wallet.json index 291a05e0ea5..631764fef37 100644 --- a/src/intl/te/page-wallets-find-wallet.json +++ b/src/intl/te/page-wallets-find-wallet.json @@ -1,41 +1,39 @@ { - "page-find-wallet-clear": "ఫిల్టర్లు క్లియర్ చేయండి", - "page-find-wallet-desc-2": "కాబట్టి మీకు కావలసిన ఫీచర్ల ఆధారంగా మీ వాలెట్‌ని ఎంచుకోండి.", - "page-find-wallet-description": "వాలెట్లలో మీరు ఇష్టపడే అనేక ఐచ్ఛిక ఫీచర్లు ఉన్నాయి.", + "page-find-wallet-clear": "ఫిల్టర్లను తీసివేయండి", + "page-find-wallet-desc-2": "వాలెట్ అంటే ఏమిటో తెలియదా?", + "page-find-wallet-desc-2-wallets-link": "వాలెట్ల గురించి నేర్చుకోండి.", + "page-find-wallet-description": "వాలెట్‌లు మీ ETHను నిల్వ చేస్తాయి మరియు లావాదేవీలను చేస్తాయి. మీరు మీ అవసరాలకు అనుగుణంగా వివిధ రకాల ఉత్పత్తుల నుండి ఎంచుకోవచ్చు.", "page-find-wallet-last-updated": "చివరగా అప్‌డేట్ చేయబడింది", "page-find-wallet-meta-description": "మీరు కోరుకునే ఫీచర్ల ఆధారంగా క్లియర్ వాలెట్లను కనుగొనండి మరియు పోల్చండి.", - "page-find-wallet-meta-title": "Ethereum వాలెట్ కనుగొనండి", - "page-find-wallet-title": "ఒక వాలెట్‌ను కనుగొనండి", + "page-find-wallet-meta-title": "Ethereum వాలెట్ల జాబితా | ethereum.org", + "page-find-wallet-title": "మీ వాలెట్ ఎంచుకోండి", "page-find-wallet-try-removing": "ఒకటి లేదా రెండు ఫీచర్లను తొలగించడానికి ప్రయత్నించండి", - "page-find-wallet-choose-to-compare": "పోల్చడానికి ఎంచుకోండి", "page-stake-eth": "స్టేక్ ETH", + "page-find-wallet-open-source": "మూలం తెరవండి", "page-find-wallet-open-source-desc": "ఓపెన్ సోర్స్ సాఫ్ట్‌వేర్ అప్లికేషన్ యొక్క సమగ్రత మరియు భద్రతను ఆడిట్ చేయడానికి ఎవరినైనా అనుమతిస్తుంది", - "page-find-wallet-non-custodial": "నాన్-కస్టోడియల్", + "page-find-wallet-self-custody": "స్వీయ అదుపు", + "page-find-wallet-non-custodial": "వ్యక్తి గత యాజమాన్యం", "page-find-wallet-non-custodial-desc": "మీ ప్రైవేట్ కీలను నియంత్రించని వాలెట్లు", "page-find-wallet-hardware-wallet-support": "హార్డ్‌వేర్ వాలెట్ సపోర్ట్", "page-find-wallet-hardware-wallet-support-desc": "మెరుగైన భద్రత కొరకు హార్డ్‌వేర్ వాలెట్‌కు కనెక్ట్ చేయగల వాలెట్లు", - "page-find-wallet-walletconnect": "WalletConnect", - "page-find-wallet-walletconnect-desc": "డాప్‌లకు కనెక్ట్ చేయడానికి WalletConnectకు మద్దతు ఇచ్చే వాలెట్‌లు", "page-find-wallet-rpc-importing": "RPC ఇంపోర్టింగ్", "page-find-wallet-rpc-importing-desc": "విభిన్న నోడ్లు లేదా నెట్‌వర్క్‌లకు కనెక్ట్ చేయడం కొరకు కస్టమ్ RPC ఎండ్ పాయింట్లను సపోర్ట్ చేసే వాలెట్లు", "page-find-wallet-nft-support": "NFT సపోర్ట్", "page-find-wallet-nft-support-desc": "మీ NFTలను వీక్షించడానికి మరియు ఇంటరాక్ట్ అవ్వడానికి మద్దతు ఇచ్చే వాలెట్లు", "page-find-wallet-connect-to-dapps": "dappsకి కనెక్ట్ చేయండి", - "page-find-wallet-connect-to-dapps-desc": "Ethereum నెట్‌వర్క్‌పై రూపొందించిన అప్లికేషన్లకు కనెక్ట్ అయ్యే వాలెట్లు", + "page-find-wallet-connect-to-dapps-desc": "మీరు WalletConnect లేదా ప్రత్యామ్నాయానికి మద్దతు ఇచ్చే అప్లికేషన్‌లకు కనెక్ట్ చేయవచ్చు", "page-find-wallet-staking": "స్టేకింగ్", "page-find-wallet-staking-desc": "వాలెట్ నుండి నేరుగా ETH స్టేక్", "page-find-wallet-swaps": "స్వాప్స్", "page-find-wallet-swaps-desc": "ERC-20 టోకెన్లను నేరుగా వాలెట్లో మార్చండి", "page-find-wallet-layer-2": "లేయర్ 2", "page-find-wallet-layer-2-desc": "Ethereum లేయర్ 2sకు సపోర్ట్ చేసే వాలెట్లు", - "page-find-wallet-gas-fee-customization": "గ్యాస్ రుసుము అనుకూలీకరణ", + "page-find-wallet-gas-fee-customization": "గ్యాస్ ఫీజు కస్టమైజేషన్\n", "page-find-wallet-gas-fee-customization-desc": "మీ గ్యాస్ మొత్తాలను అనుకూలీకరించండి (ప్రాథమిక రుసుము, ప్రాధాన్యత రుసుము మరియు గరిష్ట రుసుము)", "page-find-wallet-ens-support": "ENS సపోర్ట్", "page-find-wallet-ens-support-desc": "Ethereum నేమ్ సర్వీస్ (ENS) కు మద్దతు ఇచ్చే వాలెట్లు", "page-find-wallet-token-importing": "టోకెన్ దిగుమతి", "page-find-wallet-token-importing-desc": "వాలెట్లో ఉపయోగించడం కొరకు ఏదైనా ERC-20 టోకెన్‌ను ఇంపోర్ట్ చేయండి", - "page-find-wallet-fee-optimization": "ఫీజు ఆప్టిమైజేషన్", - "page-find-wallet-fee-optimization-desc": "ఆప్టిమైజ్డ్ గ్యాస్ ఫీజుల కొరకు టైప్ 2 లావాదేవీలకు మద్దతు ఇవ్వండి మరియు ఉపయోగించని గ్యాస్ కొరకు ఫీజు రీఫండ్లు", "page-find-wallet-buy-crypto": "క్రిప్టో కొనండి", "page-find-wallet-buy-crypto-desc": "నేరుగా వాలెట్‌లో ఫియట్‌తో క్రిప్టోను కొనుగోలు చేయండి\n *గమనిక: క్రిప్టో కొనుగోలు ప్రాంతం నిర్దిష్టంగా ఉండవచ్చు", "page-find-wallet-sell-for-fiat": "ఫియట్‌కి అమ్మండి", @@ -44,8 +42,13 @@ "page-find-wallet-multisig-desc": "లావాదేవీని ఆమోదించడం కొరకు బహుళ సంతకాలు అవసరమయ్యే వాలెట్లు", "page-find-wallet-social-recovery": "సోషల్ రికవరీ", "page-find-wallet-social-recovery-desc": "స్మార్ట్ కాంట్రాక్ట్ వాలెట్‌ల కోసం సంతకం చేసే కీని మార్చడానికి గార్డియన్‌లను అనుమతించే వాలెట్‌లు", - "page-find-wallet-token-support": "టోకెన్ సపోర్ట్", + "page-find-wallet-languages-supported": "భాషా మద్దతు", + "page-find-wallet-languages-search-language": "భాషను అన్వేషించు", + "page-find-wallet-popular-languages": "అత్యంత జనాదరణ పొందినది", + "page-find-wallet-features": "లక్షణాలు", + "page-find-wallet-security": "భద్రత", "page-find-wallet-smart-contract": "స్మార్ట్ కాంట్రాక్ట్", + "page-find-wallet-advanced": "అధునాతనం", "page-find-wallet-check-out": "తనిఖీ చేయండి", "page-find-wallet-info-updated-on": "సమాచారం అప్‌డేట్ చేయబడింది", "page-find-wallet-showing-all-wallets": "అన్ని వాలెట్లను చూపిస్తోంది", @@ -57,29 +60,29 @@ "page-find-wallet-windows": "Windows", "page-find-wallet-chromium": "క్రోమియం", "page-find-wallet-firefox": "Firefox", - "page-find-wallet-hardware-desc": "హార్డ్‌వేర్ వాలెట్‌లు", - "page-find-wallet-new-to-crypto-title": "క్రిప్టోకి కొత్త", - "page-find-wallet-new-to-crypto-desc": "మీరు మీ మొదటి వాలెట్ కోసం చూస్తున్న మొదటిసారి వినియోగదారు", + "page-find-wallet-hardware": "హార్డ్‌వేర్", + "page-find-wallet-new-to-crypto-title": "క్రిప్టోలో కొత్త", + "page-find-wallet-new-to-crypto-desc": "మొదటిసారి వినియోగదారు బిగినర్ వాలెట్ కోసం చూస్తున్నారు.", "page-find-wallet-nfts-title": "NFTs", - "page-find-wallet-nfts-desc": "మీరు NFTల గురించి ఆలోచించే వ్యక్తి మరియు NFT సపోర్ట్ తో కూడిన వాలెట్‌ను కోరుకుంటున్నారు", - "page-find-wallet-hodler-title": "Hodler", - "page-find-wallet-hodler-desc": "మీరు టోకెన్లు ఉన్న వ్యక్తి మరియు వాటిని తాకడానికి ఇష్టపడరు", - "page-find-wallet-finance-desc": "మీరు DeFiని ఉపయోగించే వ్యక్తి మరియు DeFi అప్లికేషన్లకు కనెక్ట్ కావడానికి మిమ్మల్ని అనుమతించే వాలెట్‌ను కోరుకుంటున్నారు", + "page-find-wallet-nfts-desc": "NFT మద్దతుపై దృష్టి కేంద్రీకరించే వాలెట్లు.", + "page-find-wallet-hodler-title": "దీర్ఘకాలిక", + "page-find-wallet-hodler-desc": "హార్డ్‌వేర్ వాలెట్‌లతో నిష్క్రియ టోకెన్ హోల్డింగ్.", + "page-find-wallet-finance-title": "ఫైనాన్స్", + "page-find-wallet-finance-desc": "DeFi యాప్‌లను తరచుగా ఉపయోగించడంపై వాలెట్‌లు దృష్టి సారిస్తున్నాయి.", "page-find-wallet-developer-title": "డెవలపర్", - "page-find-wallet-developer-desc": "మీరు డెవలపర్ మరియు dappsను డెవలప్ చేయడం మరియు పరీక్షించడంలో సహాయపడటానికి వాలెట్ అవసరం", - "page-find-wallet-persona-desc": "మీ యూజర్ రకానికి సరిపోయే ప్రొఫైల్‌ను ఎంచుకోండి మరియు వాలెట్ జాబితాను ఫిల్టర్ చేయండి", - "page-find-wallet-profile-filters": "ప్రొఫైల్ ఫిల్టర్లు", - "page-find-wallet-feature-filters": "ఫీచర్ ఫిల్టర్లు", + "page-find-wallet-developer-desc": "డాప్‌లను అభివృద్ధి చేయడంలో మరియు పరీక్షించడంలో సహాయపడే వాలెట్‌లు.", + "page-find-wallet-active": "యాక్టివ్", "page-find-wallet-footnote-1": "ఈ పేజీలో జాబితా చేయబడిన వాలెట్లు అధికారిక ఆమోదాలు కావు మరియు సమాచార ప్రయోజనాల కోసం మాత్రమే అందించబడ్డాయి.", "page-find-wallet-footnote-2": "వారి వివరణలు వాలెట్ ప్రాజెక్ట్‌ల ద్వారా అందించబడ్డాయి.", "page-find-wallet-footnote-3": "మేము మా జాబితా విధానంలోని ప్రమాణాల ఆధారంగా ఈ పేజీకి ఉత్పత్తులను జోడిస్తాము. మేము వాలెట్‌ని జోడించాలని మీరు కోరుకుంటే, గిట్హబ్ లో ఒక సమస్యను లేవనెత్తండి.", "page-find-wallet-mobile": "మొబైల్", - "page-find-wallet-mobile-desc": "మొబైల్ యాప్‌లతో వాలెట్‌లు", "page-find-wallet-desktop": "డెస్క్‌టాప్", - "page-find-wallet-desktop-desc": "డెస్క్‌టాప్ యాప్‌లతో వాలెట్‌లు", "page-find-wallet-browser": "బ్రౌజర్", - "page-find-wallet-browser-desc": "బ్రౌజర్ ఎక్స్ టెన్షన్ లతో వాలెట్ లు", "page-find-wallet-device": "పరికరం", - "page-find-choose-to-compare": "పోల్చడానికి ఎంచుకోండి", - "page-find-wallet-choose-features": "ఫీచర్లు ఎంచుకోండి" + "page-find-wallet-reset-filters": "రీసెట్", + "page-find-wallet-visit-website": "వెబ్‌సైట్‌ను సందర్శించండి", + "page-find-wallet-social-links": "లింకులు", + "page-find-wallet-empty-results-title": "ఫలితాలు లేవు", + "page-find-wallet-empty-results-desc": "మీ ప్రమాణాలకు సరిపోలే వాలెట్‌లు ఏవీ లేవు, కొన్ని ఫిల్టర్‌లను తొలగించి ప్రయత్నించండి.", + "page-find-wallet-see-wallets": "వాలెట్‌లను చూడండి" } From 6eb377b0a5594f0054510cc37f362c8805f4960d Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Thu, 1 May 2025 04:46:18 +0000 Subject: [PATCH 065/106] chore: import translations for th --- src/intl/th/common.json | 22 ++++++++--- src/intl/th/page-get-eth.json | 36 +++++++++++------- src/intl/th/page-index.json | 6 ++- src/intl/th/page-wallets-find-wallet.json | 46 ++++++++++++++--------- src/intl/th/page-what-is-ethereum.json | 43 ++++++++++++++------- 5 files changed, 102 insertions(+), 51 deletions(-) diff --git a/src/intl/th/common.json b/src/intl/th/common.json index 437e9aa1b5d..fa593002f77 100644 --- a/src/intl/th/common.json +++ b/src/intl/th/common.json @@ -11,6 +11,7 @@ "adding-products": "การเพิ่มผลิตภัณฑ์", "adding-staking-products": "เพิ่มแสต็กของผลิตภัณฑ์", "adding-wallets": "เพิ่มกระเป๋าเงิน", + "ai-agents": "ตัวแทน AI", "aria-toggle-menu-button": "ปุ่มเปิด-ปิดเมนู", "aria-toggle-search-button": "ปุ่มเปิด-ปิดการค้นหา", "beacon-chain": "Beacon Chain", @@ -97,6 +98,7 @@ "ethereum-upgrades": "การอัปเกรดอีเธอเรียม", "ethereum-wallets": "วอลเล็ทอีเธอเรียม", "ethereum-whitepaper": "เอกสารไวท์เปเปอร์เกี่ยวกับอีเธอเรียม", + "events": "กิจกรรม", "feedback-card-prompt-article": "ได้ประโยชน์จากบทความนี้หรือไม่", "feedback-card-prompt-page": "ได้ประโยชน์จากหน้านี้หรือไม่", "feedback-card-prompt-tutorial": "ได้ประโยชน์จากบทสอนใช้งานนี้หรือไม่", @@ -202,7 +204,7 @@ "layer-2": "เลเยอร์ 2", "learn": "เรียนรู้", "learn-by-coding": "เรียนรู้จากการเขียนโค้ด", - "learn-hub": "อีเธอเรียม: คู่มือการเรียนรู้ที่ครอบคลุม", + "learn-hub": "ศูนย์การเรียนรู้", "learn-menu": "เมนูเรียนรู้", "learn-more": "เรียนรู้เพิ่มเติม", "less": "น้อยลง", @@ -219,6 +221,7 @@ "nav-about-description": "โครงการโอเพ่นซอร์สสาธารณะสำหรับชุมชนอีเธอเรียม", "nav-advanced-description": "เรียนรู้หัวข้อที่ซับซ้อนมากขึ้น", "nav-advanced-label": "ขั้นสูง", + "nav-ai-agents-description": "สำรวจโลกของตัวแทน AI บนอีเธอเรียม", "nav-basics-description": "ทำความเข้าใจปัจจัยพื้นฐานของอีเธอเรียม", "nav-basics-label": "พื้นฐาน", "nav-bridges-description": "Web3 ได้พัฒนาไปสู่ระบบนิเวศของบล็อกเชน L1 หลักและโซลูชันการปรับขนาด L2", @@ -247,8 +250,9 @@ "nav-eip-label": "ข้อเสนอการปรับปรุงอีเธอเรียม", "nav-emerging-description": "ทำความรู้จักกรณีการใช้งานใหม่อื่นๆ สำหรับอีเธอเรียม", "nav-emerging-label": "กรณีการใช้งานที่เกิดขึ้นใหม่", - "nav-enterprise-description": "แอปพลิเคชันธุรกิจสำหรับอีเธอเรียม", "nav-ethereum-org-description": "เว็บไซต์นี้ขับเคลื่อนโดยชุมชน—เข้าร่วมกับเราและมีส่วนร่วมกัน", + "nav-ethereum-networks": "เครือข่ายอีเธอเรียม", + "nav-ethereum-networks-description": "การทำธุรกรรมสำหรับอีเธอเรียมที่ราคาถูกกว่าและเร็วกว่า", "nav-ethereum-wallets-description": "แอปสำหรับโต้ตอบกับบัญชีอีเธอเรียมของคุณ", "nav-events-description": "การกระจายศูนย์และเสรีภาพในการเข้าร่วมสำหรับทุกคน", "nav-events-irl-description": "ทุกเดือนจะมีกิจกรรมอีเธอเรียมที่สำคัญทั้งแบบตัวต่อตัวและออนไลน์", @@ -274,18 +278,24 @@ "nav-guides-label": "วิธีการแนะนำ", "nav-history-description": "ไทม์ไลน์ของฟอร์กและการอัปเดตที่สำคัญทั้งหมด", "nav-history-label": "ประวัติทางเทคนิคของอีเธอเรียม", - "nav-layer-2-description": "การทำธุรกรรมสำหรับอีเธอเรียมที่ราคาถูกกว่าและเร็วกว่า", "nav-learn-by-coding-description": "เครื่องมือที่ช่วยให้คุณทดลองกับอีเธอเรียมได้", "nav-local-env-description": "เลือกและตั้งค่าสแต็กการพัฒนาอีเธอเรียมของคุณ", "nav-mainnet-description": "สามารถสร้างแอปพลิเคชันบล็อกเชนระดับองค์กรขึ้นบนเครือข่ายหลักของอีเธอเรียมสาธารณะได้", + "nav-networks-home-description": "การทำธุรกรรมสำหรับอีเธอเรียมที่ราคาถูกกว่าและเร็วกว่า", + "nav-networks-introduction-label": "บทนำ", + "nav-networks-introduction-description": "อีเธอเรียมได้ขยายตัวเป็นเครือข่ายของเครือข่าย", + "nav-networks-explore-networks-label": "สำรวจเครือข่าย", + "nav-networks-explore-networks-description": "เลือกเครือข่ายที่ต้องการใช้", + "nav-networks-learn-label": "เครือข่ายเลเยอร์ 2 คืออะไร", + "nav-networks-learn-description": "เรียนรู้ว่าทำไมเราจึงต้องการเครือข่ายเหล่านี้", "nav-nft-description": "วิธีการนำเสนอสิ่งที่เป็นเอกลักษณ์ในฐานะสินทรัพย์ที่ใช้อีเธอเรียม", "nav-open-research-description": "จุดแข็งที่สำคัญประการหนึ่งของอีเธอเรียม คือชุมชนการวิจัยที่กระตือรือร้น", "nav-open-research-label": "เปิดงานวิจัย", "nav-overview-description": "ทุกสิ่งเกี่ยวกับการศึกษาอีเธอเรียม", "nav-overview-label": "ภาพรวม", "nav-participate-overview-description": "ภาพรวมเกี่ยวกับวิธีการเข้าร่วม", + "nav-payments-description": "การชำระเงินด้วยอีเธอเรียมกำลังเปลี่ยนแปลงวิธีที่เราส่งและรับเงิน", "nav-primary": "หลัก", - "nav-private-description": "ทรัพยากรสำหรับนักพัฒนาสำหรับ Ethereum องค์กรเอกชน", "nav-quizzes-description": "ค้นหาว่าคุณเข้าใจอีเธอเรียมและสกุลเงินดิจิทัลได้ดีเพียงใด", "nav-quizzes-label": "ทดสอบความรู้ของคุณ", "nav-refi-description": "ระบบเศรษฐกิจทางเลือกที่สร้างขึ้นบนหลักการฟื้นฟู", @@ -306,6 +316,7 @@ "nav-roadmap-security": "ความปลอดภัยที่มากกว่า", "nav-roadmap-security-description": "ทำให้มั่นใจว่าอีเธอเรียมยังมีความยืดหยุ่นต่อการโจมตีทุกประเภทในอนาคต", "nav-roadmap-security-label": "ความปลอดภัยที่ปรับปรุงให้ดีขึ้น", + "nav-roadmap-user-experience": "ประสบการณ์การใช้งานที่ดีขึ้น", "nav-roadmap-ux-description": "การใช้งานอีเธอเรียมจำเป็นต้องทำให้ง่ายขึ้น", "nav-roadmap-ux-label": "ประสบการณ์การใช้งานที่ดีขึ้น", "nav-run-a-node-description": "มีเสถียรภาพอย่างเต็มที่ในขณะที่ช่วยรักษาความปลอดภัยให้เครือข่าย", @@ -355,6 +366,7 @@ "page-last-updated": "หน้าปรับปรุงล่าสุด", "participate": "เข้าร่วม", "participate-menu": "เมนูการมีส่วนร่วม", + "payments-page": "การชำระเงิน", "pbs": "การแยกผู้เสนอและผู้พัฒนา", "pools": "การ Stake แบบกองรวม", "privacy-policy": "นโยบายความเป็นส่วนตัว", @@ -431,4 +443,4 @@ "wrapped-ether": "อีเธอร์ห่อหุ้ม", "yes": "ใช่", "zero-knowledge-proofs": "การพิสูจน์ความจริงโดยไม่เปิดเผยข้อมูล" -} \ No newline at end of file +} diff --git a/src/intl/th/page-get-eth.json b/src/intl/th/page-get-eth.json index 0dbada650d1..bc19b8dbeda 100644 --- a/src/intl/th/page-get-eth.json +++ b/src/intl/th/page-get-eth.json @@ -9,23 +9,33 @@ "page-get-eth-cex-desc": "ตลาดแลกเปลี่ยนคริปโตคือธุรกิจที่ทำให้คุณสามารถซื้อเหรียญคริปโตได้ด้วยสกุลเงินทั่วไป โดยตลาดนี้จะเป็นผู้ดูแล ETH ที่คุณซื้อไว้จนกว่าคุณจะโอนเหรียญออกไปยังวอลเล็ตที่คุณเป็นคนจัดการ", "page-get-eth-checkout-dapps-btn": "ลองใช้ dApp", "page-get-eth-community-safety": "บทความเกี่ยวกับความปลอดภัยโดยชุมชน", - "page-get-eth-description": "อีเธอเรียมหรือ ETH เป็นระบบไร้ศูนย์กลางที่ไม่ได้ถูกควบคุมโดยรัฐบาลหรือบริษัทใด นี่จึงแปลว่า ETH เปิดกว้างให้ใครๆ ก็สามารถใช้งานได้", + "page-get-eth-description": "อีเธอเรียมไม่ได้ถูกควบคุมโดยองค์กรใดองค์กรเดียว - มันเป็นระบบกระจายศูนย์", "page-get-eth-dex": "ระบบแลกเปลี่ยนแบบไร้ศูนย์กลาง (DEX)", - "page-get-eth-dex-desc": "หากคุณอยากจะมีอำนาจควบคุมเงินของคุณมากขึ้น คุณควรจะซื้อ ETH แบบบุคคลต่อบุคคล (P2P) แพลตฟอร์ม DEX จะทำให้คุณเทรดได้โดยไม่ต้องมอบอำนาจการดูแลเงินให้บริษัทตัวกลาง", + "page-get-eth-dex-desc": "หากคุณต้องการควบคุมมากขึ้น ให้ซื้อ ETH โดยใช้ สัญญาอัจฉริยะ ด้วยแพลตฟอร์ม DEX คุณสามารถซื้อขายสินทรัพย์ดิจิทัลได้โดยไม่ต้องมอบอำนาจควบคุมเงินของคุณให้กับบริษัทศูนย์กลาง", + "page-get-eth-peers": "รับ ETH จากเพื่อนๆของคุณ", + "page-get-eth-peers-desc": "เมื่อคุณมีบัญชีอีเธอเรียม ทั้งหมดที่คุณต้องทำคือแบ่งปันที่อยู่ของคุณเพื่อเริ่มต้นการส่งและรับ ETH (และโทเค็นอื่น ๆ) ระหว่างเพื่อนๆ ได้ทันที", + "page-get-eth-staking": "รางวัล staking", + "page-get-eth-staking-desc": "หากคุณมี ETH บางส่วนแล้ว คุณสามารถรับเพิ่มเติมได้โดยการเรียกใช้โหนดตัวตรวจสอบความถูกต้อง คุณจะได้รับการจ่ายสำหรับการทำงานตรวจสอบความถูกต้องนี้ใน ETH", + "page-get-eth-earn": "รับ ETH", + "page-get-eth-earn-desc": "คุณสามารถรับ ETH จากการทำงานสำหรับ DAO หรือบริษัทที่จ่ายด้วยเหรียญคริปโต การชนะรางวัล การค้นหาข้อบกพร่องในซอฟต์แวร์หรืออื่นๆ", + "page-get-eth-daos-link-desc": "เรียนรู้เกี่ยวกับ DAO", + "page-get-eth-cex-link-desc": "ดูรายการของการแลกเปลี่ยน", + "page-get-eth-staking-link-desc": "เรียนรู้เพิ่มเติมเกี่ยวกับ staking", "page-get-eth-dexs": "ระบบแลกเปลี่ยนแบบไร้ศูนย์กลาง (DEX)", "page-get-eth-dexs-desc": "ระบบแลกเปลี่ยนแบบไร้ศูนย์กลาง คือตลาดสำหรับแลกเปลี่ยน ETH และโทเคนอื่นๆ อย่างเสรี โดยเชื่อมผู้ซื้อกับผู้ขายโดยตรง", "page-get-eth-dexs-desc-2": "DEX เลือกใช้โค้ด แทนการไว้ใจบุคคลที่สามให้เป็นผู้เก็บรักษาเงินระหว่างทำธุรกรรม โดย ETH ของผู้ขายจะถูกโอนออกก็ต่อเมื่อการชำระเงินได้รับยืนยันแล้วเท่านั้น โค้ดลักษณะนี้รู้จักกันในนามสัญญาอัจฉริยะ", - "page-get-eth-dexs-desc-3": "นี่แปลว่า DEX มีข้อจำกัดทางภูมิศาสตร์น้อยกว่าบรรดาตัวเลือกแบบรวมศูนย์ ถ้ามีใครเสนอขายสิ่งที่คุณต้องการ และยินดีรับชำระเงินผ่านช่องทางที่คุณมี แค่นี้คุณใช้งานได้แล้ว DEX ทำให้คุณสามารถซื้อ ETH ด้วยโทเคนอื่นๆ ชำระเงินผ่าน PayPal หรือจะส่งเงินสดให้กันแบบซึ่งๆ ก็ได้", + "page-get-eth-dexs-desc-3": "นั่นหมายความว่ามีข้อจำกัดทางภูมิศาสตร์น้อยกว่าทางเลือกที่เป็นส่วนกลาง ถ้ามีคนขายสิ่งที่คุณต้องการและยอมรับวิธีการชำระเงินที่คุณมี แค่นี้คุณก็ใช้งานได้แล้ว", + "page-get-eth-dexs-desc-4": "หมายเหตุ: เด็กซ์หลายรายการมักจะใช้อีเธอร์แบบห่อหุ้ม (WETH) เรียนรู้เพิ่มเติมเกี่ยวกับอีเธอร์แบบห่อหุ้ม", "page-get-eth-do-not-copy": "ตัวอย่าง: ห้ามคัดลอก", "page-get-eth-exchanges-disclaimer": "พวกเรารวบรวมข้อมูลนี้ด้วยตนเอง ถ้าคุณพบความผิดพลาดบางอย่าง แจ้งให้เราทราบได้ที่", - "page-get-eth-exchanges-empty-state-text": "กรอกประเทศที่คุณอยู่อาศัย เพื่อดูรายชื่อวอลเล็ตและตลาดแลกเปลี่ยนคริปโตที่คุณสามารถซื้อ ETH ได้", + "page-get-eth-exchanges-empty-state-text": "กรุณากรอกประเทศที่พำนักของคุณเพื่อดูรายการของการแลกเปลี่ยนที่คุณอาจสามารถใช้ได้", "page-get-eth-exchanges-except": "ยกเว้น", "page-get-eth-exchanges-header": "คุณอาศัยอยู่ในประเทศอะไร", "page-get-eth-exchanges-header-exchanges": "ตลาดแลกเปลี่ยน", "page-get-eth-exchanges-header-wallets": "วอลเล็ท", - "page-get-eth-exchanges-intro": "ตลาดแลกเปลี่ยนและวอลเล็ตมีข้อจำกัดว่าขายคริปโตในพื้นที่ใดได้บ้าง", + "page-get-eth-exchanges-intro": "ตลาดแลกเปลี่ยนสินทรัพย์มีข้อจำกัดด้านพื้นที่ให้บริการขายคริปโต รายชื่อที่แสดงนี้เป็นเพียงการระบุบริการที่คาดว่าเปิดให้บริการในแต่ละประเทศ การปรากฏในรายชื่อนี้ไม่ได้หมายความว่าได้รับการรับรอง — ผู้ใช้งานควรศึกษาข้อมูลเพิ่มเติมด้วยตนเอง!", "page-get-eth-exchanges-no-exchanges": "ขออภัย เราไม่ทราบว่าคุณสามารถซื้อ ETH ได้จากตลาดแลกเปลี่ยนใดในประเทศนี้ หากคุณทราบ แจ้งเราได้ที่", - "page-get-eth-exchanges-no-exchanges-or-wallets": "ขออภัย เราไม่ทราบว่าคุณสามารถซื้อ ETH ได้จากตลาดแลกเปลี่ยนหรือวอลเล็ตใดในประเทศนี้ หากคุณทราบ แจ้งเราได้ที่", + "page-get-eth-exchanges-no-exchanges-or-wallets": "ขออภัย เราไม่ทราบว่าคุณสามารถซื้อ ETH ได้จากตลาดแลกเปลี่ยนใดในประเทศนี้ หากคุณทราบ แจ้งเราได้ที่", "page-get-eth-exchanges-no-wallets": "ขออภัย เราไม่ทราบว่าคุณสามารถซื้อ ETH ได้จากวอลเล็ทใดในประเทศนี้ หากคุณทราบ แจ้งเราได้ที่", "page-get-eth-exchanges-search": "กรอกประเทศที่คุณอาศัยอยู่", "page-get-eth-exchanges-success-exchange": "การสมัครสมาชิกกับตลาดแลกเปลี่ยนอาจใช้เวลาหลายวัน เนื่องจากกระบวนการตรวจสอบทางกฎหมาย", @@ -36,28 +46,28 @@ "page-get-eth-hero-image-alt": "ภาพหลักของหน้าซื้อ ETH", "page-get-eth-keep-it-safe": "รักษา ETH ของคุณให้ปลอดภัย", "page-get-eth-meta-description": "วิธีการซื้อ ETH ขึ้นกับสถานที่ที่คุณอาศัยอยู่ และข้อแนะนำในการดูแลรักษา ETH", - "page-get-eth-meta-title": "วิธีการซื้อ ETH", + "page-get-eth-meta-title": "วิธีซื้ออีเธอเรียม (ETH)", "page-get-eth-need-wallet": "คุณจำเป็นต้องมีวอลเล็ทในการใช้งาน DEX", "page-get-eth-new-to-eth": "หากเพิ่งรู้จัก ETH นี่คือภาพรวมที่จะช่วยคุณในการเริ่มต้น", "page-get-eth-other-cryptos": "ซื้อด้วยเหรียญคริปโตอื่นๆ", - "page-get-eth-protect-eth-desc": "ถ้าคุณมีแผนจะซื้อ ETH จำนวนมาก คุณอาจจะอยากเก็บเหรียญไว้ในกระเป๋าที่คุณเป็นคนดูแลเอง แทนที่จะฝากไว้กับตลาดแลกเปลี่ยน นั่นเป็นเพราะตลาดแลกเปลี่ยนมักจะตกเป็นเป้าของเหล่าบรรดาแฮกเกอร์ คุณอาจจะต้องสูญเสียเงินก้อนนั้นหากแฮกเกอร์เจาะระบบได้ แต่มีคุณเท่านั้นที่จะสามารถควบคุมวอลเล็ตของคุณ", - "page-get-eth-protect-eth-in-wallet": "ปกป้อง ETH ในวอลเล็ทของคุณ", + "page-get-eth-protect-eth-desc": "หนึ่งในฟีเจอร์หลักของอีเธอเรียมคือการที่คุณควบคุมสินทรัพย์ของตัวเองได้ด้วยการจัดการบัญชีส่วนตัว นั่นหมายความว่าคุณไม่ต้องเชื่อมั่นให้บุคคลที่สามดูแลสินทรัพย์ และคุณจะปลอดภัยจากการที่ผู้ดูแลอาจไม่ซื่อสัตย์ ล้มละลาย หรือถูกแฮ็ก อย่างไรก็ตาม สิ่งนี้ก็มาพร้อมกับความรับผิดชอบในการดูแลความปลอดภัยของตนเองด้วยเช่นกัน", + "page-get-eth-protect-eth-in-wallet": "เก็บ ETH ของคุณไว้ในวอลเล็ทของคุณเอง", "page-get-eth-search-by-country": "ค้นหาตามประเทศ", - "page-get-eth-security": "แต่นี่ก็หมายความว่าคุณต้องให้ความสำคัญกับความปลอดภัยของเงินคุณอย่างจริงจัง เพราะกับ ETH แล้ว คุณไม่ได้กำลังวางใจให้ธนาคารดูแลเงินของคุณ ทว่าเป็นตัวคุณเองต่างหาก", + "page-get-eth-security": "ซึ่งหมายความว่าคุณต้องจริงจังกับความปลอดภัยของเงินของคุณ ด้วย ETH คุณต้องไม่ไว้ใจธนาคารหรือบริษัทให้ดูแลสินทรัพย์ของคุณ แต่คุณต้องรับผิดชอบด้วยตัวเอง", "page-get-eth-smart-contract-link": "อ่านเพิ่มเติมเกี่ยวกับสัญญาอัจฉริยะ", "page-get-eth-swapping": "แลกเปลี่ยนเหรียญของคุณกับ ETH ของคนอื่น หรือในทางกลับกัน", "page-get-eth-try-dex": "ลองใช้งาน DEX", "page-get-eth-use-your-eth": "ใช้ ETH ของคุณ", "page-get-eth-use-your-eth-dapps": "ตอนนี้ เมื่อคุณมี ETH แล้ว ลองมาดูแอปพลิเคชันบนอีเธอเรียม (dApp) กัน มี dApp สำหรับการเงิน โซเชียลมีเดีย เกม และอื่นๆ อีกมากมาย", "page-get-eth-wallet-instructions": "ทำตามคำแนะนำของวอลเล็ท", - "page-get-eth-wallet-instructions-lost": "ถ้าคุณไม่สามารถเข้าถึงวอลเล็ตของคุณ คุณจะไม่สามารถเข้าถึงเงินของคุณได้อีกเลย วอลเล็ตของคุณควรจะมีคำแนะนำเพื่อป้องกันเหตุการณ์นี้ ให้ทำตามขั้นตอนโดยละเอียดในเกือบทุกกรณี จะไม่มีใครช่วยคุณได้หากคุณทำวิธีการเข้าถึงวอลเล็ตของคุณหาย", + "page-get-eth-wallet-instructions-lost": "ถ้าคุณสูญเสียการเข้าถึงบัญชีของคุณ คุณจะสูญเสียการเข้าถึงเงินของคุณ วอลเล็ทของคุณควรมีคำแนะนำเกี่ยวกับการป้องกันปัญหานี้ ควรปฏิบัติตามอย่างเคร่งครัด - ในกรณีส่วนใหญ่ ไม่มีใครช่วยคุณได้หากคุณสูญเสียการเข้าถึงบัญชีของคุณ", "page-get-eth-wallets": "วอลเล็ท", "page-get-eth-wallets-link": "อื่นๆ เกี่ยวกับวอลเล็ท", "page-get-eth-wallets-purchasing": "บางวอลเล็ทจะเปิดให้คุณสามารถซื้อคริปโตผ่านบัตรเดบิต/เครดิต โอนเงินผ่านบัญชีธนาคาร หรือแม้กระทั่งชำระเงินผ่าน Apple Pay ทั้งนี้ ขึ้นอยู่กับพื้นที่ที่ให้บริการ", - "page-get-eth-warning": "DEX เหล่านี้ไม่ใช่ที่สำหรับมือใหม่ เพราะคุณจำเป็นต้องมี ETH เพื่อจะใช้งาน", + "page-get-eth-warning": "DEX เหล่านี้ไม่เหมาะสำหรับผู้เริ่มต้น เนื่องจากคุณต้องใช้ ETH เพื่อใช้งาน สิ่งเหล่านี้เป็นเพียงตัวอย่าง ไม่ใช่ผลิตภัณฑ์ที่ได้รับการรับรอง โปรดศึกษาด้วยตัวของคุณเอง!", "page-get-eth-what-are-DEX's": "DEX คืออะไร", "page-get-eth-whats-eth-link": "ETH คืออะไร", - "page-get-eth-where-to-buy-desc": "คุณสามารถซื้อ ETH ได้โดยตรงจากศูนย์ซื้อขายเหรียญคริปโตหรือจากวอลเล็ท", + "page-get-eth-where-to-buy-desc": "คุณสามารถ รับ ETH ได้ โดยรับจากเพื่อนของคุณ หรือซื้อจากตลาดแลกเปลี่ยนและแอป", "page-get-eth-where-to-buy-desc-2": "ตรวจสอบบริการที่คุณสามารถใช้ได้ในพื้นที่ของคุณ", "page-get-eth-where-to-buy-title": "ซื้อ ETH ได้ที่ไหน", "page-get-eth-your-address": "ที่อยู่ ETH ของคุณ", diff --git a/src/intl/th/page-index.json b/src/intl/th/page-index.json index c68bbad7961..13857f0dd72 100644 --- a/src/intl/th/page-index.json +++ b/src/intl/th/page-index.json @@ -2,8 +2,9 @@ "page-index-activity-description": "กิจกรรมจากเครือข่ายอีเธอเรียมทั้งหมด", "page-index-activity-tag": "กิจกรรม", "page-index-activity-header": "ระบบนิเวศที่แข็งแกร่งที่สุด", + "page-index-activity-action": "กิจกรรมอีเธอเรียมเพิ่มเติม", "page-index-bento-header": "วิธีการใช้อินเตอร์เน็ตแบบใหม่", - "page-index-bento-assets-action": "อื่นๆ เกี่ยวกับ NFTs", + "page-index-bento-assets-action": "อื่นๆ เกี่ยวกับ NFT", "page-index-bento-assets-content": "งานศิลปะ ใบรับรอง หรือแม้แต่อสังหาริมทรัพย์สามารถแปลงเป็นโทเค็นได้ ทุกสิ่งทุกอย่างสามารถแปลงเป็นโทเค็นที่ซื้อขายได้ การเป็นเจ้าของเป็นแบบสาธารณะและสามารถตรวจสอบยืนยันได้", "page-index-bento-assets-title": "อินเทอร์เน็ตของสินทรัพย์ต่างๆ", "page-index-bento-dapps-action": "เรียกดูแอป", @@ -65,7 +66,7 @@ "page-index-learn-tag": "เรียนรู้", "page-index-learn-header": "ทำความเข้าใจอีเธอเรียม", "page-index-meta-description": "อีเธอเรียมเป็นแพลตฟอร์มการเงินและแอปพลิเคชันรูปแบบใหม่ในระดับโลกที่ไร้ซึ่งศูนย์กลาง บนอีเธอเรียม คุณสามารถเขียนโค้ดที่ใช้ควบคุมเงินและสร้างแอปพลิเคชันที่เข้าถึงได้จากทุกมุมของโลก", - "page-index-meta-title": "คู่มือฉบับเต็มเกี่ยวกับอีเธอเรียม", + "page-index-meta-title": "Ethereum.org: คู่มือฉบับสมบูรณ์เกี่ยวกับอีเธอเรียม", "page-index-network-stats-total-eth-staked": "คุณค่าที่ปกป้องอีเธอเรียมไว้", "page-index-network-stats-tx-cost-description": "ค่าใช้จ่ายการทำธุรกรรมโดยเฉลี่ย", "page-index-network-stats-tx-day-description": "การทำธุรกรรมในช่วง 24 ชั่วโมงที่ผ่านมา", @@ -85,6 +86,7 @@ "page-index-values-description": "มาร่วมเป็นส่วนหนึ่งของการปฏิวัติทางดิจิทัล", "page-index-values-header": "อินเตอร์เน็ตกำลังเปลี่ยนแปลง", "page-index-values-legacy": "แบบดั้งเดิม", + "page-index-values-tag": "คุณค่า", "page-index-values-ownership-legacy-label": "ความเป็นเจ้าของแบบจำกัด", "page-index-values-ownership-legacy-content-0": "สินทรัพย์และข้อมูลของคุณจะมีการจัดการโดยองค์กรพร้อมแพลตฟอร์มธนาคารทั่วไปหรือโซเชียลมีเดีย คุณต้องพึ่งพาสิ่งเหล่านี้ในการเข้าถึงและควบคุม", "page-index-values-ownership-legacy-content-1": "พวกเขาอาจใช้ข้อมูลของคุณด้วยวิธีที่คุณอาจไม่เห็นด้วย ขึ้นอยู่กับนโยบายของพวกเขา", diff --git a/src/intl/th/page-wallets-find-wallet.json b/src/intl/th/page-wallets-find-wallet.json index b49a15d287a..1b758d41eb4 100644 --- a/src/intl/th/page-wallets-find-wallet.json +++ b/src/intl/th/page-wallets-find-wallet.json @@ -1,17 +1,18 @@ { "page-find-wallet-clear": "ล้างตัวกรอง", - "page-find-wallet-desc-2": "คุณสามารถเลือกวอลเล็ทของคุณได้ตามคุณสมบัติที่ต้องการใช้งาน", - "page-find-wallet-description": "วอลเล็ทมีตัวเลือกคุณสมบัติมากมายที่คุณอาจชื่นชอบ", + "page-find-wallet-desc-2": "ยังไม่รู้ว่าวอลเล็ทคืออะไรใช่ไหม", + "page-find-wallet-desc-2-wallets-link": "เรียนรู้เกี่ยวกับวอลเล็ท", + "page-find-wallet-description": "วอลเล็ททำหน้าที่จัดเก็บและทำธุรกรรม ETH ของคุณ คุณสามารถเลือกใช้ผลิตภัณฑ์ที่หลากหลายซึ่งออกแบบมาให้เหมาะสมกับความต้องการเฉพาะของคุณได้", "page-find-wallet-last-updated": "อัปเดตล่าสุด", "page-find-wallet-meta-description": "ค้นหาและเปรียบเทียบวอลเล็ทบนอีเธอเรียมตามคุณสมบัติที่คุณต้องการ", - "page-find-wallet-meta-title": "ค้นหาวอลเล็ทบนอีเธอเรียม", - "page-find-wallet-title": "ค้นหาวอลเล็ท", + "page-find-wallet-meta-title": "รายชื่อวอลเล็ทอีเธอเรียม | ethereum.org", + "page-find-wallet-title": "เลือกวอลเล็ทของคุณ", "page-find-wallet-try-removing": "ลองลบหนึ่งหรือสองคุณสมบัติออกจากรายการ", "page-stake-eth": "Stake ETH", - "page-find-wallet-open-source": "Open source", + "page-find-wallet-open-source": "โอเพนซอร์ส", "page-find-wallet-open-source-desc": "ใคร ๆ ก็ตรวจสอบความมั่นคงและความปลอดภัยของซอฟต์แวร์โอเพ่นซอร์สได้", - "page-find-wallet-self-custody": "Self custody", - "page-find-wallet-non-custodial": "แบบไร้ผู้ดูแล", + "page-find-wallet-self-custody": "การถือครองและควบคุมทรัพย์สินด้วยตนเอง", + "page-find-wallet-non-custodial": "การเป็นเจ้าของด้วยตนเองอย่างแท้จริง", "page-find-wallet-non-custodial-desc": "วอลเล็ทที่ไม่ได้ควบคุมกุญแจลับส่วนตัวของคุณ", "page-find-wallet-hardware-wallet-support": "ใช้งานกับเครื่องวอลเล็ทได้", "page-find-wallet-hardware-wallet-support-desc": "วอลเล็ทที่สามารถเชื่อมต่อกับเครื่องวอลเล็ทเพื่อความปลอดภัยที่ดีขึ้น", @@ -20,7 +21,7 @@ "page-find-wallet-nft-support": "ใช้งานกับ NFT ได้", "page-find-wallet-nft-support-desc": "วอลเล็ทที่สามารถดูและจัดการ NFT ของคุณ", "page-find-wallet-connect-to-dapps": "เชื่อมต่อกับแอปพลิเคชันไร้ศูนย์กลาง (dapps)", - "page-find-wallet-connect-to-dapps-desc": "วอลเล็ทที่เชื่อมต่อกับแอปพลิเคชันที่อยู่ในเครือข่ายของอีเธอเรียม", + "page-find-wallet-connect-to-dapps-desc": "คุณสามารถเชื่อมต่อกับแอปพลิเคชันที่รองรับ WalletConnect หรือทางเลือกอื่น ๆ", "page-find-wallet-staking": "Staking", "page-find-wallet-staking-desc": "สเตก ETH โดยตรงจากวอลเล็ท", "page-find-wallet-swaps": "แลกเปลี่ยนเหรียญ", @@ -41,13 +42,17 @@ "page-find-wallet-multisig-desc": "วอลเล็ทที่เรียกร้องหลายลายเซ็นเพื่ออนุมัติการทำธุรกรรม", "page-find-wallet-social-recovery": "การกู้คืนข้อมูลด้วยผู้ใช้หลายคน (Social recovery)", "page-find-wallet-social-recovery-desc": "วอลเล็ทที่ให้ผู้ปกครองเปลี่ยนคีย์เซ็นชื่อวอลเล็ทสัญญาอัจฉริยะ", + "page-find-wallet-languages-supported": "ภาษาที่รองรับ", + "page-find-wallet-languages-search-language": "ค้นหาภาษา", + "page-find-wallet-popular-languages": "ยอดนิยมที่สุด", "page-find-wallet-features": "คุุณสมบัติ", "page-find-wallet-security": "ความปลอดภัย", "page-find-wallet-smart-contract": "Smart contract", - "page-find-wallet-check-out": "Check out", + "page-find-wallet-advanced": "ขั้นสูง", + "page-find-wallet-check-out": "เช็คเอาท์", "page-find-wallet-info-updated-on": "ข้อมูลอัปเดตเมื่อ", "page-find-wallet-showing-all-wallets": "แสดงวอลเล็ททั้งหมด", - "page-find-wallet-wallets": "วอลเล็ท", + "page-find-wallet-wallets": "wallets", "page-find-wallet-iOS": "iOS", "page-find-wallet-android": "Android", "page-find-wallet-linux": "Linux", @@ -57,20 +62,27 @@ "page-find-wallet-firefox": "Firefox", "page-find-wallet-hardware": "ฮาร์ดแวร์", "page-find-wallet-new-to-crypto-title": "ยังไม่ชำนาญเงินดิจิทัล", - "page-find-wallet-new-to-crypto-desc": "คุณเป็นผู้ใช้งานครั้งแรกที่กำลังมองหาวอลเล็ทใบแรก", + "page-find-wallet-new-to-crypto-desc": "ผู้ใช้งานรายใหม่ที่กำลังมองหาวอลเล็ทสำหรับผู้เริ่มต้น", "page-find-wallet-nfts-title": "NFT", - "page-find-wallet-nfts-desc": "คุณเป็นคนที่คลั่งไคล้ NFT และต้องการวอลเล็ทที่ใช้กับ NFT ได้", - "page-find-wallet-hodler-title": "ไม่ต้องกังวล", - "page-find-wallet-hodler-desc": "คุณเป็นผู้ที่มีโทเค็นและไม่อยากจะแตะต้อง", + "page-find-wallet-nfts-desc": "วอลเล็ทที่รองรับการสนับสนุน NFT", + "page-find-wallet-hodler-title": "ระยะยาว", + "page-find-wallet-hodler-desc": "การถือครองโทเคนแบบไม่เคลื่อนไหวด้วยฮาร์ดแวร์วอลเล็ท", "page-find-wallet-finance-title": "การเงิน", - "page-find-wallet-finance-desc": "คุณเป็นคนที่ใช้ระบบการเงินแบบไม่รวมศูนย์ (DeFi) และต้องการวอลเล็ทที่ใช้กับแอปพลิเคชัน DeFi ได้", + "page-find-wallet-finance-desc": "วอลเล็ทที่ออกแบบมาสำหรับการใช้งานแอปพลิเคชัน DeFi บ่อยครั้ง", "page-find-wallet-developer-title": "ผู้พัฒนา", - "page-find-wallet-developer-desc": "คุณเป็นผู้พัฒนาและต้องการวอลเล็ทที่ช่วยพัฒนาและทดสอบแอปพลิเคชันไร้ศูนย์กลาง (dapps)", + "page-find-wallet-developer-desc": "วอลเล็ทที่ช่วยในการพัฒนาและทดสอบ dapps", + "page-find-wallet-active": "ใช้งานอยู่", "page-find-wallet-footnote-1": "การรวมของวอลเล็ทในหน้านี้มิได้แสดงถึงการรับรองสนับสนุนอย่างเป็นทางการ และเป็นเพียงวัตถุประสงค์ในการให้ข้อมูลเท่านั้น", "page-find-wallet-footnote-2": "คุณสมบัติของพวกวอลเล็ทจัดเตรียมให้โดยโครงการของวอลเล็ทนั้นเอง", "page-find-wallet-footnote-3": "เราเพิ่มเติมผลิตภัณฑ์ในหน้านี้ตามเกณฑ์ในนโยบายการลงรายการของเรา หากคุณต้องการให้เราเติมวอลเล็ท กรุณาแจ้งปัญหาใน GitHub", "page-find-wallet-mobile": "โทรศัพท์มือถือ", "page-find-wallet-desktop": "เดสก์ทอป", "page-find-wallet-browser": "บราวเซอร์", - "page-find-wallet-device": "อุปกรณ์" + "page-find-wallet-device": "อุปกรณ์", + "page-find-wallet-reset-filters": "รีเซ็ต", + "page-find-wallet-visit-website": "เยี่ยมชมเว็บไซต์", + "page-find-wallet-social-links": "ลิงก์", + "page-find-wallet-empty-results-title": "ไม่มีผลลัพธ์", + "page-find-wallet-empty-results-desc": "ไม่พบวอลเล็ทที่ตรงกับเกณฑ์ของคุณ ลองนำฟิลเตอร์บางอันออก", + "page-find-wallet-see-wallets": "ดูวอลเล็ท" } diff --git a/src/intl/th/page-what-is-ethereum.json b/src/intl/th/page-what-is-ethereum.json index f8603f75a39..5b300ed96a2 100644 --- a/src/intl/th/page-what-is-ethereum.json +++ b/src/intl/th/page-what-is-ethereum.json @@ -3,7 +3,7 @@ "page-what-is-ethereum-alt-img-comm": "ภาพสมาชิกในชุมชนอีเธอเรียมกำลังทำงานร่วมกัน", "page-what-is-ethereum-alt-img-lego": "ภาพมือที่สร้างสัญลักษณ์ ETH จากบล็อกเลโก้", "page-what-is-ethereum-banking-card": "การธนาคารสำหรับทุกคน", - "page-what-is-ethereum-banking-card-desc": "ไม่ใช่ทุกคนที่จะสามารถเข้าถึงบริการทางการเงินแบบดั้งเดิมได้ แต่สิ่งเดียวที่คุณต้องมีเพื่อที่จะเข้าถึงอีเธอเรียม และผลิตภัณฑ์ทางการเงินเพื่อการกู้ ยืม หรือการออมในเครือข่าย คือแค่อินเทอร์เน็ตเท่านั้น", + "page-what-is-ethereum-banking-card-desc": "ไม่ใช่ทุกคนที่สามารถเข้าถึงบริการทางการเงินได้ แต่การเชื่อมต่ออินเทอร์เน็ตเพียงอย่างเดียวก็เพียงพอสำหรับการเข้าถึงอีเธอเรียม รวมถึงผลิตภัณฑ์ด้านการให้กู้ การกู้ยืม และการออมที่สร้างขึ้นบนแพลตฟอร์มนี้", "page-what-is-ethereum-build": "สรรค์สร้างด้วยอีเธอเรียม", "page-what-is-ethereum-build-desc": "หากคุณอยากจะลองสร้างด้วยอีเธอเรียม คุณสามารถอ่านเอกสารประกอบ ลองทำตามวิธีการต่างๆ ในบทสอนการใช้งานหรือทดลองใช้เครื่องมือต่างๆ ที่คุณต้องมีเพื่อเริ่มต้น", "page-what-is-ethereum-censorless-card": "ป้องกันการถูกเซ็นเซอร์", @@ -29,14 +29,17 @@ "page-what-is-ethereum-button-lets-start": "เริ่มกันเลย", "page-what-is-ethereum-blockchain-tab-title": "บล็อกเชนคืออะไร", "page-what-is-ethereum-blockchain-tab-content": "บล็อกเชนคือฐานข้อมูลของธุรกรรม ที่ได้รับการอัปเดตและแบ่งให้กับคอมพิวเตอร์หลายเครื่องที่อยู่ในเครือข่าย ทุกครั้งที่มีการเพิ่มธุรกรรมชุดใหม่ จะเรียกว่า \"บล็อก\" ซึ่งเป็นที่มาของชื่อบล็อกเชน บล็อกเชนสาธารณะเช่นอีเธอเรียมอนุญาตให้ทุกคนเพิ่มข้อมูลได้ แต่ไม่สามารถลบออกได้ หากมีใครต้องการแก้ไขข้อมูลใดๆ หรือโกงระบบ พวกเขาจำเป็นต้องทำให้สำเร็จกับส่วนใหญ่ของคอมพิวเตอร์ในเครือข่าย ซึ่งเป็นจำนวนมาก! ดังนั้นบล็อกเชนแบบกระจายศูนย์เช่นอีเธอเรียมจึงมีความปลอดภัยสูง", - "page-what-is-ethereum-cryptocurrency-tab-title": "คริปโทเคอร์เรนซีคืออะไร?", + "page-what-is-ethereum-cryptocurrency-tab-title": "คริปโทเคอร์เรนซีคืออะไร", "page-what-is-ethereum-cryptocurrency-tab-content-1": "คริปโทเคอร์เรนซี เป็นคำที่หมายความว่าโทเค็นดิจิทัลหลายประเภทที่ทดแทนกันได้ และได้รับการปกป้องโดยใช้บล็อกเชน ทุกอย่างเริ่มต้นด้วยบิตคอยน์ บิตคอยน์สามารถใช้ในการโอนมูลค่าระหว่างสองฝ่ายโดยที่ไม่ต้องไว้ใจคนกลาง สิ่งเดียวที่คุณต้องไว้ใจคือโค้ดบิตคอยน์เท่านั้น ทั้งหมดซึ่งโปร่งใสและใช้ได้อย่างอิสระ", - "page-what-is-ethereum-cryptocurrency-tab-content-2": "เหตุผลที่เราเรียกสินทรัพย์เช่นบิตคอยน์และอีเธอร์ว่า\"คริปโทเคอร์เรนซี\" ก็เพราะความปลอดภัยของข้อมูลและสินทรัพย์ของคุณได้รับการประกันโดยการเข้ารหัส ไม่ใช่โดยการไว้วางใจว่าสถาบันหรือบริษัทจะดำเนินการด้วยความซื่อสัตย์", + "page-what-is-ethereum-cryptocurrency-tab-content-2": "เหตุผลที่สินทรัพย์เช่น bitcoin และ ether ถูกเรียกว่า “คริปโทเคอร์เรนซี” ก็เพราะความปลอดภัยของข้อมูลและทรัพย์สินของคุณได้รับการประกันโดย วิทยาการรหัสลับ ไม่ใช่โดยการไว้วางใจสถาบันหรือบริษัทให้กระทำการด้วยความซื่อสัตย์", "page-what-is-ethereum-cryptocurrency-tab-content-3": "อีเธอเรียมมีสกุลเงินดิจิทัลดั้งเดิมของตัวเองเรียกว่า อีเธอร์ (ETH) ซึ่งใช้ในการชำระเงินสำหรับกิจกรรมบางอย่างในเครือข่ายของอีเธอเรียม คุณสามารถโอนอีเธอร์ไปยังผู้ใช้งานรายอื่นหรือแลกเปลี่ยนเป็นโทเค็นอื่นบนอีเธอเรียม อีเธอร์จึงพิเศษเพราะเป็นสิ่งที่ใช้เพื่อชำระค่าคำนวณที่จำเป็นสำหรับการสร้างและใช้งานแอปและองค์กรบนอีเธอเรียม", "page-what-is-ethereum-summary-title": "สรุป", - "page-what-is-ethereum-summary-desc-1": "อีเธอเรียมเป็นเครือข่ายคอมพิวเตอร์ทั่วโลกที่ปฏิบัติตามกฎเกณฑ์ที่เรียกว่า โปรโตคอลอีเธอเรียม เครือข่ายของอีเธอเรียมทำหน้าที่เป็นรากฐานสำหรับชุมชน แอปพลิเคชัน องค์กร และสินทรัพย์ดิจิทัลที่ทุกคนสามารถสร้างและใช้งานได้", - "page-what-is-ethereum-summary-desc-2": "คุณสามารถสร้างบัญชีอีเธอเรียมได้จากทุกที่ ทุกเวลา และสำรวจโลกของแอป หรือสร้างของคุณขึ้นมาเอง นวัตกรรมหลักคือการสามารถที่จะทำทั้งหมดนี้ได้โดยไม่ต้องเชื่อถือหน่วยงานกลางที่สามารถเปลี่ยนกฎหรือจำกัดการเข้าถึงของคุณได้", - "page-what-is-ethereum-summary-desc-3": "อ่านต่อเพื่อที่จะเรียนรู้เพิ่มเติม…", + "page-what-is-ethereum-summary-desc-1": "อีเธอเรียมเป็นแพลตฟอร์มหลักของแอปพลิเคชันและบล็อกเชนหลายพันรายการ โดยขับเคลื่อนด้วยโปรโตคอลของอีเธอเรียมเอง", + "page-what-is-ethereum-summary-desc-2": "ระบบนิเวศที่มีชีวิตชีวานี้เป็นแรงขับเคลื่อนนวัตกรรม และก่อให้เกิดแอปพลิเคชันและบริการแบบกระจายศูนย์หลากหลายรูปแบบ", + "page-what-is-ethereum-summary-bullet-1": "บัญชีอีเธอเรียมฟรีและใช้งานได้ทั่วโลก", + "page-what-is-ethereum-summary-bullet-2": "ส่วนตัวเทียม ไม่ต้องใช้ข้อมูลส่วนบุคคล", + "page-what-is-ethereum-summary-bullet-3": "ทุกคนสามารถเข้าร่วมได้โดยไม่มีข้อจำกัด", + "page-what-is-ethereum-summary-bullet-4": "ไม่มีบริษัทใดเป็นเจ้าของอีเธอเรียมหรือมีอำนาจตัดสินใจทิศทางอนาคต", "page-what-is-ethereum-btc-eth-diff-title": "อีเธอเรียมกับบิทคอยน์ต่างกันอย่างไร", "page-what-is-ethereum-btc-eth-diff-1": "อีเธอเรียมเปิดตัวเมื่อปี ค. ศ. 2015 โดยมีฐานจากจากนวัตกรรมของบิตคอยน์ โดยมีข้อแตกต่างเด่นๆ บางอย่าง", "page-what-is-ethereum-btc-eth-diff-2": "ทั้งสองอย่างนี้ทำให้คุณได้ใช้เงินดิจิทัลโดยที่ไม่มีผู้ให้บริการทางการเงินหรือธนาคาร แต่ว่าอีเธอเรียมสามารถป้อนวิธีการทำงานได้ ดังนั้นคุณสามารถสร้างและใช้งานแอปพลิเคชันบนเครือข่ายอีเธอเรียมได้", @@ -51,7 +54,7 @@ "page-what-is-ethereum-slide-1-desc-2": "อีเธอเรียมและสเตเบิลคอยน์ เป็นกระบวนการสำหรับส่งเงินข้ามประเทศที่เรียบง่าย โดยมากใช้เวลาไม่กี่นาทีในการส่งเงินทุนไปยังประเทศต่างๆ ซึ่งแตกต่างจากการส่งเงินผ่านธนาคารซึ่งใช้เวลาหลายวัน หรืออาจถึงขั้นหลายสัปดาห์ และมีราคาถูกกว่า ไม่มีค่าธรรมเนียมเพิ่มเติมในการทำธุรกรรมมูลค่าสูง และไม่มีกฎข้อบังคับเรื่องสถานที่และเหตุผลในการทำธุรกรรม", "page-what-is-ethereum-slide-2-title": "ความช่วยเหลือที่เร็วที่สุดในช่วงวิกฤต", "page-what-is-ethereum-slide-2-desc-1": "หากคุณโชคดีพอที่มีตัวเลือกธนาคารที่หลากหลายจากสถาบันที่น่าเชื่อถือในสถานที่ที่คุณอาศัยอยู่ คุณอาจจะมองข้ามในเรื่องอิสรภาพ ความปลอดภัย และเสถียรภาพทางการเงินที่ธนาคารมี แต่สำหรับหลายๆ คน ทั่วโลกที่ประสบปัญหาการกดขี่ทางการเมืองหรือความยากลำบากทางเศรฐกิจ สถาบันทางการเงินอาจจะไม่ให้การปกป้องหรือบริการทางการเงินที่คุณต้องการ", - "page-what-is-ethereum-slide-2-desc-2": "เมื่อประชาชนในประเทศเวเนซูเอลาคิวบาอัฟกานิสถานไนจีเรียเบลารุส และยูเครมเผชิญกับสภาวะสงคราม วิกฤตเศรษฐกิจ หรือการจำกัดสิทธิพลเมือง คริปโตเคอเรนซีเป็นช่องทางที่รวดเร็วที่สุดและมักเป็นช่องทางเดียวที่เหลืออยู่ 1 จากตัวอย่างดังกล่าวจะเห็นได้ว่าคริปโตเคอเรนซี เช่น อีเธอเรียม สามารถให้การเข้าถึงทางเศรษฐกิจทั่วโลกได้อย่างอิสระในขณะที่ประชาชนถูกตัดขาดจากโลกภายนอก อีกทั้งสเตเบิลคอยน์ยังช่วยในการเก็บรักษามูลค่าของเงินในตอนที่ค่าเงินในประเทศทรุดลงจากเงินเฟ้อขั้นรุนแรง", + "page-what-is-ethereum-slide-2-desc-2": "ในช่วงเวลาที่เกิดสงคราม วิกฤตเศรษฐกิจ หรือการจำกัดเสรีภาพของประชาชนในประเทศอย่างเวเนซุเอลา คิวบา อัฟกานิสถาน ไนจีเรีย เบลารุส และยูเครน คริปโตเคอร์เรนซีมักเป็นทางเลือกที่รวดเร็ว และหลายครั้งเป็นเพียงทางเลือกเดียวในการรักษาอำนาจในการควบคุมการเงินของตนเอง1 จากตัวอย่างเหล่านี้ แสดงให้เห็นว่า คริปโตเคอร์เรนซีอย่างอีเธอเรียมสามารถมอบการเข้าถึงเศรษฐกิจระดับโลกได้อย่างไร้ข้อจำกัด แม้ในยามที่ผู้คนถูกตัดขาดจากโลกภายนอก นอกจากนี้ สเตเบิลคอยน์ยังเป็นทางเลือกในการรักษามูลค่าเมื่อสกุลเงินท้องถิ่นล่มสลายจากภาวะเงินเฟ้อขั้นรุนแรง", "page-what-is-ethereum-slide-3-title": "เพิ่มขีดความสามารถนักสร้างสรรค์", "page-what-is-ethereum-slide-3-desc-1": "ในปี 2021 ปีเดียว ศิลปิน นักดนตรี นักเขียน และนักสร้างสรรค์ในรูปแบบอื่นๆ ใช้อีเธอเรียมในการหารายได้โดยรวมแล้วประมาณ 3.5 ล้านดอลลาร์สหรัฐ ทำให้อีเธอเรียมกลายเป็นพื้นที่ที่ใหญ่ที่สุดในโลกสำหรับนักสร้างสรรค์ เคียงคู่ไปกับ สปอติฟาย ยูทูบ และเอ็ตซี่ เรียนรู้เพิ่มเติม", "page-what-is-ethereum-slide-4-title": "เพิ่มขีดความสามารถของเกมเมอร์", @@ -65,13 +68,13 @@ "page-what-is-ethereum-explore-applications": "ดูวิธีใช้", "page-what-is-ethereum-learn-defi": "เรียนรู้เกี่ยวกับการเงินแบบกระจายศูนย์", "page-what-is-ethereum-who-runs-ethereum-title": "ใครบริหารอีเธอเรียม", - "page-what-is-ethereum-who-runs-ethereum-desc-1": "ไม่มีนิติบุคคลใดโดยเฉพาะที่จะควบคุมอีเธอเรียมได้ อีเธอเรียมจะมีการดำรงอยู่ต่อไป เมื่อใดก็ตามที่ยังมีคอมพิวเตอร์ที่เชื่อมต่อกัน และใช้ซอฟต์แวร์ตามโปรโตคอลของอีเธอเรียม เพื่อที่จะเพิ่มเติมบล็อกเชนของอีเธอเรียมต่อไป แต่ละเครื่องของคอมพิวเตอร์เหล่านี้เรียกว่าโหนด ทุกคนสามารถแล่นโหนดได้ แต่หากใครมีจุดประสงค์ที่จะเข้าร่วมในการรักษาความปลอดภัยของเครือข่าย จะต้องเสตก ETH (โทเค็นดั้งเดิมของอีเธอเรียม) ใครก็ตามที่มี 32 ETH สามารถทำได้โดยไม่ต้องขออนุญาตจากใคร", + "page-what-is-ethereum-who-runs-ethereum-desc-1": "อีเธอเรียมไม่ถูกควบคุมโดยหน่วยงานใดๆ โดยปรากฏขึ้นเมื่อมีคอมพิวเตอร์ที่เชื่อมต่อซึ่งเรียกใช้ซอฟต์แวร์ตามโปรโตคอลของอีเธอเรียมและเพิ่มไปยัง blockchain ของอีเธอเรียม คอมพิวเตอร์แต่ละเครื่องนี้เรียกว่า โหนด โหนดสามารถเรียกใช้โดยบุคคลใดก็ได้ แม้จะเข้าร่วมในการรักษาความปลอดภัยของเครือข่ายที่คุณต้องเดิมพัน ETH (โทเค็นเนทีฟของอีเธอเรียม) บุคคลใดก็ตามที่มี 32 ETH สามารถทำสิ่งนี้ได้โดยไม่จำเป็นต้องได้รับอนุญาต", "page-what-is-ethereum-who-runs-ethereum-desc-2": "แม้แต่ซอร์สโค้ดของอีเธอเรียมก็ไม่ได้เกิดจากองค์กรอันเดียวกัน ทุกคนสามารถแนะนำการเปลี่ยนแปลงโปรโตคอลและหารือเกี่ยวกับการอัปเกรดได้ เคยมีโปรโตคอลของอีเธอเรียมหลายรุ่นแล้ว ที่ผลิตโดยองค์กรอิสระในภาษาโปรแกรมต่างๆ และมักจะสร้างขึ้นในที่เปิดเผยและสนับสนุนการมีส่วนร่วมของชุมชน", "page-what-is-ethereum-run-a-node": "รันโหนด", "page-what-is-ethereum-smart-contract-title": "สัญญาอัจฉริยะ (สมาร์ตคอนแทร็กต์) คืออะไร", "page-what-is-ethereum-smart-contract-desc-1": "สัญญาอัจฉริยะ คือโปรแกรมของคอมพิวเตอร์ที่อยู่บนบล็อกเชนอีเธอเรียม ซึ่งจะเริ่มทำงานต่อเมื่อมีการกระตุ้นจากการทำธุรกรรมที่สั่งโดยผู้ใช้งาน สัญญาอัจฉริยะให้ความยืดหยุ่นต่อความสามารถของอีเธอเรียม โปรแกรมเหล่านี้ทำหน้าที่เป็นส่วนประกอบสำหรับแอปกระจายศูนย์ และองค์กรหลายแห่ง", "page-what-is-ethereum-smart-contract-desc-2": "คุณเคยใช้ผลิตภัณฑ์ที่ถูกเปลี่ยนข้อตกลงการให้บริการไหม หรือถูกนำคุณลักษณะที่คุณคิดว่ามีประโยชน์ออกไป เมื่อสัญญาอัจฉริยะถูกประกาศในอีเธอเรียมมันจะอยู่ในรูปแบบออนไลน์และทำงานไปตราบเท่าที่มีอีเธอเรียม ไม่มีใครสามารถระงับได้แม้แต่ผู้เขียน เนื่องจากสัญญาอัจฉริยะเป็นระบบอัตโนมัติ มันจึงไม่แยกว่าใครคือผู้ใช้งานและพร้อมใช้งานอยู่เสมอ", - "page-what-is-ethereum-smart-contract-desc-3": "ตัวอย่างของสัญญาอัจฉริยะที่เป็นที่นิยมได้แก่ แอปสำหรับกู้ยืมเงิน การแลกเปลี่ยนเงินตราแบบกระจายศูนย์ ประกันภัย การระดมทุนแบบกำลังสอง โซเชียลมีเดีย NFT ซึ่งกล่าวอย่างง่ายๆ ก็คืออะไรก็ตามที่คุณนึกออก", + "page-what-is-ethereum-smart-contract-desc-3": "ตัวอย่างของสัญญาอัจฉริยะที่เป็นที่นิยมได้แก่แอพสำหรับกู้ยืมเงิน การแลกเปลี่ยนเงินตราแบบกระจายศูนย์ ประกันภัย การระดมทุนกำลังสอง เครือข่ายทางสังคม NFT ซึ่งกล่าวอย่างง่าย ๆ ก็คืออะไรก็ตามที่คุณนึกออก", "page-what-is-ethereum-more-on-smart-contracts": "อ่านเพิ่มเติมเกี่ยวกับสัญญาอัจฉริยะ", "page-what-is-ethereum-explore-dapps": "สำรวจ DApp", "page-what-is-ethereum-criminal-activity-title": "จริงหรือไม่ที่ว่าคริปโตถูกใช้เป็นเครื่องมือสำหรับอาชญากรรม", @@ -79,12 +82,12 @@ "page-what-is-ethereum-criminal-activity-desc-2": "จากประเด็นหลักในรายงานล่าสุดของสำนักงานตำรวจสากลแห่งสหภาพยุโรปรานยงานว่าคริปโตถูกใช้ในอาชญากรรมน้อยกว่าเงินเฟียตอย่างมาก", "page-what-is-ethereum-criminal-activity-desc-3": "การใช้เงินดิจิทัลในกิจกรรมที่ผิดกฎหมายเป็นเพียงแค่ส่วนน้อยเท่านั้นในเศรษฐกิจเงินดิจิทัลทั้งหมด และน้อยกว่ากันมากเมื่อเทียบกับกิจกรรมผิดกฎหมายที่เกี่ยวข้องกับการเงินแบบดั้งเดิม", "page-what-is-ethereum-energy-title": "แล้วอีเธอเรียมในแง่การใช้พลังงานล่ะ", - "page-what-is-ethereum-energy-desc-1": "เมื่อวันที่ 15 กันยายน 2022 อีเธอเรียมได้ผ่านการอัปเกรด การผสาน ซึ่งเปลี่ยนอีเธอเรียมจากการพิสูจน์การทำงานเป็นการพิสูจน์มีส่วนได้ส่วนเสีย", + "page-what-is-ethereum-energy-desc-1": "เมื่อวันที่ 15 กันยายน ค.ศ. 2022 อีเธอเรียมได้ดำเนินการอัปเกรดครั้งสำคัญที่เรียกว่า การผสานครั้งสำคัญ โดยเปลี่ยนกลไกการทำงานจาก การพิสูจน์การทำงาน เป็น การพิสูจน์การถือครอง", "page-what-is-ethereum-energy-desc-2": "การผสานเป็นอัปเกรดที่ใหญ่ที่สุดของอีเธอเรียม และลดพลังงานที่ใช้ในการรักษาระบบอีเธอเรียมลงได้ถึง 99.95% ซึ่งส่งผลให้มีเครือข่ายที่ปลอดภัยยิ่งขึ้นโดยที่ใช้ปริมาณคาร์บอนตํ่าลง ดังนั้น อีเธอเรียมจึงเป็นบล็อกเชนที่มีคาร์บอนฟรุตปรินท์น้อยขณะที่มีความปลอดภัยมากขึ้น และสามารถขยายขนาดได้ด้วย", "page-what-is-ethereum-more-on-energy-consumption": "อ่านเพิ่มเติมเรื่องการใช้พลังงาน", "page-what-is-ethereum-energy-consumption-chart-legend": "ปริมาณการใช้พลังงานต่อปี หน่วย TWh/ปี", - "energy-consumption-chart-global-data-centers-label": "Global data centers", - "energy-consumption-gold-mining-cbeci-label": "Gold mining", + "energy-consumption-chart-global-data-centers-label": "ศูนย์ข้อมูลทั่วโลก", + "energy-consumption-gold-mining-cbeci-label": "การทำเหมือง", "energy-consumption-chart-btc-pow-label": "BTC PoW", "energy-consumption-chart-netflix-label": "Netflix", "energy-consumption-chart-eth-pow-label": "ETH PoW", @@ -93,7 +96,7 @@ "energy-consumption-chart-paypal-label": "PayPal", "energy-consumption-chart-eth-pos-label": "ETH PoS", "page-what-is-ethereum-the-merge-update": "การอัปเดตเกี่ยวกับเดอะเมิร์จ", - "page-what-is-ethereum-additional-reading": "Further reading", + "page-what-is-ethereum-additional-reading": "อ่านเพิ่มเติม", "page-what-is-ethereum-week-in-ethereum": "ข่าวอีเธอเรียมประจำสัปดาห์", "page-what-is-ethereum-week-in-ethereum-desc": "จดหมายข่าวรายสัปดาห์เกี่ยวกับการปรับปรุงหลัก ๆ ในระบบนิเวศ", "page-what-is-ethereum-kernel-dreamers": "เคอร์เนล", @@ -101,6 +104,12 @@ "page-what-is-ethereum-atoms-institutions-blockchains": "อะตอม สถาบัน บล็อกเชน", "page-what-is-ethereum-atoms-institutions-blockchains-desc": "ทำไมบล็อกเชนถึงมีความสำคัญ", "page-what-is-ethereum-ethereum-in-numbers-title": "อีเธอเรียมในเชิงตัวเลข", + "page-what-is-ethereum-ethereum-in-numbers-stat-1-desc": "โปรเจคที่สร้างบนอีเธอเรียม", + "page-what-is-ethereum-ethereum-in-numbers-stat-2-desc": "บัญชี (วอลเล็ท) ที่มียอด ETH", + "page-what-is-ethereum-ethereum-in-numbers-stat-3-desc": "สัญญาอัจฉริยะบนอีเธอเรียม", + "page-what-is-ethereum-ethereum-in-numbers-stat-4-desc": "มูลค่าที่ถูกป้องกันไว้บนอีเธอเรียม", + "page-what-is-ethereum-ethereum-in-numbers-stat-5-desc": "รายได้ของผู้สร้างผลงานบนอีเธอเรียมในปี 2021", + "page-what-is-ethereum-ethereum-in-numbers-stat-6-desc": "จำนวนธุรกรรมวันนี้", "adoption-chart-column-now-label": "ปัจจุบัน", "adoption-chart-investors-label": "นักลงทุน", "adoption-chart-developers-label": "นักพัฒนา", @@ -109,5 +118,11 @@ "adoption-chart-musicians-label": "นักดนตรี", "adoption-chart-writers-label": "นักเขียน", "adoption-chart-gamers-label": "นักเล่นเกม", - "adoption-chart-refugees-label": "ผู้ลี้ภัย" + "adoption-chart-refugees-label": "ผู้ลี้ภัย", + "page-what-is-ethereum-get-eth-alt": "ซื้อ ETH", + "page-what-is-ethereum-get-eth-description": "ETH เป็นสกุลเงินหลักของอีเธอเรียม คุณจะต้องมี ETH อยู่ในวอลเล็ทของคุณเพื่อใช้งานแอปพลิเคชันบนอีเธอเรียม", + "page-what-is-ethereum-get-eth-title": "ซื้อ ETH", + "page-what-is-ethereum-explore-dapps-alt": "สำรวจ dapps", + "page-what-is-ethereum-explore-dapps-description": "Dapps เป็นแอปที่ถูกสร้างขึ้นบนอีเธอเรียม Dapps เหล่านี้กำลังเปลี่ยนโมเดลธุรกิจเดิม และสร้างโมเดลธุรกิจใหม่ขึ้นมา", + "page-what-is-ethereum-explore-dapps-title": "ลองใช้ dapp" } From f9a85f552508d3a7ed0dc0e9896e3affc1190006 Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Thu, 1 May 2025 04:46:22 +0000 Subject: [PATCH 066/106] chore: import translations for tr --- .../content/translations/tr/events/index.md | 24 ++++++ .../index.md | 73 +++++++++++++++++++ public/content/translations/tr/web3/index.md | 4 + src/intl/tr/common.json | 21 ++++-- src/intl/tr/glossary-tooltip.json | 2 - src/intl/tr/page-get-eth.json | 2 +- src/intl/tr/page-index.json | 5 +- src/intl/tr/page-learn.json | 9 ++- src/intl/tr/page-upgrades-index.json | 2 +- src/intl/tr/page-wallets-find-wallet.json | 8 +- src/intl/tr/page-what-is-ethereum.json | 17 +++-- src/intl/tr/template-usecase.json | 4 +- 12 files changed, 144 insertions(+), 27 deletions(-) create mode 100644 public/content/translations/tr/events/index.md create mode 100644 public/content/translations/tr/how-to-create-an-ethereum-account/index.md diff --git a/public/content/translations/tr/events/index.md b/public/content/translations/tr/events/index.md new file mode 100644 index 00000000000..a52881a7e73 --- /dev/null +++ b/public/content/translations/tr/events/index.md @@ -0,0 +1,24 @@ +--- +title: Ethereum etkinlikleri +description: Ethereum topluluğuna nasıl dahil olunur? +lang: tr +hideEditButton: true +--- + +# Yaklaşan etkinlikler {#events} + +**Her ay dünya çapında büyük Ethereum etkinlikleri olur.** Toplulukta daha fazla insanla tanışmak, istihdam fırsatları hakkında bilgi edinmek ve yeni beceriler geliştirmek için bunlardan birine katılmayı düşünebilirsiniz. + + + +Bu, topluluğumuz tarafından sağlanan kapsamlı olmayan bir listedir. Bu listeye eklenecek yaklaşan bir Ethereum etkinliğini biliyor musunuz? [Lütfen ekleyin](https://github.com/ethereum/ethereum-org-website/blob/dev/src/data/community-events.json)! + +## Ethereum buluşmaları {#meetups} + +İşinize yarayan bir etkinlik görmüyor musunuz? Bir buluşmaya katılmayı deneyin. Buluşmalar, Ethereum meraklılarından oluşan gruplar tarafından düzenlenen daha küçük etkinliklerdir. Ethereum ile ilgilenen kişilerin bir araya gelme, Ethereum hakkında konuşma ve son gelişmeler hakkında bilgi edinme şansı olur. + + + +Kendi buluşmanızı mı başlatmak istiyorsunuz? Ethereum'un buluşma topluluklarını desteklemeye yardımcı olmak için ConsenSys'in bir girişimi olan [BUIDL Network](https://consensys.net/developers/buidlnetwork/)'e göz atın. + +Bu, topluluğumuz tarafından sağlanan kapsamlı olmayan bir listedir. [Burada daha fazla Ethereum buluşması bulabilirsiniz](https://www.meetup.com/topics/ethereum/). Bu listeye eklenecek aktif bir buluşma grubu biliyor musunuz? [Lütfen ekleyin](https://github.com/ethereum/ethereum-org-website/blob/dev/src/data/community-meetups.json)! diff --git a/public/content/translations/tr/how-to-create-an-ethereum-account/index.md b/public/content/translations/tr/how-to-create-an-ethereum-account/index.md new file mode 100644 index 00000000000..99710d7b764 --- /dev/null +++ b/public/content/translations/tr/how-to-create-an-ethereum-account/index.md @@ -0,0 +1,73 @@ +--- +title: Bir Ethereum hesabı nasıl "oluşturulur" +description: Cüzdan kullanarak Ethereum hesabı oluşturmaya ilişkin ayrıntılı rehber. +lang: tr +--- + +# Bir Ethereum hesabı nasıl oluşturulur + +**Herkes ücretsiz bir Ethereum hesabı oluşturabilir.** Tek ihtiyacınız olan, bir kripto cüzdan uygulaması indirmektir. Cüzdanlar Ethereum hesabınızı oluşturur ve yönetir. İşlem gönderebilir, bakiyelerinizi kontrol edebilir ve sizi Ethereum üzerine inşa edilmiş diğer uygulamalara bağlayabilir. + +Bir cüzdan ile jeton borsalarına, oyunlara ve [NFT](/glossary/#nft) pazar yerlerine anında giriş yapabilirsiniz. Bireysel bir kayıt gerektirmez, Ethereum üzerinde inşa edilmiş tüm uygulamalar için tek bir hesap kullanılır. + +## 1. Adım: Bir cüzdan seçin + +Cüzdan, Ethereum hesabınızı yönetmenize yardımcı olan bir uygulamadır. Aralarından seçim yapabileceğiniz mobil, masaüstü ve hatta tarayıcı uzantıları olarak düzinelerce farklı cüzdan vardır. + + + + Cüzdan listesi + + +Eğer yeniyseniz, başlangıç seviyesindeki kişilere uygun gerekli özellikleri barındıran cüzdanları bulmak için "bir cüzdan bul" sayfasındaki "Kriptoda yeni" filtresini seçebilirsiniz. + +!["Cüzdan bul" sayfasındaki filtre seçimi](./wallet-box.png) + +İhtiyaçlarınızı karşılamak için başka profil filtreleri de vardır. Bunlar yaygın kullanılan cüzdanların örnekleridir - herhangi bir yazılıma güvenmeden önce kendi araştırmanızı yapmalısınız. + +## 2. Adım: Cüzdan uygulamanızı indirin ve kurun + +Belirli bir cüzdan seçtiğinizde, uygulamanın resmi web sitesini veya uygulama mağazasını ziyaret edin, uygulamayı indirin ve kurun. Bunların hepsi ücretsizdir. + +## 3. Adım: Uygulamayı açın ve Ethereum hesabınızı oluşturun + +Yeni cüzdanınızı ilk kez açarken, yeni bir hesap oluşturma veya mevcut bir hesabı içe aktarma arasında seçim yapmanız istenebilir. Yeni bir hesap oluşturmaya tıklayın. **Bu, cüzdan yazılımının Ethereum hesabınızı oluşturduğu adımdır.** + +## 4. Adım: Kurtarma ifadenizi saklayın + +Bazı uygulamalar sizden gizli bir "kurtarma ifadesi" (bazen "güvenlik kelimeleri" ya da "mnemonic" olarak da adlandırılır) kaydetmenizi ister. Bu güvenlik kelimelerinin güvende tutulması son derecede önemlidir! Bu Ethereum hesabınızı oluşturmak için kullanılır ve işlemleri onaylamak için de kullanılabilir. + +**Bu ifadeyi bilen bir kişi, tüm fonlarınızı kontrol edebilir.** Bu ifadeyi asla kimseyle paylaşmayın. Bu ifade, rastgele üretilmiş 12 ila 24 kelimeyi (kelimelerin sırası önemlidir) içermelidir. + +
+ +
Cüzdan yüklendi mi?
Nasıl kullanacağınızı öğrenin.
+ + Cüzdan nasıl kullanılır? + +
+
+ +İlgilendiğiniz başka rehberler de mi var? Şuraya göz atın: [Adım adım kılavuzlarımız](/guides/) + +## Sıkça sorulan sorular + +### Cüzdanım ve Ethereum hesabım aynı mı? + +Hayır. Cüzdan, hesapları yönetmenizi sağlayan bir yönetim aracıdır. Bir cüzdan birden fazla hesaba erişebilir ve tek bir hesaba birden fazla cüzdan tarafından erişilebilir. Kurtarma ifadesi hesap oluşturmak için kullanılır ve bir cüzdan uygulamasına varlıkların yönetim iznini verir. + +### Bir Bitcoin adresine Ether, yahut bir Ethereum adresine Bitcoin gönderebilir miyim? + +Hayır, gönderemezsiniz. Bitcoin ve Ether, her biri kendi defter tutma ve adres biçimleri olan iki ayrı ağda (yani farklı blokzincirlerde) bulunur. İki farklı ağı köprülemek için çeşitli girişimlerde bulunuldu; bu iki ağdan en aktif olanı şu anda [Sarılı Bitcoin veya WBTC](https://www.bitcoin.com/get-started/what-is-wbtc/)'dir. WBTC bir saklama çözümü olduğundan (yani belirli kritik işlevleri tek bir grup insanın kontrol etmesi anlamına gelir) bu bir onay değildir ve burada yalnızca bilgilendirme amacıyla verilmiştir. + +### Bir ETH adresi sahibiysem, aynı adrese diğer blok zincirlerde de sahip miyim? + +Ethereum ile benzer altyapı yazılımını kullanan tüm blokzincirlerde ("EVM uyumlu" diye bilinirler) aynı [adresi](/glossary/#address) kullanabilirsiniz. Bu [liste](https://chainlist.org/) size hangi blok zincirlerde aynı adresi kullanabileceğinizi gösterecektir. Bitcoin gibi bazı blok zincirlerde tamamen farklı ağ kuralları uygulanır ve farklı bir biçimde farklı bir adrese ihtiyaç duyacaksınız. Eğer bir akıllı sözleşme cüzdanına sahipseniz, hangi blokzincirlerin desteklendiği hakkında daha fazla bilgi için ürün web sitesini kontrol etmelisiniz. Çünkü bunlar genelde sınırlı ama daha güvenli bir kapsama sahiptir. + +### Kendi cüzdanıma sahip olmak, fonlarımı bir borsada tutmaktan daha mı güvenli? + +Kendi cüzdanınıza sahip olmanız kendi varlıklarınızın sorumluluğunu kendiniz almanız anlamına gelir. Maalesef müşterilerinin paralarını kaybeden birçok başarısız borsa örneği bulunmaktadır. Bir cüzdana (kurtarma ifadesi ile birlikte) sahip olmak, varlıklarınızı tutması için bir kuruluşa güvenmek zorunda kalmakla ilişkili riskleri ortadan kaldırır. Ancak bunu kendiniz güvenli tutmanız ve kimlik avı dolandırıcılıklarından, işlemleri yanlışlıkla onaylamaktan veya kurtarma ifadesini ifşa etmekten, sahte web siteleriyle etkileşime girmekten ve kendi kendine saklama ile ilgili diğer risklerden kaçınmanız gerekir. Riskler ve faydalar farklıdır. + +### Telefon/donanım cüzdanımı kaybedersem, kayıp fonlarımı kurtarmak için yine aynı cüzdan uygulamasına ihtiyacım var mı? + +Hayır, farklı bir cüzdan kullanabilirsiniz. Güvenlik kelimelerine sahip olduğunuz sürece birçok cüzdana girebilirsiniz ve hesabınız geri alınacaktır. Bunu yapmanız gerekirse dikkatli olun: Cüzdanınızı kurtarırken internete bağlı olmadığınızdan emin olmanız en iyisidir, böylece kurtarma ifadeniz yanlışlıkla sızdırılmaz. Kayıp fonları, kurtarma ifadesi olmadan kurtarmak çoğunlukla imkansızdır. diff --git a/public/content/translations/tr/web3/index.md b/public/content/translations/tr/web3/index.md index 6319f4e0d45..a64ffc04379 100644 --- a/public/content/translations/tr/web3/index.md +++ b/public/content/translations/tr/web3/index.md @@ -6,6 +6,10 @@ lang: tr # Web3'e Giriş {#introduction} +
+ +
+ Merkezileştirme, milyarlarca insanın World Wide Web'e katılmasına yardımcı oldu ve üzerinde yaşadığı istikrarlı, sağlam altyapıyı yarattı. Aynı zamanda bir avuç merkezi kuruluş World Wibe Web'in büyük bölümünde neye izin verilip verilmemesi gerektiğine tek taraflı olarak karar verebilmelerini sağlayan bir güce sahip oldu. Web3 bu ikileme bir cevaptır. Büyük teknoloji şirketleri tarafından tekelleştirilen bir Web yerine, Web3 merkeziyetsizliği benimsiyor ve kullanıcıları tarafından inşa ediliyor, işletiliyor ve sahipleniliyor. Web3, gücü şirketlerden ziyade bireylerin eline verir. Web3 hakkında konuşmadan önce buraya nasıl geldiğimizi keşfedelim. diff --git a/src/intl/tr/common.json b/src/intl/tr/common.json index 9199c90d26a..a159bc619a4 100644 --- a/src/intl/tr/common.json +++ b/src/intl/tr/common.json @@ -11,6 +11,7 @@ "adding-products": "Ürün ekleme", "adding-staking-products": "Hisseleme Ürünleri Ekleme", "adding-wallets": "Cüzdanşar Ekleme", + "ai-agents": "Yapay zeka temsilcileri", "aria-toggle-menu-button": "Menü düğmesini aç/kapat", "aria-toggle-search-button": " Arama düğmesini aç/kapat", "beacon-chain": "İşaret Zinciri", @@ -97,6 +98,7 @@ "ethereum-upgrades": "Ethereum yükseltmeleri", "ethereum-wallets": "Ethereum Cüzdanlar", "ethereum-whitepaper": "Ethereum Teknik Raporu", + "events": "Olaylar", "feedback-card-prompt-article": "Bu makale yararlı oldu mu?", "feedback-card-prompt-page": "Bu sayfa yararlı oldu mu?", "feedback-card-prompt-tutorial": "Bu rehber yararlı oldu mu?", @@ -203,7 +205,7 @@ "layer-2": "Katman 2", "learn": "Öğren", "learn-by-coding": "Kodlayarak öğren", - "learn-hub": "Ethereum: Kapsamlı Öğrenme Rehberi", + "learn-hub": "Bilgi Merkezi", "learn-menu": "Öğren menüsü", "learn-more": "Daha fazla bilgi edinin", "less": "Daha az", @@ -220,6 +222,7 @@ "nav-about-description": "Ethereum topluluğu için halka açık, açık kaynaklı bir proje", "nav-advanced-description": "Daha karmaşık konular hakkında bilgi edinin", "nav-advanced-label": "Gelişmiş", + "nav-ai-agents-description": "Ethereum'da yapay zeka temsilcilerinin dünyasını keşfedin", "nav-basics-description": "Ethereum'un temellerini anlamak", "nav-basics-label": "Temel Bilgiler", "nav-bridges-description": "Web3, birincil L1 blok zincirleri ve L2 ölçeklendirme çözümlerinden oluşan bir ekosisteme dönüştü", @@ -248,8 +251,9 @@ "nav-eip-label": "Ethereum geliştirme önerileri", "nav-emerging-description": "Ethereum'un diğer yeni kullanım örnekleri hakkında bilgi edinin", "nav-emerging-label": "Yeni ortaya çıkan kullanım alanları", - "nav-enterprise-description": "Ethereum için iş uygulamaları", "nav-ethereum-org-description": "Bu web sitesi topluluk odaklıdır-bize katılarak siz de katkıda bulunun", + "nav-ethereum-networks": "Ethereum ağları", + "nav-ethereum-networks-description": "Ethereum için daha ucuz ve daha hızlı işlemler", "nav-ethereum-wallets-description": "Ethereum hesabınızla etkileşime girecek bir uygulama", "nav-events-description": "Merkezi olmayan yönetim ve herkese katılma özgürlüğü", "nav-events-irl-description": "Her ay şahsen ve çevrimiçi olarak sunulan önemli Ethereum etkinlikleri düzenleniyor", @@ -275,18 +279,24 @@ "nav-guides-label": "Nasıl yapılır kılavuzları", "nav-history-description": "Tüm önemli çatallanmaların ve güncellemelerin zaman çizelgesi", "nav-history-label": "Ethereum'un teknik tarihi", - "nav-layer-2-description": "Ethereum için daha ucuz ve daha hızlı işlemler", "nav-learn-by-coding-description": "Ethereum'u denemenize yardımcı olacak araçlar", "nav-local-env-description": "Ethereum geliştirme yığınınızı seçin ve oluşturun", "nav-mainnet-description": "Halka açık Ethereum Ana Ağı üzerinde işletme blok zinciri uygulamaları oluşturulabilir", + "nav-networks-home-description": "Ethereum için daha ucuz ve daha hızlı işlemler", + "nav-networks-introduction-label": "Giriş", + "nav-networks-introduction-description": "Ethereum, ağların ağına genişledi", + "nav-networks-explore-networks-label": "Ağları keşfedin", + "nav-networks-explore-networks-description": "Hangi ağı kullanacağınızı seçin", + "nav-networks-learn-label": "Katman 2 ağları nelerdir?", + "nav-networks-learn-description": "Bunlara neden ihtiyacımız olduğunu öğrenin", "nav-nft-description": "Benzersiz bir şeyi Ethereum tabanlı bir varlık olarak göstermenin yolu", "nav-open-research-description": "Ethereum'un başlıca avantajlarından biri sahip olduğu aktif araştırma topluluğudur", "nav-open-research-label": "Açık araştırma", "nav-overview-description": "Ethereum eğitimiyle ilgili her şey", "nav-overview-label": "Genel Bakış", "nav-participate-overview-description": "Nasıl katılınacağına ilişkin genel bakış", + "nav-payments-description": "Ethereum ödemeleri parayı aldığımız ve gönderdiğimiz yönteme göre değişir", "nav-primary": "Birincil", - "nav-private-description": "Özel işletmeler için Ethereum geliştirici kaynakları", "nav-quizzes-description": "Ethereum ve kripto paraları ne kadar iyi anladığınızı öğrenin", "nav-quizzes-label": "Bilginizi sınayın", "nav-refi-description": "Yenileyici ilkeler üzerine inşa edilmiş alternatif bir ekonomik sistem", @@ -357,6 +367,7 @@ "page-last-updated": "Sayfanın son güncellenmesi", "participate": "Katılın", "participate-menu": "Katılım menüsü", + "payments-page": "Ödemeler", "pbs": "Teklifi yapan-oluşturucu ayrımı", "pools": "Havuzlanmış Staking", "privacy-policy": "Gizlilik politikası", @@ -433,4 +444,4 @@ "wrapped-ether": "Sarılı Ether", "yes": "Evet", "zero-knowledge-proofs": "Sıfır bilgili ispatlar" -} \ No newline at end of file +} diff --git a/src/intl/tr/glossary-tooltip.json b/src/intl/tr/glossary-tooltip.json index 64dff2f6641..a97e7c8ac3d 100644 --- a/src/intl/tr/glossary-tooltip.json +++ b/src/intl/tr/glossary-tooltip.json @@ -96,7 +96,6 @@ "multisig-term": "Çoklu imza", "multisig-definition": "Çoklu imza (multisig), işlemleri gerçekleştirmek için birden fazla imza veya onay gerektiren ve güvenliği artıran dijital cüzdanı veya hesabı ifade eder.", "nft-term": "Değiştirilemez jeton (NFT)", - "nft-definition": "Değiştirilemez jeton (NFT), sanat eserleri veya koleksiyon parçaları gibi sahip olabileceğiniz, blokzincir teknolojisiyle doğrulanmış benzersiz bir dijital öğedir. Değiştirilemez Jetonlar (NFT'ler) hakkında daha fazla bilgi.", "node-term": "Düğüm", "node-definition": "Ağa katılan bir yazılım istemcisidir. Düğümler ve istemciler hakkında daha fazla bilgi.", "ommer-term": "Ommer (amca) bloğu", @@ -150,7 +149,6 @@ "validator-term": "Doğrulayıcı", "validator-definition": "Düğüm, hisse ispatı sistemindeki verilerin depolanmasından, işlemlerin işlenmesinden, ve blok zincirine yeni bloklar eklemekten sorumludur. Doğrulama yazılımını etkinleştirmek için 32 ETH'yi hisseleyebilmeniz gerekir. Ethereum'da hisseleme hakkında daha fazla bilgi.", "validity-proof-term": "Doğruluk kanıtı", - "validity-proof-definition": "Hızı artırmak için işlemlerin gruplar halinde toplandığı ve tek bir işlemde Ethereum'a gönderildiği belirli katman 2 çözümlerine yönelik bir güvenlik modelidir. İşlem hesaplaması zincir dışında yapılır ve ardından doğruluğunun kanıtıyla birlikte ana zincire sunulur. Bu yöntem, güvenliği korurken mümkün olan işlem miktarını da artırır. Bazı toplamalar, sahtecilik kanıtı kullanır. Sıfır bilgi toplamaları hakkında daha fazla bilgi.", "wallet-term": "Cüzdan", "wallet-definition": "Cüzdan, dijital para birimlerini tutmaya, göndermeye ve almaya yarayan dijital bir araçtır; tıpkı çevrimiçi paranız için sanal bir cüzdan gibidir. Ethereum cüzdanları hakkında daha fazla bilgi.", "web2-term": "Web2", diff --git a/src/intl/tr/page-get-eth.json b/src/intl/tr/page-get-eth.json index 0e88188a723..d10a5a16049 100644 --- a/src/intl/tr/page-get-eth.json +++ b/src/intl/tr/page-get-eth.json @@ -46,7 +46,7 @@ "page-get-eth-hero-image-alt": "ETH hero görsel edin", "page-get-eth-keep-it-safe": "ETH'nizi güvende tutmak", "page-get-eth-meta-description": "Yaşadığınız yere göre ETH nasıl satın alınır ve bununla nasıl ilgileneceğinize dair tavsiyeler.", - "page-get-eth-meta-title": "ETH nasıl alınır?", + "page-get-eth-meta-title": "Ethereum (ETH) nasıl alınır", "page-get-eth-need-wallet": "DEX kullanmak için cüzdanınız olmalıdır.", "page-get-eth-new-to-eth": "ETH'de yeni misiniz? İşte başlamanıza yardımcı olacak bir genel bakış.", "page-get-eth-other-cryptos": "Başka bir kripto ile satın alın", diff --git a/src/intl/tr/page-index.json b/src/intl/tr/page-index.json index afc3470d74f..2ae616fb04e 100644 --- a/src/intl/tr/page-index.json +++ b/src/intl/tr/page-index.json @@ -2,6 +2,7 @@ "page-index-activity-description": "Tüm Ethereum ağlarından aktivite", "page-index-activity-tag": "Aktivite", "page-index-activity-header": "En güçlü ekosistem", + "page-index-activity-action": "Daha fazla Ethereum aktivitesi", "page-index-bento-header": "İnternet'i kullanmanın yeni yolu", "page-index-bento-assets-action": "NFT'ler hakkında daha fazlası", "page-index-bento-assets-content": "Sanat eserleri, sertifikalar ve hatta gayrimenkuller jetonlaştırılabilir. Her şey takas edilebilir bir jeton olabilir. Sahiplik halka açıktır ve doğrulanabilir.", @@ -65,7 +66,7 @@ "page-index-learn-tag": "Öğren", "page-index-learn-header": "Ethereum hakkında bilgi edinin", "page-index-meta-description": "Ethereum yenilikçi çalışmalar için bağımsız ve küresel bir platformdur. Ethereum ile parayı kontrol eden bir yazılım veya dunyanin herhangi bir yerinden erişilebilen bir uygulama yaratabilirsiniz.", - "page-index-meta-title": "Eksiksiz Ethereum kılavuzu", + "page-index-meta-title": "Ethereum.org: Ethereum için eksiksiz rehber", "page-index-network-stats-total-eth-staked": "Ethereum'un değerinin korunması", "page-index-network-stats-tx-cost-description": "Ortalama işlem maliyeti", "page-index-network-stats-tx-day-description": "Son 24 saatteki işlemler", @@ -99,7 +100,7 @@ "page-index-values-privacy-legacy-content-0": "Hükümetlerin, şirketlerin ya da diğer büyük, kimliği belirsiz kuruluşların bize hayırseverliklerinden dolayı mahremiyet vermelerini bekleyemeyiz.", "page-index-values-privacy-legacy-content-1": "Çoğu uygulama, size özel pazarlama yapabilmek için mümkün olduğunca çok kişisel bilginizi toplar.", "page-index-values-privacy-ethereum-label": "Gizlilik odaklı", - "page-index-values-privacy-ethereum-content-0": "Ethereum topluluğu gizliliğe önem verir. Kendinizi veya iletişim bilgilerinizi ifşa eetmeden uygulamaları kullanma hakkına sahip olursunuz.", + "page-index-values-privacy-ethereum-content-0": "Ethereum topluluğu gizliliğe önem verir. Kendinizi veya iletişim bilgilerinizi ifşa eetmeden uygulamaları kullanma hakkına sahipsiniz.", "page-index-values-integration-legacy-label": "Bölünmüş", "page-index-values-integration-legacy-content-0": "Çoğu uygulama sizi ayrı hesaplar oluşturmaya zorlayarak tüm oturum bilgilerinizi ve kayıtlarınızı hatırlamanızı zorlaştırır.", "page-index-values-integration-ethereum-label": "Entegre", diff --git a/src/intl/tr/page-learn.json b/src/intl/tr/page-learn.json index f3db2887e1f..f0247443870 100644 --- a/src/intl/tr/page-learn.json +++ b/src/intl/tr/page-learn.json @@ -10,6 +10,7 @@ "hero-header": "Ethereum hakkında bilgi edinin", "hero-subtitle": "Ethereum dünyasına yönelik eğitici eğitim rehberiniz. Ethereum'un nasıl çalıştığını ve ona nasıl bağlanılacağını öğrenin. Bu sayfa teknik ve teknik olmayan makaleler, kılavuzlar ve kaynaklar içermektedir.", "hero-button-lets-get-started": "Hadi başlayalım", + "page-learn-meta-title": "Ethereum: Kapsamlı Öğrenme Rehberi", "what-is-crypto-1": "Muhtemelen kripto paraları, Bitcoin'i ve blok zinciri duymuş olabilirsiniz. Aşağıdaki bağlantılar bunların ne olduğunu ve Ethereum ile nasıl ilişkili olduklarını öğrenmenize yardımcı olacaktır.", "what-is-crypto-2": "Bitcoin gibi kripto paralar, herkesin dünya genelinde para transferi yapmasına olanak tanır. Bu işi Ethereum da yapar ancak buna ek olarak insanların uygulamalar ve organizasyonlar oluşturmasını sağlayan kodları da çalıştırabilir. Hem dayanıklı hem de esnektir: Tüm bilgisayar programları Ethereum üzerinde çalışabilir. Daha fazla bilgi edinin ve nasıl başlayacağınızı öğrenin:", "what-is-ethereum-card-title": "Ethereum Nedir?", @@ -33,9 +34,9 @@ "find-a-wallet-card-title": "Bir cüzdan bul", "find-a-wallet-card-description": "Sizin önemsediğiniz özellikleri temel alan cüzdanlara göz atın.", "find-a-wallet-button": "Cüzdan listesi", - "crypto-security-basics-card-title": "Güvenlik temelleri", - "crypto-security-basics-card-description": "Dolandırıcılıkları nasıl belirleyeceğinizi ve en yaygın hilelerden nasıl kaçınacağınızı öğrenin.", - "crypto-security-basics-card-button": "Güvende kalın", + "ethereum-networks-card-title": "Ethereum ağları", + "ethereum-networks-card-description": "Daha ucuz ve daha hızlı Ethereum uzantıları kullanarak para biriktirin.", + "ethereum-networks-card-button": "Ağ seçin", "things-to-consider-banner-title": "Ethereum kullanırken dikkat edilmesi gerekenler", "things-to-consider-banner-1": "USDC veya DAI gibi Ethereum üzerine inşa edilmiş farklı token'ları taşımanız gerekse bile, her Ethereum işlemi ETH ücreti gerektirir.", "things-to-consider-banner-2": "Ethereum kullanmaya çalışan kişi sayısına bağlı olarak ücretler yüksek olabilir, bu nedenle şu sistemi kullanmanızı öneririz", @@ -85,7 +86,7 @@ "ethereum-whitepaper-card-button": "Tanıtım belgesini oku", "more-on-ethereum-protocol-title": "Ethereum protokolü hakkında daha fazlası", "more-on-ethereum-protocol-ethereum-for-developers": "Geliştiriciler için Ethereum", - "more-on-ethereum-protocol-consensus": "Ethereum'un hisse ispatı bazlı mutabakat mekanizması", + "more-on-ethereum-protocol-consensus": "Ethereum'un hisse ispatı mutabakat mekanizmasına dayanır", "more-on-ethereum-protocol-evm": "Ethereum'un gömülü bilgisayarı (EVM)", "more-on-ethereum-protocol-nodes-and-clients": "Ethereum düğümleri ve istemcileri", "ethereum-community-description": "Ethereum başarısını inanılmaz şekilde adanmış topluluğuna borçludur. Binlerce ilham verici ve hevesli kişi Ethereum'un vizyonunu ileri götürmeye yardımcı olur ve aynı zamanda ağa, hisseleme ve yönetişim aracılığıyla güvenlik sağlarlar. Gelin ve bize katılın!", diff --git a/src/intl/tr/page-upgrades-index.json b/src/intl/tr/page-upgrades-index.json index cbbdb5b6841..c5d47f1bad7 100644 --- a/src/intl/tr/page-upgrades-index.json +++ b/src/intl/tr/page-upgrades-index.json @@ -97,7 +97,7 @@ "page-upgrades-question-6-answer-5": "Ayrıca ethresear.ch adresindeki Ethereum araştırma ve geliştirme tartışmasına da katılabilirsiniz.", "page-upgrades-question-6-title": "Merkeziyetsiz uygulamamla ne yapmam gerekiyor?", "page-upgrades-question-6-desc": "Birleşim, dapp geliştiricileri üzerinde minimum etkiye sahip olacak şekilde tasarlandı, yine de büyük karşılıkları olmayan birkaç küçük değişiklik mevcuttu.", - "page-upgrades-question-6-answer-1": "Birleşim öncesi Ethereum konusunda bilgi sahibi olan dapp geliştiricileri bazı değişikliklerin farkında olmalıdır. Bu değişiklikler blok yapısını ve zamanlamayı, birkaç işlem kodu değişikliğini, zincir üstündeki rastgelelik kaynaklarını ve dönem sonlandırma konseptini içerir.", + "page-upgrades-question-6-answer-1": "Birleşme öncesi Ethereum'a aşina olan Dapp geliştiricilerinin bazı değişikliklerden haberdar olması gerekir. Bu değişiklikler arasında blok yapısı ve zamanlaması, birkaç opcode değişikliği, zincir üstü rastgelelik kaynakları ve dönem sonlandırma kavramı bulunmaktadır.", "page-upgrades-question-6-answer-1-link": "Birleşim Ethereum'un Uygulama Katmanını Nasıl Etkiledi", "page-upgrades-question-6-answer-2": "Uygulamalar neredeyse hiç etkilenmedi.", "page-upgrades-question-7-desc": "Topluluğun her yerinden birçok farklı ekip, çeşitli Ethereum yükseltmeleri üzerinde çalışıyor.", diff --git a/src/intl/tr/page-wallets-find-wallet.json b/src/intl/tr/page-wallets-find-wallet.json index 34764f320a1..634a10b3fc8 100644 --- a/src/intl/tr/page-wallets-find-wallet.json +++ b/src/intl/tr/page-wallets-find-wallet.json @@ -5,7 +5,7 @@ "page-find-wallet-description": "Cüzdanlar ETH'lerinizi depolar ve ve onlarla işlem yapmanızı sağlar. İhtiyaçlarınıza uygun çeşitli ürünlerden birini seçebilirsiniz.", "page-find-wallet-last-updated": "Son güncelleme", "page-find-wallet-meta-description": "İstediğiniz özelliklere göre Ethereum cüzdanlarını bulun ve karşılaştırın.", - "page-find-wallet-meta-title": "Bir Ethereum cüzdanı bulun", + "page-find-wallet-meta-title": "Ethereum Cüzdanları Listesi | ethereum.org", "page-find-wallet-title": "Cüzdanınızı seçin", "page-find-wallet-try-removing": "Bir veya iki özelliği kaldırmayı deneyin", "page-stake-eth": "ETH stake etme", @@ -52,7 +52,7 @@ "page-find-wallet-check-out": "Göz atın", "page-find-wallet-info-updated-on": "bilgi güncellendi", "page-find-wallet-showing-all-wallets": "Tüm cüzdanlar gösteriliyor", - "page-find-wallet-wallets": "cüzdanlar", + "page-find-wallet-wallets": " cüzdanlar", "page-find-wallet-iOS": "iOS", "page-find-wallet-android": "Android", "page-find-wallet-linux": "Linux", @@ -61,7 +61,6 @@ "page-find-wallet-chromium": "Chromium", "page-find-wallet-firefox": "Firefox", "page-find-wallet-hardware": "Donanım", - "page-find-wallet-personas-title": "Ne arıyorsunuz?", "page-find-wallet-new-to-crypto-title": "Kriptoda yeni", "page-find-wallet-new-to-crypto-desc": "İlk defa işlem yapacak olan kullanıcı, başlangıç seviyesinde cüzdan arıyor.", "page-find-wallet-nfts-title": "NFT'ler", @@ -71,7 +70,8 @@ "page-find-wallet-finance-title": "Finans", "page-find-wallet-finance-desc": "DeFi uygulamalarının sık kullanımına odaklanan cüzdanlar.", "page-find-wallet-developer-title": "Geliştirici", - "page-find-wallet-developer-desc": "Geliştiricisiniz ve DApp'leri geliştirmeye ve test etmeye yardımcı olacak bir cüzdana ihtiyacınız var", + "page-find-wallet-developer-desc": "Merkeziyetsiz uygulamaları geliştirmeye ve test etmeye yardımcı olan cüzdanlar.", + "page-find-wallet-active": "aktif", "page-find-wallet-footnote-1": "Bu sayfada listelenen cüzdanlar resmi onaylı değildir ve yalnızca bilgilendirme amaçlıdır.", "page-find-wallet-footnote-2": "Açıklamaları, cüzdan projelerinin kendileri tarafından sağlanmıştır.", "page-find-wallet-footnote-3": "Bu sayfaya listeleme politikamıza göre ürün ekliyoruz. Cüzdan eklememizi istiyorsanız, GitHub'da bir destek talebi oluşturun.", diff --git a/src/intl/tr/page-what-is-ethereum.json b/src/intl/tr/page-what-is-ethereum.json index 9229a953e8e..d666d732355 100644 --- a/src/intl/tr/page-what-is-ethereum.json +++ b/src/intl/tr/page-what-is-ethereum.json @@ -1,15 +1,15 @@ { - "page-what-is-ethereum-alt-img-bazaar": "Ethereum'u temsil etmesi amaçlanan bir pazara bakan bir kişinin görseli", + "page-what-is-ethereum-alt-img-bazaar": "Ethereum'u temsil etmesi amaçlanan bir pazara bakan bir kişi görseli", "page-what-is-ethereum-alt-img-comm": "Ethereum topluluğu üyelerinin birlikte çalışmasını gösteren bir görsel", "page-what-is-ethereum-alt-img-lego": "Lego tuğlalarından ETH sembolü inşa eden bir elin görseli", "page-what-is-ethereum-banking-card": "Herkes için bankacılık", "page-what-is-ethereum-banking-card-desc": "Herkesin finansal hizmetlere erişimi yoktur. Fakat Ethereum'a ve Ethereum üzerinde geliştirilen borç verme, borç alma ve tasarruf ürünlerine erişmek için ihtiyacınız olan tek şey bir internet bağlantısıdır.", - "page-what-is-ethereum-build": "Ethereum ile bir şey yapın", + "page-what-is-ethereum-build": "Ethereum ile bir şeyler oluşturun", "page-what-is-ethereum-build-desc": "Ethereum ile inşa etmeyi denemek istiyorsanız, belgelerimizi okuyun, bazı öğreticileri deneyin veya başlamak için ihtiyacınız olan araçlara göz atın.", "page-what-is-ethereum-censorless-card": "Sansüre dirençli", "page-what-is-ethereum-censorless-card-desc": "Hiçbir hükümet veya şirketin Ethereum üzerinde kontrolü yoktur. Merkeziyetsizlik herhangi birinin, ödemelerinizi almanızı veya Ethereum üzerindeki hizmetleri kullanmanızı engellemesini neredeyse imkânsız hale getirir.", "page-what-is-ethereum-comm-desc": "Topluluğumuz, sanatçılar, kripto-anarşistler, en zengin 500 şirket ve şimdi siz de dahil olmak üzere farklı geçmişleri olan tüm insanları içerir. Bugün nasıl dahil olabileceğinizi öğrenin.", - "page-what-is-ethereum-commerce-card": "Garantilerin ticaretini yapın", + "page-what-is-ethereum-commerce-card": "Ticarette garanti", "page-what-is-ethereum-commerce-card-desc": "Müşteriler, fonların yalnızca anlaşılan şey sağlandığı zaman el değiştireceğine dair güvenli bir garantiye sahiptirler. Aynı şekilde geliştiriciler, konuya ilişkin kuralların değişmeyeceğinden emin olabilirler.", "page-what-is-ethereum-composable-card": "Birleştirilebilir ürünler", "page-what-is-ethereum-composable-card-desc": "Aynı blok zincir üzerinde inşa edilmiş tüm uygulamalar küresel bir durumu paylaşır, bu da (Lego parçaları gibi) birbirleri üzerine inşa edilebilecekleri anlamına gelir. Bu, daha iyi ürünleri ve deneyimleri mümkün kılar ve hiç kimsenin uygulamaların kullandığı araçları, kaldıramayacağını temin eder.", @@ -21,7 +21,7 @@ "page-what-is-ethereum-meet-comm": "Toplulukla tanış", "page-what-is-ethereum-meta-description": "Ethereum'u, ne yaptığını ve kendiniz için nasıl deneyeceğinizi öğrenin.", "page-what-is-ethereum-meta-title": "Ethereum nedir?", - "page-what-is-ethereum-p2p-card": "Eşler arası ağ", + "page-what-is-ethereum-p2p-card": "Kişiden kişiye ağ", "page-what-is-ethereum-p2p-card-desc": "Ethereum diğer insanlarla doğrudan koordine olmanıza, anlaşma yapmanıza ve dijital varlıklarınızı aktarmanıza izin verir. Aracılara güvenmenize gerek kalmaz.", "page-what-is-ethereum-start-building-btn": "Geliştirmeye başla", "page-what-is-ethereum-title": "Ethereum nedir?", @@ -34,9 +34,12 @@ "page-what-is-ethereum-cryptocurrency-tab-content-2": "Bitcoin ve ether gibi varlıkların \"kripto paralar\" olarak adlandırılmasının sebebi, verilerinizin ve varlıklarınızın güvenliğinin bir kuruma veya derneğe güvenmeye gerek olmadan kriptografi tarafından garanti edilmesidir.", "page-what-is-ethereum-cryptocurrency-tab-content-3": "Ethereum, ağdaki bazı faaliyetleri ödemek için kullanılan kendine özgü kripto paraya (ether (ETH) adında) sahiptir. Ethereum'daki diğer token'lar için diğer kullanıcılara gönderilebilir veya takas edilebilir. Ether önemlidir çünkü Ethereum'daki uygulamaları ve organizasyonları kurmada ve çalıştırmada gerekli hesaplamaları ödemede kullanılır.", "page-what-is-ethereum-summary-title": "Özet", - "page-what-is-ethereum-summary-desc-1": "Ethereum, Ethereum protokolü olarak adlandırılan bir dizi kuralı takip eden tüm dünyadaki bilgisayarlardan oluşan bir ağdır. Ethereum ağı, herkesin oluşturup kullanabileceği topluluklar, uygulamalar, organizasyonlar ve dijital varlıklar için kurucu gibi davranır.", - "page-what-is-ethereum-summary-desc-2": "Bir Ethereum hesabını herhangi bir yerde, zamanda oluşturabilir ve bir dünya uygulama keşfedebilir veya kendi uygulamanı oluşturabilirsin. Esas yenilik bunların hepsini senin erişimini değiştirebilecek veya kısıtlayabilecek bir merkez otoriteye bağlı kalmadan yapabilmendir.", - "page-what-is-ethereum-summary-desc-3": "Daha fazlasını öğrenmek için okumaya devam et…", + "page-what-is-ethereum-summary-desc-1": "Ethereum, Ethereum protokolünden beslenen binlerce uygulama ve blok zincirin ana platformudur.", + "page-what-is-ethereum-summary-desc-2": "Bu canlı ekosistem, yeniliği ve geniş kapsamlı merkeziyetsiz uygulama ile servisi destekliyor.", + "page-what-is-ethereum-summary-bullet-1": "Özgür ve küresel Ethereum hesapları", + "page-what-is-ethereum-summary-bullet-2": "Anonim, kişisel bilgiye gerek duyulmaz", + "page-what-is-ethereum-summary-bullet-3": "Kısıtlamasız herkes katılabilir", + "page-what-is-ethereum-summary-bullet-4": "Ethereum'un sahibi olan ya da geleceğine karar veren bir şirket yok", "page-what-is-ethereum-btc-eth-diff-title": "Ethereum ve Bitcoin arasındaki fark nedir?", "page-what-is-ethereum-btc-eth-diff-1": "2015'te piyasaya sürülen Ethereum, Bitcoin'in inovasyonu üzerine bazı büyük farklılıklarla birlikte inşaa edilmektedir.", "page-what-is-ethereum-btc-eth-diff-2": "Her ikisi de dijital paraları ödeme sağlayıcıları veya bankalar olmadan kullanmanızı sağlar. Ancak Ethereum programlanabilirdir, böylece ağında merkeziyetsiz uygulamalar inşaa edip dağıtabilirsiniz.", diff --git a/src/intl/tr/template-usecase.json b/src/intl/tr/template-usecase.json index 08a3b4f0406..d7a43d5bfed 100644 --- a/src/intl/tr/template-usecase.json +++ b/src/intl/tr/template-usecase.json @@ -1,7 +1,9 @@ { + "template-usecase-dropdown-ai-agents": "Yapay zeka temsilcileri", "template-usecase-dropdown-defi": "Merkeziyetsiz finans (DeFi)", "template-usecase-dropdown-nft": "Değiştirilemez token'lar (NFT'ler)", "template-usecase-dropdown-dao": "Merkeziyetsiz otonom organizasyonlar (DAO'lar)", + "template-usecase-dropdown-payments": "Ethereum Ödemeleri", "template-usecase-dropdown-social-networks": "Merkeziyetsiz sosyal ağlar", "template-usecase-dropdown-identity": "Merkeziyetsiz kimlik", "template-usecase-dropdown-desci": "Merkeziyetsiz bilim (DeSci)", @@ -10,4 +12,4 @@ "template-usecase-banner": "Ethereum'un kullanımı sürekli gelişir ve evrilir. Konuyu daha açık veya güncel hâle getireceğini düşündüğünüz tüm bilgileri ekleyin.", "template-usecase-edit-link": "Sayfayı düzenle", "template-usecase-dropdown-aria": "Kullanım alanları açılır menüsü" -} +} \ No newline at end of file From d7a63d0933a56fc8380e39ee16f3ed583ee50a1d Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Thu, 1 May 2025 04:46:26 +0000 Subject: [PATCH 067/106] chore: import translations for uk --- src/intl/uk/page-get-eth.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/intl/uk/page-get-eth.json b/src/intl/uk/page-get-eth.json index d6784f4958d..67c79833a29 100644 --- a/src/intl/uk/page-get-eth.json +++ b/src/intl/uk/page-get-eth.json @@ -1,5 +1,5 @@ { - "page-get-eth-article-keeping-crypto-safe": "Секрети безпеки вашої криптовалюти", + "page-get-eth-article-keeping-crypto-safe": "Ключі до безпеки вашої криптовалюти", "page-get-eth-article-protecting-yourself": "Як захистити себе й свої кошти", "page-get-eth-article-store-digital-assets": "Як зберігати цифрові об’єкти в мережі Ethereum", "page-get-eth-article-protecting-yourself-desc": "MyCrypto", @@ -10,13 +10,13 @@ "page-get-eth-checkout-dapps-btn": "Переглянути додатки", "page-get-eth-community-safety": "Дописи в спільноті на тему безпеки", "page-get-eth-description": "Ethereum не контролюється жодною організацією, тому що він децентралізований.", - "page-get-eth-dex": "Децентралізовані обмінники (DEX)", + "page-get-eth-dex": "Децентралізовані біржі (DEX)", "page-get-eth-dex-desc": "Задля отримання більшого контролю, купуйте ETH за допомогою смарт-контрактів. Користуючись DEX ви можете торгувати цифровими активами, не передаючи контроль над вашими коштами централізованій компанії.", - "page-get-eth-peers": "Отримуйте ETH від однорангових користувачів", + "page-get-eth-peers": "Отримуйте ETH від інших користувачів", "page-get-eth-peers-desc": "Щойно ви отримаєте обліковий запис Ethereum, вам необхідно буде поділитися вашою адресою, щоб почати надсилати та отримувати ETH (та інші токени) від одного користувача до іншого.", "page-get-eth-staking": "Винагорода за стейкінг", "page-get-eth-staking-desc": "Якщо ви вже маєте ETH, то можете заробити більше, ставши валідатором. За здійснення підтверджень ви отримуєте платню в ETH.", - "page-get-eth-earn": "Заробляйте ETH", + "page-get-eth-earn": "Як заробити ETH", "page-get-eth-earn-desc": "Ви можете заробляти ETH, працюючи для компаній DAO чи компаній, що здійснюють оплату в криптовалюті, виграючи нагороди, знаходячи помилки в програмному забезпеченні тощо.", "page-get-eth-daos-link-desc": "Докладніше про DAO", "page-get-eth-cex-link-desc": "Ознайомитися зі списком обмінників", @@ -60,11 +60,11 @@ "page-get-eth-use-your-eth": "Як використовувати ETH", "page-get-eth-use-your-eth-dapps": "Оскільки тепер у вас є ETH, радимо переглянути деякі децентралізовані програми Ethereum у категоріях фінансів, соціальних мереж, ігор тощо.", "page-get-eth-wallet-instructions": "Дотримуйтеся вказівок у гаманці", - "page-get-eth-wallet-instructions-lost": "Якщо ви втратите доступ до облікового запису, то втратите доступ і до своїх коштів. У гаманці можна знайти вказівки щодо того, як цьому запобігти. Чітко дотримуйтеся їх, адже якщо ви втратите доступ до облікового запису, скоріш за все, вам ніхто не зможе допомогти.", + "page-get-eth-wallet-instructions-lost": "Якщо ви втратите доступ до свого акаунту, ви втратите доступ до своїх коштів. У гаманці можна знайти вказівки щодо того, як цьому запобігти. Чітко дотримуйтеся їх, адже якщо ви втратите доступ до облікового запису, скоріш за все, вам ніхто не зможе допомогти.", "page-get-eth-wallets": "Гаманці", "page-get-eth-wallets-link": "Докладніше про гаманці", "page-get-eth-wallets-purchasing": "У деяких гаманцях криптовалюту можна придбати за допомогою кредитної чи дебетової картки та навіть Apple Pay. Застосовуються географічні обмеження.", - "page-get-eth-warning": "Ці DEX не для початківців, оскільки для їхнього використання вам знадобиться ETH. Це лише приклади, а не схвалені продукти. Проведіть власне дослідження!", + "page-get-eth-warning": "Ці DEX не для початківців, тому що для їх використання вам знадобиться певна кількість ETH. Це лише приклади, а не схвалені продукти. Проведіть власне дослідження!", "page-get-eth-what-are-DEX's": "Що таке децентралізовані обмінники?", "page-get-eth-whats-eth-link": "Що таке ETH?", "page-get-eth-where-to-buy-desc": "Ви можете заробляти ETH, отримувати його від однорангових користувачів або купляти в обмінниках чи програмах.", From 945a28b534c5a30d2fda595fafc53e928d9d0b15 Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Thu, 1 May 2025 04:46:29 +0000 Subject: [PATCH 068/106] chore: import translations for zh-tw --- src/intl/zh-tw/page-wallets-find-wallet.json | 14 +++++++------- src/intl/zh-tw/page-what-is-ethereum.json | 8 ++++---- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/intl/zh-tw/page-wallets-find-wallet.json b/src/intl/zh-tw/page-wallets-find-wallet.json index 660e5144253..026b15832fa 100644 --- a/src/intl/zh-tw/page-wallets-find-wallet.json +++ b/src/intl/zh-tw/page-wallets-find-wallet.json @@ -12,7 +12,7 @@ "page-find-wallet-open-source": "開放原始碼", "page-find-wallet-open-source-desc": "讓任何人都可以稽核應用程式的完整性和安全性的開源軟體", "page-find-wallet-self-custody": "自我保管", - "page-find-wallet-non-custodial": "個人擁有權", + "page-find-wallet-non-custodial": "自我掌控", "page-find-wallet-non-custodial-desc": "不控制使用者私密金鑰的錢包", "page-find-wallet-hardware-wallet-support": "支援硬體錢包", "page-find-wallet-hardware-wallet-support-desc": "可連結至硬體錢包以增強安全性的錢包", @@ -29,15 +29,15 @@ "page-find-wallet-layer-2": "二層網路", "page-find-wallet-layer-2-desc": "支援以太坊二層網路的錢包", "page-find-wallet-gas-fee-customization": "燃料費自訂", - "page-find-wallet-gas-fee-customization-desc": "自訂你的燃料用量(基本費用、優先費與最高費用)", + "page-find-wallet-gas-fee-customization-desc": "自訂您的 gas 費用(基本費、優先費和最高費)", "page-find-wallet-ens-support": "支援以太坊名稱服務", "page-find-wallet-ens-support-desc": "支援以太坊名稱服務 (ENS) 的錢包", "page-find-wallet-token-importing": "代幣匯入", "page-find-wallet-token-importing-desc": "匯入任何 ERC-20 代幣以便於錢包內使用", "page-find-wallet-buy-crypto": "購買加密貨幣", - "page-find-wallet-buy-crypto-desc": "在錢包中直接使用法定貨幣購買加密貨幣\n*備注:購買加密貨幣可能因地區而異", + "page-find-wallet-buy-crypto-desc": "直接在錢包內使用法幣購買加密貨幣\n*備注:購買加密貨幣可能因地區而異", "page-find-wallet-sell-for-fiat": "出售換取法定貨幣", - "page-find-wallet-sell-for-fiat-desc": "直接在錢包中出售加密貨幣換取法定貨幣\n*備注:提取加密貨幣可能因地區而異", + "page-find-wallet-sell-for-fiat-desc": "直接在錢包內將加密貨幣出售為法幣\n*備注:提取加密貨幣可能因地區而異", "page-find-wallet-multisig": "多簽", "page-find-wallet-multisig-desc": "需要多重簽名來授權交易的錢包", "page-find-wallet-social-recovery": "社交恢復", @@ -49,7 +49,7 @@ "page-find-wallet-security": "安全性", "page-find-wallet-smart-contract": "智慧型合約", "page-find-wallet-advanced": "進階", - "page-find-wallet-check-out": "查看更多", + "page-find-wallet-check-out": "了解詳情", "page-find-wallet-info-updated-on": "資訊更新時間", "page-find-wallet-showing-all-wallets": "顯示全部錢包", "page-find-wallet-wallets": "錢包", @@ -65,13 +65,13 @@ "page-find-wallet-new-to-crypto-desc": "初次使用者尋找適合新手的錢包。", "page-find-wallet-nfts-title": "非同質化代幣", "page-find-wallet-nfts-desc": "專注於支援非同質化代幣的錢包。", - "page-find-wallet-hodler-title": "長期", + "page-find-wallet-hodler-title": "長期持有", "page-find-wallet-hodler-desc": "使用硬體錢包被動持有代幣。", "page-find-wallet-finance-title": "金融", "page-find-wallet-finance-desc": "專為頻繁使用去中心化金融應用程式的使用者打造的錢包。", "page-find-wallet-developer-title": "開發者", "page-find-wallet-developer-desc": "幫助開發並測試去中心化應用程式的錢包。", - "page-find-wallet-active": "使用中", + "page-find-wallet-active": "啟用中", "page-find-wallet-footnote-1": "本頁面所列錢包並非官方認可,僅供用於參考用途。", "page-find-wallet-footnote-2": "錢包說明由錢包專案本身提供。", "page-find-wallet-footnote-3": "我們根據上市政策中的標準將產品新增到本頁面。如果你希望我們新增錢包,請在 GitHub 中提出問題。", diff --git a/src/intl/zh-tw/page-what-is-ethereum.json b/src/intl/zh-tw/page-what-is-ethereum.json index 95eb41fe6d8..9b1257af60e 100644 --- a/src/intl/zh-tw/page-what-is-ethereum.json +++ b/src/intl/zh-tw/page-what-is-ethereum.json @@ -1,5 +1,5 @@ { - "page-what-is-ethereum-alt-img-bazaar": "插圖:一個人望向代表以太坊的市集", + "page-what-is-ethereum-alt-img-bazaar": "插圖:一個人注視著代表以太坊的市集", "page-what-is-ethereum-alt-img-comm": "插圖:以太坊社群成員一起工作", "page-what-is-ethereum-alt-img-lego": "插圖:一隻手正在將樂高積木組成以太幣標誌", "page-what-is-ethereum-banking-card": "屬於所有人的銀行", @@ -9,9 +9,9 @@ "page-what-is-ethereum-censorless-card": "抗審查性", "page-what-is-ethereum-censorless-card-desc": "任何政府或公司都不能控制以太坊。由於去中心化,幾乎任何人都無法阻止你在以太坊上收到付款或使用服務。", "page-what-is-ethereum-comm-desc": "以太坊社群由各種背景的人組成。從藝術家、加密貨幣無政府主義者、財星 500 強公司,現在你也加入了。今天就來試試如何參與以太坊吧。", - "page-what-is-ethereum-commerce-card": "商業保障", + "page-what-is-ethereum-commerce-card": "交易保證", "page-what-is-ethereum-commerce-card-desc": "顧客有安全、內建的保證,所有資金只在你同意的情況才會轉手。同樣的,開發者可以確定規則不會改變他們。", - "page-what-is-ethereum-composable-card": "可組合產品", + "page-what-is-ethereum-composable-card": "可組合式產品", "page-what-is-ethereum-composable-card-desc": "所有應用程式都建立在同一條區塊鏈上,有著共同的全域狀態,這意味著它們可以在彼此的基礎上開發(如同樂高積木一樣)。因此,可以提供更佳的產品和體驗以及更可靠的保障,確保沒有人可以移除應用程式所依賴的任何工具。", "page-what-is-ethereum-community": "以太坊社群", "page-what-is-ethereum-desc": "數位未來的基礎", @@ -49,7 +49,7 @@ "page-what-is-ethereum-why-would-i-use-ethereum-title": "我為什麼要使用以太坊?", "page-what-is-ethereum-why-would-i-use-ethereum-1": "如果想以更具彈性、更開放、可信度更高的方式進行全球協作、創立組織、構建應用程式和分享價值,那麼以太坊適合你。以太坊是一個我們所有人共同書寫的故事,所以快來吧,看看憑藉以太坊我們能夠共同建造何等神奇的世界。", "page-what-is-ethereum-why-would-i-use-ethereum-2": "有些人不得不應對由於無法控制的外部力量而給其資產的安全性、健全性或可移動性帶來的不確定因素,對於他們來說,以太坊亦是價值無量。", - "page-what-is-ethereum-slide-1-title": "更便宜和更快捷的跨境支付", + "page-what-is-ethereum-slide-1-title": "更低成本、更快捷的跨境支付", "page-what-is-ethereum-slide-1-desc-1": "穩定幣是一種新型的加密貨幣,它依賴於更穩定的資產作為其價值的基礎。它們中的大多數都與美元掛鉤,因此保持該貨幣的價值。這進而形成一個非常便宜和穩定的全球支付系統。當前的許多穩定幣都是建立在以太坊網路上的。", "page-what-is-ethereum-slide-1-desc-2": "以太坊和穩定幣簡化了向海外匯款的過程。相較於普通銀行在全球各地轉移資金可能需要幾個工作日甚至幾週,以太坊通常只需要幾分鐘,而且手續費只是總金額的一小部分。此外,進行高額交易不會收取額外費用,並且對匯款地點或原因不會有任何限制。", "page-what-is-ethereum-slide-2-title": "危機時刻的最快幫助", From a6ba12c094d877295435f7badcd9091f480640c7 Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Thu, 1 May 2025 04:46:33 +0000 Subject: [PATCH 069/106] chore: import translations for zh --- public/content/translations/zh/about/index.md | 4 +- .../zh/account-abstraction/index.md | 132 ++++++++ .../translations/zh/beacon-chain/index.md | 75 +++++ .../translations/zh/community/online/index.md | 9 +- .../translations/zh/contributing/index.md | 3 +- .../how-to-translate/index.md | 2 +- .../contributing/translation-program/index.md | 6 +- .../translators-guide/index.md | 4 +- .../translations/zh/danksharding/index.md | 95 ++++++ .../patricia-merkle-trie/index.md | 30 +- .../networking-layer/portal-network/index.md | 2 +- .../docs/nodes-and-clients/index.md | 16 +- .../node-architecture/index.md | 12 +- .../nodes-as-a-service/index.md | 2 +- public/content/translations/zh/dvt/index.md | 91 ++++++ .../translations/zh/enterprise/index.md | 2 +- .../content/translations/zh/events/index.md | 24 ++ .../translations/zh/future-proofing/index.md | 38 +++ .../content/translations/zh/glossary/index.md | 4 +- .../index.md | 73 +++++ .../zh/roadmap/verkle-trees/index.md | 2 + .../content/translations/zh/scaling/index.md | 51 +++ .../content/translations/zh/security/index.md | 297 ++---------------- .../translations/zh/statelessness/index.md | 103 ++++++ .../content/translations/zh/support/index.md | 105 +++++++ .../translations/zh/user-experience/index.md | 36 +++ public/content/translations/zh/web3/index.md | 4 + src/intl/zh/common.json | 4 +- src/intl/zh/glossary-tooltip.json | 4 +- src/intl/zh/glossary.json | 10 +- src/intl/zh/page-get-eth.json | 4 +- src/intl/zh/page-index.json | 7 +- src/intl/zh/page-upgrades-index.json | 2 +- src/intl/zh/page-wallets-find-wallet.json | 8 +- src/intl/zh/page-what-is-ethereum.json | 6 +- src/intl/zh/template-usecase.json | 1 + 36 files changed, 928 insertions(+), 340 deletions(-) create mode 100644 public/content/translations/zh/account-abstraction/index.md create mode 100644 public/content/translations/zh/beacon-chain/index.md create mode 100644 public/content/translations/zh/danksharding/index.md create mode 100644 public/content/translations/zh/dvt/index.md create mode 100644 public/content/translations/zh/events/index.md create mode 100644 public/content/translations/zh/future-proofing/index.md create mode 100644 public/content/translations/zh/how-to-create-an-ethereum-account/index.md create mode 100644 public/content/translations/zh/scaling/index.md create mode 100644 public/content/translations/zh/statelessness/index.md create mode 100644 public/content/translations/zh/support/index.md create mode 100644 public/content/translations/zh/user-experience/index.md diff --git a/public/content/translations/zh/about/index.md b/public/content/translations/zh/about/index.md index 37fbfb5ed43..d803f9b530e 100644 --- a/public/content/translations/zh/about/index.md +++ b/public/content/translations/zh/about/index.md @@ -90,9 +90,9 @@ ethereum.org 是一个面向以太坊社区的开源公共网站和教育资源 ## 产品路线图 {#roadmap} -为了使我们的工作更易于了解,并促进更多的社区合作,ethereum.org 核心团队发布了一份季度目标路线图概览。 +为了使我们的工作更易于了解,并促进更多的社区合作,ethereum.org 核心团队发布了一份 [Shape Up(规划-构建)周期](https://www.productplan.com/glossary/shape-up-method/)路线图概览。 -[查看我们的 2024 年第 3 季度产品路线图](https://github.com/ethereum/ethereum-org-website/issues/13399) +[查看我们的 2025 年第 1 周期产品路线图](https://github.com/ethereum/ethereum-org-website/issues/14726) **这看起来怎么样?**我们始终感谢为我们的路线图提供的反馈 - 如有改进之处,请告诉我们! 我们欢迎社区里的任何人提出想法和建议。 diff --git a/public/content/translations/zh/account-abstraction/index.md b/public/content/translations/zh/account-abstraction/index.md new file mode 100644 index 00000000000..4d67a751c52 --- /dev/null +++ b/public/content/translations/zh/account-abstraction/index.md @@ -0,0 +1,132 @@ +--- +title: 账户抽象 +description: 关于以太坊简化用户帐户和增强用户帐户安全性的计划的概述 +lang: zh +summaryPoints: + - 帐户抽象大大简化了构建智能合约钱包的过程 + - 智能合约钱包大大简化了管理以太坊帐户访问的过程 + - 丢失和泄露的密钥可以通过多重备份进行找回 +--- + +# 账户抽象 {#account-abstraction} + +用户通过**[外部帐户 (EOA)](/glossary/#eoa)** 与以太坊进行交互。 这是当前开始交易或执行智能合约的唯一方式, 这限制了用户与以太坊的交互。 例如,这导致很难进行批量交易,并且要求用户一直让以太币帐户中有余额以支付燃料费。 + +帐户抽象是解决这些问题的一种方式,可以让用户灵活地设置自己的帐户,以提高安全性和改善用户体验。 要完成帐户抽象,可以[升级外部帐户](https://eips.ethereum.org/EIPS/eip-3074),使它们能被智能合约控制,或者[升级智能合约](https://eips.ethereum.org/EIPS/eip-2938),使它们能够发起交易。 这两种方案都需要对以太坊协议进行更改。 还有第三种途径,即添加[第二个独立的交易系统](https://eips.ethereum.org/EIPS/eip-4337),与现有协议并行运行。 无论采取哪种路径,结果都是通过智能合约钱包访问以太坊,要么作为现有协议的一部分得到本地支持,要么通过附加的交易网络完成。 + +智能合约钱包可以为用户带来许多好处,包括: + +- 灵活定义自己的安全规则 +- 丢失密钥后找回帐户 +- 在信赖的设备或个人之间共享帐户安全性 +- 支付他人的燃料费用,或让他人为你支付燃料费用 +- 批量交易(例如,一次性批准并执行兑换) +- 增加去中心化应用程序和钱包开发者创新用户体验的机会 + +由于目前只有外部帐户 ([EOA](/glossary/#eoa)) 可以发起交易,所以这些好处还没有得到本地支持。 外部帐户采用简单的公钥-私钥对。 它们的工作原理如下: + +- 如果你拥有私钥,可以在以太坊虚拟机 (EVM) 的规则范围内做_任何_事情。 +- 如果你没有私钥,将无法进行_任何操作_。 + +如果你丢失了密钥则无法找回,而窃取者可以使用窃取的密钥立即获得帐户中的所有资金。 + +智能合约钱包是解决这些问题的方法,但是目前它们很难编程,因为最终它们实现的任何逻辑都必须被转换为一系列外部帐户交易,才能被以太坊处理。 帐户抽象可以让智能合约自行发起交易,因此用户希望实现的任何逻辑都可以编码到智能合约钱包本身,并在以太坊上执行。 + +最后,帐户抽象可以改善对智能合约钱包的支持,使其更易于构建且更安全地使用。 最终,通过帐户抽象化,用户可以享受以太坊的所有好处,而无需了解或关心底层技术。 + +## 超越助记词 {#beyond-seed-phrases} + +目前,帐户是通过私钥保护的,而私钥是通过助记词计算出来的。 获得助记词的任何人都可以轻松掌握保护帐户的私钥,并获得其保护的所有资产。 如果私钥和助记词丢失,它们将永远无法找回,并且它们所控制的资产将永久冻结。 即使对于专业用户来说,保护这些助记词也很困难,而助记词钓鱼是用户遭受诈骗的最常见方式之一。 + +帐户抽象通过使用智能合约来持有资产和授权交易,解决了这个问题。 然后,这些智能合约可以用自定义逻辑装饰,以尽可能提高安全性,并根据用户的需求进行定制。 最终,你仍是使用私钥来控制帐户访问,但是有了安全措施,帐户就更易于管理且更安全。 + +例如,可以将备用密钥添加到钱包中,这样如果你丢失或意外泄露了主要密钥,可以通过备用密钥的授权将其替换为新的安全密钥。 你可以通过不同方式保护这些密钥,或者将它们分散到不同的受信任守护者。 这大大提高了窃取者完全控制你的资金的难度。 同样,你可以在钱包中添加规则以减轻主要密钥泄露的影响。例如,你可以允许低价值交易由单个签名验证,而高价值交易则需要由多个经过身份验证的签名者批准。 智能合约钱包还可以通过其他方式防止你遭到窃取。例如,你可以使用白名单来阻止其他所有交易,除了发送到可信地址或经过多个预先批准的密钥验证的交易。 + +### 可以内置到智能合约钱包中的安全逻辑的示例: + +- **多重签名授权**:你可以在多个受信任的人或设备之间共享授权凭证。 然后,可以对合约进行配置,以便超过预设值的交易需要获得一定比例(例如 3/5)的受信任方的授权。 例如,高价值的交易可能需要在移动设备和硬件钱包上都获得批准,或者需要分散在受信任家庭成员的帐户的签名。 +- **帐户冻结**:如果设备丢失或被入侵,可以从另一个经过授权的设备上锁定帐户,以保护用户的资产安全。 +- **帐户找回**:丢失设备或忘记密码了? 在目前的模式下,这意味着你的资产可能被永远冻结。 通过使用智能合约钱包,你可以设置帐户白名单来授权新设备并重置访问权限。 +- **设置交易限制**:指定帐户一天/一周/一月可以转移的每日价值阈值。 这意味着,即使攻击者成功获得了你的帐户的访问权限,他们也无法一次性将所有资金转移走,而你有机会冻结帐户并重新设置访问权限。 +- **创建白名单**:仅允许与你确认安全的地址进行交易。 这意味着_即使_你的私钥被盗,攻击者也只能将资金发送到白名单上的目标帐户。 这些白名单需要多个签名才能更改。因此,除非攻击者能够获得你的多个备份密钥,否则无法将自己的地址添加到名单中。 + +## 改善用户体验 {#better-user-experience} + +帐户抽象可以改善**整体用户体验**和**安全性**,因为它在协议层面上为智能合约钱包增加了支持。 最重要的原因是它将为智能合约、钱包和应用的开发者提供更大的创新自由度,使他们能够以我们目前还无法预料到的方式改进用户体验。 通过帐户抽象,我们将迎来一些明显改进,其中包括捆绑交易以提高速度和效率。 例如,简单的兑换应该是一键操作的,但在当前情况下,执行兑换之前需要签署多个交易来批准每个代币的支出。 帐户抽象通过允许交易捆绑消除了这一问题。 此外,捆绑的交易可以精确批准每个交易所需的适当代币价值,然后在交易完成后撤销批准,提供额外的安全性。 + +通过帐户抽象,燃料管理也得到了很大改进。 不仅应用程序可以支付用户的燃料费,而且可以使用以太币以外的代币支付燃料费,从而使用户无需为提供交易资金而保持帐户中有以太币余额。 可以这样做,在合约内使用用户的代币兑换以太币,然后使用以太币支付燃料费。 + + + +燃料管理是以太坊用户主要面临的问题之一,主要是因为以太币是唯一可用于支付交易费用的资产。 假设你的钱包内有 USDC 余额但没有以太币余额。 由于你无法支付燃料费用,所以无法转移或交换这些 USDC 代币。 你也无法将 USDC 交换成以太币,因为这个操作本身也需要支付燃料费用。 要解决这个问题,你需要从交易所或其他地址向你的帐户发送更多以太币。 通过智能合约钱包,你可以轻松使用 USDC 支付燃料费用,从而解放你的帐户。 你不再需要在所有帐户中保持以太币余额了。 + +帐户抽象还可以让去中心化应用程序的开发者以创造性的方式进行燃料管理。 例如,你可以考虑与你最喜爱的去中心化交易所达成协议,每月支付固定费用以获得无限次交易的权限。 去中心化应用程序可能会作为你使用其平台的奖励或入门优惠,为你支付所有燃料费用。 当智能合约钱包在协议层面得到支持时,开发者在燃料管理方面进行创新将更加容易。 + + + +受信任会话同样也有可能改变用户体验,尤其是对于游戏等可能需要在短时间内批准大量小额交易的应用程序而言。 单独批准每笔交易将破坏游戏体验,但永久批准则存在安全风险。 智能合约钱包可以在固定时间内批准不超过特定金额或仅与特定地址进行的特定交易。 + +此外,帐户抽象会给购买方式带来变化,这也是一个有趣的方面。 目前,每笔交易都需要通过预先充入充足的适当代币的钱包批准和执行。 进行帐户抽象后,用户的体验会更像我们熟悉的在线购物体验,用户可以将商品添加到“购物车”中,然后一次性点击购买,所有必需的逻辑都由智能合约处理,而不是由用户处理。 + +这只是帐户抽象可以提升用户体验的一些例子,还有许多我们尚未想象到的情况。 帐户抽象让开发者摆脱了当前以太坊外部帐户的限制,使他们能够在不放弃自我保管的情况下将 Web2 的良好特性引入 Web3,并创造性带来创新用户体验。 + +## 帐户抽象将如何实施? {#how-will-aa-be-implemented} + +智能合约钱包目前已存在,但由于以太坊虚拟机不支持,所以实现起来会有一些挑战。 相反,它们采用的方法是将相对复杂的代码封装在标准的以太坊交易中。 以太坊可以改变这一点,允许智能合约发起交易,在以太坊智能合约中处理必要逻辑,而不是链下处理。 将逻辑放入智能合约还增加了以太坊的去中心化程度,因为不再需要由钱包开发者运行的"中继者"将用户签名的消息转换为常规的以太坊交易。 + + + +EIP-2771 引入了元交易的概念,允许第三方为用户支付燃料费用,而无需对以太坊协议进行更改。 这个想法是将用户签名的交易发送到一个名为“转发者”的合约中。 转发者是一个受信任的实体,在将交易发送到燃料中继器之前验证交易的有效性。 这是链下完成的,无需支付燃料费用。 燃料中继器将交易传递到“接收者”合约,支付所需的燃料费用,使交易能够在以太坊上执行。 如果“接收者”知道并信任“转发者”,则交易将被执行。 该模型使得开发者能够为用户轻松实现无需支付燃料费用的交易。 + + + + + +EIP-4337 是以去中心化方式使智能合约钱包获得本地支持的第一步,无需对以太坊协议进行更改。 它并未修改共识层以支持智能合约钱包,而是在正常的交易传播协议中单独添加了一个新系统。 这个更高层次的系统是围绕一个叫做 UserOperation 的新对象构建,它将用户的操作与相关的签名打包在一起。 这些 UserOperation 对象随后被广播到一个专用的内存池中,验证者在那里可以将它们收集到一个"捆绑交易"中。 捆绑交易代表了很多一系列单独的 UserOperations,并且可以像普通交易那样被添加到以太坊区块中。验证者会使用类似的最大化费用选择模型来选择捆绑交易。 + +在 EIP-4337 下,钱包的工作方式也会改变。 它不会让每个钱包重新实现常见但复杂的安全逻辑,而是会将这些功能外包给一个名为“入口点”的全局钱包合约。 该合约将处理支付费用和执行以太坊虚拟机代码等操作,以便钱包开发者可以专注于提供卓越的用户体验。 + +注意 EIP 4337 入口点合约于 2023 年 3 月 1 日部署到以太坊主网上。 你可以在 Etherscan 上查看该合约。 + + + + + +EIP-2938 旨在通过引入新的交易类型 AA_TX_TYPE 来更新以太坊协议,该交易类型包括三个字段:noncetargetdata,其中 nonce 是交易计数器,target 是入口点合约地址,data 是以太坊虚拟机字节码。 为了执行这些交易,需要向以太坊虚拟机添加两条新指令(也称为操作码):NONCEPAYGASNONCE 操作码用于跟踪交易序列,而 PAYGAS 操作码用于计算并从合约余额中提取执行交易所需的燃料费用。 这些新功能使得以太坊能够为智能合约钱包提供本地支持,因为必要的基础设施已经内置在以太坊的协议中。 + +请注意,EIP-2938 目前尚未激活。 目前社区更倾向于 EIP-4337,因为它不需要对协议进行更改。 + + + + + +EIP-3074 旨在更新以太坊的外部帐户,允许其将控制权委托给智能合约。 这意味着智能合约逻辑可以批准源自外部帐户的交易。 这可以实现一些功能,如燃料赞助和批量交易。 要使其生效,需要向以太坊虚拟机添加两个新的操作码:AUTHAUTHCALL。 通过 EIP-3074,不需要合约就可以获得智能合约钱包的好处,取而代之的是一种特定类型的无状态、去信任、不可升级的合约(被称为“调用者”),用于处理交易。 + +请注意,EIP-3074 目前尚未激活。 目前社区更倾向于 EIP-4337,因为它不需要对协议进行更改。 + + + +## 当前进展 {#current-progress} + +智能合约钱包已经推出,但需要进行更多升级以使其尽可能去中心化和无需许可。 EIP-4337 是一个成熟的提案,不需要对以太坊的协议进行任何更改,因此可能可以迅速实施。 然而,当前并没有积极开发用于更改以太坊协议的升级,因此这些更改可能需要更长时间才能上线, 也有可能通过 EIP-4337 充分实现帐户抽象,不再需要更改协议。 + +**注意**:你可以[通过此仪表板](https://www.bundlebear.com/overview/all)跟踪 ERC-4337 智能合约钱包的采纳情况。 + +## 延伸阅读 {#further-reading} + +- [erc4337.io](https://www.erc4337.io/) +- [帐户抽象面板探讨 — Devcon Bogota](https://www.youtube.com/watch?app=desktop&v=WsZBymiyT-8) +- ["为什么帐户抽象对于去中心化应用程序而言是一场革命性的变革" — Devcon Bogota](https://www.youtube.com/watch?v=OwppworJGzs) +- [“帐户抽象 ELI5” — Devcon Bogota](https://www.youtube.com/watch?v=QuYZWJj65AY) +- [Vitalik“帐户抽象之路”说明](https://notes.ethereum.org/@vbuterin/account_abstraction_roadmap#Transaction-inclusion-lists) +- [Vitalik 关于社交恢复钱包的博文](https://vitalik.eth.limo/general/2021/01/11/recovery.html) +- [EIP-2938 说明](https://hackmd.io/@SamWilsn/ryhxoGp4D#What-is-EIP-2938) +- [EIP-2938 文件](https://eips.ethereum.org/EIPS/eip-2938) +- [EIP-4337 说明](https://medium.com/infinitism/erc-4337-account-abstraction-without-ethereum-protocol-changes-d75c9d94dc4a) +- [EIP-4337 文件](https://eips.ethereum.org/EIPS/eip-4337) +- [EIP-2771 文件](https://eips.ethereum.org/EIPS/eip-2771) +- [“帐户抽象基础知识”-- 什么是帐户抽象(第一部分)](https://www.alchemy.com/blog/account-abstraction) +- [以太坊帐户抽象路线图图解 I:EIP-3074、EIP-5806 和 EIP-7702](https://research.2077.xyz/charting-ethereums-account-abstraction-roadmap-eip-3074-eip-5806-eip-7702) +- [出色的帐户抽象](https://github.com/4337Mafia/awesome-account-abstraction) +- [面向所有人的模块化帐户抽象](https://blog.rhinestone.wtf/part-1-modular-account-abstraction-for-everyone-else-84567422bc46) + diff --git a/public/content/translations/zh/beacon-chain/index.md b/public/content/translations/zh/beacon-chain/index.md new file mode 100644 index 00000000000..f0a0e1619bb --- /dev/null +++ b/public/content/translations/zh/beacon-chain/index.md @@ -0,0 +1,75 @@ +--- +title: 信标链 +description: 了解信标链 - 引入权益证明的以太坊升级。 +lang: zh +template: upgrade +image: /images/upgrades/core.png +alt: +summaryPoint1: 信标链为以太坊生态系统引入了权益证明机制。 +summaryPoint2: 信标链于 2022 年 9 月与原有的以太坊工作量证明链合并。 +summaryPoint3: 信标链引入了共识逻辑和区块广播协议,为当前的以太坊保驾护航。 +--- + + + 信标链于 2020 年 12 月 1 日上线,并且在 2022 年 9 月 15 日完成合并升级,将权益证明正式确定为太坊的共识机制。 + + +## 什么是信标链? {#what-is-the-beacon-chain} + +信标链是 2020 年推出的原始权益证明区块链的名称。 它的创立是为了在以太坊主网上运行权益证明共识逻辑之前确保该逻辑是可靠且可持续的。 因此,它与原有的工作量证明以太坊一起运行。 信标链是一个由“空”区块组成的链,但在以太坊上停止工作量证明并启动权益证明,需要指示信标链接受来自执行客户端的交易数据,将它们打包到区块,再将区块组织到一条运行权益证明共识机制的区块链上。 与此同时,原有的以太坊客户端停止挖矿、区块传播及旧的共识逻辑,并将这一切转交给信标链。 这一事件称为[合并](/roadmap/merge/)。 在合并发生后,就不再有两个区块链。 相反,只有一个权益证明以太坊,现在每个节点需要两个不同的客户端。 信标链现在是共识层,一个处理区块消息和共识逻辑的共识客户端的点对点网络,而原始客户端形成执行层,负责传播消息和执行交易,以及管理以太坊的状态。 这两层可以使用引擎应用程序接口相互通信。 + +## 信标链有什么作用? {#what-does-the-beacon-chain-do} + +信标链是在以太坊[质押人](/staking/)开始验证真实的以太坊区块之前管理和协调以太坊质押人网络的帐户账本的名称。 它不处理交易或智能合约交互,因为这些任务在执行层完成。 信标链负责处理区块和证明、运行分叉选择算法以及管理奖励和惩罚等。 要了解更多内容,请参阅我们的[节点架构页面](/developers/docs/nodes-and-clients/node-architecture/#node-comparison)。 + +## 信标链的影响 {#beacon-chain-features} + +### 质押介绍 {#introducing-staking} + +信标链将[权益证明机制](/developers/docs/consensus-mechanisms/pos/)引入以太坊。 这保证了以太坊的安全,并在此过程中让验证者获得更多以太币。 在实际操作中,质押将需要质押以太币,以激活验证者软件。 作为质押人,你运行该软件并在链中创建和验证新区块。 + +质押的目的和以前的[挖矿](/developers/docs/consensus-mechanisms/pow/mining/)相似,但又在很多方面不同。 挖矿的前期支出庞大,需要投入强大的硬件和消耗大量能源,从而产生规模经济并促进集中化。 挖矿也没有提出任何将资产锁定作为抵押品的要求,这限制了被攻击后协议惩罚不良行为者的能力。 + +和工作量证明相比,过渡到权益证明让以太坊的安全性与去中心化得到显著提升。 参与该网络的人越多,网络去中心化程度越高,面临攻击时也越安全。 + +采用权益证明共识机制为[我们现在拥有的安全、环保和可扩展的以太坊](/roadmap/vision/)奠定了基础。 + + + 如果你有兴趣成为验证者并帮助保护以太坊,请点击此处了解更多关于质押的信息。 + + +### 设置分片 {#setting-up-for-sharding} + +在信标链与最初的以太坊主网合并后,以太坊社区开始寻求扩展该网络。 + +权益证明的优势是,在任何给定时间都有全部已批准的区块生产者的记录,每个区块生产者都质押了以太币。 这个记录不但为分开治理奠定了基础,还可靠地划分了具体的网络责任。 + +这种责任与工作量证明形成对比,在工作量证明中,矿工对网络没有义务,可以立即停止挖矿并永久关闭其节点而不会受到任何影响。 而且,也没有已知区块提议者的记录,并且没有可靠的方法安全地划分网络责任。 + +[有关分片的更多信息](/roadmap/danksharding/) + +## 升级间的关系 {#relationship-between-upgrades} + +以太坊的所有升级都存在一些关联。 所以我们来回顾一下信标链对其他升级的影响。 + +### 信标链和合并 {#merge-and-beacon-chain} + +最初,信标链与以太坊主网相互独立,但两者在 2022 合并。 + + + 合并 + + +### 分片和信标链 {#shards-and-beacon-chain} + +只有在已建立权益证明共识机制的情况下,分片才能安全进入以太坊生态系统。 信标链引入了质押,它与主网“合并”,为分片铺平了道路,以帮助进一步扩展以太坊。 + + + 分片链 + + +## 延伸阅读 + +- [有关以太坊未来升级的更多信息](/roadmap/vision) +- [有关节点架构的更多信息](/developers/docs/nodes-and-clients/node-architecture) +- [更多关于关权益证明的信息](/developers/docs/consensus-mechanisms/pos) diff --git a/public/content/translations/zh/community/online/index.md b/public/content/translations/zh/community/online/index.md index 5c816656610..e34b964cfd3 100644 --- a/public/content/translations/zh/community/online/index.md +++ b/public/content/translations/zh/community/online/index.md @@ -55,13 +55,14 @@ lang: zh Solidity Gitter - 有关 Solidity 开发的聊天 (Gitter) Solidity Matrix - 有关 Solidity 开发的聊天 (Matrix) 以太坊堆栈交易所 *- 问答论坛* -Peeranha *- 去中心化问答论坛* +Peera Community Forum *- 去中心化问答论坛* -## YouTube 和 Twitter {#youtube-and-twitter} +## YouTube 和 X(原 Twitter) {#youtube-and-twitter} 以太坊基金会 - 及时了解以太坊基金会的最新动态 -@ethereum -以太坊基金会官方账号 -@ethdotorg - 为我们不断发展的全球社区构建的以太坊门户网站 +@ethereum - 以太坊社区的主帐户 +@ethereumfndn - 以太坊基金会的官方帐户 +@ethdotorg - 为我们不断发展的全球社区构建的以太坊门户网站 有影响力的以太坊 Twitter 帐户清单 diff --git a/public/content/translations/zh/contributing/index.md b/public/content/translations/zh/contributing/index.md index 8afb7379919..a6f0e32ac62 100644 --- a/public/content/translations/zh/contributing/index.md +++ b/public/content/translations/zh/contributing/index.md @@ -25,7 +25,6 @@ Ethereum.org 是一个开源项目,有超过 **12,000** 名贡献者帮助翻 - [创建/编辑内容](/contributing/#how-to-update-content) – 建议新页面或对现有内容进行调整 - [添加社区资源](/contributing/content-resources/) – 将有用的文章或资源添加到相关页面 - [对设计资源提出建议](/contributing/design/adding-design-resources/) - 添加、更新和删除有用的设计资源 -- [添加词汇表术语](/contributing/adding-glossary-terms/) – 帮助我们继续扩充以太坊[词汇表](/glossary/) - [测验](/contributing/quizzes/) – 为相关页面添加、更新和删除测试题库 **功能创意** @@ -90,7 +89,7 @@ Ethereum.org 是一个开源项目,有超过 **12,000** 名贡献者帮助翻 如果你的贡献被合并到 ethereum.org 中,你将有机会在 [Galxe](https://app.galxe.com/quest/ethereumorg) 上领取特殊徽章。 链上成就代币 (OAT) 是你助力改善生态系统的证明。 -[关于链上成就代币的更多信息](https://help.galxe.com/en/articles/7067290-galxe-oats-reward-and-celebrate-achievements) +[关于链上成就代币的更多信息](https://help.galxe.com/en/articles/9645630-create-quest-rewards#h_1c5d63ba03) ### 如何领取 1. 加入我们的 [Discord 服务器](https://discord.gg/ethereum-org)。 diff --git a/public/content/translations/zh/contributing/translation-program/how-to-translate/index.md b/public/content/translations/zh/contributing/translation-program/how-to-translate/index.md index 9e153a666b1..6f89f5fbe6f 100644 --- a/public/content/translations/zh/contributing/translation-program/how-to-translate/index.md +++ b/public/content/translations/zh/contributing/translation-program/how-to-translate/index.md @@ -82,7 +82,7 @@ description: 使用 Crowdin 翻译 ethereum.org 的操作指南 ### 联系我们 {#get-in-touch} -还有其他问题吗? 或者想与我们的团队和其他翻译人员合作? 请在我们的 [ethereum.org Discord 服务器](/discord/)的 #translations 频道中发帖 +还有其他问题? 或者想与我们的团队和其他翻译人员合作? 请在我们的 [ethereum.org Discord 服务器](/discord/)的 #translations 频道中发帖 也可以通过向 translations@ethereum.org 发送邮件联系我们 diff --git a/public/content/translations/zh/contributing/translation-program/index.md b/public/content/translations/zh/contributing/translation-program/index.md index 3f17e9bd897..9971361cdea 100644 --- a/public/content/translations/zh/contributing/translation-program/index.md +++ b/public/content/translations/zh/contributing/translation-program/index.md @@ -36,9 +36,9 @@ Ethereum.org 翻译计划旨在通过将 Ethereum.org 和其他以太坊内容 ### 我们迄今取得的进展 {#our-progress} -- [**超过 6,000 **位翻译人员](/contributing/translation-program/contributors/) -- 网站支持 **62** 种语言 -- [2023 年翻译了** 300 万**字](/contributing/translation-program/acknowledgements/) +- [**超过 6,900 **位翻译人员](/contributing/translation-program/contributors/) +- 网站支持 **68** 种语言 +- [2024 年翻译了** 289 万**字](/contributing/translation-program/acknowledgements/) diff --git a/public/content/translations/zh/contributing/translation-program/translators-guide/index.md b/public/content/translations/zh/contributing/translation-program/translators-guide/index.md index c52a4bd4deb..a5a9ceaec32 100644 --- a/public/content/translations/zh/contributing/translation-program/translators-guide/index.md +++ b/public/content/translations/zh/contributing/translation-program/translators-guide/index.md @@ -116,7 +116,7 @@ Crowdin 有一个内置功能,可以在翻译人员即将出错时发出警告 ![link.png 示例](./example-of-link.png) -链接同样以标签的形式出现在源文本中(即 `<0>` ``)。如果你将鼠标悬停在标签上,编辑器将显示其全部内容 - 有时这些标签将代表链接。 +链接同样以标签的形式出现在源文本中(即 \<0> \). 如果你将鼠标悬停在标签上,编辑器将显示其全部内容 - 有时这些标签将代表链接。 从源复制链接而不要更改其顺序,这一点非常重要。 @@ -154,7 +154,7 @@ nonce - _不可翻译的文本_ 源文本还包含缩短的标签,这些标签只包含数字,这意味着它们的功能不是很明显。 你可以将鼠标悬停在这些标签上,以准确查看它们提供的功能。 -在下面的示例中,你可以看到,将鼠标悬停在 `<0>` 标签显示,它代表 `` 并包含代码片段,因此不应翻译这些标签内的内容。 +在下面的示例中,你可以看到,将鼠标悬停在 \<0> 标签显示,它代表 `` 并包含代码片段,因此不应翻译这些标签内的内容。 ![模棱两可的 tags.png 的示例](./example-of-ambiguous-tags.png) diff --git a/public/content/translations/zh/danksharding/index.md b/public/content/translations/zh/danksharding/index.md new file mode 100644 index 00000000000..0d8f6102aa9 --- /dev/null +++ b/public/content/translations/zh/danksharding/index.md @@ -0,0 +1,95 @@ +--- +title: Danksharding +description: 了解 Proto-Danksharding 和 Danksharding - 用于扩展以太坊的两项连续升级。 +lang: zh +summaryPoints: + - Danksharding 是一项多阶段升级,旨在提高以太坊的可扩容性和容量。 + - Proto-Danksharding 是第一阶段,旨在将数据二进制大对象添加到区块中 + - 数据二进制大对象为卷叠提供了一种更经济地将数据发布到以太坊上的方式,这种成本节约可以通过更低的交易费使用户间接受益。 + - 随后,完整的 Danksharding 将验证数据二进制大对象的责任分散到节点子集,使以太坊进一步扩展到每秒处理超过 100,000 笔交易。 +--- + +# Danksharding {#danksharding} + +**Danksharding** 是让以太坊成为真正的可扩展区块链的方案,但要实现这个方案,需要进行一系列协议升级。 **Proto-Danksharding** 是这个过程中的一个中间步骤。 两者都是为了让用户在二层网络上的交易尽可能便宜,并将以太坊扩展到每秒处理 >100,000 次交易。 + +## 什么是 Proto-Danksharding? {#what-is-protodanksharding} + +Proto-Danksharding,也称为 [EIP-4844](https://eips.ethereum.org/EIPS/eip-4844),是一种让[卷叠](/layer-2/#rollups)以更经济的方式向区块添加数据的方法。 这一名称来自提出这个想法的两位研究人员:Protolambda 和 Dankrad Feist。 以往,卷叠在降低用户交易费用方面存在局限性,因为它们是将交易发布在 `CALLDATA` 中。 + +这是一种昂贵的方法,因为数据经过所有以太坊节点处理,并且永久存在于链上,即使卷叠只在短时间内需要这些数据。 Proto-Danksharding 引入了可以发送并附加到区块上的数据二进制大对象。 这些二进制大对象中的数据不可通过以太坊虚拟机访问,并且在固定的时间(在写入时设置为 4096 个时段,或大约 18 天)后会自动删除。 这意味着卷叠可以更经济的方式发送其数据,节省的费用会让终端用户的交易更加便宜。 + + + +卷叠是一种通过在链下批量处理交易然后将结果发布到以太坊来扩展以太坊的方法。 卷叠本质上由两部分组成:数据和执行检查。 数据是由卷叠处理的完整交易序列,用于产生要发布到以太坊的状态变化。 执行检查是由某个诚实的参与者(称为“证明者”)重新执行这些交易,以确保提出的状态变化是正确的。 为了进行执行检查,交易数据必须在足够长的时间内可用,以便任何人都可以下载和检查。 这意味着卷叠排序者的任何不诚实行为都可以被证明者发现和质疑。 但是,交易数据不需要永远可用。 + + + + + +卷叠将其交易数据承诺发布在链上,并且在数据二进制大对象中提供实际的数据。 这意味着证明者可以检查承诺是否有效或质疑他们认为错误的数据。 在节点层面,数据二进制大对象保存在共识客户端中。 共识客户端证明他们已经检查了数据,并且数据已经在网络中传播。 如果数据永远保留,这些客户端会变得臃肿并导致运行节点的硬件要求很高。 然而,数据每隔 18 天将从节点中自动删除。 共识客户端的认证表明,证明者有足够的机会来验证数据。 实际数据可以由卷叠运营商、用户或其他人在链下存储。 + + + +### 如何验证二进制大对象中的数据? {#how-are-blobs-verified} + +卷叠将其执行的交易发布在数据二进制大对象中。 它们也发布一个对数据的“承诺”。 为此,他们会对数据拟合一个多项式函数。 然后,这个函数可以在各个点计算。 例如,如果我们定义一个非常简单的函数 `f(x) = 2x-1`,那么可以在 `x = 1`、`x = 2`、`x = 3` 时计算这个函数,得到结果为 `1, 3, 5`。 证明者对数据应用相同的函数,并在相同的点计算。 如果原始数据被更改,函数就不会相同,因此在每个点计算出来的值也不会相同。 在实际操作中,承诺和证明会更加复杂,因为它们会被包裹在加密函数中。 + +### 什么是 KZG? {#what-is-kzg} + +KZG 代表 Kate-Zaverucha-Goldberg - 是三位[原创作者](https://link.springer.com/chapter/10.1007/978-3-642-17373-8_11)名字的缩写。他们提出了一项将数据二进制大对象缩减为小型[密码“承诺”](https://dankradfeist.de/ethereum/2020/06/16/kate-polynomial-commitments.html)的方案。 卷叠提交的数据二进制大对象必须经过验证,以确保卷叠没有错误行为。 这需要证明者重新执行二进制大对象中的交易,以检查承诺是否有效。 从概念上讲,这与执行客户端使用默克尔证明检验一层网络上的以太坊交易是否有效的方式相同。 KZG 是一种将多项式方程拟合到数据上的替代证明。 "承诺"在某些保密数据点处计算多项式。 证明者将在数据上拟合相同的多项式,并使用相同的数值计算它,以检验结果是否相同。 这种验证数据的方式与零知识技术兼容,一些卷叠在使用零知识技术,最终以太坊协议的其他部分也会使用。 + +### 什么是 KZG 仪式? {#what-is-a-kzg-ceremony} + +KZG 仪式是指以太坊社区的许多人共同生成一个随机的私密数字字符串,用于验证一些数据的一种方式。 这个数字字符串必须是未知的,不能由任何人重新创建,这一点非常重要。 为了确保做到这一点,每个参加仪式的人都会收到前一位参与者发送的一个字符串。 然后,他们会创建一些新的随机值(例如:通过允许他们的浏览器测量鼠标的移动)并将这些值与前面的值混合在一起。 之后,他们将这个值发送给下一位参与者并将其在本地计算机中销毁。 在这个仪式中,只要有一个人诚实地执行了这一过程,攻击者就无法知道最终值是什么。 + +EIP-4844 KZG 仪式曾经公开过,成千上万的人参与其中,并添加了自己的熵(随机值)。 总计贡献超过 14 万次,成为此类型全世界最大的一次仪式。 如果想破坏这个仪式,那么必须 100% 的参与者都不诚实。 从参与者的角度来看,如果他们知道自己是诚实的,就不需要相信其他任何人,因为他们知道自己确保了仪式的安全性(他们个人满足了,N 个参与者至少有一个诚实的要求)。 + + + +当卷叠在二进制大对象中发布数据时,它们提供了一个发布到链上的“承诺”。 该承诺是在特定点对数据计算多项式拟合的结果。 这些点是由 KZG 仪式上生成的随机数决定的。 然后,证明者可以在相同的点上对多项式进行计算以验证数据 - 如果得出相同的值,则数据是正确的。 + + + + + +如果有人知道用于承诺的随机位置,就可以很容易地生成一个可在这些特定点上拟合的新多项式(即“碰撞”)。 这意味着他们可以在二进制大对象中添加或删除数据,并且仍然提供有效的证明。 为了防止这种情况的出现,他们不向证明者提供实际的私密位置,而是使用椭圆曲线将位置封装在加密“黑盒”中并提供给证明者。 这样做可以有效打乱值,使得原始值无法被逆向工程,但通过一些巧妙的代数,证明者和验证者仍然可以在它们所代表的点上计算多项式。 + + + + + Danksharding 和 Proto-Danksharding 都没有采用传统的旨在将区块链分成多个部分的“分片”模式。 分片链不再是路线图的一部分。 相反,Danksharding 使用跨数据块的分布式数据采样来扩展以太坊。 这实施起来要简单得多。 这种模式有时被称为“数据分片”。 + + +## 什么是 Danksharding? {#what-is-danksharding} + +Danksharding 全面实现了从 Proto-Danksharding 开始的卷叠扩展。 Danksharding 将为以太坊带来大量空间,以便卷叠堆放他们的压缩交易数据。 这意味着以太坊能够轻松支持数百个单独卷叠,并实现每秒处理数百万次交易。 + +它的实现方式是将附加到区块的二进制大对象从 Proto-Danksharding 阶段的 6 个增加至完整 Danksharding 时的 64 个。 所需的其余变更都是对共识客户端的运行方式进行更新,使它们能够处理新的较大二进制大对象。 其中的一些变更已经由于 Danksharding 之外的目的列入路线图。 例如,Danksharding 要求贯彻执行提议者与构建者分离的理念。 这一升级会将构建区块与提议区块的工作分开由不同的验证者完成。 同样,Danksharding 还要求进行数据可用性采样,但开发不存储大量历史数据的超轻量级客户端(“无状态客户端”)也要求这样做。 + + + +要求提议者与构建者分离为了防止单个验证者需要为 32MB 的数据块数据生成昂贵的承诺和证明。 这会给家庭质押人造成太大的压力,要求他们投资购置更强大的硬件,这将不利于去中心化。 相反,这项昂贵的计算工作可以由专门的区块构建者负责。 之后,他们可以向区块提议者提供区块,以进行广播。 区块提议者只需要选择收益最高的区块即可。 任何人都能够以便宜快捷的方式验证数据块,这意味着所有普通验证者都可以检查区块构建者是否诚实。 这样一来,处理大型二进制大对象就不需要牺牲去中心化。 行为不端的区块构建者会被逐出网络并受到罚没 — 其他人会接替他们的位置,因为区块构建是收益很高的活动。 + + + + + +要求进行数据可用性采样是为了让验证者快速、高效地验证二进制大对象数据。 通过数据可用性采样,验证者可以非常确定二进制大对象数据是否可用和正确提交。 每个验证者都可以随机在几个数据点采样并创建证明,这意味着验证者不必核对整个二进制大对象。 如果有数据丢失,可以快速识别并拒绝二进制大对象。 + + + +### 当前进展 {#current-progress} + +完全实现 Danksharding 还需要几年时间。 与此同时,KZG 仪式在经过超过 14 万份贡献后结束,Proto-Danksharding 的 [EIP](https://eips.ethereum.org/EIPS/eip-4844) 也已成熟。 该提案已在所有测试网中全面实施,并于 2024 年 3 月随着 Cancun-Deneb(“Dencun”)网络升级在主网上线。 + +### 延伸阅读 {#further-reading} + +- [Proto-Danksharding 说明](https://notes.ethereum.org/@vbuterin/proto_danksharding_faq) - _Vitalik Buterin_ +- [Dankrad 关于 Danksharding 的说明](https://notes.ethereum.org/@dankrad/new_sharding) +- [Dankrad、Proto 和 Vitalik 关于 Danksharding 的讨论](https://www.youtube.com/watch?v=N5p0TB77flM) +- [KZG 仪式](https://ceremony.ethereum.org/) +- [Carl Beekhuizen 在以太坊开发者大会上关于可信设置的演讲](https://archive.devcon.org/archive/watch/6/the-kzg-ceremony-or-how-i-learnt-to-stop-worrying-and-love-trusted-setups/?tab=YouTube) +- [更多关于针对二进制大对象进行数据可用性采样的信息](https://hackmd.io/@vbuterin/sharding_proposal#ELI5-data-availability-sampling) +- [Dankrad Feist 关于 KZG 承诺和证明的演讲](https://youtu.be/8L2C6RDMV9Q) +- [KZG 多项式承诺](https://dankradfeist.de/ethereum/2020/06/16/kate-polynomial-commitments.html) diff --git a/public/content/translations/zh/developers/docs/data-structures-and-encoding/patricia-merkle-trie/index.md b/public/content/translations/zh/developers/docs/data-structures-and-encoding/patricia-merkle-trie/index.md index d8cff060e81..8fb373ff9e2 100644 --- a/public/content/translations/zh/developers/docs/data-structures-and-encoding/patricia-merkle-trie/index.md +++ b/public/content/translations/zh/developers/docs/data-structures-and-encoding/patricia-merkle-trie/index.md @@ -34,33 +34,33 @@ sidebarDepth: 2 基数树的更新和删除操作定义如下: ``` - def update(node,path,value): - curnode = db.get(node) if node else [ NULL ] * 17 + def update(node_hash, path, value): + curnode = db.get(node_hash) if node_hash else [ NULL ] * 17 newnode = curnode.copy() if path == '': newnode[-1] = value else: - newindex = update(curnode[path[0]],path[1:],value) + newindex = update(curnode[path[0]], path[1:], value) newnode[path[0]] = newindex - db.put(hash(newnode),newnode) + db.put(hash(newnode), newnode) return hash(newnode) - def delete(node,path): - if node is NULL: + def delete(node_hash, path): + if node_hash is NULL: return NULL else: - curnode = db.get(node) + curnode = db.get(node_hash) newnode = curnode.copy() if path == '': newnode[-1] = NULL else: - newindex = delete(curnode[path[0]],path[1:]) + newindex = delete(curnode[path[0]], path[1:]) newnode[path[0]] = newindex if all(x is NULL for x in newnode): return NULL else: - db.put(hash(newnode),newnode) + db.put(hash(newnode), newnode) return hash(newnode) ``` @@ -137,10 +137,10 @@ sidebarDepth: 2 以下为获取默克尔帕特里夏树中节点的扩展代码: ``` - def get_helper(node,path): - if path == []: return node - if node = '': return '' - curnode = rlp.decode(node if len(node) < 32 else db.get(node)) + def get_helper(node_hash,path): + if path == []: return node_hash + if node_hash == '': return '' + curnode = rlp.decode(node_hash if len(node_hash) < 32 else db.get(node_hash)) if len(curnode) == 2: (k2, v2) = curnode k2 = compact_decode(k2) @@ -151,13 +151,13 @@ sidebarDepth: 2 elif len(curnode) == 17: return get_helper(curnode[path[0]],path[1:]) - def get(node,path): + def get(node_hash,path): path2 = [] for i in range(len(path)): path2.push(int(ord(path[i]) / 16)) path2.push(ord(path[i]) % 16) path2.push(16) - return get_helper(node,path2) + return get_helper(node_hash,path2) ``` ### 前缀树示例 {#example-trie} diff --git a/public/content/translations/zh/developers/docs/networking-layer/portal-network/index.md b/public/content/translations/zh/developers/docs/networking-layer/portal-network/index.md index 989182d6a05..530c8a5edd5 100644 --- a/public/content/translations/zh/developers/docs/networking-layer/portal-network/index.md +++ b/public/content/translations/zh/developers/docs/networking-layer/portal-network/index.md @@ -82,7 +82,7 @@ JSON-RPC 也不是轻客户端请求数据的理想选择,因为它必须要 如果一种客户端遇到问题或者出现漏洞,其他客户端能继续平稳运行,防止单点故障。 另外,多样化的客户端实现促进了创新和竞争,推动改进并降低生态系统内的单一作物风险。 -## 延伸阅读 {#futher-reading} +## 延伸阅读 {#further-reading} - [门户网络(Piper Merriam 在 Devcon Bogota 上的讲解)](https://www.youtube.com/watch?v=0stc9jnQLXA)。 - [门户网络 discord](https://discord.gg/CFFnmE7Hbs) diff --git a/public/content/translations/zh/developers/docs/nodes-and-clients/index.md b/public/content/translations/zh/developers/docs/nodes-and-clients/index.md index c7e4379e94c..e160e8e0687 100644 --- a/public/content/translations/zh/developers/docs/nodes-and-clients/index.md +++ b/public/content/translations/zh/developers/docs/nodes-and-clients/index.md @@ -191,14 +191,14 @@ EthereumJS 执行客户端 (EthereumJS) 是用 TypeScript 编写的,由许多 有多种共识客户端(以前称为“以太坊 2 客户端”)支持[共识升级](/roadmap/beacon-chain/)。 它们负责所有共识相关的逻辑,包括分叉选择算法、处理认证与管理[权益证明](/developers/docs/consensus-mechanisms/pos)奖励及惩罚。 -| 客户端 | 语言 | 操作系统: | 网络 | -| ------------------------------------------------------------- | ---------- | ------------------- | ------------------------------------------- | -| [Lighthouse](https://lighthouse.sigmaprime.io/) | Rust | Linux、Windows、macOS | 信标链、Goerli、Pyrmont、Sepolia、Ropsten 等 | -| [Lodestar](https://lodestar.chainsafe.io/) | TypeScript | Linux、Windows、macOS | 信标链、Goerli、Sepolia、Ropsten 等 | -| [Nimbus](https://nimbus.team/) | Nim | Linux、Windows、macOS | 信标链、Goerli、Sepolia、Ropsten 等 | -| [Prysm](https://docs.prylabs.network/docs/getting-started/) | Go | Linux、Windows、macOS | 信标链、Gnosis、Goerli、Pyrmont、Sepolia、Ropsten 等 | -| [Teku](https://consensys.net/knowledge-base/ethereum-2/teku/) | Java | Linux、Windows、macOS | 信标链、Gnosis、Goerli、Sepolia、Ropsten 等 | -| [Grandine](https://docs.grandine.io/)(测试版) | Rust语言 | Linux、Windows、macOS | 信标链、Goerli、Sepolia 等 | +| 客户端 | 语言 | 操作系统: | 网络 | +| ------------------------------------------------------------- | ---------- | ------------------- | ------------------------------------ | +| [Lighthouse](https://lighthouse.sigmaprime.io/) | Rust | Linux、Windows、macOS | 信标链、Holesky、Pyrmont、Sepolia 等 | +| [Lodestar](https://lodestar.chainsafe.io/) | TypeScript | Linux、Windows、macOS | 信标链、Holesky、Sepolia 等 | +| [Nimbus](https://nimbus.team/) | Nim | Linux、Windows、macOS | 信标链、Holesky、Sepolia 等 | +| [Prysm](https://docs.prylabs.network/docs/getting-started/) | Go | Linux、Windows、macOS | 信标链、Gnosis、Holesky、Pyrmont、Sepolia 等 | +| [Teku](https://consensys.net/knowledge-base/ethereum-2/teku/) | Java | Linux、Windows、macOS | 信标链、Gnosis、Holesky、Sepolia 等 | +| [Grandine](https://docs.grandine.io/) | Rust语言 | Linux、Windows、macOS | 信标链、Holesky、Sepolia 等 | ### Lighthouse {#lighthouse} diff --git a/public/content/translations/zh/developers/docs/nodes-and-clients/node-architecture/index.md b/public/content/translations/zh/developers/docs/nodes-and-clients/node-architecture/index.md index 8c3a8aa0bc4..d182d9c15a3 100644 --- a/public/content/translations/zh/developers/docs/nodes-and-clients/node-architecture/index.md +++ b/public/content/translations/zh/developers/docs/nodes-and-clients/node-architecture/index.md @@ -4,19 +4,21 @@ description: 关于如何组织以太坊节点的介绍。 lang: zh --- -以太坊节点由[执行客户端](/developers/docs/nodes-and-clients/#execution-clients)和[共识客户端](/developers/docs/nodes-and-clients/#consensus-clients)这两种客户端构成。 +以太坊节点由[执行客户端](/developers/docs/nodes-and-clients/#execution-clients)和[共识客户端](/developers/docs/nodes-and-clients/#consensus-clients)这两种客户端构成。 对于要提议新区块的节点,还必须运行[验证者客户端](#validators)。 -当以太坊使用[工作量证明](/developers/docs/consensus-mechanisms/pow/)时,执行客户端足以运行以太坊全节点。 然而,在实施[权益证明](/developers/docs/consensus-mechanisms/pow/)以后,执行客户端需要与另一种名为[“共识客户端”](/developers/docs/nodes-and-clients/#consensus-clients)的软件搭配使用。 +当以太坊使用[工作量证明](/developers/docs/consensus-mechanisms/pow/)时,执行客户端足以运行以太坊全节点。 然而,在实施[权益证明](/developers/docs/consensus-mechanisms/pow/)以后,执行客户端必须与另一种名为[共识客户端](/developers/docs/nodes-and-clients/#consensus-clients)的软件搭配使用。 以下图表显示了两种以太坊客户端之间的关系。 这两种客户端与其各自的点对点(对等)网络连接。 分离对等网络是有必要的,因为执行客户端通过它们的对等网络广播交易,确保它们能够管理自己的本地交易池,同时共识客户端通过它们的对等网络广播区块,保证共识和链增长。 ![](node-architecture-text-background.png) -要使这种双客户端结构发挥作用,共识客户端必须能够将大量交易传递给执行客户端。 在本地执行交易是客户端验证交易未违反任何以太坊规则的方式,并确保提议的以太坊状态更新是正确的。 同样,当节点被选为区块生产者时,共识客户端必须能够从 Geth 请求各种交易,以便将它们添加到新的区块,并通过执行它们来更新全局状态。 本地远程过程调用连接使用[引擎应用程序接口](https://github.com/ethereum/execution-apis/blob/main/src/engine/common.md)处理这种跨客户端通信。 +_执行客户端的选择有很多,包括 Erigon、Nethermind 和 Besu_。 + +要使这种双客户端结构发挥作用,共识客户端必须将大量交易传递给执行客户端。 执行客户端本地执行这些交易,以验证这些交易没有违反任何以太坊规则、提议的以太坊状态更新是正确的。 当节点被选为区块生产者时,它的共识客户端实例从执行客户端请求各种交易,以便将它们添加到新的区块,并通过执行它们来更新全局状态。 共识客户端通过本地 RPC 连接,使用[引擎应用程序接口](https://github.com/ethereum/execution-apis/blob/main/src/engine/common.md)驱动执行客户端。 ## 执行客户端的作用是什么? {#execution-client} -执行客户端负责交易处理、交易广播、状态管理和支持以太坊虚拟机([以太坊虚拟机](/developers/docs/evm/))。 然而,它**不**负责区块构建、区块广播或处理共识逻辑。 这些都是共识客户端的责任。 +执行客户端负责交易验证、交易处理、交易广播、状态管理和支持以太坊虚拟机([EVM](/developers/docs/evm/))。 它**不**负责区块构建、区块广播或处理共识逻辑。 这些都是共识客户端的责任。 执行客户端会创建执行有效负载——交易列表、更新状态树和其他与执行相关的数据。 共识客户端在每个区块中添加执行有效负载。 执行客户端还要在新的区块中重新执行交易,以确保其有效性。 执行交易在执行客户端的嵌入式计算机中完成,这些计算机被称为[以太坊虚拟机 (EVM)](/developers/docs/evm)。 @@ -35,7 +37,7 @@ lang: zh ## 验证者 {#validators} -节点运营商可以在存款合约中存入 32 个以太币来为其共识客户端添加一个验证者。 验证者客户端与共识客户端捆绑在一起,并且可随时添加到节点中。 验证者会处理认证和区块提议。 它们使节点能够累积奖励或因为惩罚而丢失以太币。 运行验证者软件还使节点有资格被选中来提议一个新区块。 +质押并运行验证者软件使节点有资格被选中来提议一个新区块。 节点运营商可以在存款合约中存入 32 个以太币来为其共识客户端添加一个验证者。 验证者客户端与共识客户端捆绑在一起,并且可随时添加到节点中。 验证者会处理认证和区块提议。 它也使节点能够累积奖励或因为惩罚而丢失以太币。 [关于质押的更多信息](/staking/)。 diff --git a/public/content/translations/zh/developers/docs/nodes-and-clients/nodes-as-a-service/index.md b/public/content/translations/zh/developers/docs/nodes-and-clients/nodes-as-a-service/index.md index 075e4c521b8..841072b5219 100644 --- a/public/content/translations/zh/developers/docs/nodes-and-clients/nodes-as-a-service/index.md +++ b/public/content/translations/zh/developers/docs/nodes-and-clients/nodes-as-a-service/index.md @@ -226,7 +226,7 @@ sidebarDepth: 2 - 500 多个管理和服务应用程序接口 - 用于提交以太坊交易的 RESTful 接口(支持 Apache Kafka) - 用于事件传送的出站流(支持 Apache Kafka) - - “脱链”和辅助服务的深度集合(例如双边加密消息传输) + - “链下”和辅助服务的深度集合(例如双边加密消息传输) - 简单明了的配置入网,提供治理和基于角色的访问控制 - 适用于管理员和最终用户的精细用户管理 - 高度可扩展、复原力强的企业级基础设施 diff --git a/public/content/translations/zh/dvt/index.md b/public/content/translations/zh/dvt/index.md new file mode 100644 index 00000000000..289163edbed --- /dev/null +++ b/public/content/translations/zh/dvt/index.md @@ -0,0 +1,91 @@ +--- +title: 分布式验证者技术 +description: 分布式验证技术实现多个参与方完成以太坊验证者的分布式操作。 +lang: zh +--- + +# 分布式验证者技术 {#distributed-validator-technology} + +分布式验证者技术 (DVT) 是一种保障验证者安全的方法,它将密钥管理和签名责任分摊给多个参与方,从而减少单点故障并增强验证者的弹性。 + +这项技术通过将用于保护验证者安全的**私钥拆分**并将其分布到组成“集群”的**多台计算机**上来实现这一点。 这样做的好处是攻击者取得密钥的难度将非常大,因为密钥并没有完整地存储在任意一台机器上。 该技术还允许某些节点离线,因为每个集群中的一部分计算机就可以完成必要的签名操作。 这就减少了网络中的单点故障并让整个验证者组更加稳定。 + +![示意图,展示单个验证者密钥如何拆分成密钥分片并分布到多个具有不同组件的节点。](./dvt-cluster.png) + +## 为什么需要分布式验证者技术? {#why-do-we-need-dvt} + +### 安全性 {#security} + +验证者生成两个公私密钥对:验证者密钥用于参与共识,提款密钥用来获取资金。 虽然验证者可以将提款密钥存储在冷存储中以确保安全,但验证者私钥必须 24 小时在线。 如果验证者私钥泄漏,攻击者便可控制该验证者,可能致使质押人的以太币受到罚没或损失。 分布式验证者技术有助于降低这种风险。 具体方式如下: + +使用分布式验证者技术,质押人可以参与质押,同时将验证者私钥保存在冷存储中。 这是通过对完整的原始验证者密钥进行加密,然后再拆分成多个密钥分片实现的。 密钥分片是在线的并分布到多个节点,因此实现了验证者的分布式操作。 之所以能这样做,是因为以太坊验证者使用了累加型 BLS 签名,这意味着完整的密钥可以通过将其各个组成部分合并来重构。 这样,质押人就能保证完整的原始“主”验证者密钥在线下安全。 + +### 消除单点故障 {#no-single-point-of-failure} + +如果将一个验证者拆分到多个运营商和多台机器,就算个别硬件和软件出现故障,验证者也不会离线。 也可以通过在集群中的所有节点上使用不同的硬件和软件配置来降低故障风险。 单节点验证者配置并不具备这种弹性,这种弹性源自分布式验证者技术层。 + +如果集群中某台机器的一个组件发生故障(例如,验证者集群中有四个运营者,其中一个运营者使用了有漏洞的特定客户端),其他机器也能保证验证者继续运行。 + +### 去中心化 {#decentralization} + +对于以太坊而言,最理想的情况就是独立运行的验证者越多越好。 然而,一些质押服务提供商已经非常普及,占有了网络上以太币总质押量的很大一部分。 分布式验证者技术允许这些运营者继续存在,同时保持质押的去中心化。 这是因为每个验证者的密钥都分布在多台机器上,一个验证者要想做出恶意行为就需要更大程度的共谋。 + +如果没有分布式验证者技术,质押服务提供商就更加容易地让其所有验证者仅支持一到两种客户端配置,这会加大客户端漏洞的影响。 可使用分布式验证者技术将风险分散到多种客户端配置和不同的硬件,通过多样化实现弹性。 + +**分布式验证者技术让以太坊具有以下优点:** + +1. 以太坊权益证明共识的**去中心化** +2. 网络**活力**有保障 +3. 实现验证者的**容错能力** +4. 验证者操作**信任最小化** +5. **最大限度降低了罚没**和停机风险 +6. **提升了多样性**(客户端、数据中心、位置、监管等) +7. 验证者密钥管理**安全性增强** + +## 分布式验证者技术原理 {#how-does-dvt-work} + +分布式验证者技术解决方案包括以下部分: + +- **[Shamir 秘钥分存](https://medium.com/@keylesstech/a-beginners-guide-to-shamir-s-secret-sharing-e864efbf3648)** - 验证者使用 [BLS 密钥](https://en.wikipedia.org/wiki/BLS_digital_signature)。 各个 BLS “密钥分片”(“密钥分片”)可以合并成单个聚合密钥(签名)。 在分布式验证者技术中,验证者的私钥是集群中每个运营者的合并 BLS 签名。 +- **[阈值签名方案](https://medium.com/nethermind-eth/threshold-signature-schemes-36f40bc42aca)** - 确定履行签名职责所需的单个密钥分片的数量,例如,4 个密钥分片中的 3 个。 +- **[分布式密钥生成 (DKG)](https://medium.com/toruslabs/what-distributed-key-generation-is-866adc79620)** - 一种加密过程,生成密钥分片并用于将已有或新验证者密钥分片分布到集群中的节点。 +- **[多方计算 (MPC)](https://messari.io/report/applying-multiparty-computation-to-the-world-of-blockchains)** - 完整的验证者密钥是使用多方计算秘密生成的。 任何一个运营者都不知道完整的密钥—他们只知道自己的那一部分(即他们的“分片”)。 +- **共识协议** - 共识协议选择一个节点作为区块提议者。 提议者与集群中的其他节点共享该区块,这些节点将其密钥分片添加到聚合签名中。 当聚合了足够的密钥分片后,该区块便在以太坊上提出。 + +分布式验证者具有内置容错能力,即使个别节点离线也能继续运行。 也就是说,即使集群中的某些节点最终变成恶意节点或懒惰节点,这个集群依然具有弹性。 + +## 分布式验证者技术使用案例 {#dvt-use-cases} + +分布式验证者技术对更广泛的质押行业具有重大影响: + +### 独立质押人 {#solo-stakers} + +分布式验证者技术支持非托管质押,它允许用户将自己的验证者密钥分布在多个远程节点上并在线下保存完整密钥。 这也意味着家庭质押人未必需要在硬件上支出费用,而且将密钥分片分布存放能帮助他们加强对潜在黑客攻击的抵御。 + +### 质押即服务 (SaaS) {#saas} + +管理多个验证者的运营者(如质押池和机构质押人)可以使用分步式验证者技术降低风险。 通过对其基础设施进行分布,这些运营者可以增加操作冗余,并实现所用硬件种类的多样化。 + +分步式验证者技术将密钥管理责任分摊到多个节点,这意味着部分操作成本也可以分摊。 分步式验证者技术也可以降低质押服务提供商的运营风险和保险成本。 + +### 质押池 {#staking-pools} + +由于标准验证者设置,质押池和流动质押服务提供商被迫采用不同的单一运营者信任级别,因为整个质押池中的盈亏都是依据社会化原则进行的。 质押池和流动质押服务提供商还依赖运营者来保护签名密钥的安全,因为到目前为止还没有其他方案。 + +尽管一直以来,我们都在通过将质押分布给多个运营者来努力分散风险,但每个运营商仍单独管理着大量质押。 依赖单一运营者存在巨大风险,因为它们可能表现不佳、遭遇停机、受到攻击或者有恶意行为。 + +利用分布式验证者技术,对运营者的信任会显著降低。 **池可以让运营者持有质押,而无需保管验证者密钥**(因为只会用到密钥分片)。 这项技术还允许被管理的质押在更多运营者之间分布(例如,分布式验证者技术可让 1000 个验证者由多个运营者共同运行,而不是让单个运营者管理它们)。 不同的运营者配置将确保在一个运营者停止运行,其余运营者仍可进行证明。 这提高了冗余和多样性,从而提升了性能和弹性,同时最大限度地提高了回报。 + +最大限度降低单一运营者信任的另一个优点是,质押池可以允许更加开放且无需许可的运营者参与。 这样,服务商可以通过使用精选且无需许可的运营者(例如,将家庭质押人或更多小型质押人者与大型质押人配对)来降低其风险,并支持以太坊的去中心化。 + +## 使用分布式验证者技术的潜在弊端 {#potential-drawbacks-of-using-dvt} + +- **额外组件**- - 引入一个分布式验证者技术节点就会增加一个可能存在故障或漏洞的部分。 要缓解这一问题,一种方法是争取实现多个分布式验证者技术节点,也就是多个分布式验证者技术客户端(类似于共识层和执行层有多个客户端的情况)。 +- **运营成本** - 由于分布式验证者技术将验证者分布在多个参与方之间,因此需要更多的节点进行操作,而不是只有一个节点,这就带来了运营成本的增加。 +- **可能会增加延迟** - 因为分布式验证者技术利用共识协议在多个运行验证者的节点之间达成共识,这可能会增加延迟。 + +## 延伸阅读 {#further-reading} + +- [以太坊分布式验证者规范(高级)](https://github.com/ethereum/distributed-validator-specs) +- [以太坊分布式验证者技术规范](https://github.com/ethereum/distributed-validator-specs/tree/dev/src/dvspec) +- [Shamir 密钥分存演示应用](https://iancoleman.io/shamir/) diff --git a/public/content/translations/zh/enterprise/index.md b/public/content/translations/zh/enterprise/index.md index 1484a2c144d..a1c1df04be4 100644 --- a/public/content/translations/zh/enterprise/index.md +++ b/public/content/translations/zh/enterprise/index.md @@ -1,5 +1,5 @@ --- -title: 在以太坊主网络上的企业 +title: 在以太坊主网上的企业 description: 有关公共以太坊区块链上的企业应用的指南、文章和工具 lang: zh --- diff --git a/public/content/translations/zh/events/index.md b/public/content/translations/zh/events/index.md new file mode 100644 index 00000000000..79260f8b713 --- /dev/null +++ b/public/content/translations/zh/events/index.md @@ -0,0 +1,24 @@ +--- +title: 以太坊活动 +description: 如何加入以太坊社区。 +lang: zh +hideEditButton: true +--- + +# 活动预告 {#events} + +**每个月,世界各地都会举办大型以太坊活动。**你可以考虑参加附近的一个活动,认识更多的社区成员,了解就业机会,并培养新的技能。 + + + +这是一个由我们社区维护的不完整列表。 想要将了解到的即将举行的以太坊活动添加到此列表? [请添加](https://github.com/ethereum/ethereum-org-website/blob/dev/src/data/community-events.json)! + +## 以太坊聚会 {#meetups} + +找不到适合你的活动? 尝试加入一个聚会。 聚会是指由各个以太坊爱好者团体举办的小型活动——这是对以太坊感兴趣的人们聚集在一起的机会,他们可以一起谈论并了解以太坊的最新发展。 + + + +有兴趣举办自己的聚会? 查看 [BUIDL 网络](https://consensys.net/developers/buidlnetwork/),这是由 ConsenSys 发起的一项举措,旨在帮助支持以太坊的各个聚会社区。 + +这是一个由我们社区制定的不完整列表。 你可以[在此处查找更多以太坊聚会](https://www.meetup.com/topics/ethereum/)。 想要将了解到的活跃聚会小组添加到此列表? [请添加](https://github.com/ethereum/ethereum-org-website/blob/dev/src/data/community-meetups.json)! diff --git a/public/content/translations/zh/future-proofing/index.md b/public/content/translations/zh/future-proofing/index.md new file mode 100644 index 00000000000..6ac54869fc4 --- /dev/null +++ b/public/content/translations/zh/future-proofing/index.md @@ -0,0 +1,38 @@ +--- +title: 打造面向未来的以太坊 +description: 无论未来会发生什么,这些升级都可以增强以太坊,使其成为可以适应未来需求的有韧性、去中心化的基础层。 +lang: zh +image: /images/roadmap/roadmap-future.png +alt: "以太坊路线图" +template: roadmap +--- + +路线图的部分内容并不是对于以太坊的短期扩展或保护而言必不可少,但可以为以太坊长期稳定性和可靠性奠定基础。 + +## 量子抗性 {#quantum-resistance} + +当量子计算成为现实时,一些目前用于保护以太坊安全的[加密技术](/glossary/#cryptography)将会受到威胁。 尽管量子计算机可能还需要几十年才能对现代加密技术构成真正的威胁,但以太坊的构建方式要保证以太坊在未来几个世纪内都保持安全。 这意味着要尽快使[以太坊具备量子抗性](https://consensys.net/blog/developers/how-will-quantum-supremacy-affect-blockchain/)。 + +以太坊开发者面临的挑战是,当前的[权益证明](/glossary/#pos)协议依赖于一种称为 BLS 的非常高效的签名方案对有效[区块](/glossary/#block)的投票进行聚合。 这种签名方案会被量子计算机破解,但是具有量子抗性的替代方案没有那么高效。 + +在以太坊的多个地方使用的、用于生成密码学密钥的[“KZG”承诺方案](/roadmap/danksharding/#what-is-kzg)面临量子计算时存在漏洞。 目前,这个问题是通过“可信设置”来规避的,即多个用户生成的随机性无法被量子计算机逆向工程。 然而,理想的解决方案就是采用量子安全加密技术。 可以替代 BLS 方案的高效方法主要有两种:[基于 STARK ](https://hackmd.io/@vbuterin/stark_aggregation)和[基于点阵的](https://medium.com/asecuritysite-when-bob-met-alice/so-what-is-lattice-encryption-326ac66e3175)签名方案。 **这些方案仍处在研究和原型开发阶段**。 + + 阅读了解 KZG 和可信设置的相关内容。 + +## 简化以太坊,提高以太坊效率 {#simpler-more-efficient-ethereum} + +复杂性会导致出现可以被攻击者利用的错误或漏洞。 因此,路线图的一部分是简化以太坊,并删除那些在各种升级后留存但不再需要或可以改进的代码。 更精简、更简单的代码库更容易被开发者维护和推理。 + +我们将对[以太坊虚拟机 (EVM)](/developers/docs/evm)进行多项更新,使其更简单和更高效。 其中包括[删除 SELFDESTRUCT 操作码](https://hackmd.io/@vbuterin/selfdestruct),该命令很少使用、不再需要,并且在某些情况下使用可能会带来危险,特别是当与以太坊存储模型的其他未来升级结合时。 [以太坊客户端](/glossary/#consensus-client)仍然支持一些旧的交易类型,这些类型现在完全可以被删除。 [燃料费](/glossary/#gas)的计算方式也可以改进,并且可以引入更高效的算法来支持一些加密操作。 + +同样,现有以太坊客户端的其他部分也可以进行更新。 例如,目前执行和共识客户端使用不同类型的数据压缩。 当整个网络统一压缩方案时,客户端之间共享数据将变得更加简单直观。 + +## 当前进展 {#current-progress} + +打造面向未来的以太坊所需的大部分升级**仍处于研究阶段,并且可能需要数年时间**才能实现。 诸如删除 SELFDESTRUCT 和统一执行执行和共识客户端中所用压缩方案之类的升级,可能会比抗量子加密更快推出。 + +**延伸阅读** + +- [燃料](/developers/docs/gas) +- [EVM 以太坊虚拟机](/developers/docs/evm) +- [数据结构](/developers/docs/data-structures-and-encoding) diff --git a/public/content/translations/zh/glossary/index.md b/public/content/translations/zh/glossary/index.md index c7aca48b226..60729a5922a 100644 --- a/public/content/translations/zh/glossary/index.md +++ b/public/content/translations/zh/glossary/index.md @@ -320,11 +320,11 @@ lang: zh ## O {#section-o} - + - + diff --git a/public/content/translations/zh/how-to-create-an-ethereum-account/index.md b/public/content/translations/zh/how-to-create-an-ethereum-account/index.md new file mode 100644 index 00000000000..ce94f684d3a --- /dev/null +++ b/public/content/translations/zh/how-to-create-an-ethereum-account/index.md @@ -0,0 +1,73 @@ +--- +title: 如何“创建”以太坊帐户 +description: 使用钱包创建以太坊帐户的分步指南。 +lang: zh +--- + +# 如何创建以太坊帐户 + +**任何人都可以免费创建以太坊账户。**你只需要安装加密钱包应用。 钱包可创建并管理你的以太坊帐户。 它们可以发送交易,检查你的余额,并连接到其他基于以太坊构建的应用程序。 + +使用钱包,你也可以随时登入任何代币交易所、游戏、[非同质化代币](/glossary/#nft)市场。 不需要单独注册,基于以太坊构建的所有应用程序共享一个帐户。 + +## 第一步:选择一个钱包 + +钱包是帮助你管理以太坊帐户的应用程序。 现有数十种不同的钱包可供你选择:移动端、桌面端,甚至是浏览器扩展程序。 + + + + 钱包列表 + + +如果你是新手,可以在“查找钱包”页面上选择“加密货币新手”进行筛选,找到适合新手且具备所有必要功能的钱包。 + +![在“查找钱包”页面上进行筛选](./wallet-box.png) + +除此,还可以使用其他筛选条件来满足你的需求。 这些是常用的钱包示例 - 但在信任任何软件之前,你都应该自己先研究。 + +## 第二步:下载并安装钱包应用 + +一旦选好了特定的钱包,就可访问他们的官网或应用商店来进行下载和安装。 它们应该都是免费的。 + +## 第三步:打开应用程序,创建你的以太坊帐户 + +当你第一次打开新钱包应用时,你需要选择创建一个新的帐号或者导入已有的帐户。 点击创建新帐号。 **在这一步骤中,钱包软件将生成你的以太坊帐户。** + +## 第四步:保存你的助记词 + +一些应用程序会要求你保存私密的“恢复短语”(有时称为“助记词”或“助记符”)。 妥善保存此短语至关重要! 这用于生成你的以太坊帐户,并可用于提交交易。 + +**任何知道助记词的人都能控制所有资金。**切勿与任何人分享。 此助记词应包含 12 至 24 个随机生成的单词(单词的顺序很重要)。 + +
+ +
已安装钱包?
了解如何使用它。
+ + 如何使用钱包 + +
+
+ +对其他指南感兴趣吗? 查看我们的:[分步指南](/guides/) + +## 常见问题 + +### 我的钱包和我的以太坊帐户是一样的吗? + +否。 钱包是帮助你管理帐户的管理工具。 一个钱包可以访问多个帐户,一个帐户可供多个钱包访问。 助记词用于创建帐户,并授予钱包应用程序管理资产的权限。 + +### 我可以发送比特币到以太坊地址,或发送以太币到比特币地址吗? + +不可以。 比特币和以太币存在于两个独立的网络(即不同的区块链),每个网络都有各自的记账和地址格式。 为了桥接这两个不同的网络已经进行了各种不同的尝试,其中目前最活跃的一种是[包装比特币 (WBTC)](https://www.bitcoin.com/get-started/what-is-wbtc/)。 这并不是背书,因为包装比特币是一种受监管的解决方案(这意味着由一群人控制某些重要功能),包装比特币在此处仅供参考。 + +### 如果我已经拥有了一个以太币地址,我可以在其他区块链拥有相同的地址吗? + +在所有使用与以太坊类似的底层软件的区块链(称为“兼容以太坊虚拟机”)上,你可以使用相同的[地址](/glossary/#address)。 这个[列表](https://chainlist.org/)会告诉你在哪些区块链上你可以使用相同的地址。 有一些区块链,如比特币,实施了完全独立的一组网络规则,你需要一个不同格式的地址。 如果你有智能合约钱包,你应该查看其产品网站,详细了解它所支持的区块链,因为这些区块链的范围通常有限但更安全。 + +### 相对于把资金保存在交易所,拥有自己的钱包是否更安全? + +拥有自己的钱包意味着你要对自己的资产安全负责。 不幸的是,有许多因为交易所倒闭而导致客户资金丢失的例子。 拥有钱包(与助记词)可以消除与委托某个实体持有你的资产相关联的风险。 然而,你必须自行保管它,避免遭遇钓鱼诈骗、意外批准交易或泄露助记词、与虚假网站互动和其他自我保管的风险。 这两种方式各有利弊。 + +### 如果我丢失了手机/硬件钱包,我需要使用相同的钱包应用来恢复损失的资金吗? + +不,你可以用其他钱包。 只要你有助记词,就可以将其输入到大多数钱包中来恢复帐户。 如果你需要这样做,请务必小心:在恢复钱包时最好确保没有连接到互联网,以防意外泄漏你的助记词。 如果没有助记词,通常无法恢复损失的资金。 diff --git a/public/content/translations/zh/roadmap/verkle-trees/index.md b/public/content/translations/zh/roadmap/verkle-trees/index.md index ab4fe255340..c5bf31b0ebb 100644 --- a/public/content/translations/zh/roadmap/verkle-trees/index.md +++ b/public/content/translations/zh/roadmap/verkle-trees/index.md @@ -57,6 +57,8 @@ summaryPoints: - [沃克尔树实现无状态](https://verkle.info/) - [Dankrad Feist 在 PEEPanEIP 上关于沃克尔树的讲解](https://www.youtube.com/watch?v=RGJOQHzg3UQ) +- [面向大众的沃克尔树](https://research.2077.xyz/verkle-trees) +- [沃克尔证明的结构解析](https://ihagopian.com/posts/anatomy-of-a-verkle-proof) - [Guillaume Ballet 在 ETHGlobal 解释沃克尔树](https://www.youtube.com/watch?v=f7bEtX3Z57o) - [Guillaume Ballet 在 Devcon 6 上的演讲“沃克尔树如何让以太坊变得高效精简”](https://www.youtube.com/watch?v=Q7rStTKwuYs) - [Piper Merriam 在 2020 年 ETHDenver 大会上关于无状态客户端的讲解](https://www.youtube.com/watch?v=0yiZJNciIJ4) diff --git a/public/content/translations/zh/scaling/index.md b/public/content/translations/zh/scaling/index.md new file mode 100644 index 00000000000..7488ee43ed2 --- /dev/null +++ b/public/content/translations/zh/scaling/index.md @@ -0,0 +1,51 @@ +--- +title: 以太坊扩容 +description: 卷叠链下批量处理交易,从而降低用户的成本。 然而,目前卷叠使用数据的方法过于昂贵,这限制了交易费用的降低。 Proto-Danksharding 解决了这个问题。 +lang: zh +image: /images/roadmap/roadmap-transactions.png +alt: "以太坊路线图" +template: roadmap +--- + +以太坊使用[二层](/layer-2/#rollups)网络(也称为“卷叠”)进行扩展,卷叠批量处理交易并将结果发送到以太坊上。 尽管卷叠比以太坊主网便宜多达八倍,但还可以进一步优化,以降低最终用户的成本。 卷叠还依赖于一些中心化的组件,随着卷叠的成熟,开发者可以逐步移除这些组件。 + + +
    +
  • 目前,卷叠比以太坊一层网络便宜大约 5-20 倍
  • +
  • 零知识卷叠将很快把费用降低约 40-100 倍
  • +
  • 即将进行的以太坊变更会再次扩容 100-1000 倍
  • +
  • 用户将从中受益,交易成本降至不足 0.001 美元
  • +
+
+ +## 让数据更实惠 {#making-data-cheaper} + +卷叠会收集、执行大量的交易,并将结果提交到以太坊。 这会生成大量数据,这些数据需要公开,以便任何人都能执行交易并验证卷叠运营商的诚实性。 如果有人发现交易有出入,就会提出质疑。 + +### Proto-Danksharding {#proto-danksharding} + +过去卷叠数据永久存储在以太坊上,这导致费用高昂。 用户在卷叠中支付的超过 90% 的交易费用是由于这种数据存储造成的。 为了减少交易费用,我们可以将数据转移到新的临时“二进制大对象”中存储。 由于二进制大对象不是永久性存储,所以相对便宜。一旦不再需要这些数据,可以将它们从以太坊中删除。 长期存储卷叠数据成为需要者的责任,例如卷叠运营者、交易所、索引服务等。 向以太坊添加数据块交易是被称作“Proto-Danksharding”的升级的一部分。 + +使用 Proto-Danksharding,可以向以太坊区块中添加许多二进制大对象。 这会进一步大幅(>100 倍)提高以太坊吞吐量、降低交易费用。 + +### Danksharding {#danksharding} + +扩展二进制大对象数据的第二阶段非常复杂,因为它需要以新的方式检查卷叠数据在网络上的可用性,并依赖[验证者](/glossary/#validator)来分离他们的[区块](/glossary/#block)构建和区块提议责任。 同时,它还需要以一种加密方式证明验证者已验证二进制大对象数据的小子集。 + +这个第二步名为[“Danksharding”](/roadmap/danksharding/)。 **它可能需要几年时间**才能完全实现。 Danksharding 依赖于其他开发工作,例如[分离区块构建和区块提出](/roadmap/pbs),以及进行新网络设计,让网络能够通过一次性随机采样少许千字节数据即可高效确认数据可用性,这称为“[数据可用性采样 (DAS)](/developers/docs/data-availability)”。 + +更多关于 Danksharding 的信息 + +## 去中心化卷叠 {#decentralizing-rollups} + +[卷叠](/layer-2)已经在对以太坊扩容。 一个[丰富的卷叠项目生态系统](https://l2beat.com/scaling/tvl)正在使用户能够在一系列安全保证下快速和低成本地进行交易。 然而,卷叠目前是通过中心化的排序者(在提交给以太坊之前进行所有交易处理和聚合的计算机)来引导的。 这容易审查,因为这些排序运营商可能会受到制裁、受贿、或因其他原因妥协。 与此同时,[卷叠在验证传入数据的方式上也存在差异](https://l2beat.com)。 最好的方法是让“验证者”提交[欺诈证明](/glossary/#fraud-proof)或有效性证明,但不是所有卷叠都实现了这一点。 甚至那些使用了有效性/欺诈证明的卷叠也仅使用少数已知的证明者。 因此,以太坊扩容的下一个重要步骤是向更多人分配运行排序者和证明者的责任。 + +更多关于卷叠的信息 + +## 当前进展 {#current-progress} + +Proto-Danksharding 是这些路线图项目中首个要实现的项目,将作为 2024 年 3 月的 Cancun-Deneb (“Dencun”)网络升级的一部分实现。 由于完整 Danksharding 依赖于其他几个路线图项目首先完成,所以**距离其实现可能仍需数年时间**。 卷叠基础设施去中心化很可能是一个渐进过程 - 存在许多不同的卷叠,它们正在建立的系统略有不同,并且完全去中心化的速度也不同。 + +[更多关于 Dencun 网络升级的信息](/roadmap/dencun/) + + diff --git a/public/content/translations/zh/security/index.md b/public/content/translations/zh/security/index.md index 301a1a50c6b..58f254d63ce 100644 --- a/public/content/translations/zh/security/index.md +++ b/public/content/translations/zh/security/index.md @@ -1,295 +1,48 @@ --- -title: 以太坊安全和预防欺诈措施 -description: 在以太坊上保持安全 +title: 更安全的以太坊 +description: 以太坊是现有的最安全和去中心化的智能合约平台。 不过,我们仍有改进空间,从而确保以太坊能够抵御未来任何程度的攻击。 lang: zh +image: /images/roadmap/roadmap-security.png +alt: "以太坊路线图" +template: roadmap --- -# 以太坊安全和预防欺诈措施 {#introduction} +**以太坊已经是一个非常安全的**去中心化[智能合约](/glossary/#smart-contract)平台。 然而,我们仍可以进行一些改进,以确保以太坊能够抵御未来各种攻击。 这些改进包括对[以太坊客户端](/glossary/#consensus-client)处理竞争[区块](/glossary/#block)的方式进行微调,以及提高网络认为区块[“最终确定”](/developers/docs/consensus-mechanisms/pos/#finality)(这意味着在不对攻击者造成巨大经济损失的情况下无法改变区块)的速度。 -随着人们对加密货币的兴趣日益浓厚,黑客和骗子带来的风险也随之增加。 本文罗列了一些降低此类风险的最佳做法。 +此外,还可以进行一些改进,使审查交易变得更加困难,比如对区块提议者隐藏区块的实际内容,或者采用新的方法来识别客户端何时在审查。 这些改进将共同升级[权益证明](/glossary/#pos)协议,使从个人到企业在内的所有用户都对他们在以太坊上的应用程序、数据和资产随即产生信心。 -**请记住:ethereum.org 的人员永远不会主动联系你。 请不要回复声称来自以太坊官方支持的任何电子邮件。** +## 质押提款 {#staking-withdrawals} - +从[工作量证明](/glossary/#pow)升级到权益证明的过程始于以太坊的先驱们在存款合约中“质押”以太币。 这些以太币用于保护网络。 2023 年 4 月 12 日进行了第二次更新,允许提取质押的以太币。 自那时起,验证者可以自由地质押或提取以太币。 -## 加密货币安全 101 {#crypto-security} +阅读关于提款的信息 -### 提升你的知识水平 {#level-up-your-knowledge} +## 防御攻击 {#defending-against-attacks} -对加密货币运作方式的误解可能会造成重大过失。 例如,如果有人冒充客服人员,声称可以归还你损失的以太币以换取你的私钥,他们是在试图利用人们不了解以太坊是一个去中心化网络,并不具备此类功能这一事实。 了解以太坊如何运作是一项值得的投资。 +可以对以太坊的权益证明协议进行一些改进。 其中一项称为[视图合并](https://ethresear.ch/t/view-merge-as-a-replacement-for-proposer-boost/13739) - 这是一种更安全的[分叉](/glossary/#fork)选择算法,可以增加实施某些复杂攻击的难度。 - - 什么是以太坊? - +减少以太坊[最终确定](/glossary/#finality)区块所需的时间可以改善用户体验,并防止复杂的“重组”攻击,即攻击者试图重组最近的区块以获取利润或审查特定交易。 [**单时隙最终确定性 (SSF)**](/roadmap/single-slot-finality/) 是一种**尽可能减少最终确定延迟的方式**。 现在,攻击者理论上可以说服其他验证者重新配置 15 分钟的区块。 采用单时隙确定性后,该数值为 0。 从个人到应用程序和交易所,所有用户都可以从中受益,快速确保他们的交易不会被撤销,而网络也可以从中受益,防范一整类攻击。 - - 什么是以太币? - - +了解单时隙确定性 -## 钱包安全 {#wallet-security} +## 防范审查 {#defending-against-censorship} -### 切勿泄漏你的私钥 {#protect-private-keys} +去中心化可以防止个人或一小部分[验证者](/glossary/#validator)的影响力过大。 新型质押技术有助于确保以太坊的验证者尽可能保持去中心化,同时还能防范硬件、软件和网络故障。 其中包括将验证者责任分散到多个[节点](/glossary/#node)的软件。 这被称为**分布式验证者技术 (DVT)**。 由于分布式验证者技术允许多台计算机共同参与验证,从而增加了冗余和容错性,因此我们鼓励[质押池](/glossary/#staking-pool)使用分布式验证者技术。 它还能将验证者密钥分散到多个系统中,而不是由一个运营商运行多个验证者。 这增加了不诚实运营商协调对以太坊的攻击的难度。 总之,它的想法是由_社区_而非个人运行验证者,从而提高安全性。 -**无论何种原因,切勿与他人分享你的私钥!** +了解分布式验证者技术 -钱包私钥就是你的以太坊钱包的密码。 这是阻止知道你的钱包地址的人榨干你帐户中所有资产的唯一方法。 +实施**提议者-构建者器分离 (PBS)** 将大大提高以太坊对审查的固有防范能力。 提议者-构建者器分离可以让一个验证者创建区块,另一个验证者在以太坊网络中广播区块。 这可以确保在整个网络中更加公平地分享利润最大化的区块构建算法带来的收益,**防止质押随着时间的推移集中到表现最好的机构质押人**。 区块提议者可以从区块建造商市场中选择收益最高的区块。 要进行审查,区块提议者往往需要选择收益较低的区块,这**在经济上不合理,而且很容易被网络上的其他验证者发现**。 - - 什么是以太坊钱包? - +提议者-构建者器分离还有一些潜在的附件功能,如加密交易和纳入清单,可以进一步提高以太坊的抗审查性。 这使得区块构建者和提议者无法看到其区块中包含的实际交易。 -#### 不要将你的助记词/私钥截图 {#screenshot-private-keys} +了解提议者-构建者分离 -如果将你的助记词或私钥截图,就有可能将它们同步到云端数据提供商,这意味着它们可能会被黑客获取。 从云端获取私钥是常见的黑客攻击向量。 +## 保护验证者 {#protecting-validators} -### 使用硬件钱包 {#use-hardware-wallet} +老练的攻击者有可能识别出即将到来的验证者,并向它们发送垃圾邮件,以阻止它们提议区块。这被称为**拒绝服务 (DoS)**攻击。 实施[**秘密领袖选举 (SLE)**](/roadmap/secret-leader-election)可防止预先知道区块提议者,从而防范此类攻击。 其工作原理是对代表候选区块提议者的加密承诺进行不断混洗,并利用它们的顺序来决定选择哪个验证者,从而使验证者自己才能事先知道它们的顺序。 -硬件钱包为私钥提供离线存储。 它们被认为是用来存储私钥的最安全的钱包选项:私钥永远不能放到互联网上,它们只能完全保存在本地设备中。 +了解秘密领袖选举 -即使黑客控制了你的电脑,将私钥保持在离线状态,可以大大降低被黑客攻击的风险。 +## 当前进展 {#current-progress} -#### 尝试以下硬件钱包: {#try-hardware-wallet} - -- [Ledger](https://www.ledger.com/) -- [Trezor](https://trezor.io/) - -### 发送交易前仔细检查 {#double-check-transactions} - -不小心将加密货币发送到错误的钱包地址是一个常见的错误。 **在以太坊上发送的交易是不可逆的。**除非你认识地址所有者并能说服他们把你的资金退回来,否则你将无法找回你的资金。 - -在发送交易之前,请务必确保你发送的地址与接收人的地址完全匹配。 当你与智能合约进行交互时,在签名之前检查交易信息是一种好习惯。 - -### 设置智能合约的支出限额 {#spend-limits} - -与智能合约进行交互时,不得允许无限制支出限额。 无支出限额可以让智能合约掏空你的钱包。 相反,只将支出限额设置为交易所需金额。 - -许多以太坊钱包提供限额保护,以防止帐户被掏空。 - -[如何撤销智能合约访问你的加密资金](/guides/how-to-revoke-token-access/) - - - -## 常见的骗术 {#common-scams} - -完全阻止诈骗是不可能的,但如果我们了解骗子最常用的伎俩,就可以降低他们的成功率。 虽然骗术层出不穷,但是他们的本质相同。 最重要的是,请记住: - -- 始终保持怀疑态度 -- 没有人会给你免费或打折的以太币 -- 没有人需要获取你的私钥或个人信息 - -### 推特广告钓鱼 {#ad-phishing} - -![推特链接钓鱼](./twitterPhishingScam.png) - -有一种仿冒推特(也被称为 X)链接预览功能(展开)的方法,可能会让用户误以为他们正在访问一个合法网站。 这种技术利用了推特为推文中分享的 URL 生成预览的机制,并显示诸如_来自 ethereum.org_ 的预览(如上所示),但实际上用户却被重定向到了一个恶意网站。 - -务必检查你是否处于正确的域,尤其是在点击链接以后。 - -[点击此处了解更多信息](https://harrydenley.com/faking-twitter-unfurling)。 - -### 赠品诈骗 {#giveaway} - -加密货币中最常见的骗局之一是赠品诈骗。 赠品诈骗有多种形式,但总体思路是:如果你把以太币发送到指定的钱包地址,你将会收到双倍的以太币。 *因此,它也称为“买一送一”诈骗。* - -这些骗局往往规定领取赠品的时间有限,制造出一种虚假的紧迫感。 - -### 社交媒体黑客攻击 {#social-media-hacks} - -最出名的一次发生在 2020 年 7 月,当时很多知名人士和组织的 Twitter 帐户被黑。 黑客使用被盗的帐户发布了一个比特币赠送活动。 尽管这些欺骗性的推文很快就被发现并删除,但黑客们还是成功骗走了 11 个比特币(截至 2021年 9 月,这些比特币价值 50 万美元)。 - -![Twitter 上的诈骗案例](./appleTwitterScam.png) - -### 名人的赠品 {#celebrity-giveaway} - -名人的赠品是赠品诈骗的另一种常见形式。 骗子会录制名人的视频采访或会议演讲,并在 YouTube 上进行直播 - 看起来好像名人正在接受直播视频采访,为加密货币赠送活动背书。 - -除最常使用的 Vitalik Buterin 以外,此类骗局也使用了加密货币圈内许多其他知名人士(例如 Elon Musk 或 Charles Hoskinson)。 在直播中加入一位知名人士会让骗局看起来有一种合法性(这看起来有点牵强,但 Vitalik 参与其中,所以肯定没问题!)。 - -**赠品活动通常是骗局。 如果你把钱转到这些帐户,你将永远失去它们。** - -![YouTube 上的诈骗案例](./youtubeScam.png) - -### 技术支持诈骗 {#support-scams} - -加密货币是一种相对年轻且常被误解的技术。 利用这一点的一种常见的骗局是技术支持诈骗,骗子会冒充受欢迎的加密货币钱包、交易所或区块链的支持人员。 - -很多关于以太坊的讨论都发生在 Discord 上。 骗子通常会通过在公开的 Discord 频道中搜索寻求支持的问题,以此找到诈骗对象,然后冒充支持人员向询问者发送私人信息以提供技术支持。 通过建立信任,冒充支持人员的骗子试图诱使你透露私钥或将资金发送到他们的钱包。 - -![Discord 上的技术支持诈骗案例](./discordScam.png) - -一般来说,员工永远不会通过私人的非官方渠道与你交流。 在处理支持问题时,要牢记一些简单的事情: - -- 永远不要分享你的私钥、助记词或密码 -- 绝不允许任何人远程访问你的电脑 -- 切勿通过官方指定以外的渠道沟通 - - -
- 请注意:尽管支持类型的骗局通常发生在 Discord 上,但它们也在任何讨论加密货币聊天应用程序(包括电子邮件)上普遍存在。 -
-
- -### “以太坊 2”代币骗局 {#eth2-token-scam} - -在[合并](/roadmap/merge/)的准备阶段,骗子利用“以太坊 2”这一术语的含糊不清,试图让用户将他们的以太币兑换成“以太坊 2”代币。 实际上合并并没有产生任何“以太坊 2”代币,或者任何其它合法代币。 你在合并之前拥有的以太币与现在是同一个以太币。 **从工作量证明切换到权益证明时,无需对帐户采取任何与以太币有关的操作**。 - -骗子可能会以“技术支持”的面貌出现,告诉你如果存入以太币,将收到“以太坊 2”代币。 实际上,并没有[官方的以太坊技术支持](/community/support/),也没有新代币。 永远不要与任何人分享你的钱包助记词。 - -_注意:有一些衍生的代币/票据可能代表了被质押的以太币(比如:Rocket Pool 的 rETH,Lido 的 stETH,Coinbase 的 ETH2),但这些都不需要“迁移过去”。_ - -### 网络钓鱼诈骗 {#phishing-scams} - -网络钓鱼诈骗是另一种越来越常见的诈骗手段,骗子利用这种手段试图窃取你钱包中的资金。 - -一些网络钓鱼电子邮件要求用户点击链接,将其重新定向到仿冒网站,并要求用户输入助记词、重置密码或发送以太币。 还有一些可能会让你在不知情的情况下安装恶意软件以便感染你的电脑,并让骗子能够访问你的电脑文件。 - -如果你收到一封来历不明的电子邮件,请记住: - -- 永远不要打开你不认识的电子邮件地址中的链接或附件 -- 切勿将你的个人信息或密码泄露给任何人 -- 删除来历不明的电子邮件 - -[更多关于避免网络钓鱼骗局的信息](https://support.mycrypto.com/staying-safe/mycrypto-protips-how-not-to-get-scammed-during-ico) - -### 加密货币交易经纪人诈骗 {#broker-scams} - -在加密货币交易经纪人骗局中,骗子自称是专业的加密货币经纪人,会拿着你的钱帮你进行投资。 骗子收到你的钱后,他们可能会诱骗你,让你拿出更多资金,这样你就不会错过更高的投资收益,或者他们也可能就完全消失了。 - -这些骗子往往利用 YouTube 上的虚假帐户,进行看似自然的有关“经纪人”的对话,以此来寻找他们的目标。 这些对话通常会收到很多点赞,以增加真实性,但这些“赞”都是来自机器人帐户。 - -**不要相信互联网上的陌生人,让他们代你投资。 你将失去你的加密货币。** - -![YouTube 上的交易经纪人诈骗案例](./brokerScam.png) - -### 加密货币矿池骗局 {#mining-pool-scams} - -自 2022 年 9 月起,在以太坊上挖矿已不再可能。 但是,矿池骗局仍然存在。 在矿池骗局中会有人主动联系你,并声称你可以通过加入以太坊矿池获得丰厚回报。 骗子会提出要求,并一直与你保持联系。 本质上讲,骗子会试图让你相信,在加入一个以太坊矿池后,你的加密货币将用于创建以太币,而且你将获得以太币红利。 然后你会发现你的加密货币正在赚取微薄的回报。 这只是为了引诱你投入更多的资金。 最终,你的所有资金将被发送到一个未知地址,骗子要么消失,要么在某些情况下会继续保持联系,就像最近发生的一个案例一样。 - -底线是,提防那些在社交媒体上与你联系并要求你加入矿池的人。 一旦你失去你的加密货币,它就永远回不来了。 - -有些事情要记住: - -- 警惕任何与你联系,告诉你如何使用加密货币赚钱的人 -- 做好关于赌注、流动性池或其他加密货币投资方式的调研 -- 这种计划即使有,也很少是合法的。 如果是的话,它们会成为主流,你会听说过它们。 - -[有人在矿池骗局中损失了 20 万美元](https://www.reddit.com/r/CoinBase/comments/r0qe0e/scam_or_possible_incredible_payout/) - -### 空投骗局 {#airdrop-scams} - -空投骗局通常是先构建一个诈骗项目,并向你的钱包空投一种资产(非同质化代币、其他代币),给你发送一个诈骗网站,让你领取这些空投的资产。 当你试图领取资产时,网站会要求你使用自己的以太坊钱包登录,并“批准”一笔交易。 实际上,这个交易会将你帐户的公钥私钥都发给骗子。 这种骗局的另一种方式是让你确认一笔可以把资金转移到骗子帐户的交易。 - -[更多关于空投骗局的信息](https://www.youtube.com/watch?v=LLL_nQp1lGk) - - - -## 网络安全 101 {#web-security} - -### 使用强密码 {#use-strong-passwords} - -[超过 80% 的帐户被黑客攻击是由于密码薄弱或被盗造成的](https://cloudnine.com/ediscoverydaily/electronic-discovery/80-percent-hacking-related-breaches-related-password-issues-cybersecurity-trends/)。 一串很长的字符、数字和符号组合可帮助保护你的帐户安全。 - -一种常见错误是使用一些常见的、有关联的单词组合。 像这样的密码是不安全的,因为它们很容易被称为字典攻击的简单黑客技术攻击。 - -```md -弱密码示例:CuteFluffyKittens! - -强密码示例:ymv\*azu.EAC8eyp8umf -``` - -另一种常见错误是使用容易通过[社会工程学](https://wikipedia.org/wiki/Social_engineering_(security))猜出或发现的密码。 在密码中加入母亲的婚前姓氏、孩子或宠物的名字或出生日期,会增加密码被黑客攻击的风险。 - -#### 强密码设置方法: {#good-password-practices} - -- 在密码生成器或你所填写的表格允许的范围内,将密码设得越长越好 -- 混合使用大写字母、小写字母、数字和符号 -- 不要在密码中使用个人详细资料,如姓氏 -- 避免使用常见的单词 - -[关于创建强密码的更多内容](https://terranovasecurity.com/how-to-create-a-strong-password-in-7-easy-steps/) - -### 使用独立的密码 {#use-unique-passwords} - -数据泄露中外泄的强密码不再是强密码。 你可以在 [Have I Been Pwned](https://haveibeenpwned.com) 网站上检查你的帐户是否在任何公共数据泄露中被泄露。 如果是,**请立即更改被泄露的密码**。 为每个帐户设置独立的密码,可以在你的一个密码被破解时降低黑客访问你所有帐户的风险。 - -### 使用密码管理器 {#use-password-manager} - - -
- 使用密码管理器可以创建唯一的强密码并记住它们! 我们强烈推荐使用它,而且它们大部分是免费的。 -
-
- -记住为每个帐户设置的唯一强密码并不现实。 密码管理器为你的所有密码提供了一个安全、加密的存储空间,你可以通过一个强主密码进行访问。 他们还在注册新服务时生成建议使用的强密码,这样你就不必自行创建密码了。 许多密码管理器也会告诉你是否涉及数据泄露,让你在任何恶意攻击之前更改密码。 - -![密码管理器使用示例](./passwordManager.png) - -#### 尝试一个密码管理器: {#try-password-manager} - -- [Bitwarden](https://bitwarden.com/) -- [KeePass](https://keepass.info/) -- [1Password](https://1password.com/) -- 或查看其他[推荐的密码管理器](https://www.privacytools.io/secure-password-manager) - -### 2FA(双重身份验证) {#two-factor-authentication} - -有时可能会要求你通过提供特有的证明来验证你的身份。 这些证明称为**因素**。 下面是三类重要因素: - -- 你知道的信息(例如密码或安全问题) -- 生理特征(如指纹或虹膜/面部识别) -- 你私有的(安全密钥或你手机上的认证程序) - -使用**双重身份验证 (2FA) **将为你的在线帐户提供一个额外的*安全因素*。 双重身份验证确保仅仅有你的密码还不足以访问你的帐户。 最常见的是,双重验证是一个随机的6位数代码,被称为**基于时间的一次性密码(TOTP)**,你可以通过身份验证程序应用程序(如Google authenticator或Authy)生成。 这是一种“你私有的”,因为生成随机时间密码的种子文件存储在你的设备上。 - - -
- 注意:使用基于短信的双重身份验证很容易遭受 SIM 卡盗用,并不安全。 为了获得最佳安全性,请使用诸如 Google 身份验证器Authy 之类的服务。 -
-
- -#### 安全密钥 {#security-keys} - -安全密匙是一种更高级、更安全的双重身份验证。 安全密钥是物理硬件身份验证设备,其工作方式与身份验证程序应用程序相似。 使用安全密钥是最安全的 2FA 使用方式。 这些密钥中有许多采用了 FIDO 通用第二因素 (U2F) 标准。 [了解更多关于 FIDO U2F](https://www.yubico.com/authentication-standards/fido-u2f/) 的信息。 - -观看以下视频,了解更多关于双重身份验证的信息: - - - -### 卸载浏览器扩展程序 {#uninstall-browser-extensions} - -Chrome 扩展程序或 Firefox 插件等浏览器扩展程序可以增强浏览器的功能,但它们也会带来风险。 大多数浏览器扩展程序默认请求获得“读取和更改网站数据”的权限,几乎允许它们对你的数据做任何事情。 Chrome 扩展程序总是自动更新,因此旧版本安全的扩展程序可能会在更新后被加入恶意代码。 大多数浏览器扩展程序都不会试图窃取你的数据,但你应该知道它们可以。 - -#### 通过以下方式保持安全: {#browser-extension-safety} - -- 只安装来自受信任来源的浏览器扩展程序 -- 删除不使用的浏览器扩展程序 -- 在本地安装 Chrome 扩展程序以停止自动更新(高级) - -[更多关于浏览器扩展程序的风险](https://www.kaspersky.co.uk/blog/browser-extensions-security/12750/) - - - -## 延伸阅读 {#further-reading} - -### 网络安全 {#reading-web-security} - -- [多达 300 万台设备被带有恶意软件的 Chrome 和 Edge 插件感染](https://arstechnica.com/information-technology/2020/12/up-to-3-million-devices-infected-by-malware-laced-chrome-and-edge-add-ons/) - _Dan Goodin_ -- [如何创建一个不会忘记的强密码](https://www.avg.com/en/signal/how-to-create-a-strong-password-that-you-wont-forget) - _AVG_ -- [什么是安全密钥?](https://help.coinbase.com/en/coinbase/getting-started/verify-my-account/security-keys-faq) - _Coinbase_ - -### 加密货币安全 {#reading-crypto-security} - -- [保护自己和资金](https://support.mycrypto.com/staying-safe/protecting-yourself-and-your-funds) - _MyCrypto_ -- [常见加密通信软件中的安全问题](https://docs.salusec.io/untitled/web3-penetration-test/risks-in-social-media) - _Salus_ -- [任何人都适用的安全指南](https://medium.com/mycrypto/mycryptos-security-guide-for-dummies-and-smart-people-too-ab178299c82e) - _MyCrypto_ -- [加密货币安全:密码和身份验证](https://www.youtube.com/watch?v=m8jlnZuV1i4) - _Andreas M. Antonopoulos_ - -### 防诈骗指南 {#reading-scam-education} - -- [指南:如何识别诈骗代币](/guides/how-to-id-scam-tokens/) -- [保持安全:常见骗局](https://support.mycrypto.com/staying-safe/common-scams) - _MyCrypto_ -- [避免骗局](https://bitcoin.org/en/scams) - _Bitcoin.org_ -- [关于常见加密货币网络钓鱼电子邮件和消息的 Twitter 线程](https://twitter.com/tayvano_/status/1516225457640787969) - _Taylor Monahan_ - - +**路线图上的安全升级已进入高级研究阶段**,但预计在一段时间内不会实现。 视图合并、提议者-构建者器分离、单时隙确定性和秘密领袖选举的下一步工作是最终确定规范并开始构建原型。 diff --git a/public/content/translations/zh/statelessness/index.md b/public/content/translations/zh/statelessness/index.md new file mode 100644 index 00000000000..373f8fd0029 --- /dev/null +++ b/public/content/translations/zh/statelessness/index.md @@ -0,0 +1,103 @@ +--- +title: 无状态性、状态数据到期和历史数据到期 +description: 历史数据到期和无状态以太坊的解释 +lang: zh +--- + +# 无状态性、状态数据到期和历史数据到期 {#statelessness} + +对于实现真正的去中心化来说,能够在普通硬件上运行以太坊节点至关重要。 这是因为运行节点使用户通过独立进行加密检查来验证信息,而不是依赖第三方提供数据。 运行节点可以让用户直接将交易提交到以太坊对等网络,无需依赖中介。 如果只有拥有昂贵硬件的用户才能享受这些好处,去中心化就不可能实现。 相反,运行节点的处理和内存方面的要求应该非常普通,以便节点可以在手机、微型计算机上运行,或者在家用计算机上运行而几乎不被注意到。 + +今天,高磁盘空间要求是阻碍大众访问节点的主要障碍。 这主要是因为需要存储以太坊的大量状态数据。 这种状态数据包含处理新区块和交易所必需的关键信息。 截至本文撰写时,建议使用 2TB 的高速固态硬盘运行以太坊全节点。 对于不删除任何旧数据的节点来说,存储需求每周增长约 14GB,而存储自创世块以来的所有数据的存档节点已接近 12TB(截至本文撰写时,即 2023 年 2 月)。 + +较便宜的硬盘驱动器用于存储较久远的数据,但它们运行速度太慢,无法应对传入的区块。 保持现有的客户端存储模式的同时使数据存储更加便宜和方便,只是这一问题的暂时性不完全解决方法,因为以太坊的状态增长是“无限的”,这意味着存储要求只会不断增加,技术改进必须一直跟上状态增长的步伐。 相反,客户端必须寻找在不依赖于查阅本地数据库数据的情况下核对区块和交易的新方式。 + +## 减少节点存储量 {#reducing-storage-for-nodes} + +有多种方法可以减少每个节点需要存储的数据量,每种方法都要求对以太坊的核心协议进行不同程度的更新: + +- **历史数据到期**:可以让节点删除早于 X 区块的状态数据,但不能改变以太坊客户端处理状态数据的方式。 +- **状态数据过期**:让不常用的状态数据进入非活跃状态。 不活跃的数据在重新恢复前会被客户端忽略。 +- **弱无状态性**:只有区块生产者需要访问完整的状态数据,其他节点能够在没有本地状态数据库的情况下验证区块。 +- **强无状态性**:没有节点需要访问完整的状态数据。 + +## 数据到期 {#data-expiry} + +### 历史数据到期 {#history-expiry} + +历史数据到期是指客户端删除它们不可能再需要的旧数据,以便仅存储一小部分历史数据,在新数据传入时丢弃旧数据。 客户端需要历史数据的原因有两个:同步和服务数据请求。 最初,客户端必须与从创世区块一直到链头区块的所有区块同步,以验证每个后续区块都正确。 如今,客户端使用“弱主观性检查站”向链头区块引导。 这些检查点都是受信任的起始点,类似于接近当前区块的创世区块,而不是最初的以太坊创世区块。 这意味着客户端能够丢弃最近的弱主观性检查点之前的所有信息,而不会失去同步到链头区块的能力。 客户端目前通过从本地数据库提取历史数据来服务历史数据请求(通过 JSON-RPC 发送)。 然而,在实施历史数据到期后,如果请求的数据已经被删除,将无法服务这类请求。 此时,提供此类历史数据需要一些创新方法。 + +一种方案是客户端使用门户网络等方法向其他客户端索取历史数据。 门户网络是一个在开发中的用于提供历史数据的对等网络,其中每个节点存储一小部分以太坊历史数据,因此全部历史数据分散存在整个网络。 它通过寻找存储相关数据的节点并且向其索取数据来服务数据请求。 由于要求访问历史数据的基本都是应用程序,因此也可以让它们负责存储数据。 以太坊空间内也可能有足够的无私行为者愿意维护历史档案。 这可能是一个旨在管理历史数据存储的去中心化自治组织,它最好结合了所有这些方案。 这些提供者能够以多种方式提供数据,例如通过 torrent、FTP、菲乐币或者星际文件系统。 + +历史数据到期在某种程度上有争议,因为到目前为止以太坊一直在隐晦地保证任何历史数据的可用性。 从创世块开始完全同步已经成为标准做法,即使它依赖通过快照重建一些较早的数据。 历史数据到期将提供这种保证的责任移出了以太坊核心协议。 如果它是最终能提供历史数据的中心化组织,将会带来新的审查风险。 + +EIP-4444 尚未准备好上线,但在积极讨论中。 有趣的是,EIP-4444 所面临的挑战的技术性并不是那么强,主要在社区管理方面。 要让它上市,需要社区加入,其中包括可信赖实体不仅要同意,还要承诺存储和提供历史数据。 + +此升级没有从根本上改变以太坊节点处理状态数据的方式,它仅仅改变了历史数据的访问方式。 + +### 状态数据到期 {#state-expiry} + +状态数据到期是指从单个节点中删除最近未访问的状态数据。 可以采取以下几种方式实施: + +- **租金到期**:向帐户收取租金并且在租金为零后,将帐户视为到期 +- **时间到期**:如果某帐户在一段时间没有读写操作,让该帐户进入不活跃状态 + +租金到期可以向希望保留在活跃的状态数据库中的帐户直接收取租金。 时间到期可以从最后一次帐户交互开始倒计时,也可以为所有帐户设置定期到期。 此外,还可以采用一些机制将时间和租金模式的元素结合到一起,例如,如果某帐户在时间到期之前支付了小额费用,将保持活跃状态。 对于状态数据到期,必须注意到不活跃的状态数据**未被删除**,它只是与活跃的状态数据分开存储。 不活跃的状态数据可以重新恢复到活跃状态。 + +要实现这一点,或许可以创建有特定期限(可能约一年)的状态树。 当新的时段开始时,一个全新的状态树也随之创建。 只有当前状态树可以修改,其他所有状态数都不可修改。 以太坊节点只能保持现有的状态树和之前一个状态树。 这就需要用一种方法根据地址存在的时段给地址盖上时间戳。 [可能有几种方法](https://ethereum-magicians.org/t/types-of-resurrection-metadata-in-state-expiry/6607)可以做到这一点,但最重要的一种方法需要将[地址加长](https://ethereum-magicians.org/t/increasing-address-size-from-20-to-32-bytes/5485)以容纳额外的信息,此加长地址还更加安全。 在路线图中,这项升级被称为[地址空间扩展](https://ethereum-magicians.org/t/increasing-address-size-from-20-to-32-bytes/5485) + +与历史数据到期相同,在执行状态数据到期后,存储旧状态数据的责任会从个别用户转移至中心化提供商等其他实体、无私的社区成员,或门户网络等的更具前瞻性的去中心化解决方案。 + +状态数据到期机制仍处于研究阶段,还未准备好上线。 状态数据到期的上线时间可能会比无状态客户端和历史数据到期晚,因为那些升级能够让大部分验证者轻松管理占用庞大空间的状态数据。 + +## 无状态性 {#statelessness} + +无状态性一词有些误导性,因为它并不意味着“状态”的概念被完全消除,而是会改变以太坊节点处理状态数据的方式。 无状态性本身有两种形式:弱无状态性和强无状态性。 弱无状态性通过将存储状态数据的责任转给少数节点,从而让大部分节点实现无状态化。 强无状态性则会使所有节点无需再存储完整的状态数据。 这两种无状态性都会为普通验证者带来如下好处: + +- 近乎及时的同步速度 +- 无需按顺序验证区块 +- 将运行节点的硬件要求降至极低(例如在手机上运行) +- 因为无需再进行读/写操作,所以节点可以在廉价硬盘上运行 +- 和以太坊加密技术的未来升级兼容 + +### 弱无状态性 {#weak-statelessness} + +弱无状态性会更改以太坊节点验证状态变化的方式,但它并不会完全消除网络中所有节点存储状态的需求。 相反,弱无状态性会将状态存储的责任交给区块提议者,同时网络中的所有其他节点无需存储完整的状态数据即可验证区块。 + +**在弱无状态性中,提出区块需要访问完整的状态数据,但验证区块不需要状态数据** + +要实现这一点,以太坊客户端中必须已经实施[沃克尔树](/roadmap/verkle-trees/)。 沃克尔树是一种用于存储以太坊状态数据的替代数据结构,可以在对等节点之间传递固定大小的较小“见证”数据以验证区块,而不是根据本地数据库验证区块。 此外,还需要实施[提议者-构建者分离](/roadmap/pbs/),因为这可以让区块构建者成为拥有更强大硬件的专业节点,而这些节点需要访问完整的状态数据。 + + + +无状态性依赖于区块构建者保存完整状态数据的副本,以便生成可用于验证区块的见证。 其他节点不需要访问状态数据,验证区块所需的所有信息都可以在见证中获得。 这就造成了一种情况,即提出区块的成本很高,但验证区块的成本很低,这意味着运行区块提出节点的运营商会越来越少。 不过,只要有尽可能多的参与者能够独立验证区块提议者提出的区块是否有效,区块提议者的去中心化并不重要。 + +阅读 Dankrad 的说明,了解更多信息 + + +区块提议者使用状态数据创建“见证” - 证明区块中的交易正在改变的状态值的最小数据集。 其他验证者并不持有状态数据,它们只存储状态根(整个状态的哈希值)。 它们接收区块和见证,并使用它们来更新状态根。 这使得验证节点变得非常轻量。 + +弱无状态性现在处于高级研究阶段,但它依赖于提议者-构建者分离和沃克尔树的实施,以便在对等节点之间传递小见证。 这意味着弱无状态性可能还需要几年时间才可以在以太坊主网实现。 + +### 强无状态性 {#strong-statelessness} + +强无状态性不需要任何节点存储状态数据。 取而代之的是,交易可以通过由区块生产者汇总的见证发送。 区块生产者只负责存储为相关帐户生成见证所需的状态数据。 因为用户发送见证和“访问列表”来声明他们正在与哪些帐户和存储密钥进行交互,所以状态存储责任几乎完全由用户来承担。 这样会使节点变得极为轻量,但也存在一些折中,例如节点更难与智能合约进行交易。 + +研究人员已经对强无状态性进行了研究,但目前预计强无状态性不会成为以太坊路线图的一部分,更加可能的是,弱无状态性已足以满足以太坊的扩容需求。 + +## 当前进展 {#current-progress} + +弱无状态性、历史数据到期和状态数据到期都处于研究阶段,预计几年后才会上线。 我们不能保证所有这些提案都能实现,例如,如果首先实现了状态数据到期,可能就不需要再实现历史数据到期。 此外,还需要首先完成其他路线图项目,例如[沃克尔树](/roadmap/verkle-trees)和[提议者-构建者分离](/roadmap/pbs)。 + +## 延伸阅读 {#further-reading} + +- [Vitalik 关于无状态性的相关问答](https://www.reddit.com/r/ethereum/comments/o9s15i/impromptu_technical_ama_on_statelessness_and/) +- [一种状态规模管理理论](https://hackmd.io/@vbuterin/state_size_management) +- [重新恢复冲突最小化状态边界](https://ethresear.ch/t/resurrection-conflict-minimized-state-bounding-take-2/8739) +- [实现无状态性的途径和状态数据到期](https://hackmd.io/@vbuterin/state_expiry_paths) +- [EIP-4444 规范](https://eips.ethereum.org/EIPS/eip-4444) +- [Alex Stokes 关于 EIP-4444 的讲解](https://youtu.be/SfDC_qUZaos) +- [为什么无状态性如此重要?](https://dankradfeist.de/ethereum/2021/02/14/why-stateless.html) +- [关于最初无状态客户端概念的说明](https://ethresear.ch/t/the-stateless-client-concept/172) +- [更多关于状态数据到期的信息](https://hackmd.io/@vbuterin/state_size_management#A-more-moderate-solution-state-expiry) +- [更多关于状态数据到期的信息](https://hackmd.io/@vbuterin/state_expiry_paths#Option-2-per-epoch-state-expiry) diff --git a/public/content/translations/zh/support/index.md b/public/content/translations/zh/support/index.md new file mode 100644 index 00000000000..b0165d1a4a7 --- /dev/null +++ b/public/content/translations/zh/support/index.md @@ -0,0 +1,105 @@ +--- +title: 以太坊支持 +description: 在以太坊生态系统中获得支持。 +lang: zh +--- + +# 以太坊支持 {#support} + +## 以太坊官方支持 {#official-support} + +你正在寻求以太坊官方支持吗? 你应该知道的第一件事是以太坊是去中心化的。 这意味着以太坊不属于任何中心化组织、实体或个人,因此没有官方支持渠道。 + +了解以太坊的去中心化特点非常重要,因为**任何声称自己是以太坊官方支持人员的人都可能在试图诈骗你!**防范诈骗的最好方式是自学并认真对待安全问题。 + + + 以太坊安全和预防欺诈措施 + + + + 学习以太坊基础知识 + + +尽管缺乏官方支持,但以太坊生态系统中的许多团体、社区和项目都乐于提供帮助,并且你可以在此页面上找到很多有用的信息和资源。 还有问题吗? 加入 [ethereum.org Discord](/discord/),我们会尽力提供帮助。 + +## 常见问题 {#faq} + +### 我把以太币发到了错误的钱包中 {#wrong-wallet} + +以太坊上发送的交易是不可逆的。 如果你将以太币发送到错误的钱包,很遗憾,没有办法追回这些资金。 以太坊不属于任何中心化组织、实体或个人,这意味着没有人可以逆转交易。 因此,在发送交易之前,一定要仔细检查你的交易,这一点至关重要。 + +### 如何领取以太坊的赠品? {#giveaway-scam} + +以太坊赠品是用来窃取你以太币的骗局。 不要被看起来好得令人难以置信的优惠所诱惑 — 如果你将以太币发送到赠品地址,你不但收不到赠品,还将无法追回你的资金。 + +[关于预防诈骗的更多信息](/security/#common-scams) + +### 我的交易卡住了 {#stuck-transaction} + +如果你提交的交易费低于网络需求,以太坊上的交易有时会被卡住。 许多钱包提供了一个选项,即以更高的交易费重新提交同一项交易,使该交易得以处理。 或者,你可以发送交易到你自己的地址,并使用与待定交易相同的随机数,以取消待定交易。 + +[如何在 MetaMask 上加速或取消待定交易](https://metamask.zendesk.com/hc/en-us/articles/360015489251-How-to-speed-up-or-cancel-a-pending-transaction) + +[如何取消待定以太坊交易](https://info.etherscan.com/how-to-cancel-ethereum-pending-transactions/) + +### 我如何在以太坊挖矿? {#mining-ethereum} + +以太坊不再支持挖矿。 在以太坊从[工作量证明](/glossary/#pow)过渡到[权益证明](/glossary/#pos)后,挖矿就终止了。 现在,以太坊使用验证者而不是矿工。 任何人都可以[质押](/glossary/#staking)以太币并运行验证者软件保护网络,从而获取质押奖励。 + +### 我如何成为质押者/运行验证者? {#how-to-stake} + +要成为验证者,你必须在以太坊存款合约中质押 32 个以太币并搭建一个验证节点。 更多信息见[质押界面](/staking)和[质押启动版](https://launchpad.ethereum.org/)。 + +## 构建去中心化应用程序 {#building-support} + +构建这类应用可能很困难。 以下提供了一些专注于开发的平台,其中有经验丰富的以太坊开发人员,他们会乐意提供帮助。 + +- [Alchemy University](https://university.alchemy.com/#starter_code) +- [CryptoDevs discord](https://discord.com/invite/5W5tVb3) +- [以太坊堆栈交易所](https://ethereum.stackexchange.com/) +- [StackOverflow](https://stackoverflow.com/questions/tagged/web3) +- [Web3 University](https://www.web3.university/) +- [LearnWeb3](https://discord.com/invite/learnweb3) + +你还可以在我们的[以太坊开发者资源](/developers/)部分找到文档和开发指南。 + +### 工具 {#dapp-tooling} + +你的问题是否与某个特定的工具、项目或程序库有关? 大多数项目都有专用于用户支持的聊天服务器或论坛。 + +以下是一些比较常见的例子: + +- [Solidity](https://gitter.im/ethereum/solidity) +- [ethers.js](https://discord.gg/6jyGVDK6Jx) +- [web3.js](https://discord.gg/GsABYQu4sC) +- [安全帽](https://discord.gg/xtrMGhmbfZ) +- [Alchemy](http://alchemy.com/discord) +- [Tenderly](https://discord.gg/fBvDJYR) + +## 运行节点 {#node-support} + +如果你正在运行节点或验证者节点,下面是一些专门帮助你入门的社区。 + +- [EthStaker discord](https://discord.gg/ethstaker) +- [EthStaker reddit](https://www.reddit.com/r/ethstaker) + +大多数构建以太坊客户端的团队也有专门的、面向公众的平台,你可以在这些平台获取支持和提问。 + +### 执行客户端 {#execution-clients} + +- [Geth](https://discord.gg/FqDzupGyYf) +- [Nethermind](https://discord.gg/YJx3pm8z5C) +- [Besu](https://discord.gg/p8djYngzKN) +- [Erigon](https://github.com/ledgerwatch/erigon/issues) +- [Reth](https://github.com/paradigmxyz/reth/discussions) + +### 共识客户端 {#consensus-clients} + +- [Prysm](https://discord.gg/prysmaticlabs) +- [Nimbus](https://discord.gg/nSmEH3qgFv) +- [Lighthouse](https://discord.gg/cyAszAh) +- [Teku](https://discord.gg/7hPv2T6) +- [Lodestar](https://discord.gg/aMxzVcr) +- [Grandine](https://discord.gg/H9XCdUSyZd) + +你还可以[在此处了解如何运行节点](/developers/docs/nodes-and-clients/run-a-node/)。 diff --git a/public/content/translations/zh/user-experience/index.md b/public/content/translations/zh/user-experience/index.md new file mode 100644 index 00000000000..9c3c9698480 --- /dev/null +++ b/public/content/translations/zh/user-experience/index.md @@ -0,0 +1,36 @@ +--- +title: 提升用户体验 +description: 对于大多数人来说,使用以太坊仍然过于复杂。 为了促进以太坊的大规模普及,必须大幅降低其进入门槛 - 必须让用户在访问以太坊时,享受去中心化、无需许可和抗审查的好处,同时像使用传统的 Web2 应用程序一样丝滑顺畅。 +lang: zh +image: /images/roadmap/roadmap-ux.png +alt: "以太坊路线图" +template: roadmap +--- + +从管理[密钥](/glossary/#key)和[钱包](/glossary/#wallet)到发起交易,**以太坊的使用过程都需要简化**。 为了促进以太坊的大规模普及,必须大幅提升使用的便捷性,让用户在访问以太坊时,体验无需许可和抗审查的好处,同时像使用 [Web2](/glossary/#web2) 应用程序一样丝滑顺畅。 + +## 超越助记词 {#no-more-seed-phrases} + +以太坊帐户由一对密钥保护,其中,公钥用于帐户识别,私钥用于消息签名。 私钥类似于主密码,提供以太坊帐户的完全访问权限。 对于更熟悉代表用户管理帐户的银行和 Web2 应用程序的人来说,这是一种完全不同的操作方式。 为了使以太坊在不依赖中心化第三方的情况下大规模普及,必须有一种方法,可以让用户简单顺畅地掌握自己的资产并控制自己的数据,且无需了解公私钥加密法和密钥管理。 + +这个问题的解决办法是使用[智能合约](/glossary/#smart-contract)钱包与以太坊交互。 智能合约钱包提供了在密钥丢失或被盗时保护帐户的途径以及更好地发现和防范欺诈的机会,还可以让钱包拥有新功能。 虽然智能合约钱包现在已经存在,但很难构建,因为它们需要以太坊协议的更好支持。 这种额外支持被称为帐户抽象。 + +更多关于帐户抽象的信息 + +## 人人皆有节点 + +运行[节点](/glossary/#node)的用户不必相信第三方将为他们提供数据,他们可以快速、匿名且无需许可地与以太坊[区块链](/glossary/#blockchain)交互。 然而,现在运行一个节点需要技术知识和大量磁盘空间,这意味着许多人不得不依赖第三方。 + +以太坊将进行几项升级,使节点更容易运行,资源密集程度更低。 存储数据的方式将改为使用更具空间效率的结构,称为**沃克尔树**。 同时,通过[无状态性](/roadmap/statelessness)或[数据到期](/roadmap/statelessness/#data-expiry)升级,以太坊节点将不再需要存储完整的以太坊状态数据的副本,从而大幅降低硬盘空间需求。 [轻节点](/developers/docs/nodes-and-clients/light-clients/)将具备运行全节点的许多好处,但是在手机或简单的浏览器应用程序中就可以轻松运行。 + +阅读关于沃克尔树的信息 + +通过这些升级,运行节点的障碍实际上减少到零。 用户将可以安全、无需许可地访问以太坊,且不需要在计算机或手机上牺牲大量磁盘空间或 CPU,在使用应用程序时,也不必依赖第三方提供数据或网络访问权限。 + +## 当前进展 {#current-progress} + +智能合约钱包已经推出,但需要进行更多升级以使其尽可能去中心化和无需许可。 EIP-4337 是一个成熟的提案,不需要对以太坊协议做出任何修改。 EIP-4337 需要的主要智能合约**于 2023 年 3 月部署**。 + +**完全无状态性仍处于研究阶段**,可能还需要几年才能实现。 在通往完全无状态性的道路上有许多里程碑,包括可能不久后就会实现的数据到期。 可能需要首先完成其他路线图项目,例如[沃克尔树](/roadmap/verkle-trees/)和[提议者-构建者分离](/roadmap/pbs/)。 + +沃克尔树测试网已经上线并运行,下一阶段是在私有测试网上运行启用沃克尔树的客户端,然后在公共测试网运行。 你可以通过在测试网部署智能合约或运行测试网客户端来帮助加速这一进程。 diff --git a/public/content/translations/zh/web3/index.md b/public/content/translations/zh/web3/index.md index 7ec2828b794..f47158d3dda 100644 --- a/public/content/translations/zh/web3/index.md +++ b/public/content/translations/zh/web3/index.md @@ -6,6 +6,10 @@ lang: zh # Web3 简介 {#introduction} +
+ +
+ 中心化网络已经帮助数十亿人融入了互联网,并在其上创建了稳定、可靠的基础设施。 与此同时,少数中心化巨头几乎垄断了互联网,甚至可以为所欲为。 Web3 是摆脱这一困境的方案。 不同于科技巨头垄断的传统互联网,Web3 采用去中心化,由所有用户构建、运营和拥有。 Web3 将权力赋予个人而非公司。 在我们讨论 Web3 之前,先来看看我们是如何走到这一步的。 diff --git a/src/intl/zh/common.json b/src/intl/zh/common.json index 1186083aef9..cc0ccd9d7b3 100644 --- a/src/intl/zh/common.json +++ b/src/intl/zh/common.json @@ -1,7 +1,7 @@ { "about-ethereum-org": "关于 ethereum.org", "about-us": "关于我们", - "account-abstraction": "帐户抽象", + "account-abstraction": "账户抽象", "acknowledgements": "致谢", "adding-desci-projects": "添加去中心化科学项目", "adding-developer-tools": "添加开发者工具", @@ -11,6 +11,7 @@ "adding-products": "添加产品", "adding-staking-products": "添加质押产品", "adding-wallets": "添加钱包", + "ai-agents": "AI 智能体", "aria-toggle-menu-button": "切换菜单键", "aria-toggle-search-button": "切换搜索键", "beacon-chain": "信标链", @@ -221,6 +222,7 @@ "nav-about-description": "以太坊社区的公开、开源项目", "nav-advanced-description": "了解更高深的主题", "nav-advanced-label": "高级", + "nav-ai-agents-description": "探索以太坊上的 AI 智能体世界", "nav-basics-description": "了解以太坊基础知识", "nav-basics-label": "基础知识", "nav-bridges-description": "Web3 已发展成主要由一层网络区块链和二层网络扩容解决方案组成的生态系统", diff --git a/src/intl/zh/glossary-tooltip.json b/src/intl/zh/glossary-tooltip.json index c0a7004d7a2..64e47a9e30c 100644 --- a/src/intl/zh/glossary-tooltip.json +++ b/src/intl/zh/glossary-tooltip.json @@ -101,8 +101,8 @@ "node-definition": "参与网络的软件客户端。了解有关节点和客户端的更多信息。", "ommer-term": "叔块", "ommer-definition": "当工作量证明矿工发现有效的区块时,另一个矿工可能已经发布了首先添加到区块链顶端的竞争区块。这个有效但过时的区块可以作为叔块包含在新区块内,并获得部分区块奖励。术语“ommer”是指代父块同胞的首选中性术语,但有时也称为“uncle”。当以太坊曾经是一个工作量证明网络时,这对于以太坊来说很常见。现在以太坊使用权益证明,每个时隙只选择一个区块提议者。", - "on-chain-term": "链上", - "on-chain-definition": "是指发生在区块链上并且公开的操作或交易。", + "onchain-term": "链上", + "onchain-definition": "是指发生在区块链上并且公开的操作或交易。", "optimistic-rollup-term": "乐观卷叠", "optimistic-rollup-definition": "乐观卷叠是一种二层网络解决方案,可以加速以太坊上的交易,假设交易默认有效,除非受到质疑。了解有关乐观卷叠的更多信息。", "peer-to-peer-network-term": "对等网络", diff --git a/src/intl/zh/glossary.json b/src/intl/zh/glossary.json index 62229400b7e..a885f198f6c 100644 --- a/src/intl/zh/glossary.json +++ b/src/intl/zh/glossary.json @@ -257,12 +257,12 @@ "node-definition": "参与网络的软件客户端。了解有关节点和客户端的更多信息。", "nonce-term": "Nonce", "nonce-definition": "在密码学中,只能使用一次的值。帐户随机数是每个帐户中的交易计数器,用于防止重放攻击。", - "off-chain-term": "链下", - "off-chain-definition": "链下是指存在于区块链之外的任何交易或数据。由于在链上进行每笔交易可能成本高昂且效率低下,因此第三方工具(例如处理定价数据的预言机)或执行较高吞吐量交易的二层网络解决方案在链下执行大量处理工作,并以更低的频率在链上提交信息。", + "offchain-term": "链下", + "offchain-definition": "链下是指存在于区块链之外的任何交易或数据。由于在链上进行每笔交易可能成本高昂且效率低下,因此第三方工具(例如处理定价数据的预言机)或执行较高吞吐量交易的二层网络解决方案在链下执行大量处理工作,并以更低的频率在链上提交信息。", "ommer-term": "叔块", "ommer-definition": "当工作量证明矿工发现有效的区块时,另一个矿工可能已经发布了首先添加到区块链顶端的竞争区块。这个有效但过时的区块可以作为叔块包含在新区块内,并获得部分区块奖励。术语“ommer”是指代父块同胞的首选中性术语,但有时也称为“uncle”。当以太坊曾经是一个工作量证明网络时,这对于以太坊来说很常见。现在以太坊使用权益证明,每个时隙只选择一个区块提议者。", - "on-chain-term": "链上", - "on-chain-definition": "指区块链上发生的公开操作或交易。

将其视为在一个共享大笔记本中写一些东西,每个人都可以看到和检查,确保所写的任何内容(例如发送数字货币或签订合约)是永久性的,无法更改或删除。", + "onchain-term": "链上", + "onchain-definition": "指区块链上发生的公开操作或交易。

将其视为在一个共享大笔记本中写一些东西,每个人都可以看到和检查,确保所写的任何内容(例如发送数字货币或签订合约)是永久性的,无法更改或删除。", "optimistic-rollup-term": "乐观卷叠", "optimistic-rollup-definition": "乐观卷叠是一种二层网络解决方案,可以加速以太坊上的交易,假设交易默认有效,除非受到质疑。了解有关乐观卷叠的更多信息。", "oracle-term": "预言机", @@ -298,7 +298,7 @@ "recovery-phrase-term": "助记词", "recovery-phrase-definition": "创建数字钱包时向你提供的单词列表。它就像一个密码,可以帮助你在失去访问权限时重新进入钱包,确保你不会丢失数字货币或代币。", "re-entrancy-attack-term": "重入攻击", - "re-entrancy-attack-definition": "由攻击者合约调用受害者合约函数组成的攻击,使得在执行过程中受害者再次递归地调用攻击者合约。例如,这可能会导致通过跳过受害者合约中更新余额或计算提款金额的部分来窃取资金。< href=\"/developers/docs/smart-contracts/security/#re-entrancy\">了解有关重入攻击的更多信息。", + "re-entrancy-attack-definition": "由攻击者合约调用受害者合约函数组成的攻击,使得在执行过程中受害者再次递归地调用攻击者合约。例如,这可能会导致通过跳过受害者合约中更新余额或计算提款金额的部分来窃取资金。了解有关重入攻击的更多信息。", "reward-term": "奖励", "reward-definition": "在每个时隙奖励给执行某些功能(包括提议区块或参与同步委员会)的验证者的以太币数额。", "rlp-term": "递归长度前缀编码 (RLP)", diff --git a/src/intl/zh/page-get-eth.json b/src/intl/zh/page-get-eth.json index 54e31a1f0b8..6cd58187a0b 100644 --- a/src/intl/zh/page-get-eth.json +++ b/src/intl/zh/page-get-eth.json @@ -1,11 +1,11 @@ { "page-get-eth-article-keeping-crypto-safe": "保证你加密货币安全的关键", - "page-get-eth-article-protecting-yourself": "保护你自己和你的资金", + "page-get-eth-article-protecting-yourself": "保护您自身与资金安全", "page-get-eth-article-store-digital-assets": "如何在以太坊上存储数字资产", "page-get-eth-article-protecting-yourself-desc": "MyCrypto", "page-get-eth-article-keeping-crypto-safe-desc": "Coinbase", "page-get-eth-article-store-digital-assets-desc": "Consensys", - "page-get-eth-cex": "中心化交易所", + "page-get-eth-cex": "中心化交易平台", "page-get-eth-cex-desc": "交易所是可以让你使用传统法定货币购买加密数字货币的企业。它们将负责保管尚未发送至你实际控制的钱包地址的以太币。", "page-get-eth-checkout-dapps-btn": "查看去中心化应用程序", "page-get-eth-community-safety": "社区上关于安全问题的文章", diff --git a/src/intl/zh/page-index.json b/src/intl/zh/page-index.json index 21600cf5889..332692c1a45 100644 --- a/src/intl/zh/page-index.json +++ b/src/intl/zh/page-index.json @@ -1,7 +1,8 @@ { "page-index-activity-description": "所有以太坊网络上的活动", "page-index-activity-tag": "活动", - "page-index-activity-header": "最强生态系统", + "page-index-activity-header": "最强大的生态系统", + "page-index-activity-action": "更多以太坊活动", "page-index-bento-header": "互联网的全新使用方式", "page-index-bento-assets-action": "关于非同质化代币的更多信息", "page-index-bento-assets-content": "艺术品、证书,甚至房地产都可以代币化。任何物品都可以成为可交易代币,所有权完全公开、可以验证。", @@ -99,7 +100,7 @@ "page-index-values-privacy-legacy-content-0": "我们无法期望政府、企业或其他大型不知名组织出于仁慈给予我们隐私权。", "page-index-values-privacy-legacy-content-1": "大部分应用程序都会尽可能多地收集你的个人信息,以便有针对性地进行个性化营销。", "page-index-values-privacy-ethereum-label": "注重隐私", - "page-index-values-privacy-ethereum-content-0": "以太坊社区尊重你的隐私权。你有权在不暴露身份或不提供联系方式的情况下使用应用程序。", + "page-index-values-privacy-ethereum-content-0": "以太坊社区尊重隐私权。你有权在不暴露身份或不提供联系方式的情况下使用应用程序。", "page-index-values-integration-legacy-label": "碎片化", "page-index-values-integration-legacy-content-0": "大部分应用程序都会要求你创建单独的帐户,这会让你难以记住所有登录信息和注册信息。", "page-index-values-integration-ethereum-label": "整合", @@ -111,7 +112,7 @@ "page-index-values-censorship-legacy-label": "可审查", "page-index-values-censorship-legacy-content-0": "当前的平台及其规则经常发生变化。它们可能受到利益相关者、公司管理层,甚至是专制政权的影响。", "page-index-values-censorship-ethereum-label": "抗审查", - "page-index-values-censorship-ethereum-content-0": "抵抗专制是以太坊的主要原则。其功能应始终保持公平公正。", + "page-index-values-censorship-ethereum-content-0": "抵抗专制是以太坊的重要原则。其功能应始终保持公平公正。", "page-index-values-censorship-ethereum-content-1": "以太坊不能由任何国家、公司或个人控制。", "page-index-values-open-legacy-label": "对大多数人封闭", "page-index-values-open-legacy-content-0": "公司会保护自己的知识产权,不与他人共享。公司以外的人无法了解公司如何运作、解决问题或进行改进。人们很难创造新工具或进行定制。", diff --git a/src/intl/zh/page-upgrades-index.json b/src/intl/zh/page-upgrades-index.json index f987f665f90..57503926d2c 100644 --- a/src/intl/zh/page-upgrades-index.json +++ b/src/intl/zh/page-upgrades-index.json @@ -97,7 +97,7 @@ "page-upgrades-question-6-answer-5": "你也可以访问 ethresear.ch,参与以太坊研发相关讨论。", "page-upgrades-question-6-title": "我需要对我的去中心化应用程序做什么?", "page-upgrades-question-6-desc": "合并旨在对去中心化应用程序开发者产生最小的影响,便仍有一些细微变化值得注意。", - "page-upgrades-question-6-answer-1": "熟悉合并前以太坊的去中心化应用程序开发者应该注意到一些变化。这些变化包括区块结构和时序、一些操作码的变化,链上随机性的来源和时段最终确定的概念。", + "page-upgrades-question-6-answer-1": "熟悉合并前以太坊的去中心化应用程序开发者应该注意到一些变化。这些变化包括区块结构和时序、一些操作码、链上随机性的来源和时段最终确定性的概念。", "page-upgrades-question-6-answer-1-link": "合并如何影响以太坊的应用程序层", "page-upgrades-question-6-answer-2": "应用程序几乎完全未受影响。", "page-upgrades-question-7-desc": "社区中很多不同的团队都在为以太坊的各项升级而努力。", diff --git a/src/intl/zh/page-wallets-find-wallet.json b/src/intl/zh/page-wallets-find-wallet.json index 6dc33d5ea10..3b60a288ae1 100644 --- a/src/intl/zh/page-wallets-find-wallet.json +++ b/src/intl/zh/page-wallets-find-wallet.json @@ -1,5 +1,5 @@ { - "page-find-wallet-clear": "重置过滤器", + "page-find-wallet-clear": "清除过滤器", "page-find-wallet-desc-2": "不知道什么是钱包?", "page-find-wallet-desc-2-wallets-link": "了解钱包。", "page-find-wallet-description": "钱包可以存储和交易你的以太币。你可以从各种产品中选择切合你需求的钱包。", @@ -12,7 +12,7 @@ "page-find-wallet-open-source": "开源", "page-find-wallet-open-source-desc": "开源软件让任何人都可以审计应用程序的完整性和安全性", "page-find-wallet-self-custody": "自我托管", - "page-find-wallet-non-custodial": "个人所有", + "page-find-wallet-non-custodial": "自主掌控", "page-find-wallet-non-custodial-desc": "不控制私钥的钱包", "page-find-wallet-hardware-wallet-support": "硬件钱包支持", "page-find-wallet-hardware-wallet-support-desc": "可以连接到硬件钱包以提高安全性的钱包", @@ -28,7 +28,7 @@ "page-find-wallet-swaps-desc": "在钱包中直接兑换 ERC-20 代币", "page-find-wallet-layer-2": "二层网络", "page-find-wallet-layer-2-desc": "支持以太坊二层网络的钱包", - "page-find-wallet-gas-fee-customization": "燃料费定制", + "page-find-wallet-gas-fee-customization": "Gas费定制", "page-find-wallet-gas-fee-customization-desc": "定制燃料量(基础费、优先费和最高费用)", "page-find-wallet-ens-support": "支持以太坊域名服务", "page-find-wallet-ens-support-desc": "支持以太坊域名服务 (ENS) 的钱包", @@ -65,7 +65,7 @@ "page-find-wallet-new-to-crypto-desc": "寻找入门级钱包的初次用户。", "page-find-wallet-nfts-title": "非同质化代币", "page-find-wallet-nfts-desc": "注重非同质化代币支持的钱包。", - "page-find-wallet-hodler-title": "长期", + "page-find-wallet-hodler-title": "长期持有", "page-find-wallet-hodler-desc": "通过硬件钱包被动持有代币。", "page-find-wallet-finance-title": "金融", "page-find-wallet-finance-desc": "注重频繁使用去中心化金融应用程序的钱包。", diff --git a/src/intl/zh/page-what-is-ethereum.json b/src/intl/zh/page-what-is-ethereum.json index dcf72e381fe..0c24a2aafee 100644 --- a/src/intl/zh/page-what-is-ethereum.json +++ b/src/intl/zh/page-what-is-ethereum.json @@ -1,12 +1,12 @@ { - "page-what-is-ethereum-alt-img-bazaar": "插图:一个人正在窥视代表以太坊的市集", + "page-what-is-ethereum-alt-img-bazaar": "插图:一个人正在窥视代表以太坊的集市", "page-what-is-ethereum-alt-img-comm": "插图:以太坊社区成员一起工作", "page-what-is-ethereum-alt-img-lego": "插图:一只正在搭建乐高版ETH徽标的手", "page-what-is-ethereum-banking-card": "属于所有人的银行服务", "page-what-is-ethereum-banking-card-desc": "不是每个人都能使用金融服务。但是只要你有网络,就可以访问以太坊以及基于它构建的借贷与储蓄产品。", "page-what-is-ethereum-build": "基于以太坊创造一些玩意", "page-what-is-ethereum-build-desc": "如果你想尝试进行以太坊相关的开发,请阅读我们的文档,尝试一些教程或者下载开发工具作为开始。", - "page-what-is-ethereum-censorless-card": "反审查", + "page-what-is-ethereum-censorless-card": "抗审查性", "page-what-is-ethereum-censorless-card-desc": "以太坊不受任何政府或公司的管控。去中心化保障你在以太坊上获得付款或使用服务的权力不容他人干涉。", "page-what-is-ethereum-comm-desc": "我们的社区成员来自五湖四海,各行各业,他们包括艺术家、加密无政府主义者,世界500强企业,现在,还有你。赶快来看看如何加入吧。", "page-what-is-ethereum-commerce-card": "商业保障", @@ -49,7 +49,7 @@ "page-what-is-ethereum-why-would-i-use-ethereum-title": "我为什么要使用以太坊?", "page-what-is-ethereum-why-would-i-use-ethereum-1": "如果你想用更具复原力、更加开放和更加可信的方式来进行全球协作、创建组织、构建应用程序和分享价值,以太坊就是你的菜。以太坊是我们大家共同书写的故事,所以来吧,来探索我们能够共同用以太坊创建的那些神奇世界。", "page-what-is-ethereum-why-would-i-use-ethereum-2": "对于那些由于无法控制的外部力量而不得不处理与其资产的安全性、稳健性或移动性相关的不确定因素的人来说,以太坊也是极有价值的。", - "page-what-is-ethereum-slide-1-title": "更便宜、更快捷的跨境支付", + "page-what-is-ethereum-slide-1-title": "更便宜、更快捷的跨境支付方式", "page-what-is-ethereum-slide-1-desc-1": "稳定币是一种新型加密货币,依赖于更稳定的资产作为其价值基础。大多数稳定币都与美元挂钩,因而维持其货币价值。这样一个非常便宜且稳定的全球支付系统应运而生。当前许多稳定币都构建在以太坊网络上。", "page-what-is-ethereum-slide-1-desc-2": "以太坊和稳定币简化了海外汇款流程。在全球范围内转移资金通常只需要几分钟即可完成,相比之下普通银行可能需要几个工作日甚至几周,并且价格只是银行服务的一小部分。此外,进行高额交易不收取额外费用,并且对于汇款地址或原因没有任何限制。", "page-what-is-ethereum-slide-2-title": "在危机时刻提供最快捷的帮助", diff --git a/src/intl/zh/template-usecase.json b/src/intl/zh/template-usecase.json index 38cd458e805..0574ad3168a 100644 --- a/src/intl/zh/template-usecase.json +++ b/src/intl/zh/template-usecase.json @@ -1,4 +1,5 @@ { + "template-usecase-dropdown-ai-agents": "AI 智能体", "template-usecase-dropdown-defi": "去中心化金融 (DeFi)", "template-usecase-dropdown-nft": "非同质化代币 (NFT)", "template-usecase-dropdown-dao": "去中心化自治组织 (DAO)", From 264e1cdd2236557c2cb465b9b9a58b88a6c4ae95 Mon Sep 17 00:00:00 2001 From: chuke Date: Thu, 1 May 2025 17:44:41 +0900 Subject: [PATCH 070/106] add prediction market page to use cases [Fixes #15360] --- public/content/prediction-markets/index.md | 81 ++++++++++++++++++ public/images/dapps/auger.png | Bin 0 -> 6403 bytes public/images/dapps/kalshi.png | Bin 0 -> 41235 bytes .../images/use-cases/prediction-markets.png | Bin 0 -> 1628616 bytes .../PredictionMarketLists.tsx | 77 +++++++++++++++++ src/intl/en/template-usecase.json | 3 +- src/layouts/md/UseCases.tsx | 13 +++ 7 files changed, 173 insertions(+), 1 deletion(-) create mode 100644 public/content/prediction-markets/index.md create mode 100644 public/images/dapps/auger.png create mode 100644 public/images/dapps/kalshi.png create mode 100644 public/images/use-cases/prediction-markets.png create mode 100644 src/components/Content/prediction-markets/PredictionMarketLists.tsx diff --git a/public/content/prediction-markets/index.md b/public/content/prediction-markets/index.md new file mode 100644 index 00000000000..706062bf915 --- /dev/null +++ b/public/content/prediction-markets/index.md @@ -0,0 +1,81 @@ +--- +title: Prediction markets +lang: en +template: use-cases +image: /images/use-cases/prediction-markets.png +sidebarDepth: 2 +summaryPoint1: Receive financial incentives to generate accurate forecasts  +summaryPoint2: High quality predictions about future events +buttons: + - content: Learn more + toId: how-prediction-markets-work + - content: Explore apps + toId: find-a-prediction-market + isSecondary: false +--- + +Prediction markets use crowd wisdom and financial incentives to forecast events. They offer diverse, high-quality data and gained traction during the 2024 U.S. elections. + +## How prediction markets work {#how-prediction-markets-work} + +Unlike traditional forecasting methods that rely on expert opinions, limited survey samples or historical data, prediction markets leverage **real-time financial incentives** and **crowd wisdom** to generate insights relating to a particular event—elections, crypto prices, sports outcomes—anything.  + +This allows anyone to signal support for a specific outcome with a financial commitment. +  +By enabling betting on real-world events and adjusting the prices as new information arises, informed opinions are valued higher, and accuracy can be rewarded.  + +In theory, because bettors stand to profit from being correct, prediction markets can forecast outcomes with great precision. Blockchain-based prediction markets are even more exciting, as virtually anyone can take part in the forecasting and earn stablecoin or cryptocurrency rewards. + +## Why does this matter? {#why-does-this-matter} + +Unlike traditional forecasting, blockchain-based prediction markets are: + + + + + + + +Even as an observer of the market, you can assess valuable data that would be otherwise unavailable. Think of it like this: + +1. Predictions are tied to a specific event (e.g. Will Beam Chain deploy by 2030?). +2. Market participants buy and sell shares based on their confidence in any outcome. +3. Prices adjust as more participants stake their beliefs, reflecting real-time insights. +4. Anyone betting correctly earns proportionately to the amount staked.  +5. Market observers can leverage the open data to inform research or discussion. + +## Find a prediction market {#find-a-prediction-market} + +There are several Ethereum-based prediction markets available. These are some of the most well-known prediction markets today: + + + + +

Stay mindful of the risks

+

Only bet what you can afford, and be aware of potential addictive behaviors.

+
+ +## Challenges & Risks {#challenges-and-risks} + +Prediction markets on the blockchain face few challenges that can impact fairness, legality, and accuracy. + +⚠️ **Market Manipulation** – Wealthy players can distort outcomes through wash trading. +💧 **Liquidity Issues** – Low participation ([thin liquidity](https://www.investopedia.com/terms/t/thinmarket.asp)) can reduce market reliability. +🏛 **Regulatory Uncertainty** – Governments have imposed restrictions on some platforms. + +To mitigate these issues, Ethereum developers are experimenting with solutions like futarchy (governance by prediction markets) and decentralized identity verification. + +## Experimenting with prediction markets {#experimenting-with-prediction-markets} + +Prediction markets are reshaping decision-making in the digital age. By leveraging Ethereum, they offer **fair, open, and rewarding ways to predict the future.** + +There are many ways to use forecasting tools outside of financial gain. For example, in a [DevCon Improvement Proposal](https://forum.devcon.org/t/futarchy-decision-markets-for-deciding-next-devcon/5305) (DIP) it was suggested that the organizers of DevCon use prediction markets to anticipate attendance for future events.  + +This would help the organizers determine which location would lead to the largest event, compared to which location would lead to the most internationally accessible. The benefits of this mean the organizers of DevCon can expedite the amount of time required to screen multiple +visa policies, airport access, and cost of living in the area while also gathering data on where prospective attendees would be excited to go. + +### Further reading {#further-reading} + +[From prediction markets to info finance](https://vitalik.eth.limo/general/2024/11/09/infofinance.html) - Vitalik Buterin +[Decentralized Prediction Market Development on Ethereum](https://blockchain.oodles.io/dev-blog/decentralized-prediction-market-development-ethereum/) +[The Augur Project Whitepaper](https://github.com/AugurProject/whitepaper) \ No newline at end of file diff --git a/public/images/dapps/auger.png b/public/images/dapps/auger.png new file mode 100644 index 0000000000000000000000000000000000000000..42c80a72238d80c8648af0533d1df294fec5ee64 GIT binary patch literal 6403 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%0Db1X0af)|Age9|jy2i(vE38Un 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۰*K_beOXJI)sy(Jh)o2LoBTQ`)z*H76oBdW_|K; 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

a|9)xh(A^Y;or_CgeGn!e!o4m+%stRpeG-tYEC~ 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%0DQy*k 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⪚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'qcg zNM}?gq&IxB3YThFy8P~eGpMpc5c~Ya$|gu-(4pedZ}k#KMT9UE#<)}vwK!s^;?!q_ zqBBynMzXWJe^h`J3sC~aza~QS7btD5EhuFX!cZP#SF-;z1OU_5`vPrBNM*R{yop|R zHEy1~oNuf|+kimV{bZE1{PqpQJpa2jD!RbRox{wZ+FTD`?w64e!bR_}77=NLcJx|W zgVAn%=)ie(3QS#Y2FL7sp4AC~ID=?o9ex?eobjylwzN{9rBBC(J2RAZ>Dr8!T=!uVlx1A&fiZp~%N0M-3?;27RpW%&OF4Y@UuVs3 z9GV42a`M6zxWp;@FNv|7@wu_|)W!qu0GZJC++M9eds~I+9~h*ji+ukNF<-pgF=#J8 zp~%~QVUQS_g5dyXTbq_Vqn-DhGk_VY7C{)slzS;DNumKO5z2+o5E4Y9ICx5l&EH(Y zWnW#wlC_7>RTclN@a;Ucb%@@$on5zIxP0OZZdo+qe);(r`TUV>8m){R`~AK4 zS^uL~efo$`fAC+P`r%!Q9Yd{L@VOEfpSXrAE|{H}U-wnU(57}_EG(F~hDWy^H}KUv z&idB;8IPzPUA1^%I2o<&e{ZE>exG;o_pW$+X^fDTnFmFXlpx47M6Tq)F@bX>N=Gvb z7wWfb3XW#-W^O3bI{14bz$(vWJE5VT)DAMYB_ZqaEb|tbX`8IcfFNhOnF`_}#|g^Z zd%s1~_6h$tFJPn;P+Lx$KbCo8x3XnuJUgoGobZWZo`2YOK6~*zG7AAQb7bptkrH{G z*LjM@TV>`jnMS2f`BPNJ!nMzI6B}oT&|0k4?~`Ab4J+HXJ)Lh4NY%B9Be$r;$Ai!A zEwFV&D_aj<$X1p_2zqQAaU4+T^?*R?Yd>OG(_zf;-@t>Vp5e1npvE1}A1a4avCS?= zU&r)psI_pRd9_2C+_p>H_DS`+fU_9(zzs#R`BYNz_A6e=e}40)bat0nySjM9{ByqY z?3&+Sc}Q;L_RBibXzsya>lZXUNc+P@kfoiKSfmeK*f%&xk^~eB5wCmqd2XrX&B6o(N;Ehnr)0w9 z>WUCI54n?UFAmy!YwC2Zr$xAV5;o@)F5%Q;7V_B5PqTHnK=V`E;G*29jKTs-2}xqz zf--=rr({>AIr_lHxKMW9&Zeo^fuX{H z5l%&)hT2V|vLhf6(&=Zc_M}w$?*xey1VRw|+@m7x6VAKKwV}Rb6qdxg6b=%&VCD;m zr#cVTP0@Ou?tGTMZ4rqPbhK2d)B*U`#W10$ zBvGVjD#VV23X7Cb2ouJ4B+NQx0>_6Z&6c{3D=}(%$M9wAJ zBls@NnmeZ}v0>%5AwF^AP6lJe=U+00>0^ql-c_Z&wGE-leBrij+_z#py~#9!0H(~h zob=Wg&@yo>#v};q0cq_Nlr{txIZT2QC?9)JSivcmp3Rz@f68Djq2VljGhHYq#5y3%PpE}h2822x zEF?tL0PlE&N@C}6jGISmAyy$RQH^TBc~}J^ap!=9I1vog3fO|c)Iik06x~@MyTLTW z_KltX!GfR=gB2uNWI$cEo@BzHDKn zSfd!WEet0u49Q`}O|~Fw+ZF4-H)3UulqF#=s@V9NarnOuZS5^mDpYyH#m8{U!SisZ zv*Qi4wVZj#LY{xfLVso(Zhq=%)^=`XV5owWis>EG8a(`6Xu$g81vCPc)~yShYo1@F z7+kJIAwd}LeM3&b@O1LGUv|2Sm%YEM9*6}zkJNZ9y0fJonn9afz+HbXq{mZz0PEp) zv!lhjh)vehM%P`@z!F>ErGZKf63h0!GLy_Oiw~c|d(S@uYt!)%Szr|b6hy#pKmQso z{?N4y8$~rL@~$u4%v(QtcjY^uJ*yQE+tv&-SZk)eIL!3%vv`(%dMg3{`ja2?`G0yt zc2FNVb1EB-+sv7VE#^DFx`)o*7S?Yo@QyFs09cMYc{Z1xa0CUV2&5n^NtDt|ZL9Ff zx4(c3UOxTE5o;&U!`QfHdTWWaiB{r2zxyz+IQzr{21nDz{vi*9N2zOq*6= z)1R(5pnLRH*?YDBos}0~`3>M)C(63qqslm4AxdG40vteVkxuN?1|#a6qtM2M4Mw|gB>)uBVZ`9}K1yMN zHZW^kjbjcz3WZ?lmeq9imk`SGg0C-T$-gaO=k6lkyzvpPdEY^!&V8c){sB^e$rEFC z?hY8-Ef4o!<;V&slNb;BF%9j;{*{|??GuZdtvKkL<6YAptNzRB%}j3ZQyks z!hx=ihc%g2%*en+D6!7_Q!9zl(w)=kIVCJYBwlqPvRA6guu?$aP6lg1`23-`jB)q_ z%<-JYW_d%c@~277=>sg1q##{Ng9LBHSKnh2>%*ZtAlE8US04$mf!`-N<9KTf(!lIy z!@{|Jtl!#9qGc+fFIx~4;dNhzUt*df%Moxe@_&jw4jg!HqJI&H9 ziDt-JwkHYw#6(){`{Pd|G)fwmSJnSuTt|NaV>qukO)Ul66#EE-U>ZkoS_f|7D5CQrQ)z4 z;Lu{oB&C?GUb@$_CX6o;^welkL-mj>e@1!d4~F>7Q|Do=;>gKQaq9;UKpOvVl#l*m z7^|It{LrceeDAI`Tz%Ui95;U@liLjUt(-wED$rkTW%9UPbaqW*cWpewx*2N%5SE^3 z46C+l4x6=qax%6>5$h0RLmuDM0Sp7sQkERlx`B;@Gr95{Evvhx6n^u^&YTNEBZHlP zZRwi?Rx-ZO3&x^^#zYcTi~)tv0$~*>gRqhhTv+40FO6X^Ze#n#DO~*ZC$eYEeBsv* zUU19@SC1?8&|Mox=THYbh76m!dRQ*+X2=wXO@W0|cW~5#m$13}5jOPB0$~|n?&7PL z@8I}*vi6P?HvdNl$td|qp%Ew@SyFnMsud}zh}LoK^;C31A%v;tPmvNKokd>n&{}Tz zV?Wk(AcUrWIJ;;5nR#0NKk6QP&nBzmT~R{UD?duhxI$FTVMyU9bA`IEHE= z2+M@YgCJVLN?MA0TveG`zd1(kiOnrkqBa0#zWe#y`i*481@F9L9(Bme=KhWpcK7!_ zzdq9Ud!6qG@XFTkzkcc84?p>W_buDJYCLgL}d}=hUlSvvo&# z%EomCp6FB@Gd1z%@gleL1@&B^){mY{B?brDSsZ#`Ak(xrgmo2lpecXf6n!xMeZw>I zb^ZMWPDseCLH&25lBtpIP^0MP8YrG617QI#-Sg9TjOFaBVg{oYDsdA}uj|j zYj9z9AqD&r0kJ6&%GiMcGKUNRW8?t6rp*~$1PMW4=vXj`Srg`PPtQFhrVPTed$6DB zZ6y*6flN^k>v9r$OW4z=_A#+(T=rY`9GUBnAhX=udrY2-Y~|-NcmI5-W$Wi86m`HR z6^u-7ZqpF6K{|erCE8LlI|Y8dVh7)Srindb76MCAR`|v_6THhE_4|&Tw-l)mDKPH5 z6|%LHt~ue`V{JXOuWVl&fnESOo{2a}3*WT*qKiVo$N1HtS@0i4$st!FiqFK)(#X_91=Kw67Z99j`+w z6ree5=7b9m<&IyjWVjX*S8Xe~vm5r>Z4Ddh&jd$D+l-@~E&F<<^)foWZo``Q_Enn# zDdFrBPpM;h`Kc6jl9MjA^s^&PmH@c-mrnp?+KMp;O`A!QM!B$lFf>RHkOn!>FiGc1 zdJrEGwgJ3{Jb`Fn;>g)$HmGxx4cZyl}?(h@5ABkcJZjQg<#P+}NcarkUrq&Fqt~ zGWDRU=Lf8#9(CGO2PqrBKe%N!ix-sY6t^t7$USL4kdV9 zfFQ+847%hx>i`(-!jzRHS}Kyz<$JOUbWvc9AV{3d76_ZopALlcSSd+{H|=2E(hUqh zy^T#P`sv;&7^sApm6EL)o}$4S}!>tsQ1pZxO8}ZDBuy zx|v$k#2#6sU$-%3ibhMQ4#Mf@jpH?E9>hn#arYk-(H<>|<839LUmFO<$vP=NF@w!`tp-Ckq)~9L71G?0Mcc(!oUU=l8h$9Zg zTEPuVm+{~O%X!a3o0vSOz{g*HaR!d2xjgHGKhoE-{=K_EWM}cd%5Sb7KkDa;Kafi; zWE$z!NUcWf!>_7#0V)IruZC4ZvF<<+@MNAyi zMm<}pi=LB$is|{P1pN97ui{Og`w5$N2lQ0RZ13p>&jpU3RiL(Zn28;*VCqzEjyIr9 zz`FG@@BjL@IN|6cdDTfLa`^1ooU(WxTEdgtwsPC=H&ROib`CUwh1>4zkAf=@s zHHlSND+r75tB0TBjMx6~$;H#B@$%yj=ggN(I&{SFiO$eBAIy4Rq4Uf#CeTsg%E@uQd$|0w;c0T(+&pxVKfSIrQ^)Xu>+@q`!EPZ?!ahh$&;htI}S^-K6um+=D zM1|vKZsDf2E)Qv_B1aF?bI0o^ga)CF14l=Q&uMlc>v=_)dgA+#J~oXmBm_daXe1^T zVq_|>_>>buVAGH;S@;>@jhbv0`q_FpUtql|#{Dyi&BSY=$(Z=8FL=vLYrWyM#7dXn zR4C)`?Vf3b1f>yykE|wLn~X~~?9LaJ8-&!OIyDH&MHWkCwNhYt_vr=R`GbHx)v&PO z{I5K?>b5ISpsppdxxfD>%U=W_9mNv}>VqiQ+n&>{#`<3|%HO=&D0@HaTzSNZ-vHQh zr&-$N^OvrQ5{9g0ZIZBBCul4Md`=c&sbRAQ#a7doI8W4y7itR#dTNFQ_+DiYDck~+ z7FvX)MF^%S$#_q6XQ+UxwVY5Y5d4{zQ2)OiSlN~&O!MI#EHG#ck+sA?SqO%V;o(}u z8l&kqh9P5#gpVoiuhGI;G^V<+5&~_Vz#AYkWs0&8SV1Ttkb*V@hXx_1m5XR=IV8OJ zIotcE^~VwGGK11^_p%yi9e&{9YmffOWS-u$h**~if+`$yqE8 zRV^R>^#s=JJQ|^5u!`k-j^M37KNN&z{n9xkI;<Wv6SU)(MTGGUuzCVjApTD!?H-GFL4awL`S!b<_^S-A#h9v1B zR1$RHlwHOkv;t+Z!eWHr=z~KpKjlt-_TYJF6Y$99qdDWeaKj(&`0hafpLkgxSKn5l zYpWBSN@0cJsEJ{k07)RLY~DGBxwF^s^fQAXnwj0Qo`?VKX(nHM`y3h-i1{}EkIO#j zEbOgBO?_ojdMXW)N>W4#r~S)RV8U4z2|?z;AuX(3y9_C2(o*c=)P+lV-6wCGkh_2S z`b!>+dHFEw-;y=kND_q%G|l5Bm1;z}RLB&oiT9GrJA?l4OBe8hOKzpAG+liGU;gFY zL+^XVS>+M;|3~#Ag;DmwckbvSkZlx85sPMT=ku3OcKHx&LQ~k6;Ss4K)MEI~o2uOW zF1K`I6Y{!moXA5zEv!B9Rll1_9VFcsK$;)7kz+XWe9m!vd#$0-UJYy4-(Oz!%E`R@ zCmVTk?HsfY_|fmjbIFNKfaJPbW$W6jaSyAqt*cbub_QV9%n;k>hu5>#S^F zv2}3ZnXQA>>+jhNC&4Tt$;|{rFMy0I8s^Ktkkz zsuZorJvyTzBCGDq)NNf6loJ9**H-24DfdGu_Cr4MxmDBlh>AtLRcyWc?6%DAQ;w_dEECmxq6dCLV$f9yh4&N(RI6)${UhLjWv z0wD}45Zt#@@`bwsYH^9CLX~rm8^`fSoynt>Uy+z1LMB{s+)Otg*-ohH0m6#FhI(;j=XP4!a)+czd zdMtr-pprBmFcaR{RMc-x078MSIq*_hvK)`;T3>w7q1;+^o<6_&)%Cpbb#JaeKHU$R zOvx|splIl@+$1JVf15>=QaLJq?EI5>X5I?ctbk2h%M%Vd>&vUw-Tl4=G%ox0J1gZf48u8$98&# zox&y2-YYlPh_rqXh|GB3MfAwcSFT6aueVg^AX2jD?*n8}%JUH$)AgC^289pRY6X1a zYcJx8*WbyWfg(Tp*$uq;^_T87?rGn(w%#Iqlu_ST$=4HL6H6i?4D0()+0_2T?RV|h zI5=a@Bz6^&qRT%Td-`zPiO2D)Z>}JYB|V)LhNlhE5|sQnT0pzds#dtXnG&CK*(pO2 zV2lfaX7GG9doRksIyu7_OCa4mrdvDB0(1w@HnWNMSI-AZ>ul(=Cql9v!8;;B9Af-RJJ1nn>2}nZ%NfgB(4#9e^jd4073b zBi0TsBvc7w%flpu3`EW7q)1J>F%iP0a&X=hE`;5<_JpZ(rlF+s(6v%Jj|pv2{;ZdP zO03K6hEsy4d&Xjzcz8hnBZ3_}TKUYCzu*lYJcqGuRl0hb2*ZRm53gm@w(SUGFx?UT zyDg8$Ybh5ru@O{bNmD^HX1YRG4CCfc=HP=5rk!zs14QFEAW&|+3f^5biWQ+wh;ZJd z!@5i%N$S9A85pjEuC-bnOo*xhVId(76hsgQicq_GutN}#WUk_i51qr}gXR#c03iem zXU@eK&99!mnJ~~ag__CD6*lyg2@1|yH8CNZwgxUonvwkOR~7EPc?lgIO^esu|A~|+ zHPG}!E`0BWU8^2^aOdhrchKm(u$N51=zM*iN0&hWSjk{g;LJq_yGp`)v8Pw~zXIXI zHaq$Arw={EJ@;*<8Z}`NjO%u>ja?1@SBg3dWFQRzn0}w0A?|!>e5lQv7d=P0{;G)$ zAgKY2uvp{M*QK^xLJ%cRuY|+_xOslF&Uj{@Enuw=32z*oOGC2fORBsVz^bj=iINa& zC2#ob&0KQ9JYILkak*!RjCBigPg7Fy?GL?@SN_W{=&coa@cvC)_v1~ym%e7!gscAP zVy^h=FAxRAX$uxIcyX1V{O(}}q5|tXo7iy6Dpq%H;!Cf7b@rH#T=XK|dtt=;zyBk) zt{Nap1Oqz6BmqWS5)n`cBj!$x_|E%Z%{#978M`_yYnFAhX4?)v_xXpP{>VR{uxP}f zNXF~?)DH8~#7NOpdTuatv@#q)bJ5Ms<`sgd=JvvYfTNWdYR^p)|EA@o@BS8h`kWEw zyb}^mdBtf+tCud|C}RnYzz9R^7ojvE!Uzh|kO<|Cq#W9$rA8R#yjP`k zAf@mg)&krLPK6d%65&JEE9JaQg*!Lmg2u{#zy<`?AcXOJydczqniP&XG65=aoQVch_80*eq)8AqaMlIdMXpfBqERF=1?4~(pPq`4t+&NkQ(|ms zh+_{q8U*xK2dUKxE)vw~28conRbmaQD%h#4&?A+Ui! zDv+^8#a;+g*3E4?*cxyAD0~1cgF%9Fr;SEple&kc@wyKyTZ*1&lTrA2LQ*gD|2&C2{dVl6NbEHj3JyoyZ8e zFP*S|U|s5d%U{ETH2;1y_9SJ_&7rnkFH_hT-+&jm+5x2N^4UV{=AV*;MqI1g9_z#pHD zsKsRv@PZ@OF=Ik`Jg{NJ=&z_2ZoRfthR{oJ@bE%#%O4a@~=y{>s6Zf9$&p0oA(T3(pKjEmY$&9Zfw< z8Q0I?phC$CryTV(&zsrA%@3S`z;OPNPcZr7yN?6L0y}eU{fi$M=^-?VH)%?5QyQ6q zqy{i$Rb?=0LCC}WQ%vvy!aT>a6f@*BUnVyS#@=Mrf;0 zDn^?ETL))x>ZdwxK4ZbdeCt)c7aTgjZSB#$)jg*iJ7M^N$Gej2@7el4&7u3(DA`!+ z7-fw@1~F}=OvB9HAR^Q~2bGrua1xkg1VCtgUD0?ya`(%ck^3t|9cci(FB}bMX^MoT zXha6K+6F7dx*#;lV^h9c7!UN~+M2H46llcvSy=w{Wpn9|R`AHPlUUs|l}o<5g27W7`a!g%Sf{8|R)fpC8}08HFYcQ$f#dxmM_B#of1;7?n+dDA0PF{T40VkVUO8JG0ZZJHRS#97lr zKhJ_J-l_C$5rWK{8BuS$SA5pzwys>vv?wV6oaTs0kv8iQN96^|G|W&%Ft4ePhayO< zBn$!6_UzfuQ6;~*M|W9~F3S~v*ywq$3-~M;R5ldM(W^-$2Tzssd3i%z=`9JqUqQse*fTFqC_!R4fy^$e$K+n=5zX) zCuB#Bu37Zv1T{v%7+GI<>2z2NfmalT?srpmG}#%%Xm>2Cz)iT4SYgrHAbdLJOOlYt2;`g0Sx!g<;hR_0LVDI%(DTEZ07;79TS_#4iaI{jb%d)j%U1l@ZQY<&q zKGx8)xy0(>@m%_y?X3Qs0AslH+cnk=PsbwY7_SLJNnvKl{Hbj$KH+ed-}fY)5A3FO zPDsz11PgQ=S>}i{k7CB+IVc>U4g%r9^+36~mVsN_Lfd-$X>tY&!tkOiFXP8=yO!Nu z%?u3&Xl+<{?lk`Nt8St=WYg9HV!J!HiUmcj7J#x0)&i#hRFQ?n-%x} ziKaqA`xHrWN*hxqOlMq26KyRM=-=JTL%012fKy(4A|2zL!E9KFu?bH3Sq3|7p$uUq zCh}gV-~iL0IreVg2T&?x9Mg+u)8vUzk3)R@{Hu)edCH+{d4t<_2B z#PNDUT85*L&D(CfKsA2-qnjHZ14XuLk`P4gkgr*H3Z z#;Pr0oK?5!;Wtu39Z^<3yOEmDquO4oaMUq}kYJG>Ua<&gK$Oy?h6XsA>gcqn6Lk-2 zBFVyuI>j^m`l?3n(UIl)t0wZ&_wV-CjyQ6%^U5vC!J479Nz~68>d(sC7lJeP$h=~$ zUpv%kp~)MJc^3JrZ+InNxbb!#dT0+r)gnLq%@!Vbd^O+wz^k(B(>57E3a8{3Kp_a3 zFjdmO!O~MLaqaz&0t9Qe?j&qh40Oi)?12Y()hVZN{K511$TiopeXxu*iYJyEK*y%(JA`cy116esjl zLWUpR!^4ksG4=4PR=o1X$8+_+pSmC&s7*I~_+QmQ-*}l#6rcXoy_|FFk^7yS(Mo^S z>9(%8>Q@X^LWDG&dS3Z}uI(QBvmf`rT3-Ec-)Gg5B0^fGPO9+AFTNIS5 z3WYO5+M6{UC0RNkjq-#&Ar1vdNP@(9+oi=6Fj8Zc#R!GboW zFpM83GEsQVw)LbAE|U(O2tZhHSMMVoxErhIG>-k-mxrI;jJDE)q*fhz{#)lgecN~T zn~QYgPcC_Q#wk~IZ{H!u*DBU~MW%ATL0au2lUOJSM<9K^lRvKSC$Te8BIc1*y&N&F z8Bs_OB7i`ljB$Wr_B1c=dmbE%lmC1~A}t*#4mch?282ZyB(|WOho$%Q6c~b7BP)(i z(FHFwN`VXoHt-Qvs-T58;8PY+GA>Y5)w+E5v1^_3NmFHLu}un$KMMe9{1^y{RSq;I z@*deh`3rVlcJ2t-a7WIfL6fL4)chy=ppD9YkJu+u}`r>65V_gJYpc*ZcR zx3m*gX`+7iXWSY8Kzh_axBRstT<3-Ck>APOZzGkUBKLRX`}~BA{Jg)vEI3acIih{p zZ=3EkO98r#VN;y&KpYWTn4l!vjbWmY%vAyRMKuPnv?CZ0mH}gk{bJJAk_Z^e5&0Pq+&&q;Eo;3 zIH5?5jTfkZb}4x%ickW^O2M$d&vcSXx|0*}ASI1v689kpP~F6NYdm{>Iu2 zfF8y$U>f5x19aLXvxt~31BS6wjAe|JOjVM|ALIkpa$;CuvQn&z6DrnnP$A%)cYhm! zMVo*?#3Z(eH4-74STJSugZ{aS)^2N+)q%zFc=b0Ee*f&T?5Ry~R>Lyp=}-KggQqoa zQEQa#$NPi_@?!gK7{nzD8oY0ZoZt-PbcYU>rt^v#V zw*B|9tw~Uj5yh}VYjH69{@8;;S_-`wt7t0=I@$~SlVlncd;j^K0WQC47u$!X@W)lp zEc%WDI{gU#Sv^e@ z!N#Wr)H&XU1O4w19Q$*NxcIg2?YsUyw=aWmC*?wb>!PBm;H7_5-{@d$*JAu)?NdKJmJldIkAg=~sl*WkXeEg*yTy%9a zRtLQIJC>SJNTn&th^bATXalhg*fux~tfZ!!`TdI1IQ#RPZhgx+%emyt!eQgambQyn z4vB>1*Y|HVe<$l;uje<96PxH}k;NM$Nz=&vjJzZTdN7_z&ItxteM8-q%MWduEYa;| z_g((;s3YUIlC;!Asn)-C*LwjaT{dLV%U3L&J`|=L< z>}qG#o+;e1d>7{(J}K8+kwZ`1?PDFVb6^saTeh=jXd+Ttmt#^|zIOQ#Z~1YFBndfm z?jf#qUMg;GZbIwCougV2hB4EpC&-oplg79_z)x)7g0>+>2%hZR!;#a*G!9)>Mh>o@ z8zCKGTRB5Ki8XhnvC zs+M&3^<<}sFf`;y3zW-Ki1m8UsBXk;60i7BxoM4Xc~AZGCmh;B_d^l2TENaVybt)& zhyfJ<*L{2TWFWZoZ5y}x&vQnM@<<+}fp;45-i-2of5tHa;Otl5@y`1mSu@)timEhR zc;R^&*$~EgcO)XWtny0(zvLXNj}%bZ9?@2mBv#NdW^DbbDS1grN+7V-=`K=3aeQdp zAbp+(Hd9?e8rE3l)?Q-CLg}WtN~OP7O44jPl75Lz7(a!n6Nl;CU1r;kGJAIIpkw0X zY+YMp(L$j7@->1~ubD}`Im!m4Yfdyu#p(L;A?f^)o?$LRc@pZ|s7*bLaFCOpwX7S} zCbb%qW*b&NU1Z%FNaiMlwwO(?#2GN`%d^2)?+NM!Hz_~{)_d1F!{W?)%zK0iKjHa& zfcapV7K1hxfwOK0r-)4egy6{bh0Hr=J~uph6WjL$RQsA)^1W?ryzz&e|1U3L;^c8| zp=vN)2~;G(6opU%t(^kbSP)*J92kKpIBR{4Kw1ZyxrQl!UKy;_pe@!YS5JUS9AK=p zn->u{Kp1dJ=E%*c&|rkZ7ThGM$mKh=)~$_O|78h7gGEHBIs3&6u?9{)>L5-&YBmo% zv6gRt>}iBBjA@NobVeJeoO~t#wV{AwIil85pq7H4eNZmPR8oWL7NFm~-IwQRIm&^i zg^*&+X)Ip$wsZOQHFr|0LffKonCT0c{PHDqMYDZ=Q_YEQI*Hkb%<;LjTz}8J^jx^a z4WX(T2X;zGN(v$g0T?CFX@r76IKVk@k$qH}`%AbyS&prc&g0)o5&`pHGKYbmZ(*of z;6FcmFCYHW3wiL@cQxebR7z7+hK`9t%)KX&dzF1cj+sieuL43+ zEL#eNBDY_A6WWA;;LVG7vtXP>jCbRG&{)N$FSqjZ2iNh;_CbEXDx?xOvtrK-bP}+o zv!yNAQ@(iGv0uKhrEU2qR^9W1Ke0C`nwk^o+;=1S{gEX-e8Lf0z zn_N=Sy6N6X#%A>L+p8z=(hu&bd!MEeIUwVO0ETLYuplXib>7%!C$ngv?EbBJBTW!7#j@*lU|&wI~5E!Q0Hk(+u3`um-6%tF>} zT7!ud>o#`+1Pf(1Ng+PsI2T_t*IP5k`U zmE3aIawgAj=0D&5)~w&pJNRIZSa7go8*_7-W@z}#O%9I4eFl?hPkW@gznW z$NxtqNvtf2z{SM27GVOU0c9gFRfH{Ir9|2UDJ-F1Pq6@e{>|7bLXDG;fKb!DLe%yLJ#FjKqi-BOnSS1*}g|VcniZp{#N_A_Z9GYC(7BsUiJf6S?l*_L1Lls4>7Evtz zW2W-^;*XbO;vxpgjxN>IHhIC9qm;!gLsPLBOX>38cG=wA2BxXguTZ1(XmU1_>uy*pz=Kr{zp#WQ*`d%T6xyd8|EKcP zFGhJk^1G4W=l?PyWG^G$1F-D&Wa(kWkYQ_R7Lq0**zEz;lHa%zL66pKHJV+<&}9tG z2!^p#jSK6W4oM;)@!??uA!xUP#5w>lu#!YrA}pOIK_Q5!TSO=XMFhhbb{d_fm>R}p zgSx{eS<0rZCLzFCx(Ne23`D*itBGA`SuD$vn59Xa(Ug(4GZkZLlalR8l3C6u3*AYh zB&~po6(rVX6Rm)$GGM$EJQF7j`vbOspj}8}YrUtZMImSr(pmdkXp)k|ScY*H%9Etz z5EY_@Wl0nhV>u=)a89|zu(3QDMO3gX4nr1&AnNr@#;#nK{)J2+wGY-s~H1c^pYqm%=vXly=Gw3^e4Cj1q z25b5cA`mf3BqXMQLGtEn+Zk6LX6gC`bj4#)7|N3Dsbu*R7(%KYs?B_PFo4%a!`ftqm z!Utc!<$?dTr;1YLrru)zMlDWHn4c+>0Zcj-i1;)gO3N7-h?#=0Wfj= z9@gzmbN{!B0O;-W3Mc{Z|JHB#$~#}4Rmf6@1Eh*lU-?JhJb_Ez_&C){$XOrw{=nT= zy|J0S=j9)w?8AFh0Q3*nH{Su5n!!R6vbYp@BT;HJ?g7ON~uz%SloK|H{m zw;aZ{p{Z=y(E*K$lmoRaAGPW1eJ+poIseLoqxt75fPebuj~_m3?njqx>YqeUtqp4= zVNl~E7wzPtV@oWU{1`n0mWS6p&gxFV(sc!{Uvehv`VQvfH%_CebjR`+pVG8Y&l9$2 z<>0UH-#WUf=wG?)!z;LPe2Z)s!Yr~Dh9W4Yq1~jYYyL9@l&FJU=?QL4-4(-Hkh$|Z zZ~N0QoBm+Q<)*8968eWp$U>fGVU7HysYhZKLsN|Cm8~=HBcIuTpoqQeS@1Dx$a1U# z>BE0>#Z+GTt&J?*d=OXuVluy2^+)mj1UKqq(YQ zfH<)nI=RJb3)A&63dytCfA#()xR;bpbk+ zLH#r+-_$fuskXkpbWJ+>`6uwFdmrY|gBAdwifOlm6FjAL3VXlpl=sDt^Ue3Tb!Hi8 zy@9mv?xm++&X*qlKGkZ-)}2kQ(~kSfj%|-#Ic4+#!RGRcj$ByJ#gC+mZ{+)t^gb`c zHShs_arcboFcDQ{m_8TUo7!Au1H#jnz|*EAvubuFB@-!mFcx<96o{h`8EDF-Vnf|5 zl5`-lP`ScipGuY@N6AwXlsd}`s7sY~{aW4n#?MO@Ru_L=PLQz{tcKTKaT1^Z*pmoh zcw*UV&O6%yq{{e<{1_y{X4h)zA{M1<%=q?ax;+b_UysSi#(99iS;Ld9N5}sQVr?@J zJ}@+dd`>%Kj75e8Uh%ebxcY z5|F-4ksr^RUoGiTq``%@RwI{=1CTYYUkTO$AHwzd*B_t4#h>V8LvxLVNl7x|Usm#iC{!Ap6>p%HZ`iF`j zV9pU0&N^WMR%?W{Jhp5TKm504REEn)WjOzz7BPL=jCzCHp+ZQ_Yr$)kkn)&>Ue#0w zLkFQ$j;L0=(zPGN7^nrV<7vH0VQ*PBkc!K$IG_6-ewc&j&!vC*Vd!ubp-GrHCgQAr zK8KDOld#rctn^_D)3xeopfhT5G~Ozg!ovn4Q&NK`yVB*a8>xIrb1NcT6ew#gm8h1b zHn&>Q-P_EE-*PWuQ9BP&BM{PX!r2A(boTsK$)tPNvKxOkrF~-arX_c5*#*o!;i9== z^VqRQ9P%-gO{#stl%Zi+swFb0L?I@T2w~~3gzQ>bcd=jWdmVu!jF8V~I64}W z*1)?jyWuU9iu1p=(^$!ZDJ~1kFCTi0rSrBBCxP^ZH15g{969~m9OQaFM9=>ckJMsH{HnYT{VW2 zfbL3(-Ae_hyyF|possa86OZ9FXPi=J-*RkTO5JBnn#6bB@&>epOF#7=4E7H)Pz(6s z4a+(EH9uQ>*N-nhC><3sQC(Bp9Q-@dvigb6{ZHmTiZ-z7kzphurO>dwb0<@$Oxo`? zy9f9C^WU^w`mf*R$-50o3TDrXsP+^GJ^7||F*O(xQwr zQZ?4yLz?t@T)t2&xfId}4S{v{vx!27^>ZEH4uFETXlY0SXUXWovASZFLU~at{mux( z@URPs-(DQ%$e9a4z@uxIv$?Z`5{9E**Gh406Nycj`204u{#Y|u4GBj%hXJYyl>d9t zr~lW=%g&z3XO`>)aN%A9+cQeFy=9Lwd%`fDs+8rQj+o$NCeOorgwoARY8~Tg?#4Y8 zqzov@3VUiHD1{B(OB$aqG(E{OT?mdw1;UHK#(|s4s|9QdsJf^qsZp-*Ad0lci4E5M zX0*soLV?etZUxc^=k09WnXSBakoBM`et!}8G-t-8-w;sGY-0d#Nau*EYeOcI`*X|~ zXT)f8@zq^+8uuJ)t#g3!eHR(saQvA~(Psfd=1dob-%G;t`2qaPi3M(WJRu1LvOphu z>+8G-{CDAG@E0wAQ4i8lyqfY_j=Tme50HuxfAhfTfqDJcjCqz+ii#yFu}Nvg(Dl!EQCW}Qx`dO|S<;k;IbV3JUb zlaeJmqKsgdHVj}HG=?5y7%vqq2r5`g2zDAxB7DwG0c}VkEENm|1c4PaE9dE1F@{J$ zU@fgk0x1~MmZE?P7HI`#;TE$VSKx-hW7|XKQLAHy6kai^*Hil=Dm|<&Ks6tLG6(|V7Ay-_(vtNBTeN!rc z;9PGtrH$b&U;80T?yr#~k`pf&L;1Y(8JwbN-p3SGXrs31W4wLlO?+|SI__Gwou!*J zzj>g_21&exl=XqrcVdHal zS39s)VJ-UvM?d|W3P1eg5o{Qk3qX6@05d07>DyhUcPQl1O~+D8$_SxdtbHtlx(#EU za#+YzIT50ypA_7>8Bse!Lz0?bJ|o2g(6|F_lcW=qob9<$eGf& zl=rSPdqOL*4oQsUzwVFu%%%G$Cwuw~n+9j1b&({O_6<`HFeP_brSJfXhYjPh;wuh|mpUsh80kuuuneVxlAUwI#zyuyZJ zC}m4o**Cp#m{0$*MlEtVT3&h5I?g>}2E&P=duTf2TXt~%QHt}A4iF}^ORv}>R`(x7 zq|1EqrlUD{($bYH*Yz%#*jB2({PgMO*Z2M1c#%SGoIAqyJJ-qDSxFM`{@eQa!OKf^ z?QdJoyxY5YTS?joX zpL?d>ZkZEc@?AFdwq~(8g%c7)uAXoT(X5Wl{br$5aP-r7!UVT=RRwDUML zz+ha>faJ&awEOn?r7V01R@$xpG?rC4u0b2xQf#cxYe|)=J97h}lP$dC95HUC0<13dRzO%|xb^)wRix-~K6J zo92*Bfm^IwI6|_jtHRG#8oqU2k+J21s~h0K+q@V+b`R?S$?3@ z5K+0Is+WW;lrO1wDvd=6zYInRv-Qs(cq7-|^%J%(iP+U!XkPf@uiUlrrYp~F9EiQ- zsr37izmI&427vDCxBM&J`Pqc**|z;9eZx(lEEDH+)SoQt!w}$>K%j-o-IS{$bG^Cm z(TBi7Q@P5FBTE#D9w1HYcv2Q9k&y`N=O6_KRZ6yeYXc8*YyX|d-75uL!7CSnESi?f zSLE;2K&JflC!KH{lg2*Co`Dj}9$L$JXP?$M`u@E@ka)Tj<~-e`M-Nl-X>uc+Zh4uhpIyNH9 ztC|MG45;q~>;E^>9XVE76psEoDaI*mq_o~%M{?W0jps%Gwu|3}T+AZkwEAcXPWKO^c$$;d1sM+8Nl zNYNPFPvgeaXj>ex>yaAOM6qGX5G@l5bDz28Uq0n8?nJ4_In+dTCl>YLr% z{&>i)RS!JcwQ*S&2L_Hd@Y}h+BXwp1=s*+)<{TV=whUCN{LA-#%KFYS)_P06EeWBj z@c5E@kyz%=h>=QwRfH;G@v)PcG;Z8pPe`|qPU)S=Rmq}~WUHm&T}tl~a5@qT*Izw> z(TZpw*!7ZvqyWtC8kOS%KX_f<4p zkZzxjG41^5W3T0>_dmfM_df%%;H$sBmsJ}ISgk-bA%tbcv(9^Z*T%=#)-%BCpMN}q zJE|bcBo=;g?fQ+Ey>{-r`+xHKgJ1T}8&=$Ba53`znt-wVEA!oFRb< zqUQuhha;%`oqCU6^nq`(>S4#*Ypu{lD9%xsCj@J6?xXi5dl)}sVzy#K3BoA0ZYhw& zirMpqDUEBxPy>VmEwL_yrj&IsPde|mAcDM=Y+&7*lqST43L{f;;fk^fVQa)PKp2Cz z5^0somk8c?N;@7!O9WUWiZ!wx^a#LF3WV}JkF?mtV0=gyX^j)P(}PIhQbt(P4{rTsIsh{H-ze&O3GD$< zE3zmwCb6XP+J$g2|1biT*bLaUDNu|=Vi4BT0?$iWAzX+VZT&!jOPL`uo-30_kW6S5 z)DlUONTj4nqpmI;u+b0FfAI1b53#!sPtxpA%zdAptLgV6!P1f6@9V{LeD_@MNBg_4 z??(GPTG^}4p??986=2OBdTGsC4t+sz)cQO1(z)lVqc`1YmIT1C4<&1X)p5ccj~*1g zaMz94sSs}*CKD?IRvHv@*x|MoV%_x)`MS>%KF+`zxQ>b!8e;_G+nn4|C>ok)1&p8A%$U|z-to#8 z0&wfS4{+$gvzR$Tp#Gnfm21~ftp->tc;de9y?(!E`F4!=VP3uSx$~rUv`b!h+%0_n zk&778&Dr-y&kZT48rmvmwD(X9<$-vR?xo;6{59WLh*#I&@Xa?ae`3u5CD}t;(J-l1 zuxLiWVXwY@aRlbU6_^Ka#jd^n%GEo%Yb<`%H|OQ=y}4@)LM2EHP2m_HlGs^}qb(*f zTz+;-nhZ0w!H6I+htwr^he)cNnYWfA)cv-_6@V4lN^wBhyigICWx=f!VayK=)6 zb_{m_lK!Yj_nu~=q=fa>b3z)1;wEN|lcU}5uU+<{hw-pRD$CT4D&yLkvI7LX2Scj) z6gc6+H*;&}ZmP8qq~S#u&*GZ{>0UH#P-ERrwYa1cNG zeHUMSTbVx|!zDC|lwv?5f*-;`kF7M2owjI3doVhrJL$bAhKI2=uvpZX1#l4@}$+@43d8T_I z+lQv`h1)jr#^?35fGCVuH7^+>@0F7h zGVh{{!S{$l8pkqyM5<-admG|E=R?ri+`TOI>l?zeYWKZRqjNF>>aHI-iKC&*x!=41 zk-g7;^L4W@lz#oD`9+k>`uQKPn8BG}8e%wU=Bhhqa`&1I{N&BEaOR`FJvl||E3VnX z%H30mk~$zWXIw9rz4q-$naLyW@sccO8WyIGo0a`$Os=klB^#C!n*vyiHj?ix*~*)b zo?fR_X=MQoQKZwc&V$6M*K9h^Hh*mjteV`3DCz*~$O*BKxy$9ZW)=@GT|a_Vdj?rD zI1{YPu{!(65-&dG64zhr0FVLNnJflaFPj;%Wojm(m_A3)_>6}2u z&YO>&PUu4tWx%h=ixTeo#1<&nD#I}x_Ol7}(9UNLTgv31o1O7whHM+(*>Qn;M8)v) zTdw8u^Ir=spfoU?o74P~kKALFz=O#U6hV6&LHgrHO2`|=YYl=lH>$6j0-r%0xYM{a zxJtS%I^PqqS58uGVf@%JtWEY1*8;I_CC802nIn0ieenVN0zeNG7|q`^qvuCl{G+cw z`_#Z>gkb9U3g?`9X1x`;Wt4)XnFq8W%N?0oP9tFDAJ-7a&WrfeV~<4O!{<{^%^@WO zfykCskS21&=W`O&^L*mR)Td$2mbfoo7lYSDpzwMFkM9WUt~cpcOi7S(+oyRP?CKS4 zT`kzUc@xuT&Z>_RWWnLB_aZiaVWp`lm2g#}+$hH>JLB6Wtjl=?&Kor)8EGF=g`V_i zvBtGO1mcvg2RZ9<0jHgD95;V&HHnt&9@qor`g~>TP*EQ~i_1N#ge8!YNT&T6S%g1s zoJIQ2-VzgS+`;g&4b+zJB>M;=c2T!(x^_MHDI;dtfnNLaupzQ%4eYr zK@2Lf$WWk+@J14rKYn=$N!*MKG$)>X5L!XtVhN){i2L0HM~UL_V;8y5tho@lPzN=O zaSTN;RhxZpa?1ZwIf8zui2}9e5Za*F9XH%#uhIt9N`X=>;-+u^o+S2pP?Lb6TAdVh z4;A_0`+o1)Nx``0Ds#`9#>p=_!+Aew7g{b2DQASwYo!5vh{V`9C8PAA^}La>@cfBE zfN>PEHaNuaV1?;3G)EmXjwc`6#^x;n!vh7{cGqZWfod-{DCllGwCoG)4fO53Sb zD43<%qNjyXZONdTVX-Qys%DF75)zdHal3lmcnWElFm^bOVksw0k2Y9CxNU1`R-Cw) zK4F;HLZI!W$+ewL?R~$rrf_ukrs4@Z2U|iREP;qwJus6+pEWMZ5elOf1r^bzh8f#5 zNTCh-dt-)scMY&N7&_YLeSxF!1^6!ED{yONGvUdn87Fn zBhXf{c9SFs6A!XidGncPWoJe%f-Qo&9G4d9jl*m%WVpeHmrcbPLqqPq8?TzUSCjMJ zqW}|ca(iLdiyMsye*2{kUi$vs-VwNHiQZR+55_d9{4=WJ4#BVOwb%PiiAa#N;-dG9e(30lqHP+{Ev|cRm(YJ%7z9%d( z2?k?h3W>iCg){+18kbX1Xq2_iBh&oxCaulNyuu@``LQCt~A|%>4Pu9U9Cx0qom@#$&0w^^@Emp|TFmrl^ zrZLS_jX@ZJ>TnSNwU+$;;U_uggd_J_7u5)=F_iw!y+{X#hO;#|TrJ3!j%nfGo^5GN zoRMdU1#H;PI=0JWy9dg=>y}Qwe(q$fwvNCmfy=##*L4{8Sqg%JBJc(Pn}#Pla5ST{ zo_Hz;4Avhkoc=cZC_wq#oLJ}i=_8>Sa3OJXn7y&o0r*@L9DzF)q_w{78sYQe)^#yp zwM)a0rtqi>9=?KsEYg?912V&AZxrCd5!pJ^ow>B;g`N5#lNY_+kt4FI0$cakwRmq* z1-ey)VZ#w1JSAXH10I+F00Z|B|&jx}1e3B@!drf1ki{?_1vE_)K;R2UjIxqWv&V(@t zxs@h?jrx!W?$}72G_kWcVB5}4rcIi1z#ZFMJc-T4lN!F8b{1THmV3Wr$9A6G zu$7yBv(zz&Lp5r{P>Upe!vzF}t^E_&^4O$ol%`FpuzgRF^}8l9@x^<djY?@{uk5?{O21F?4G}Q@>Hw|=&5$lJ7^fw;+ZuJ#sqBc9fuS> zE>=%t$rItcQqPQdF90rj$M+8#agWi2WjpWUugqg_I%TI!9>8u^7}C&r_%H>|i_|6- zD-Ba-g{cpK8)c+WJ93N+V19qo_YeN*XZ~sRPaoaL=A9j^>6+<* zCXJK{#tI~c(+_=;OHXa#t@~D*HjL+A6IANn?U>K*KE-K^XEjW!@}BK`hwOx_e)$;2 z!1(rvx4igyT=SlNo)`Zp2m5H}lmNtkyrGqMeP=rxdnOXaMS82vy#5+XS&m~`d(1`8 z8(_iIn7I=LvnB;Z7Fr6H|GKNf_wGKNzFI5BNajsm$IFfl_|oWm=g(7~)a#8LXEEY^ zzJKX&sdG)^00^WM!u;nS`mxqo3s0Il2x6>ff(06d%~ZP-qNpk~ZvNkuvX*XOK;9=u)84Sf{xkmF@8LQzR%4 z%%zNS>fx7i{SEOe88KTPkTbT9EM!0CnCv|8O8N}Z*sRnuHN9_sB+|B|n*Wp&OhJ+K z`jmV0Ze#6DiYuSLov+?Afq|%v$Jfu}?0?_Q^&f1ay(!48WXnmP9HKj(4OSqP=BOhL z#~<~4#*Ud%A1V)g3f~n8S-93bcxwF+q{DpD{L|R*)PJ$Lv&1$thM%u5u%dSpUp{+I zV<)pbp(DmS3&%T3$##%ve4l#trk~S9h^ZDLFSZ&}=djcHYM?NdEANe|*)pw75ihyq zRHjXwo3$^s)ZHUn`Rs|7*F9LJW=p*I`Y!IcxZT%F`(tr2v;3M(-7T$UW^0K=NN(NS z%2CsLIbqtEMhB6!m~51(nG#L1pQaFcMH{`Qop&!koj}BdvP!EMWWctN*b-w~BQ81D zhldyhUGxB@UwT*|!CCJr>QShT59#N}OL>c6t-QCKpZg4uOV^=vvaI%>Rp_q=OyZxJ zqi))g0eN|d&x}OS9e_+$IS>~m~;G0_e&0QPxSoXth6!Uz5l1Xo z)Od2_P7E2kn_6-$7xlRixh03!x9I$cq~y={DD^JYDS7nI%1>z;Ej(|V(6OkMO`Bqd zhYQ^I@Kd~c_AFN~w|1?rPpHO+(1pz2BfXafw;qzlFp|QPhiuLG{i<_)HgUQT0qa87 zW}IlcemzL5Bq$l8jU(A%tPpq6!zDwHT`%_^*JEUwtc^H?$xE&4QB* z6I*9eDeN1}tkqI^(7L>%MY7zZ4aJkp&G-3L#(*-DTX=|cJ-88WU9cB#34Jkbuw5f`7sa- zuQ0ThB4$jlZe4r#2QFm)v}|8`nbGt-4WBnJxqTB$ZvXJe-&fuI&u`zyP>MOnUv$v) zgBBd6D?Qs}SZc9h+iWwu`iT={-tMdY@Q{l>{*Km)JfnYiFbe|Ptdn9-B_Ip~YSj=SEfdGosxzk#Z`jt^J~J}K zX4_TU*3>pmReE>q%WHJB6dL()+h57X=DS}!{h-;;yLufKCbbN5`pHMpTqyJ4s-;X0 z0;I5XZ5m+bU^8)CKnP2@lwF$8z=Yg%_Xh5{e-&SP+r>;8KZB25 zd=UZ|tXBBUFMq>^RXf=|pcqPAln;|gD!NEDE?|w|CpSOKEq6VIl5pa|b2xa$47vvf zNQ@xSAxl@RaZ_49$&8vBUS)TP&m~E~(uX!eT@7|XrIuqVmaXXBZ{4mzNJfd)@wX^X zu3XE9KK?s4Z7VsxSPDwz8q*Fl%zDA0bR0XM1ZbK)m8sMI#I|iEwry`_(=%I`cH~?P z0wWFAef|-eiygsX$LZbL|dP89587}PGP|YSQ{a< zMEFp>0I@Jw9ePGH0TL2n5JD0f;{p@~j*(68XQaW%0BlSU3#71UDX0b3ftS`guhYy* zQTa#|34wOPmKI=zA=CybLh|MfsW+go0;^q)YvILVVH`+iY=97s%sE3H*Tzr>=rl5i zXBw?%w4ASiBuo;7&Z{dx8SA1mDz{JX`;R*r94;Y*WkRb#dSdm5)ys&CptTq?_3W`& zYYDZ>mwM{kPh-{1eLhSKnrb2_kE*O_4hMj8@7|0yGGr4z2Fwsq6BdkhJZuEB)1qB8`yY1kM5 zDc$Wfpe!ysuF5n*c|%sx2ra@o;{#k0i3|))c|6}fo5n-eWJ0j>y!L8VzxIT-SOr=J zIm2e-Iy677uiGJsTIqzi{D49!{rFEl{M-7hH0bR9&y~LlKni3E z^Zfv&u=gPE@B8Pfb0FXC?=$=Odmv2o$nsoF_<`JGfA#js#QzP-pTkItbq{{@j;Tjq z^@+~jrlyVC${hRh|625%^2hzG9TRBKLWJul#jg_dVruv9_1{oePN&D50I6$y$uoB(WsX)`jwoo4EGQ z6M5k!tt)T-)%6GQw>>aMQ;23@@~b}f!-ara{kyk5^X=b1#Mq{gN}{;ngfX1*@@o!T z{)?9_pHOZlbRjwayTbEdtaMDWB%KKo*x570)bZo?TfbJV@yz;d95cUzRVVfG;a5M8 z!)DKzNZl)OZ|8@9ywY$+o%^PbP6fi3T=w2g_dPk4p`=7DDllxC=^CEEvYQS?2+f#s zH<2z7h=i&x5t{;Iiakhc7)V;d3XYl|j(o<*QfIsN10?1=n@85k^8k6(NPd5hRQL;j zOI?X{yg>ivq@j72JlIw=-1L^UTZ`ek$tbHRDz727KIDpD_QLsoPin0N2i9l+#eH8JSRZ zK?SIX)fIJxP~J^4yM4;&+syKjv?*zOO#Ys^CZ^BNa*B$2y=MVsf^tw8KRXTT50L2kqy2ObyNo5H!Gm_xuqQ!!!On6cz!H&+z&7g{)L zayvz0YLqCes2*O(`T@j}dBLXWlV1n3+M76I%trpuGn4Nx+sfgSnrRO6V88EIs+csE zswg=WQVE7BV{Pa{Z;22kV}?wb#JW6xrGm5U#XypFz&0-PhPl-a49&2u1PaP~C>9)G zqMfYk$V*Bt1K($lXQ&i3@!p~h)09qil*{>Iy&^aR;{>mN)tk8X#vih7nW1a2SnMdw z_*dYy{)u^TbR-Xxf9(qx&3`xYy8ONJv{?Y+1+TmBE%!bAWEg}Avu4MfbIR$t+%>s7 zr2E7hH5i;7hclFJJYJ$CKqr!d4=ZLZB-*-2%%Z+zlwZ#R7kV)ZuRHR@psxLwqHf2L z;PrU^rIW^{W?;21c~CTSzLzjeKYey= ztjqmrsOKjgt&E^S+S5^k-@>W4s)jF5mb`D9yWqJ879-r7){N%Zyn}nmLp46DRQaRlh)D36*Bo zu00%r%l&H=w2y1$*f*WUvb!FJ*wDSS!tihbp$y%7%Ix{hR-X9o7Rt>PW?VX+OW*NA z=Lu_ail)Ne;|L&Pi&B=PIc9Hmq%1qh)KIT?9hq5Jk*JcxSF?;fRA zD$F`v+Kg z;|6*w1zHP|;#0f1``PQ6a_kIFIQbY>E?dhp%U09*c*J1Eg{>9BI51R)V2fDe(#a@k z2}0{_p9Vh!)jp7KI&$rZ^wp# zz8gOFk^FaCpSpW%{`0dpeCq4KHvkU3=p&cM@z}G&U3LM2|Hs~Y$5~R9`Ty^8s_KT$ z)6jj@0`ts{%!p4A8%vrK#{=L zgm!PM8eCJPh@TZ$LqGF%H*ylapyN+EKMC`q20aLmH|71-ZS7;z;1J)x@fLblj4)XB7^zr;g-RsJ`t{b>a1_SY|!a zdnQMOrI@@^>3c?v6F~<2I2rMY)hT#dv;_#I%MVImjZ-4!BZbB%=Baf<9652a zd!Un@WumJ{h8t!i?cTkzA&KSEgW zQ77g+Sg+;CzLPc}W9y-r0FE-ls{;;_wT?G7N2pT+1QLYxN==Mu3?}t771=F2m9@bj zt&xJT-sH-&DJ7Ep*mc6Mz(!Ls+VWK{^_GzmA;CAA^Y>}vuE#6na;7}%tnXa7`0|f^ zh$fu#-%*;X7lmFjfHa|o5Ri=xmle8c_-;J@*PMGH_cp6X_E_U@wsU-Y_wJ1J((Ib; z)#ERai2h>Q-XuuQHP%%CqF7X4oF+5?+ zzx?D|IQ{Uwc>JD+39CN79Q%r498sy*&9JAlwv#FS(#+HD?jGK9$_Y)+#VY33yC3Aw z4=tgzF$81qIy`!&Ti~#(t&LY4u!xz{r_$Nc`I6M{#iaHQ&9)M#cx<~D3wb8Ch4c^S z&`553M)8V0w_o0ej(?boZifBmEg|sX4-Z#(+fR>STcwA5Fv=HC%aIGj#O)N(D9B~O z(d;@Sn;e7Y9u?W~ssWkzLPEdH?5SmIQ6sFyxQ!)mhz)qgu-EkC*=xGy(%T+n^U!qe zc&fm_&EfJ1$6wpF{g!y~sL2{To^rGfOkVW*A00)8i~Op)ZjU!zbvU&&F3p5!ntZ=# zuhV$o9dAB@fBV`)#BspazkN4T7WsVo{8uxjtBbE(@@MY3eI1Jq=w`H1W#iHked`Qc z2a5<_F=txDTTeW4AI4wn|B-3TzIM%TzI)JDKK<#3G4Ruy0!Au=k*I}0#+2d~2Fg7o zAxo{rm}F~dGQx{Ea>0Gv^0|HrN8hkJ&D$sK|D9oi8n0;*3c9iE?D*8Mtc}GXYZu$EWIaH{i*ehz5rpbFtQv)KT>(8Y9QXw$YH;qd|omx2Cz>+jKX{PSk@*eN�Y`! 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

T*NBWqCG=UdWxy7v6SmUXg~fm;yz=07 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