diff --git a/.all-contributorsrc b/.all-contributorsrc index 3538ec41c92..c6e0844efa4 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -9016,7 +9016,8 @@ "avatar_url": "https://avatars.githubusercontent.com/u/52166437?v=4", "profile": "https://lawlesx.vercel.app/", "contributions": [ - "doc" + "doc", + "code" ] }, { @@ -9323,7 +9324,8 @@ "avatar_url": "https://avatars.githubusercontent.com/u/106926150?v=4", "profile": "https://sebastiansupreme.eth.link", "contributions": [ - "ideas" + "ideas", + "translation" ] }, { @@ -9334,6 +9336,69 @@ "contributions": [ "doc" ] + }, + { + "login": "Mahmadabid", + "name": "Muhammad Ahmad", + "avatar_url": "https://avatars.githubusercontent.com/u/75790323?v=4", + "profile": "https://mahmad.netlify.app/", + "contributions": [ + "code" + ] + }, + { + "login": "this-oliver", + "name": "Oliver", + "avatar_url": "https://avatars.githubusercontent.com/u/32515201?v=4", + "profile": "http://oliverrr.net", + "contributions": [ + "doc" + ] + }, + { + "login": "jiOnederfull", + "name": "Jiwon Park", + "avatar_url": "https://avatars.githubusercontent.com/u/48719289?v=4", + "profile": "https://github.com/jiOnederfull", + "contributions": [ + "doc" + ] + }, + { + "login": "ZandtLavish", + "name": "Zandt Lavish", + "avatar_url": "https://avatars.githubusercontent.com/u/99204971?v=4", + "profile": "https://github.com/ZandtLavish", + "contributions": [ + "doc" + ] + }, + { + "login": "issa-me-sush", + "name": "sushthecoda", + "avatar_url": "https://avatars.githubusercontent.com/u/29679285?v=4", + "profile": "https://github.com/issa-me-sush", + "contributions": [ + "doc" + ] + }, + { + "login": "LucasMartinCalderon", + "name": "Lucas Martin Calderon", + "avatar_url": "https://avatars.githubusercontent.com/u/25382998?v=4", + "profile": "http://pentestify.io", + "contributions": [ + "doc" + ] + }, + { + "login": "crypto8893", + "name": "crypto8893", + "avatar_url": "https://avatars.githubusercontent.com/u/115051650?v=4", + "profile": "https://github.com/crypto8893", + "contributions": [ + "content" + ] } ], "contributorsPerLine": 7, diff --git a/README.md b/README.md index 0a2abde72c6..1f28907c89c 100644 --- a/README.md +++ b/README.md @@ -1427,7 +1427,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Aksa12
Aksa12

💻 - Aniruddha Sil
Aniruddha Sil

📖 + Aniruddha Sil
Aniruddha Sil

📖 💻 ♡

📖 Luis Sebastian Urrutia Fuentes
Luis Sebastian Urrutia Fuentes

💻 jakubalsoori
jakubalsoori

📖 @@ -1469,10 +1469,19 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Franklin Ohaegbulam
Franklin Ohaegbulam

💻 Soos3D
Soos3D

📖 Minho Ryang
Minho Ryang

💻 - Sebastian Supreme
Sebastian Supreme

🤔 + Sebastian Supreme
Sebastian Supreme

🤔 🌍 Awosise Oluwaseun
Awosise Oluwaseun

📖 + Muhammad Ahmad
Muhammad Ahmad

💻 + Oliver
Oliver

📖 + Jiwon Park
Jiwon Park

📖 + Zandt Lavish
Zandt Lavish

📖 + sushthecoda
sushthecoda

📖 + Lucas Martin Calderon
Lucas Martin Calderon

📖 + + + crypto8893
crypto8893

🖋 diff --git a/package.json b/package.json index c760c8fe2ee..4dbe1478226 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ethereum-org-website", - "version": "6.7.6", + "version": "6.8.0", "description": "Website of ethereum.org", "main": "index.js", "repository": "git@github.com:ethereum/ethereum-org-website.git", diff --git a/src/@chakra-ui/gatsby-plugin/components/Button.ts b/src/@chakra-ui/gatsby-plugin/components/Button.ts index 17f5c9ee98d..4232d2ddae6 100644 --- a/src/@chakra-ui/gatsby-plugin/components/Button.ts +++ b/src/@chakra-ui/gatsby-plugin/components/Button.ts @@ -1,5 +1,16 @@ import type { ComponentStyleConfig } from "@chakra-ui/theme" +const disabledStylesSolid = { + bg: "disabled", + opacity: 1, +} + +const disabledStylesOutline = { + color: "disabled", + borderColor: "disabled", + opacity: 1, +} + const commonOutline = { border: "1px", color: "text", @@ -9,6 +20,9 @@ const commonOutline = { color: "primary", bg: "background", borderColor: "primary", + _disabled: { + ...disabledStylesOutline, + }, }, _active: { color: "primary", @@ -18,11 +32,12 @@ const commonOutline = { _focus: { color: "primary", borderColor: "background", + _disabled: { + ...disabledStylesOutline, + }, }, _disabled: { - color: "disabled", - borderColor: "disabled", - opacity: 1, + ...disabledStylesOutline, }, } @@ -33,6 +48,9 @@ export const Button: ComponentStyleConfig = { _hover: { textDecoration: "none", boxShadow: "primary", + _disabled: { + boxShadow: "none", + }, }, _focus: { boxShadow: "outline", @@ -53,13 +71,15 @@ export const Button: ComponentStyleConfig = { _hover: { bg: "primary", opacity: 0.8, + _disabled: { + ...disabledStylesSolid, + }, }, _active: { bg: "primaryHover", }, _disabled: { - bg: "disabled", - opacity: 1, + ...disabledStylesSolid, }, }, outline: { diff --git a/src/@chakra-ui/gatsby-plugin/foundations/colors.ts b/src/@chakra-ui/gatsby-plugin/foundations/colors.ts index 468c3c1f034..256c0e4b44c 100644 --- a/src/@chakra-ui/gatsby-plugin/foundations/colors.ts +++ b/src/@chakra-ui/gatsby-plugin/foundations/colors.ts @@ -22,10 +22,15 @@ const colors = { 800: "#451900", }, red: { + 100: "#F7C8C8", 500: "#b80000", + 900: "#1B0C0C", }, green: { + 100: "#C8F7D8", + 400: "#48BB78", 500: "#109e62", + 900: "#0A160E", }, yellow: { 200: "#fff8df", diff --git a/src/@chakra-ui/gatsby-plugin/foundations/shadows.ts b/src/@chakra-ui/gatsby-plugin/foundations/shadows.ts index 0763e899978..77dba3dfa68 100644 --- a/src/@chakra-ui/gatsby-plugin/foundations/shadows.ts +++ b/src/@chakra-ui/gatsby-plugin/foundations/shadows.ts @@ -4,6 +4,7 @@ const shadows = { outline: "0 0 0 4px var(--eth-colors-primaryHover)", table: "0 14px 66px rgba(0,0,0,.07), 0 10px 17px rgba(0,0,0,.03), 0 4px 7px rgba(0,0,0,.05)", + drop: "0 4px 17px 0 var(--eth-colors-blackAlpha-200)", tableBox: { light: "0 14px 66px rgba(0,0,0,.07), 0 10px 17px rgba(0,0,0,.03), 0 4px 7px rgba(0,0,0,.05)", diff --git a/src/@chakra-ui/gatsby-plugin/semanticTokens.ts b/src/@chakra-ui/gatsby-plugin/semanticTokens.ts index 7adbb3436e7..3b6cd088e9e 100644 --- a/src/@chakra-ui/gatsby-plugin/semanticTokens.ts +++ b/src/@chakra-ui/gatsby-plugin/semanticTokens.ts @@ -34,12 +34,17 @@ const semanticTokens = { primaryLight: { _light: "blue.100", _dark: "orange.100" }, primaryDark: { _light: "blue.700", _dark: "orange.800" }, primaryHover: { _light: "blue.300", _dark: "orange.300" }, + primaryPressed: { _light: "blue.300", _dark: "orange.800" }, body: { _light: "gray.700", _dark: "gray.100" }, + bodyInverted: { _light: "gray.100", _dark: "gray.700" }, bodyLight: { _light: "gray.500", _dark: "gray.100" }, disabled: { _light: "gray.400", _dark: "gray.500" }, background: { _light: "white", _dark: "gray.700" }, - success: "green.500", + neutral: { _light: "white", _dark: "gray.900" }, + success: { _light: "green.500", _dark: "green.400" }, + successNeutral: { _light: "green.100", _dark: "green.900" }, error: "red.500", + errorNeutral: { _light: "red.100", _dark: "red.900" }, attention: "yellow.200", }, } diff --git a/src/assets/quiz/correct.svg b/src/assets/quiz/correct.svg new file mode 100644 index 00000000000..abf60946aea --- /dev/null +++ b/src/assets/quiz/correct.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/quiz/incorrect.svg b/src/assets/quiz/incorrect.svg new file mode 100644 index 00000000000..8dcec009d8c --- /dev/null +++ b/src/assets/quiz/incorrect.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/quiz/star-confetti.svg b/src/assets/quiz/star-confetti.svg new file mode 100644 index 00000000000..74b302533f8 --- /dev/null +++ b/src/assets/quiz/star-confetti.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/quiz/trophy.svg b/src/assets/quiz/trophy.svg new file mode 100644 index 00000000000..04bb4f16115 --- /dev/null +++ b/src/assets/quiz/trophy.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/components/CopyToClipboard.tsx b/src/components/CopyToClipboard.tsx index 551cd985967..7e32a7dcf5f 100644 --- a/src/components/CopyToClipboard.tsx +++ b/src/components/CopyToClipboard.tsx @@ -1,6 +1,6 @@ import React, { useState, useEffect, useRef } from "react" import ClipboardJS from "clipboard" -import { Box } from '@chakra-ui/react' +import { Box } from "@chakra-ui/react" export interface IProps { text: string diff --git a/src/components/Emoji.tsx b/src/components/Emoji.tsx index 8a90897e88f..3d56683f3d9 100644 --- a/src/components/Emoji.tsx +++ b/src/components/Emoji.tsx @@ -1,5 +1,4 @@ import React from "react" -import styled from "@emotion/styled" import { Box, HTMLChakraProps } from "@chakra-ui/react" import { Twemoji, Props } from "react-emoji-render" @@ -7,16 +6,10 @@ import { IS_DEV } from "../utils/env" export interface IProps extends HTMLChakraProps<"span">, Props {} -const StyledEmoji = styled(Twemoji)` - & > img { - margin: 0 !important; - } -` - const Emoji = (props: IProps) => { return ( { options={{ protocol: IS_DEV ? "http" : "https" }} svg display="inline-block" + sx={{ + "& > img": { + margin: "0 !important", + }, + }} {...props} /> ) diff --git a/src/components/EventCard.tsx b/src/components/EventCard.tsx index c022444a46a..33f423796ac 100644 --- a/src/components/EventCard.tsx +++ b/src/components/EventCard.tsx @@ -88,12 +88,7 @@ const EventCard: React.FC = ({ - + {title} {description} diff --git a/src/components/ExpandableInfo.tsx b/src/components/ExpandableInfo.tsx index d4372f3081c..09b8bc4b181 100644 --- a/src/components/ExpandableInfo.tsx +++ b/src/components/ExpandableInfo.tsx @@ -1,109 +1,29 @@ -import React, { ReactNode, useState } from "react" -import styled from "@emotion/styled" -import { motion } from "framer-motion" +import React, { ReactNode } from "react" import { GatsbyImage, IGatsbyImageData } from "gatsby-plugin-image" +import { + BackgroundProps, + Box, + Center, + ChakraProps, + Collapse, + Heading, + HStack, + Icon, + Stack, + Text, + useDisclosure, + VStack, +} from "@chakra-ui/react" +import { motion } from "framer-motion" +import { MdExpandMore } from "react-icons/md" -import Icon from "./Icon" - -const Card = styled.div<{ - background: string -}>` - border: 1px solid ${({ theme }) => theme.colors.border}; - border-radius: 2px; - padding: 1.5rem; - display: flex; - flex-direction: column; - margin-bottom: 1rem; - background: ${({ background, theme }) => - background ? theme.colors[background] : theme.colors.background}; - &:hover { - img { - transform: scale(1.08); - transition: transform 0.1s; - } - } -` - -const Content = styled.div` - display: flex; - align-items: center; - justify-content: space-between; - gap: 3rem; - @media (max-width: ${({ theme }) => theme.breakpoints.m}) { - gap: 2rem; - flex-direction: column; - } -` - -const TitleContent = styled.div` - display: flex; - align-items: center; - gap: 3rem; - width: 100%; -` - -const Title = styled.h2` - margin-top: 0rem; - margin-bottom: 0.5rem; -` - -const TextPreview = styled.p` - font-weight: 400; - color: ${(props) => props.theme.colors.text200}; - margin-bottom: 0rem; -` - -const Text = styled(motion.div)` - font-size: 16px; - font-weight: 400; - color: ${(props) => props.theme.colors.text}; - margin-top: 2rem; - border-top: 1px solid ${(props) => props.theme.colors.border}; - padding-top: 1.5rem; -` - -const Question = styled.div` - margin-right: 1rem; -` - -const Header = styled.div` - display: flex; - width: 100%; - margin: 1rem 0; - align-items: center; - img { - margin-right: 1.5rem; - } -` - -const ButtonContainer = styled(motion.div)` - display: flex; - width: 5rem; - justify-content: center; - align-items: center; - min-height: 10rem; - cursor: pointer; - @media (max-width: ${({ theme }) => theme.breakpoints.m}) { - min-height: 100%; - height: 100%; - width: 100%; - margin: 0; - } - &:hover { - svg { - transform: scale(1.25); - transition: transform 0.1s; - } - } -` - -export interface IProps { +export interface IProps extends ChakraProps { children?: React.ReactNode image?: IGatsbyImageData title: ReactNode contentPreview: ReactNode - background: string - forceOpen: boolean + background: BackgroundProps["background"] + forceOpen?: boolean className?: string } @@ -115,22 +35,12 @@ const ExpandableInfo: React.FC = ({ background, forceOpen, className, + ...rest }) => { - const [isVisible, setIsVisible] = useState(forceOpen) - const expandCollapse = { - collapsed: { - height: 0, - transition: { - when: "afterChildren", - }, - }, - expanded: { - height: "100%", - transition: { - when: "beforeChildren", - }, - }, - } + const { isOpen, getButtonProps, getDisclosureProps } = useDisclosure({ + defaultIsOpen: forceOpen, + }) + const chevronFlip = { collapsed: { rotate: 0, @@ -145,71 +55,100 @@ const ExpandableInfo: React.FC = ({ }, }, } - const showHide = { - collapsed: { - display: "none", - }, - expanded: { - display: "inline-block", - }, - } - const fadeInOut = { - collapsed: { - opacity: 0, - transition: { - duration: 0.1, - }, - }, - expanded: { - opacity: 1, - transition: { - duration: 0.4, - }, - }, - } + + const animateToggle = isOpen ? "expanded" : "collapsed" + return ( - - + + {image && } - - -
- {title} -
- {contentPreview} -
-
+ + + + + {title} + + + + {contentPreview} + + + {!forceOpen && ( - setIsVisible(!isVisible)} + {...getButtonProps()} + width={{ base: "full", md: "5rem" }} + minHeight={{ base: "full", md: "10rem" }} + cursor="pointer" + _hover={{ + "& svg": { + transform: "scale(1.25)", + transition: "transform 0.1s", + }, + }} > - - + + )} -
- + - - - {children} - - - -
+ {children} +
+ + ) } diff --git a/src/components/Quiz/QuizRadioGroup.tsx b/src/components/Quiz/QuizRadioGroup.tsx new file mode 100644 index 00000000000..ccb84728971 --- /dev/null +++ b/src/components/Quiz/QuizRadioGroup.tsx @@ -0,0 +1,153 @@ +// Import libraries +import React, { useMemo } from "react" +import { + Box, + chakra, + Circle, + Flex, + RadioProps, + Text, + useRadio, + useRadioGroup, +} from "@chakra-ui/react" + +// Import types +import { Question } from "../../types" + +// Interfaces +export interface CustomRadioProps extends RadioProps { + index: number + label: string +} +export interface IProps { + questionData: Question + showAnswer: boolean + handleSelection: (answerId: string) => void + selectedAnswer: string | null +} + +// Component +const QuizRadioGroup: React.FC = ({ + questionData, + showAnswer, + handleSelection, + selectedAnswer, +}) => { + const { getRadioProps, getRootProps } = useRadioGroup({ + onChange: handleSelection, + }) + const { prompt, answers, correctAnswerId } = questionData + + // Memoized values + const explanation = useMemo(() => { + if (!selectedAnswer) return "" + return answers.filter(({ id }) => id === selectedAnswer)[0].explanation + }, [selectedAnswer]) + + const isSelectedCorrect = useMemo( + () => correctAnswerId === selectedAnswer, + [selectedAnswer] + ) + + // Custom radio button component + const CustomRadio: React.FC = ({ + index, + label, + ...radioProps + }) => { + const { state, getInputProps, getCheckboxProps, htmlProps } = + useRadio(radioProps) + + // Memoized values + const buttonBg = useMemo(() => { + if (!state.isChecked) return "bodyInverted" + if (!showAnswer) return "primary" + if (!isSelectedCorrect) return "error" + return "success" + }, [state.isChecked, showAnswer, isSelectedCorrect]) + + // Render CustomRadio component + return ( + + + + + + {String.fromCharCode(97 + index).toUpperCase()} + + + {label} + + + ) + } + + // Render QuizRadioGroup + return ( + + + {prompt} + + + {answers.map(({ id, label }, index) => { + const display = + !showAnswer || id === selectedAnswer ? "inline-flex" : "none" + return ( + + ) + })} + + {showAnswer && ( + + + Explanation + + {explanation} + + )} + + ) +} + +export default QuizRadioGroup diff --git a/src/components/Quiz/QuizSummary.tsx b/src/components/Quiz/QuizSummary.tsx new file mode 100644 index 00000000000..2b3ac94eaec --- /dev/null +++ b/src/components/Quiz/QuizSummary.tsx @@ -0,0 +1,75 @@ +// Import libraries +import React, { useMemo } from "react" +import { Box, Flex, Text, useMediaQuery } from "@chakra-ui/react" +import { useIntl } from "react-intl" + +// Import utilities +import { numberToPercent } from "../../utils/numberToPercent" + +// Interfaces +export interface IProps { + correctCount: number + isPassingScore: boolean + questionCount: number + ratioCorrect: number +} + +// Component +const QuizSummary: React.FC = ({ + correctCount, + isPassingScore, + questionCount, + ratioCorrect, +}) => { + const { locale } = useIntl() + const [largerThanMobile] = useMediaQuery("(min-width: 30em)") + + const valueStyles = { fontWeight: "700", mb: 2 } + const labelStyles = { fontSize: "sm", m: 0, color: "disabled" } + + // Render QuizSummary component + return ( + + + {isPassingScore ? "You passed the quiz!" : "Your results"} + + + + {numberToPercent(ratioCorrect, locale)} + Score + + + +{correctCount} + Correct + + {largerThanMobile && ( + + {questionCount} + Total + + )} + + + ) +} + +export default QuizSummary diff --git a/src/components/Quiz/QuizWidget.tsx b/src/components/Quiz/QuizWidget.tsx new file mode 100644 index 00000000000..b8642a9ea3e --- /dev/null +++ b/src/components/Quiz/QuizWidget.tsx @@ -0,0 +1,413 @@ +// Import libraries +import React, { useEffect, useState, useMemo, useCallback } from "react" +import { + Box, + Center, + Circle, + Container, + Flex, + Heading, + Icon, + Text, + Spinner, +} from "@chakra-ui/react" +import { shuffle } from "lodash" +import { FaTwitter } from "react-icons/fa" + +// Import components +import Button from "../Button" +import QuizRadioGroup from "./QuizRadioGroup" +import QuizSummary from "./QuizSummary" + +// Import SVGs +import Trophy from "../../assets/quiz/trophy.svg" +import Correct from "../../assets/quiz/correct.svg" +import Incorrect from "../../assets/quiz/incorrect.svg" +import StarConfetti from "../../assets/quiz/star-confetti.svg" + +// Import data +import allQuizData from "../../data/quizzes" +import questionBank from "../../data/quizzes/questionBank" + +// Import utilities +import { trackCustomEvent } from "../../utils/matomo" + +// Import types +import { AnswerChoice, RawQuiz, Quiz, RawQuestion, Question } from "../../types" + +// Import constants +import { PASSING_QUIZ_SCORE } from "../../constants" + +// Constants +const PROGRESS_BAR_GAP = "4px" + +// Interfaces +export interface IProps { + quizKey?: string + maxQuestions?: number +} + +// Component +const QuizWidget: React.FC = ({ quizKey, maxQuestions }) => { + const [quizData, setQuizData] = useState(null) + const [userQuizProgress, setUserQuizProgress] = useState>( + [] + ) + const [showAnswer, setShowAnswer] = useState(false) + const [currentQuestionAnswerChoice, setCurrentQuestionAnswerChoice] = + useState(null) + const [selectedAnswer, setSelectedAnswer] = useState(null) + + const initialize = (): void => { + // Reset state + setQuizData(null) + setCurrentQuestionAnswerChoice(null) + setUserQuizProgress([]) + setShowAnswer(false) + setSelectedAnswer(null) + + // Get quiz key + const currentQuizKey = + quizKey || + Object.keys(allQuizData).filter((quizUri) => + window?.location.href.includes(quizUri) + )[0] || + null + + if (!currentQuizKey) return + + // Get quiz data from key, shuffle, then truncate if necessary + const rawQuiz: RawQuiz = allQuizData[currentQuizKey] + const questions: Array = rawQuiz.questions.map((id) => { + const rawQuestion: RawQuestion = questionBank[id] + return { id, ...rawQuestion } + }) + const shuffledQuestions = shuffle(questions) + const trimmedQuestions = maxQuestions + ? shuffledQuestions.slice(0, maxQuestions) + : shuffledQuestions + const quiz: Quiz = { title: rawQuiz.title, questions: trimmedQuestions } + setQuizData(quiz) + } + useEffect(initialize, [quizKey]) + + // Memoized values + const currentQuestionIndex = useMemo( + () => userQuizProgress.length || 0, + [userQuizProgress] + ) + + const showResults = useMemo( + () => userQuizProgress.length === quizData?.questions.length, + [userQuizProgress, quizData] + ) + + const progressBarBackground = useCallback( + (index: number): string => { + if ( + (showAnswer && + index === currentQuestionIndex && + currentQuestionAnswerChoice?.isCorrect) || + userQuizProgress[index]?.isCorrect + ) + return "success" + if ( + (showAnswer && + index === currentQuestionIndex && + !currentQuestionAnswerChoice?.isCorrect) || + (userQuizProgress[index] && !userQuizProgress[index].isCorrect) + ) + return "error" + if (index === currentQuestionIndex) return "gray.400" + return "gray.500" + }, + [ + showAnswer, + currentQuestionIndex, + currentQuestionAnswerChoice, + userQuizProgress, + ] + ) + + const correctCount = useMemo( + () => userQuizProgress.filter(({ isCorrect }) => isCorrect).length, + [userQuizProgress] + ) + + const ratioCorrect = useMemo( + () => (!quizData ? 0 : correctCount / quizData.questions.length), + [quizData, correctCount] + ) + + const score = useMemo( + () => Math.floor(ratioCorrect * 100), + [ratioCorrect] + ) + + const isPassingScore = useMemo( + () => score > PASSING_QUIZ_SCORE, + [score] + ) + + const showConfetti = useMemo( + () => !!quizData && showResults && isPassingScore, + [quizData, showResults, isPassingScore] + ) + + // Handlers + const handleSelectAnswerChoice = (answerId: string): void => { + const isCorrect = + answerId === quizData?.questions[currentQuestionIndex].correctAnswerId + setCurrentQuestionAnswerChoice({ answerId, isCorrect }) + } + + const handleSelection = (answerId: string): void => { + setSelectedAnswer(answerId) + handleSelectAnswerChoice(answerId) + } + + const handleShowAnswer = (questionId: string, answer: AnswerChoice): void => { + trackCustomEvent({ + eventCategory: "Quiz widget", + eventAction: "Question answered", + eventName: `QID: ${questionId}`, + eventValue: answer.isCorrect + ? `Correct answer` + : `AID: ${answer.answerId}`, + }) + setShowAnswer(true) + } + + const handleRetryQuestion = (): void => { + trackCustomEvent({ + eventCategory: "Quiz widget", + eventAction: "Other", + eventName: "Retry question", + }) + setCurrentQuestionAnswerChoice(null) + setSelectedAnswer(null) + setShowAnswer(false) + } + + const handleContinue = (): void => { + if (!currentQuestionAnswerChoice) return + setUserQuizProgress((prev) => [...prev, currentQuestionAnswerChoice]) + setCurrentQuestionAnswerChoice(null) + setShowAnswer(false) + if (showResults) { + trackCustomEvent({ + eventCategory: "Quiz widget", + eventAction: "Other", + eventName: "Submit results", + eventValue: `${score}%`, + }) + } + } + + const handleShare = (): void => { + if (!quizData || !window) return + trackCustomEvent({ + eventCategory: "Quiz widget", + eventAction: "Other", + eventName: "Share results", + }) + const url = `https://ethereum.org${window.location.pathname}%23quiz` // %23 is # character, needs to added to already encoded tweet string + const tweet = + encodeURI( + `I just took the "${quizData.title}" quiz on ethereum.org and scored ${correctCount} out of ${quizData.questions.length}! Try it yourself at ` + ) + url + window.open( + `https://twitter.com/intent/tweet?text=${tweet}&hashtags=${"ethereumquiz"}` + ) + } + + // TODO: Allow user to submit quiz for storage + // TODO: Fix a11y keyboard tab stops + + // Render QuizWidget component + return ( + + + Test your knowledge + + + {showConfetti && ( + <> + + + + )} + {/* Trophy icon */} + + + + {quizData ? ( + <> +
+ + {quizData.title} + +
+ {/* Progress bar */} +
+ {quizData.questions.map(({ id }, index) => { + /* Calculate width percent based on number of questions */ + const width = `calc(${Math.floor( + 100 / quizData.questions.length + )}% - ${PROGRESS_BAR_GAP})` + return ( + + ) + })} +
+
+ {showResults ? ( + + ) : ( + + )} +
+
+ + {showAnswer && + currentQuestionAnswerChoice && + !currentQuestionAnswerChoice.isCorrect && ( + + )} + {showResults ? ( + <> + + {score < 100 && ( + + )} + + ) : showAnswer ? ( + + ) : ( + + )} + +
+ + ) : ( + + + + )} +
+
+ ) +} + +export default QuizWidget diff --git a/src/components/ReleaseBanner.tsx b/src/components/ReleaseBanner.tsx index 9abbc7ece4d..dbd98d70856 100644 --- a/src/components/ReleaseBanner.tsx +++ b/src/components/ReleaseBanner.tsx @@ -1,12 +1,11 @@ // Libraries import React, { useEffect, useState } from "react" import Countdown, { zeroPad } from "react-countdown" -import styled from "@emotion/styled" +import { Box, Center, CloseButton } from "@chakra-ui/react" // Components import BannerNotification from "./BannerNotification" -import Emoji from "./OldEmoji" -import Icon from "./Icon" +import Emoji from "./Emoji" import Link from "./Link" import Translation from "./Translation" @@ -17,38 +16,6 @@ import { TranslationKey } from "../utils/translations" // Constants import { GATSBY_FUNCTIONS_PATH } from "../constants" -const CloseIconContainer = styled.span` - position: absolute; - cursor: pointer; - top: 1.5rem; - right: 1.5rem; - - & > svg { - fill: ${(props) => props.theme.colors.background}; - - &:hover path { - fill: ${(props) => props.theme.colors.background}; - } - } -` - -const StyledEmoji = styled(Emoji)` - margin-right: 1rem; - flex-shrink: 0; -` - -const StyledBannerNotification = styled(BannerNotification)` - justify-content: center; - align-items: center; - flex-wrap: wrap; - position: relative; - padding-right: 3rem; -` - -const Span = styled.span` - padding-left: 5px; -` - interface CountdownRendererProps { days: number hours: number @@ -57,6 +24,32 @@ interface CountdownRendererProps { completed: boolean } +interface BannerWrapperProps { + isBannerVisible: boolean + onClose: () => void + children: JSX.Element +} + +const BannerWrapper: React.FC = ({ + onClose, + isBannerVisible, + children, +}) => { + return ( + +
+ + {children} +
+ +
+ ) +} + export interface IProps { storageKey: string } @@ -106,39 +99,35 @@ const ReleaseBanner: React.FC = ({ storageKey }) => { }: CountdownRendererProps): React.ReactNode => { if (completed) { return ( - - - - - - - - - - - - + + <> + + + + + + + + ) } else { return ( - - - - - - - - {zeroPad(days, 2)}:{zeroPad(hours, 2)}:{zeroPad(minutes, 2)}: - {zeroPad(seconds, 2)}! - - - - - - - + + <> + + + {zeroPad(days, 2)}:{zeroPad(hours, 2)}:{zeroPad(minutes, 2)}: + {zeroPad(seconds, 2)}! + + + + + + + + ) } } diff --git a/src/components/RollupProductDevDoc.tsx b/src/components/RollupProductDevDoc.tsx index 15443a78db5..47b053d87f6 100644 --- a/src/components/RollupProductDevDoc.tsx +++ b/src/components/RollupProductDevDoc.tsx @@ -1,6 +1,13 @@ // Libraries import React from "react" -import styled from "@emotion/styled" +import { + Box, + Flex, + Heading, + ListItem, + Text, + UnorderedList, +} from "@chakra-ui/react" // Components import Link from "./Link" @@ -34,65 +41,57 @@ type Rollups = { [type in RollupType]: Array } const rollups = _rollups as Rollups -// Styles -const H4 = styled.h4` - margin: 1rem 0; -` - -const ProductCard = styled.div` - margin: 1rem 0; - background: ${(props) => props.theme.colors.rollupDevDocList}; - display: flex; - flex-direction: row; -` - -const Content = styled.div` - padding: 1rem 1rem 0 1rem; -` - export interface IProps { rollupType: RollupType } const RollupProductDevDoc: React.FC = ({ rollupType }) => { return ( -
+ {rollups[rollupType].map( ({ name, noteKey, website, developerDocs, l2beat }) => { return ( - - -
-

{name}

+ + + + + {name} + {noteKey.length > 0 && ( -

+ * -

+ )} -
    -
  • + + -
  • -
  • + + -
  • -
  • + + -
  • -
-
-
-
+ + +
+ + ) } )} -
+ ) } diff --git a/src/components/Slider.tsx b/src/components/Slider.tsx index f97c547ef7c..9dfcdfd07b7 100644 --- a/src/components/Slider.tsx +++ b/src/components/Slider.tsx @@ -1,101 +1,8 @@ -import React, { useCallback, useEffect, useState } from "react" -import { useTheme } from "@emotion/react" -import styled from "@emotion/styled" +import React, { ReactNode, useCallback, useEffect, useState } from "react" import useEmblaCarousel from "embla-carousel-react" -import Icon from "./Icon" - -const Embla = styled.div` - position: relative; - padding: 2rem; - background-color: ${({ theme }) => theme.colors.slider.bg}; - border: 1px solid ${({ theme }) => theme.colors.slider.border}; - border-radius: 0.3rem; -` - -const EmblaViewport = styled.div` - overflow: hidden; - width: 100%; - - .is-draggable { - cursor: move; - cursor: grab; - } - - .is-dragging { - cursor: grabbing; - } -` - -const EmblaContainer = styled.div` - display: flex; -` - -export const EmblaSlide = styled.div` - position: relative; - min-width: 100%; - - h2, - h3 { - margin-top: 0; - } -` - -const Buttons = styled.div` - display: flex; - flex-direction: row; - justify-content: center; - margin-bottom: 1rem; - margin-left: 0; - - @media (min-width: ${(props) => props.theme.breakpoints.s}) { - position: absolute; - bottom: 0; - left: 0; - - justify-content: left; - - margin-bottom: 2rem; - margin-left: 2rem; - } -` - -const Button = styled.button` - background-color: ${({ theme, disabled }) => - disabled ? theme.colors.slider.btnBgDisabled : theme.colors.slider.btnBg}; - border: 0; - border-radius: 50%; - width: 35px; - height: 35px; - display: flex; - justify-content: center; - align-items: center; - margin-right: 0.8rem; - cursor: pointer; - - &:last-child { - margin-right: 0; - } -` - -const Dots = styled.div` - text-align: center; -` - -const DotButton = styled.button<{ selected: boolean }>` - width: 5px; - height: 5px; - padding: 0; - border: 0; - border-radius: 50%; - background-color: ${({ theme, selected }) => - selected ? theme.colors.slider.dotActive : theme.colors.slider.dot}; - margin-right: 1rem; - - &:last-child { - margin-right: 0; - } -` +import { Box, Center, Flex, IconButton } from "@chakra-ui/react" +import { MdChevronLeft, MdChevronRight } from "react-icons/md" export interface IProps { children?: React.ReactNode @@ -103,7 +10,6 @@ export interface IProps { } const Slider: React.FC = ({ children, onSlideChange }) => { - const theme = useTheme() const [emblaRef, embla] = useEmblaCarousel() const [prevBtnEnabled, setPrevBtnEnabled] = useState(false) const [nextBtnEnabled, setNextBtnEnabled] = useState(false) @@ -113,7 +19,7 @@ const Slider: React.FC = ({ children, onSlideChange }) => { const scrollPrev = useCallback(() => embla && embla.scrollPrev(), [embla]) const scrollNext = useCallback(() => embla && embla.scrollNext(), [embla]) const scrollTo = useCallback( - (index) => { + (index: number) => { if (embla) { embla.scrollTo(index) } @@ -146,42 +52,93 @@ const Slider: React.FC = ({ children, onSlideChange }) => { }, [embla, setScrollSnaps, onSelect]) return ( - - - {children} - - - - - - + + + {children} + + + } + isRound + mr="0.8rem" + _hover={{ boxShadow: "none" }} + _focus={{ boxShadow: "none" }} + bg={prevBtnEnabled ? "sliderBtnBg" : "sliderBtnBgDisabled"} + size="sm" + color={prevBtnEnabled ? "sliderBtnColor" : "sliderBtnColorDisabled"} + /> + } + isRound + _hover={{ boxShadow: "none" }} + _focus={{ boxShadow: "none" }} + bg={nextBtnEnabled ? "sliderBtnBg" : "sliderBtnBgDisabled"} + size="sm" + color={nextBtnEnabled ? "sliderBtnColor" : "sliderBtnColorDisabled"} + /> + +
{scrollSnaps.map((_, index) => ( - scrollTo(index)} + sx={{ + marginRight: "1rem", + "&:last-child": { + marginRight: 0, + }, + }} /> ))} - - +
+
+ ) +} + +export const EmblaSlide: React.FC<{ children: ReactNode }> = ({ children }) => { + return ( + + {children} + ) } diff --git a/src/components/TranslationBanner.tsx b/src/components/TranslationBanner.tsx index 5789c41624b..92e66de5a23 100644 --- a/src/components/TranslationBanner.tsx +++ b/src/components/TranslationBanner.tsx @@ -1,109 +1,9 @@ import React, { useEffect, useState } from "react" -import styled from "@emotion/styled" +import { Box, CloseButton, Flex, Heading, useToken } from "@chakra-ui/react" import ButtonLink from "./ButtonLink" -import Icon from "./Icon" -import Emoji from "./OldEmoji" import Translation from "./Translation" - -const H3 = styled.h3` - font-weight: 700; - line-height: 100%; - margin-top: 0; - margin-bottom: 0; -` - -const BannerContainer = styled.div<{ - isOpen: boolean -}>` - display: ${(props) => (props.isOpen ? `block` : `none`)}; - bottom: 2rem; - right: 2rem; - position: fixed; - z-index: 99; - @media (max-width: ${(props) => props.theme.breakpoints.m}) { - bottom: 0rem; - right: 0rem; - } -` - -const StyledBanner = styled.div` - padding: 1rem; - max-height: 100%; - max-width: 600px; - background: ${(props) => props.theme.colors.infoBanner}; - color: ${(props) => props.theme.colors.black300}; - display: flex; - justify-content: space-between; - box-shadow: rgba(0, 0, 0, 0.16) 0px 2px 4px 0px; - border-radius: 2px; - @media (max-width: ${(props) => props.theme.breakpoints.m}) { - max-width: 100%; - box-shadow: 0px -4px 10px 0px ${(props) => props.theme.colors.text} 10%; - } -` - -const BannerContent = styled.div<{ - isPageRightToLeft: boolean -}>` - display: flex; - flex-direction: column; - align-items: ${(props) => - props.isPageRightToLeft ? `flex-end` : `flex-start`}; - margin: 1rem; - @media (max-width: ${(props) => props.theme.breakpoints.s}) { - margin-top: 2.5rem; - } -` - -const BannerClose = styled.div<{ - isPageRightToLeft: boolean -}>` - position: absolute; - top: 0; - right: ${(props) => (props.isPageRightToLeft ? `auto` : 0)}; - margin: 1rem; -` -const BannerCloseIcon = styled(Icon)` - cursor: pointer; -` - -const Row = styled.div` - display: flex; - align-items: center; - margin-bottom: 1rem; - @media (max-width: ${(props) => props.theme.breakpoints.s}) { - flex-direction: column-reverse; - align-items: flex-start; - } -` - -const ButtonRow = styled.div` - display: flex; - align-items: center; - @media (max-width: ${(props) => props.theme.breakpoints.s}) { - flex-direction: column; - align-items: flex-start; - } -` - -const StyledEmoji = styled(Emoji)` - padding-top: 0.5rem; - @media (max-width: ${(props) => props.theme.breakpoints.s}) { - margin-bottom: 1rem; - } -` - -const SecondaryButtonLink = styled(ButtonLink)` - margin-left: 0.5rem; - @media (max-width: ${(props) => props.theme.breakpoints.s}) { - margin-left: 0rem; - margin-top: 0.5rem; - } - color: #333333; - border: 1px solid #333333; - background-color: transparent; -` +import Emoji from "./Emoji" export interface IProps { shouldShow: boolean @@ -119,6 +19,7 @@ const TranslationBanner: React.FC = ({ isPageContentEnglish, }) => { const [isOpen, setIsOpen] = useState(shouldShow) + const [textColor] = useToken("colors", ["text"]) useEffect(() => { setIsOpen(shouldShow) @@ -133,49 +34,95 @@ const TranslationBanner: React.FC = ({ : "translation-banner-body-update" return ( - - - - -

+ + + + + -

- + -
+

- -
+ + -
+ {!isPageContentEnglish && ( -
- + - -
+ + )} -
-
- + + setIsOpen(false)} - isPageRightToLeft={isPageRightToLeft} - > - - -
-
+ /> + + ) } diff --git a/src/components/UpgradeBannerNotification.tsx b/src/components/UpgradeBannerNotification.tsx index 8fd2724722a..47c674940b6 100644 --- a/src/components/UpgradeBannerNotification.tsx +++ b/src/components/UpgradeBannerNotification.tsx @@ -1,34 +1,25 @@ import React from "react" +import { Box } from "@chakra-ui/react" import BannerNotification from "./BannerNotification" -import Emoji from "./OldEmoji" +import Emoji from "./Emoji" import Link from "./Link" -import styled from "@emotion/styled" - -const StyledBannerNotification = styled(BannerNotification)` - display: flex; - justify-content: center; -` - -const StyledEmoji = styled(Emoji)` - align-self: center; - margin-right: 1rem; - flex-shrink: 0; -` - -const StyledBannerContent = styled.div` - align-self: center; -` const UpgradeBannerNotification: React.FC = () => ( - - - + + + We've deprecated our use of 'Eth1' and 'Eth2' terms.{" "} Read the full announcement - - + + ) export default UpgradeBannerNotification diff --git a/src/constants.ts b/src/constants.ts index befdfafb524..03f7d746bf5 100644 --- a/src/constants.ts +++ b/src/constants.ts @@ -1 +1,2 @@ export const GATSBY_FUNCTIONS_PATH = process.env.GATSBY_FUNCTIONS_PATH || "/api" +export const PASSING_QUIZ_SCORE = 65 diff --git a/src/content/contributing/adding-desci-projects/index.md b/src/content/contributing/adding-desci-projects/index.md index 31c478a0cde..0edb459331f 100644 --- a/src/content/contributing/adding-desci-projects/index.md +++ b/src/content/contributing/adding-desci-projects/index.md @@ -2,7 +2,6 @@ title: Adding DeSci projects description: The policy we use when adding a links to projects on the DeSci page on ethereum.org lang: en -sidebar: true --- # Adding projects {#adding-projects} diff --git a/src/content/contributing/translation-program/blog-translations/index.md b/src/content/contributing/translation-program/blog-translations/index.md index 0ac0dbcbed0..3dfe02ebaa0 100644 --- a/src/content/contributing/translation-program/blog-translations/index.md +++ b/src/content/contributing/translation-program/blog-translations/index.md @@ -2,7 +2,6 @@ title: Ethereum Foundation blog translations lang: en description: Contribute to Ethereum by translating the Ethereum Foundation blog. -sidebar: true --- # Ethereum Foundation blog translations {#blog-translations} diff --git a/src/content/contributing/translation-program/how-to-translate/index.md b/src/content/contributing/translation-program/how-to-translate/index.md index 23f78b346e6..966975c1216 100644 --- a/src/content/contributing/translation-program/how-to-translate/index.md +++ b/src/content/contributing/translation-program/how-to-translate/index.md @@ -2,7 +2,6 @@ title: How to translate lang: en description: Instructions for using Crowdin to translate ethereum.org -sidebar: true --- # How to translate {#how-to-translate} diff --git a/src/content/contributing/translation-program/launchpad-translations/index.md b/src/content/contributing/translation-program/launchpad-translations/index.md index e4b6fee8ffb..34f2778d743 100644 --- a/src/content/contributing/translation-program/launchpad-translations/index.md +++ b/src/content/contributing/translation-program/launchpad-translations/index.md @@ -2,7 +2,6 @@ title: Staking Launchpad translations lang: en description: How to contribute by translating the Ethereum Staking Launchpad -sidebar: true --- # Staking Launchpad translations {#launchpad-translations} diff --git a/src/content/contributing/translation-program/mission-and-vision/index.md b/src/content/contributing/translation-program/mission-and-vision/index.md index d9cf4279be7..16dc63657c4 100644 --- a/src/content/contributing/translation-program/mission-and-vision/index.md +++ b/src/content/contributing/translation-program/mission-and-vision/index.md @@ -2,7 +2,6 @@ title: Mission and vision lang: en description: The ethereum.org Translation Program mission and vision -sidebar: true --- # Mission and vision {#mission-and-vision} diff --git a/src/content/contributing/translation-program/resources/index.md b/src/content/contributing/translation-program/resources/index.md index 010028496a0..1ac313d4578 100644 --- a/src/content/contributing/translation-program/resources/index.md +++ b/src/content/contributing/translation-program/resources/index.md @@ -2,7 +2,6 @@ title: Resources for translators lang: en description: Useful resources for ethereum.org translators -sidebar: true --- # Resources {#resources} diff --git a/src/content/desci/index.md b/src/content/desci/index.md index 3077e1d793b..126b1405954 100644 --- a/src/content/desci/index.md +++ b/src/content/desci/index.md @@ -90,6 +90,7 @@ Flexible Web3 data solutions support the scenarios above and provide the foundat ## Get involved {#get-involved} Explore projects and join the DeSci community. + - [Blockchain for Science Telegram](https://t.me/BlockchainForScience) - [Molecule: Fund and get funded for your research projects](https://discover.molecule.to/) - [VitaDAO: receive funding through sponsored research agreements for longevity research](https://www.vitadao.com/) diff --git a/src/content/developers/docs/apis/backend/index.md b/src/content/developers/docs/apis/backend/index.md index 542a7907d0c..fa4314ef45c 100644 --- a/src/content/developers/docs/apis/backend/index.md +++ b/src/content/developers/docs/apis/backend/index.md @@ -42,6 +42,11 @@ These libraries abstract away much of the complexity of interacting directly wit - [cloudflare-eth.com](https://cloudflare-eth.com) +**Coinbase Cloud Node -** **_Blockchain Infrastructure API._** + +- [Coinbase Cloud Node](https://www.coinbase.com/cloud/products/node) +- [Documentation](https://docs.cloud.coinbase.com/node/reference/welcome-to-node) + **DataHub by Figment -** **_Web3 API services with Ethereum Mainnet and testnets._** - [DataHub](https://www.figment.io/datahub) diff --git a/src/content/developers/docs/blocks/index.md b/src/content/developers/docs/blocks/index.md index fc03d3d7399..8f0e94eda85 100644 --- a/src/content/developers/docs/blocks/index.md +++ b/src/content/developers/docs/blocks/index.md @@ -40,86 +40,86 @@ Proof-of-stake means the following: There is a lot of information contained within a block. At the highest level a block contains the following fields: -``` -slot: the slot the block belongs to -proposer_index: the ID of the validator proposing the block -parent_root: the hash of the preceding block -state_root: the root hash of the state object -body: an object containing several fields, as defined below -``` +| Field | Description | +| :--------------- | :---------------------------------------------------- | +| `slot` | the slot the block belongs to | +| `proposer_index` | the ID of the validator proposing the block | +| `parent_root` | the hash of the preceding block | +| `state_root` | the root hash of the state object | +| `body` | an object containing several fields, as defined below | The block `body` contains several fields of its own: -``` -randao_reveal: a value used to select the next block proposer -eth1_data: information about the deposit contract -graffiti: arbitrary data used to tag blocks -proposer_slashings: list of validators to be slashed -attester_slashings: list of validators to be slashed -attestations: list of attestations in favor of the current block -deposits: list of new deposits to the deposit contract -voluntary_exits: list of validators exiting the network -sync_aggregate: subset of validators used to serve light clients -execution_payload: transactions passed from the execution client -``` +| Field | Description | +| :------------------- | :------------------------------------------------- | +| `randao_reveal` | a value used to select the next block proposer | +| `eth1_data` | information about the deposit contract | +| `graffiti` | arbitrary data used to tag blocks | +| `proposer_slashings` | list of validators to be slashed | +| `attester_slashings` | list of validators to be slashed | +| `attestations` | list of attestations in favor of the current block | +| `deposits` | list of new deposits to the deposit contract | +| `voluntary_exits` | list of validators exiting the network | +| `sync_aggregate` | subset of validators used to serve light clients | +| `execution_payload` | transactions passed from the execution client | The `attestations` field contains a list of all the attestations in the block. Attestations have their own data type that contains several pieces of data. Each attestation contains: -``` -aggregation_bits: a list of which validators participated in this attestation -data: a container with multiple subfields -signature: aggregate signature of all attesting validators -``` +| Field | Description | +| :----------------- | :---------------------------------------------------------- | +| `aggregation_bits` | a list of which validators participated in this attestation | +| `data` | a container with multiple subfields | +| `signature` | aggregate signature of all attesting validators | The `data` field in the `attestation` contains the following: -``` -slot: the slot the attestation relates to -index: indices for attesting validators -beacon_block_root: the root hash of the Beacon block containing this object -source: the last justified checkpoint -target: the latest epoch boundary block -``` +| Field | Description | +| :------------------ | :------------------------------------------------------- | +| `slot` | the slot the attestation relates to | +| `index` | indices for attesting validators | +| `beacon_block_root` | the root hash of the Beacon block containing this object | +| `source` | the last justified checkpoint | +| `target` | the latest epoch boundary block | Executing the transactions in the `execution_payload` updates the global state. All clients re-execute the transactions in the `execution_payload` to ensure the new state matches that in the new block `state_root` field. This is how clients can tell that a new block is valid and safe to add to their blockchain. The `execution payload` itself is an object with several fields. There is also an `execution_payload_header` that contains important summary information about the execution data. These data structures are organized as follows: The `execution_payload_header` contains the following fields: -``` -parent_hash: hash of the parent block -fee_recipient: account address for paying transaction fees to -state_root: root hash for the global state after applying changes in this block -receipts_root: hash of the transaction receipts trie -logs_bloom: data structure containing event logs -prev_randao: value used in random validator selection -block_number: the number of the current block -gas_limit: maximum gas allowed in this block -gas_used: the actual amount of gas used in this block -timestamp: the block time -extra_data: arbitrary additional data as raw bytes -base_fee_per_gas: the base fee value -block_hash: Hash of execution block -transactions_root: root hash of the transactions in the payload -``` - -The `execution_payload` itself contains the following (notice this is idential to the header except that instead of the root hash of the transactions it includes the actual list of transactions) : - -``` -parent_hash: hash of the parent block -fee_recipient: account address for paying transaction fees to -state_root: root hash for the global state after applying changes in this block -receipts_root: hash of the transaction receipts trie -logs_bloom: data structure containing event logs -prev_randao: value used in random validator selection -block_number: the number of the current block -gas_limit: maximum gas allowed in this block -gas_used: the actual amount of gas used in this block -timestamp: the block time -extra_data: arbitrary additional data as raw bytes -base_fee_per_gas: the base fee value -block_hash: Hash of execution block -transactions: list of transactions to be executed -``` +| Field | Description | +| :------------------ | :------------------------------------------------------------------ | +| `parent_hash` | hash of the parent block | +| `fee_recipient` | account address for paying transaction fees to | +| `state_root` | root hash for the global state after applying changes in this block | +| `receipts_root` | hash of the transaction receipts trie | +| `logs_bloom` | data structure containing event logs | +| `prev_randao` | value used in random validator selection | +| `block_number` | the number of the current block | +| `gas_limit` | maximum gas allowed in this block | +| `gas_used` | the actual amount of gas used in this block | +| `timestamp` | the block time | +| `extra_data` | arbitrary additional data as raw bytes | +| `base_fee_per_gas` | the base fee value | +| `block_hash` | Hash of execution block | +| `transactions_root` | root hash of the transactions in the payload | + +The `execution_payload` itself contains the following (notice this is identical to the header except that instead of the root hash of the transactions it includes the actual list of transactions) : + +| Field | Description | +| :----------------- | :------------------------------------------------------------------ | +| `parent_hash` | hash of the parent block | +| `fee_recipient` | account address for paying transaction fees to | +| `state_root` | root hash for the global state after applying changes in this block | +| `receipts_root` | hash of the transaction receipts trie | +| `logs_bloom` | data structure containing event logs | +| `prev_randao` | value used in random validator selection | +| `block_number` | the number of the current block | +| `gas_limit` | maximum gas allowed in this block | +| `gas_used` | the actual amount of gas used in this block | +| `timestamp` | the block time | +| `extra_data` | arbitrary additional data as raw bytes | +| `base_fee_per_gas` | the base fee value | +| `block_hash` | Hash of execution block | +| `transactions` | list of transactions to be executed | ## Block time {#block-time} diff --git a/src/content/developers/docs/consensus-mechanisms/pos/keys/index.md b/src/content/developers/docs/consensus-mechanisms/pos/keys/index.md index 54a0e76e22d..9b0bbcc2f89 100644 --- a/src/content/developers/docs/consensus-mechanisms/pos/keys/index.md +++ b/src/content/developers/docs/consensus-mechanisms/pos/keys/index.md @@ -2,7 +2,6 @@ title: Keys in proof-of-stake Ethereum description: An explanation of keys used in Ethereum's proof-of-stake consensus mechanism lang: en -sidebar: true --- Ethereum secures user's assets using public-private key cryptography. The public key is used as the basis for an Ethereum address—that is, it is visible to the general public and used as a unique identifier. The private (or 'secret') key should only ever be accessible to an account owner. The private key is used to 'sign' transactions and data so that cryptography can prove that the holder approves some action of a specific private key. diff --git a/src/content/developers/docs/consensus-mechanisms/pos/rewards-and-penalties/index.md b/src/content/developers/docs/consensus-mechanisms/pos/rewards-and-penalties/index.md index 4a52c94576f..7f0c478b646 100644 --- a/src/content/developers/docs/consensus-mechanisms/pos/rewards-and-penalties/index.md +++ b/src/content/developers/docs/consensus-mechanisms/pos/rewards-and-penalties/index.md @@ -2,7 +2,6 @@ title: Proof-of-stake rewards and penalties description: Learn about the in-protocol incentives in proof-of-stake Ethereum. lang: en -sidebar: true --- Ethereum is secured using its native cryptocurrency, ether (ETH). Node operators that wish to participate in validating blocks and identifying the head of the chain deposit ether into a smart contract on Ethereum. They are then paid in ether to run validator software that checks the validity of new blocks received over the peer-to-peer network and apply the fork-choice algorithm to identify the head of the chain. diff --git a/src/content/developers/docs/data-structures-and-encoding/web3-secret-storage/index.md b/src/content/developers/docs/data-structures-and-encoding/web3-secret-storage/index.md index 3021c65a361..2442e83fa13 100644 --- a/src/content/developers/docs/data-structures-and-encoding/web3-secret-storage/index.md +++ b/src/content/developers/docs/data-structures-and-encoding/web3-secret-storage/index.md @@ -2,7 +2,6 @@ title: Web3 secret storage definition description: Formal definition for web3 secret storage lang: en -sidebar: true sidebarDepth: 2 --- @@ -11,19 +10,19 @@ To make your app work on Ethereum, you can use the web3 object provided by the w `web3` contains the `eth` object - web3.eth. ```js -var fs = require('fs'); -var recognizer = require('ethereum-keyfile-recognizer'); +var fs = require("fs") +var recognizer = require("ethereum-keyfile-recognizer") -fs.readFile('keyfile.json', (err, data) => { - var json = JSON.parse(data); - ar result = recognizer(json); - }); +fs.readFile("keyfile.json", (err, data) => { + var json = JSON.parse(data) + var result = recognizer(json) +}) /** result -* [ 'web3', 3 ] web3 (v3) keyfile -* [ 'ethersale', undefined ] Ethersale keyfile -* null invalid keyfile -*/ + * [ 'web3', 3 ] web3 (v3) keyfile + * [ 'ethersale', undefined ] Ethersale keyfile + * null invalid keyfile + */ ``` This documents **version 3** of the Web3 Secret Storage Definition. diff --git a/src/content/developers/docs/ides/index.md b/src/content/developers/docs/ides/index.md index 40025cdeb30..63185e5c681 100644 --- a/src/content/developers/docs/ides/index.md +++ b/src/content/developers/docs/ides/index.md @@ -12,9 +12,17 @@ If you're looking to fiddle with code before you [set up a local development env **[Remix](https://remix.ethereum.org/)** - **_Web-based IDE with built in static analysis, and a test blockchain virtual machine_** +- [Docs](https://remix-ide.readthedocs.io/en/latest/#) +- [Gitter](https://gitter.im/ethereum/remix) + **[ChainIDE](https://chainide.com/)** - **_A cloud-based multi-chain IDE_** -**[Replit (Solidity Starter)](https://replit.com/@replit/Solidity-starter-beta)** - **_A customizable development environment for Ethereum with hot reloading, error checking, and first-class testnet support_** +- [Docs](https://chainide.gitbook.io/chainide-english-1/) +- [Help forum](https://forum.chainide.com/) + +**[Replit (Solidity Starter - Beta)](https://replit.com/@replit/Solidity-starter-beta)** - **_A customizable development environment for Ethereum with hot reloading, error checking, and first-class testnet support_** + +- [Docs](https://docs.replit.com/) **[Tenderly Sandbox](https://sandbox.tenderly.co/)** - **_A fast prototyping environment where you can write, execute, and debug smart contracts in the browser using Solidity and JavaScript_** diff --git a/src/content/developers/docs/networks/index.md b/src/content/developers/docs/networks/index.md index 1c372d60344..1619e97e5d3 100644 --- a/src/content/developers/docs/networks/index.md +++ b/src/content/developers/docs/networks/index.md @@ -45,6 +45,7 @@ Goerli is a proof-of-stake testnet. It is expected to be maintained long-term as - [Goerli faucet](https://faucet.goerli.mudit.blog/) - [Chainlink faucet](https://faucets.chain.link/) - [Alchemy Goerli Faucet](https://goerlifaucet.com/) +- [All That Node Goerli Faucet](https://www.allthatnode.com/faucet/ethereum.dsrv) #### Sepolia {#sepolia} diff --git a/src/content/developers/docs/nodes-and-clients/run-a-node/index.md b/src/content/developers/docs/nodes-and-clients/run-a-node/index.md index c9c3680f52c..b2096d6bc05 100644 --- a/src/content/developers/docs/nodes-and-clients/run-a-node/index.md +++ b/src/content/developers/docs/nodes-and-clients/run-a-node/index.md @@ -119,7 +119,7 @@ The easiest option for running a node with your own hardware is using plug-and-p An easy and cheap way of running an Ethereum node is to use a single board computer, even with an ARM architecture like the Raspberry Pi. [Ethereum on ARM](https://ethereum-on-arm-documentation.readthedocs.io/en/latest/) provides easy-to-run images of multiple execution and consensus client for Raspberry Pi and other ARM boards. -Small, affordable and efficient devices like these are ideal for running a node at home but keep in mind their limited performence. +Small, affordable and efficient devices like these are ideal for running a node at home but keep in mind their limited performance. ## Spinning up the node {#spinning-up-node} diff --git a/src/content/developers/tutorials/all-you-can-cache/index.md b/src/content/developers/tutorials/all-you-can-cache/index.md index c3ba61dc18a..dcccbf04e8e 100644 --- a/src/content/developers/tutorials/all-you-can-cache/index.md +++ b/src/content/developers/tutorials/all-you-can-cache/index.md @@ -2,7 +2,6 @@ title: "All you can cache" description: Learn how to create and use a caching contract for cheaper rollup transactions author: Ori Pomerantz -sidebar: true tags: ["layer-2", "caching", "storage"] skill: intermediate published: 2022-09-15 diff --git a/src/content/developers/tutorials/erc20-with-safety-rails/index.md b/src/content/developers/tutorials/erc20-with-safety-rails/index.md index 792d8d40760..55d2686dd27 100644 --- a/src/content/developers/tutorials/erc20-with-safety-rails/index.md +++ b/src/content/developers/tutorials/erc20-with-safety-rails/index.md @@ -3,7 +3,6 @@ title: ERC-20 with Safety Rails description: How to help people avoid silly mistakes author: Ori Pomerantz lang: en -sidebar: true tags: ["erc-20"] skill: beginner published: 2022-08-15 diff --git a/src/content/energy-consumption/index.md b/src/content/energy-consumption/index.md index f9b8265bca1..48f93ecfe10 100644 --- a/src/content/energy-consumption/index.md +++ b/src/content/energy-consumption/index.md @@ -18,7 +18,7 @@ For example, on Ethereum, the transaction throughput is not only that of the bas More relevant is the overall energy consumption and carbon footprint of the network as a whole. From those values, we can examine what that network offers to its users and society at large and make a more holistic evaluation of whether that energy expenditure is justified or not. Per transaction measurements, on the other hand, imply the value of the network only comes from its role in transferring crypto between accounts and prohibits an honest cost-benefit analysis. -[CCRI](https://carbon-ratings.com) (Crypto Carbon Ratings Institute) has extensively analyzed the electricity consumption and the carbon footprint of the Ethereum network (see report [*The Merge - Implications on the Electricity Consumption and Carbon Footprint of the Ethereum Network*]( https://carbon-ratings.com/eth-report-2022)). CCRI has measured the electricity consumption of different nodes with various hardware and client software configurations. This resulted in an estimation of **2.601 MWh** (0.0026 TWh) for the network’s yearly electricity consumption at the time of analysis (September 2022), which corresponds to yearly carbon emissions of **870 tonnes CO2e** applying regional specific carbon intensity factors. +[CCRI](https://carbon-ratings.com) (Crypto Carbon Ratings Institute) has extensively analyzed the electricity consumption and the carbon footprint of the Ethereum network (see report [_The Merge - Implications on the Electricity Consumption and Carbon Footprint of the Ethereum Network_](https://carbon-ratings.com/eth-report-2022)). CCRI has measured the electricity consumption of different nodes with various hardware and client software configurations. This resulted in an estimation of **2.601 MWh** (0.0026 TWh) for the network’s yearly electricity consumption at the time of analysis (September 2022), which corresponds to yearly carbon emissions of **870 tonnes CO2e** applying regional specific carbon intensity factors. [Digiconomist provides whole-network energy consumption and carbon footprints for Bitcoin and Ethereum](https://digiconomist.net/ethereum-energy-consumption). At the time of writing this article, Bitcoin expends about 200 TWh/yr of energy and emits about 100 MT (megatons) of carbon per year, while generating about 32,000 T of electrical waste from obsolete hardware annually. In comparison, the total energy expenditure for securing Ethereum is closer to **0.01 TWh/yr**. @@ -40,7 +40,7 @@ Ethereum's current energy expenditure is very low, but this has not always been Since its inception, Ethereum aimed to implement a proof-of-stake consensus mechanism, but doing so without sacrificing security and decentralization took years of focused research and development. Therefore, a proof-of-work mechanism was used to get the network started. Proof-of-work consensus requires miners to use their computing hardware to solve a puzzle, expending energy in the process. The solution to the puzzle proves that energy has been expended by the miner, demonstrating that they invested real-world value for the right to add to the blockchain. Ethereum's total energy consumption peaked during the apex of the crypto bull market in February 2022 at just under 94 TWh/yr. In the summer before the switch to proof-of-stake, the energy consumption was closer to 60 TWh/yr, comparable to that of Uzbekistan, with a carbon emission equivalent to that of Azerbaijan (33 MT/yr). -[CCRI](https://carbon-ratings.com) has examined the impact of Ethereum’s merge from proof-of-work to proof-of-stake; the results have underlined the significant impact of changing the consensus protocol: The annualized electricity consumption was reduced from 22,900,320 MWh to 2,601 MWh and thus by more than **99.988 %**. Likewise, Ethereum’s carbon footprint was decreased by approximately **99.992 %** (from 11,016,000 to 870 tonnes CO2e). Depicted metaphorically, this corresponds to a reduction in emissions from the height of the Eiffel Tower to a small plastic toy figure, as shown in the figure below. +[CCRI](https://carbon-ratings.com) has examined the impact of Ethereum’s merge from proof-of-work to proof-of-stake; the results have underlined the significant impact of changing the consensus protocol: The annualized electricity consumption was reduced from 22,900,320 MWh to 2,601 MWh and thus by more than **99.988 %**. Likewise, Ethereum’s carbon footprint was decreased by approximately **99.992 %** (from 11,016,000 to 870 tonnes CO2e). Depicted metaphorically, this corresponds to a reduction in emissions from the height of the Eiffel Tower to a small plastic toy figure, as shown in the figure below. ![Energy consumption comparison of pre- and post-Merge Ethereum. Displayed is on the left the Eiffel tower with 330 meters height and on the right a plastic toy figure with 4 cm height within a magnifying glass.](energy_consumption_pre_post_merge.png) diff --git a/src/content/glossary/index.md b/src/content/glossary/index.md index 7b159b99c57..c8b6d6ad79d 100644 --- a/src/content/glossary/index.md +++ b/src/content/glossary/index.md @@ -219,7 +219,7 @@ The economics of cryptocurrencies. ### DAG {#dag} -DAG stands for Directed Acyclic Graph. It is a data structure composed of nodes and links between them. Ethereum uses a DAG in its [proof-of-work](#pow) algorithm, [Ethash](#ethash). +DAG stands for Directed Acyclic Graph. It is a data structure composed of nodes and links between them. Before The Merge, Ethereum used a DAG in its [proof-of-work](#pow) algorithm, [Ethash](#ethash), but is no longer used in [proof-of-stake](#pos). ### Dapp {#dapp} diff --git a/src/content/governance/index.md b/src/content/governance/index.md index 0f25b3f517c..9cba6d1e5a6 100644 --- a/src/content/governance/index.md +++ b/src/content/governance/index.md @@ -99,7 +99,7 @@ The initial draft of an EIP is unlikely to be implemented on the Ethereum Mainne ### Community consensus {#community-consensus} -While some EIPs are straightforward technical improvements with minimal nuance, some are more complex and inherently tradeoffs which will affect different stakeholders in different ways. This means some EIPs end up being more contentious within the community than others. +While some EIPs are straightforward technical improvements with minimal nuance, some are more complex and come with tradeoffs which will affect different stakeholders in different ways. This means some EIPs end up being more contentious within the community than others. There is no clear playbook on how to handle contentious proposals. Since Protocol Developers have no way to force people to adopt network upgrades, they will generally avoid implementing EIPs where the contentiousness outweighs the benefits to the broader community. diff --git a/src/content/nft/index.md b/src/content/nft/index.md index 5d5fa10c906..37042a73df7 100644 --- a/src/content/nft/index.md +++ b/src/content/nft/index.md @@ -338,3 +338,5 @@ Most NFTs are built using a consistent standard known as [ERC-721](/developers/d - [No, CryptoArtists Aren’t Harming the Planet](https://medium.com/superrare/no-cryptoartists-arent-harming-the-planet-43182f72fc61) - [Ethereum's energy consumption](/energy-consumption/) - [A country's worth of power, no more](https://blog.ethereum.org/2021/05/18/country-power-no-more/) – _Carl Beekhuizen, May 18 2021_ + + diff --git a/src/content/security/index.md b/src/content/security/index.md index 4405dcc8b22..ee5698c839d 100644 --- a/src/content/security/index.md +++ b/src/content/security/index.md @@ -288,3 +288,5 @@ Airdrop scams involve a scam project airdropping an asset (NFT, token) into your - [Staying Safe: Common Scams](https://support.mycrypto.com/staying-safe/common-scams) - _MyCrypto_ - [Avoiding Scams](https://bitcoin.org/en/scams) - _Bitcoin.org_ - [Twitter thread on common crypto phishing emails and messages](https://twitter.com/tayvano_/status/1516225457640787969) - _Taylor Monahan_ + + diff --git a/src/content/translations/fa/staking/pools/index.md b/src/content/translations/fa/staking/pools/index.md index 3a8ec1918d4..17ebf10ce3b 100644 --- a/src/content/translations/fa/staking/pools/index.md +++ b/src/content/translations/fa/staking/pools/index.md @@ -4,7 +4,6 @@ description: مروری بر نحوه آغاز به کار سهام‌گذاری lang: fa template: staking emoji: ":money_with_wings:" -sidebar: true image: ../../../../../assets/staking/leslie-pool.png alt: لسلی اسب آبی در حال شنا در استخر. sidebarDepth: 2 diff --git a/src/content/translations/fa/staking/saas/index.md b/src/content/translations/fa/staking/saas/index.md index 346e0ed3322..cfc32d3aa9d 100644 --- a/src/content/translations/fa/staking/saas/index.md +++ b/src/content/translations/fa/staking/saas/index.md @@ -4,7 +4,6 @@ description: مروری بر نحوه شروع سهام‌گذاری مشترک lang: fa template: staking emoji: ":money_with_wings:" -sidebar: true image: ../../../../../assets/staking/leslie-saas.png alt: لسلی اسب آبی شناور در میان ابرها. sidebarDepth: 2 diff --git a/src/content/translations/fa/staking/solo/index.md b/src/content/translations/fa/staking/solo/index.md index 2204393bab3..c532f899cb5 100644 --- a/src/content/translations/fa/staking/solo/index.md +++ b/src/content/translations/fa/staking/solo/index.md @@ -4,7 +4,6 @@ description: مروری بر نحوه‌ی آغاز سهام‌گذاری به lang: fa template: staking emoji: ":money_with_wings:" -sidebar: true image: ../../../../../assets/staking/leslie-solo.png alt: لسلی اسب آبی روی تراشه رایانه‌ای خودش. sidebarDepth: 2 diff --git a/src/content/translations/fr/bridges/index.md b/src/content/translations/fr/bridges/index.md index bbaf34b202b..2920dd7a2e3 100644 --- a/src/content/translations/fr/bridges/index.md +++ b/src/content/translations/fr/bridges/index.md @@ -2,7 +2,6 @@ title: Introduction aux ponts blockchain description: Les ponts permettent aux utilisateurs de déplacer leurs fonds à travers différentes blockchains lang: fr -sidebar: true --- # Ponts de connexion blockchain {#prerequisites} diff --git a/src/content/translations/fr/contributing/design-principles/index.md b/src/content/translations/fr/contributing/design-principles/index.md index 56aa8e9d3c1..a041849c072 100644 --- a/src/content/translations/fr/contributing/design-principles/index.md +++ b/src/content/translations/fr/contributing/design-principles/index.md @@ -16,7 +16,7 @@ Lisez-les avant de [contribuer à ethereum.org](/contributing/). Ne vous inquiétez pas, ils sont assez simples ! **Les principes de conception** sont un ensemble de lignes directrices auxquelles nous nous référons lors de la conception (c'est-à-dire la création, la maintenance ou la mise à jour) de quelque chose. -Dans le contexte d'ethereum.org, ces principes de conception sont la base de ce que nous voulons que le site web représente et projette au monde. Ils sont à la fois ambitieux et fonctionnels. Il ne s'agit pas seulement de l'_apparence_ du site, mais également de son _fonctionnement_, et même de ce qu'une personne _ressent_ en le parcourant. Tout, des couleurs aux mises en page en passant par la façon dont nous parlons d'Ethereum sur le site web, doit s'appuyer sur ces principes. +Dans le contexte d'ethereum.org, ces principes de conception sont la base de ce que nous voulons que le site web représente et projette au monde. Ils sont à la fois ambitieux **et** fonctionnels. Il ne s'agit pas seulement de l'_apparence_ du site, mais également de son _fonctionnement_, et même de ce qu'une personne _ressent_ en le parcourant. Tout, des couleurs aux mises en page en passant par la façon dont nous parlons d'Ethereum sur le site web, doit s'appuyer sur ces principes. ## Les principes en pratique {#how-decisions-about-the-site-are-made} diff --git a/src/content/translations/fr/contributing/index.md b/src/content/translations/fr/contributing/index.md index e0bdc3b296b..254e4ee2ffe 100644 --- a/src/content/translations/fr/contributing/index.md +++ b/src/content/translations/fr/contributing/index.md @@ -16,7 +16,7 @@ Le site ethereum.org, comme Ethereum plus largement, est un projet open source. - [Travailler sur un ticket ouvert](https://github.com/ethereum/ethereum-org-website/issues) _– Travail que nous avons identifié comme devant être fait_ - [Rejoindre le programme de traduction](/contributing/translation-program/) _– Aidez-nous à traduire ethereum.org dans les autres langues_ -- [Ajouter un article communautaire](/contributing/content-resources/) _– Ajoutez un article utile à la page adéquate_ +- [Ajouter un article de la Communauté](/contributing/content-resources/) _– Ajoutez un article utile à la page adéquate_ - [Ajouter un produit/service](/contributing/adding-products/) _– Ajoutez une application décentralisée (DApp) ou un portefeuille à la page adéquate_ - [Ajouter des outils de développement](/contributing/adding-developer-tools/) _– Ajoutez un outil de développement à la page adéquate_ - [Ajouter un échange](/contributing/adding-exchanges/) _– Ajoutez une plateforme d'échange à notre [outil de recherche d'échange](/get-eth/#country-picker)_ @@ -72,7 +72,7 @@ Si votre contribution est fusionnée au contenu d'ethereum.org, nous vous remett ### Comment l'obtenir {#how-to-claim} 1. Rejoignez notre [serveur Discord](https://discord.gg/E8dET2ux8y). -2. Collez un lien vers votre contribution dans le salon `#🥇 | poaps`. +2. Collez un lien vers votre contribution dans le `# 🥇poaps`[canal](https://discord.com/channels/714888181740339261/804005643211898911). 3. Attendez qu'un membre de notre équipe vous envoie un lien vers votre POAP. 4. Récupérez votre POAP ! diff --git a/src/content/translations/fr/contributing/translation-program/index.md b/src/content/translations/fr/contributing/translation-program/index.md index cebd74d9cd5..3b816918334 100644 --- a/src/content/translations/fr/contributing/translation-program/index.md +++ b/src/content/translations/fr/contributing/translation-program/index.md @@ -1,178 +1,108 @@ --- title: Programme de traduction lang: fr -description: Comment contribuer au programme de traduction ethereum.org +description: Informations sur le programme de traduction d'ethereum.org --- # Programme de traduction {#translation-program} Le programme de traduction est un travail collaboratif visant à traduire ethereum.org dans différentes langues. L'objectif est de rendre le site web plus accessible et d'étendre sa visibilité à des milliards de non-anglophones à travers le monde. -Ce programme comporte aujourd'hui : +![](./enterprise-eth.png) -- [**3 600 +** traducteurs](/contributing/translation-program/contributors/) -- [**46** langues traduites](/languages/) -- [**2,9 millions** de mots traduits en 2021](/contributing/translation-program/acknowledgements/) -- [**1,5 million** mots traduits jusqu'à aujourd'hui en 2022](/contributing/translation-program/acknowledgements/) +## Aidez-nous à traduire {#help-us-translate} -Si vous voulez participer et nous aider à développer la communauté mondiale d'Ethereum en traduisant le site dans votre langue, suivez les étapes ci-dessous ! +Le programme de traduction d'ethereum.org est ouvert et n'importe qui peut y contribuer  ! - - Jetez un œil à notre page de reconnaissance des traducteurs et demandez votre jeton POAP ! Si vous avez traduit ethereum.org en 2022, il y a un POAP unique qui vous attend.{" "} - En savoir plus sur les POAP - +1. Vous devrez vous connecter à votre compte Crowdin ou vous inscrire. +2. Sélectionnez la langue à laquelle vous souhaitez contribuer. +3. Avant de commencer, veuillez consulter le guide [Comment traduire](/contributing/translation-program/how-to-translate/) pour apprendre comment utiliser Crowdin, et le [Guide de style de traduction](/contributing/translation-program/translators-guide/) pour obtenir des conseils et connaître les bonnes pratiques. +4. Les traductions automatiques ne seront pas approuvées. +5. Toutes les traductions sont vérifiées avant d'être ajoutées au site, par conséquent il y aura un court délai avant que vos traductions ne soient en ligne. -## Mission et vision {#mission-and-vision} + + Commencez à traduire + + +## À propos du programme de traduction {#about-us} La communauté Ethereum se veut mondiale et inclusive, mais une grande partie de son contenu ne s'adresse qu'aux anglophones, excluant les 6 milliards de personnes qui ne parlent pas l'anglais dans le monde. L'objectif d'ethereum.org est de servir de portail vers Ethereum pour la communauté mondiale. Nous pensons ainsi qu'il est essentiel de fournir aux non-anglophones du contenu Ethereum dans leur langue maternelle. Le programme de traduction d'ethereum.org a pour but de rendre Ethereum accessible à tous en traduisant le site ethereum.org et les autres contenus Ethereum en autant de langues que possible. -**Notre mission** - -- Fournir des versions traduites du site pour permettre aux visiteurs du monde entier d'apprendre à utiliser Ethereum dans leur langue maternelle -- Faciliter l'intégration de plus de membres dans la communauté mondiale Ethereum -- Permettre un partage plus accessible et plus inclusif des informations et des connaissances d'Ethereum -- Offrir aux membres de la communauté la possibilité de contribuer aux traductions sur Ethereum et de laisser leur empreinte sur l'écosystème -- Identifier les contributeurs passionnés qui cherchent à s'impliquer dans l'écosystème, échanger avec eux et leur donner des conseils +En savoir plus sur [la mission et la vision](/contributing/translation-program/mission-and-vision) du programme de traduction d'ethereum.org. -**Notre vision** +### Les progrès réalisés jusqu'à présent {#our-progress} -- Traduire le contenu essentiel pour les membres de la communauté Ethereum issus du plus grand nombre de pays et de régions du monde possible -- Soutenir le partage des connaissances entre les langues pour créer une communauté Ethereum mieux informée et mieux formée -- Renforcer l'inclusion et l'accessibilité d'Ethereum en supprimant les barrières linguistiques qui empêchent les non-anglophones de rejoindre l'écosystème +- [**3 800 +** traducteurs](/contributing/translation-program/contributors/) +- [**48** langues présentes sur le site](/languages/) +- [**2,9 millions** de mots traduits en 2021](/contributing/translation-program/acknowledgements/) +- [**1,9 million** de mots traduits en 2022 jusqu'ici](/contributing/translation-program/acknowledgements/) -## Commencer à traduire {#how-to-translate} +Si vous voulez participer et nous aider à développer la communauté mondiale d'Ethereum en traduisant le site dans votre langue, suivez les étapes ci-dessous ! - - Nous vous invitons à consulter le guide de style pour la traduction d'ethereum.org. Il contient certaines des directives, instructions et astuces les plus importantes pour les traducteurs afin de les aider à localiser le site web. - {" "}Afficher le guide de style pour la traduction + + Jetez un œil à notre page de reconnaissance des traducteurs et demandez votre jeton POAP ! Si vous avez traduit ethereum.org en 2022, il y a un POAP unique qui vous attend.{" "} + En savoir plus sur les POAP -### Guide visuel {#visual-guide} - -Pour les apprenants plus visuels, regardez la vidéo de Luka qui présente le paramétrage de Crowdin. Vous pouvez également trouver les mêmes étapes sous forme écrite dans la section suivante. - - - -### Guide écrit {#written-guide} - -1. **[Rejoignez notre projet sur Crowdin](https://crowdin.com/project/ethereum-org/invite)** - Vous devrez vous connecter à votre compte Crowdin ou vous inscrire si vous n'en avez pas. Tout ce qui est nécessaire pour vous inscrire est un compte de messagerie et un mot de passe. - -2. **Ouvrez la langue dans laquelle vous souhaitez traduire et trouvez un document sur lequel travailler**
- Veuillez ne pas utiliser de traduction automatique pour traduire le projet. Toutes les traductions seront examinées avant d'être ajoutées au site web. S'il apparaît que les traductions que vous proposez sont traduites automatiquement, elles seront rejetées et les contributeurs qui utilisent souvent la traduction automatique seront retirés du projet. -
- -Vous avez d'autres questions ? Ou vous voulez collaborer avec notre équipe et d'autres traducteurs ? Envoyez un message dans le salon #translations sur notre [serveur Discord ethereum.org](https://discord.gg/6WX7E97) - -Vous pouvez également nous contacter à l'adresse translations@ethereum.org - -Merci de votre participation au programme de traduction ethereum.org ! +Le [blog de l'Ethereum Foundation](https://blog.ethereum.org/) est l'outil de publication principal pour de nombreuses équipes soutenues par l'EF et est la source d'annonces, de mises à jour, de rapports, de résumés et d'autres communications publiques pour la communauté Ethereum. -**Permanence pour les traducteurs** +Participer : -Nous assurons des permanences pour les traducteurs le deuxième mercredi du mois. Celles-ci sont tenues dans le canal vocal #office-hours sur le serveur [Discord ethereum.org](https://discord.gg/geKhWjtF), où vous pouvez également trouver les horaires précis ainsi que des détails supplémentaires. +- Visitez la [page de traduction du blog](/contributing/translation-program/blog-translations/) +- Rejoignez le [projet de traduction du blog dans Crowdin](https://crowdin.com/project/ethereum-foundation-blog) -Le but des permanences est de permettre à nos traducteurs de poser des questions sur le processus de traduction, de nous faire part de leurs commentaires sur le programme, de partager leurs idées ou simplement de discuter avec nous. Les participants peuvent également en apprendre davantage sur le programme de traduction et obtenir des informations sur la façon de devenir traducteur pour ethereum.org. Enfin, nous voulons utiliser ces appels pour communiquer les développements récents en lien avec le programme de traduction et partager avec nos contributeurs des conseils et des instructions. +### Guides et ressources {#guides-and-resources} -Si vous êtes un traducteur pour ethereum.org ou si vous souhaitez le devenir, n'hésitez pas à nous rejoindre pendant l'une de ces sessions. - - - Si vous nous aidez pour les traductions, vous trouverez peut-être des informations utiles dans notre FAQ sur les traductions. - {" "}FAQ sur la traduction d'ethereum.org - - -## Ressources {#resources} - -### Guides {#guides} +Si vous contribuez au programme de traduction ou songez à vous impliquer, vous devriez consulter les guides de traduction ci-dessous : - [Guide de style pour la traduction](/contributing/translation-program/translators-guide/) _– instructions et conseils pour les traducteurs d'ethereum.org _ - [FAQ sur la traduction](/contributing/translation-program/faq/) _– foire aux questions sur le programme de traduction d'ethereum.org_ - [Guide sur l'éditeur en ligne Crowdin](https://support.crowdin.com/online-editor/) _– un guide détaillé sur l'utilisation de l'éditeur en ligne Crowdin et certaines des fonctionnalités avancées de Crowdin_ - [Ensembles de contenu](/contributing/translation-program/content-buckets/) _– quelles pages sont incluses dans chaque ensemble de contenu d'ethereum.org_ -### Outils {#tools} - -- [Microsoft Language Portal](https://www.microsoft.com/en-us/language) _– utile pour trouver et vérifier les traductions des termes techniques_ -- [Linguee](https://www.linguee.com/) _– moteur de recherche de traductions et dictionnaire qui permet la recherche par mot ou phrase_ -- [Recherche de terme Proz](https://www.proz.com/search/) _– base de données de dictionnaires de traduction et de glossaires pour des termes spécialisés_ -- [Eurotermbank](https://www.eurotermbank.com/) _– collections de terminologie européenne en 42 langues_ - -### Communautés {#communities} +Pour d'autres outils de traduction utiles, des communautés de traducteurs et des articles de blog du programme de traduction, veuillez visiter la [page Ressources](/contributing/translation-program/resources/). -- [Groupes de traduction spécifiques à une langue sur Discord](https://discord.gg/6WX7E97) _– une initiative pour connecter les traducteurs ethereum.org à travers des groupes de traduction_ -- [Groupe de traducteurs chinois](https://www.notion.so/Ethereum-org-05375fe0a94c4214acaf90f42ba40171) _– page de notion pour faciliter la coordination entre les traducteurs chinois_ +## Nous contacter {#get-in-touch} -### Aperçu des ensembles de contenu {#content-buckets-overview} - -- [Ensembles de contenu](/contributing/translation-program/content-buckets/) _– quelles pages sont incluses dans chaque ensemble de contenu d'ethereum.org_ - -### Dernières mises à jour {#latest-updates} - -Pour vous tenir au courant des dernières avancées du programme de traduction, vous pouvez suivre le blog de l'[Ethereum Foundation](https://blog.ethereum.org/) : - -- [Mise à jour d'octobre 2021](https://blog.ethereum.org/2021/10/04/translation-program-update/) -- [Mise à jour de décembre 2020](https://blog.ethereum.org/2020/12/21/translation-program-milestones-updates-20/) -- [Mise à jour de juillet 2020](https://blog.ethereum.org/2020/07/29/ethdotorg-translation-milestone/) -- [Lancement du programme de traduction, août 2019](https://blog.ethereum.org/2019/08/20/translating-ethereum-for-our-global-community/) - -## Traductions pour la plateforme de lancement de mise en jeu Ethereum {#staking-launchpad} - -Notre communauté de traduction travaille également sur la [plateforme de lancement de mise en jeu](https://launchpad.ethereum.org/en/). Cela permet à tout le monde de configurer un validateur Ethereum et d'aider à sécuriser le réseau Ethereum. Le Launchpad est actuellement en ligne en 17 langues. +Vous avez d'autres questions ? Ou vous voulez collaborer avec notre équipe et d'autres traducteurs ? Envoyez un message dans le salon #translations sur notre [serveur Discord ethereum.org](https://discord.gg/6WX7E97) -Si cela vous intéresse, [rejoignez le projet de traduction de la plateforme de lancement Ethereum sur Crowdin](https://crowdin.com/project/ethereum-staking-launchpad). Si votre langue n'est pas disponible sur Crowdin, vous pouvez [envoyer un ticket](https://github.com/ethereum/staking-launchpad/issues/new) sur GitHub pour demander l'ajout d'une nouvelle langue. +Vous pouvez également nous contacter à l'adresse translations@ethereum.org ## Lancer votre propre programme de traduction {#starting-a-translation-program} Nous tenons à traduire le contenu Ethereum en autant de langues que possible ainsi qu'à mettre le contenu éducatif à la disposition de tous. Conformément à notre vision sur les traductions, nous souhaitons aider d'autres projets Ethereum à organiser, gérer et améliorer leurs propres efforts de traduction. -C'est pourquoi nous avons créé un [manuel pour programmes de traduction](/contributing/translation-program/playbook/) qui contient quelques conseils et meilleures pratiques que nous avons regroupés au fil du processus de traduction du site ethereum.org. - -Vous souhaitez collaborer plus avant ou utiliser certaines de nos ressources de traduction ? Vous avez des commentaires sur le manuel ? N'hésitez pas à nous contacter à l'adresse translations@ethereum.org. - -## Traductions en cours {#in-progress} +C'est pourquoi nous avons créé un [manuel pour programmes de traduction](/contributing/translation-program/playbook/) qui contient quelques conseils et bonnes pratiques que nous avons regroupés au fil du processus de traduction du site ethereum.org. - +Vous souhaitez collaborer davantage t ou utiliser certaines de nos ressources de traduction ? Vous avez des commentaires sur le manuel ? N'hésitez pas à nous contacter à l'adresse translations@ethereum.org. diff --git a/src/content/translations/fr/contributing/translation-program/translators-guide/index.md b/src/content/translations/fr/contributing/translation-program/translators-guide/index.md index 95c892cbdc5..ba53afd81d4 100644 --- a/src/content/translations/fr/contributing/translation-program/translators-guide/index.md +++ b/src/content/translations/fr/contributing/translation-program/translators-guide/index.md @@ -92,6 +92,20 @@ Voici un exemple d'avertissement Crowdin lorsque vous oubliez d'ajouter une bali Une grande partie du contenu de la source contient des balises et des variables, surlignées en jaune dans l'éditeur Crowdin. Elles remplissent différentes fonctions et doivent être utilisées correctement. +**Paramètres de Crowdin** + +Pour faciliter la gestion des tags et les copier directement à partir de la source, nous vous recommandons de modifier vos paramètres dans l'éditeur Crowdin. + +1. Ouvrez les paramètres de l'éditeur ![Comment ouvrir les paramètres de l'éditeur](./editor-settings.png) + +2. Allez à la section 'Affichage des tags HTML' + +3. Sélectionnez 'Masquer' ![Veuillez sélectionner 'Masquer'](./hide-tags.png) + +4. Cliquez sur 'Enregistrer' + +En sélectionnant cette option, le texte du tag complet ne sera plus affiché et sera remplacé par un nombre. Lors de la traduction, cliquer sur ce tag copiera automatiquement le tag exact dans le champ de traduction. + **Liens** Vous pouvez remarquer des liens complets vers des pages d'ethereum.org ou d'autres sites web. @@ -106,7 +120,7 @@ Les liens apparaissent également dans le texte source sous la forme de balises Il est très important de copier les liens depuis le texte source et de ne pas modifier l'ordre des balises. -Si l'ordre est changé, le lien qu'elles remplacent sera cassé. +Si l'ordre des balises est changé, le lien qu'elles représentent sera cassé. ![Exemple de liens à l'intérieur de balises.png](./example-of-links-inside-tags.png) @@ -132,7 +146,7 @@ Exemple : ``nonce`` `` - _Balise ouvrante, qui contient un extrait de code_ -nonce - _Text non traduisible_ +nonce - _Texte non traduisible_ `` - _Balise fermante_ diff --git a/src/content/translations/fr/developers/tutorials/uniswap-v2-annotated-code/index.md b/src/content/translations/fr/developers/tutorials/uniswap-v2-annotated-code/index.md index 7ba55c7685a..dd1c9a375d1 100644 --- a/src/content/translations/fr/developers/tutorials/uniswap-v2-annotated-code/index.md +++ b/src/content/translations/fr/developers/tutorials/uniswap-v2-annotated-code/index.md @@ -2,7 +2,6 @@ title: "Visite guidée du contrat Uniswap-v2" description: Comment fonctionne le contrat Uniswap-v2 ? Pourquoi est-il écrit de cette façon ? author: Ori Pomerantz -sidebar: true tags: - "solidity" - "uniswap" diff --git a/src/content/translations/fr/eips/index.md b/src/content/translations/fr/eips/index.md index 97c3d85f096..9ff2a9bf0ad 100644 --- a/src/content/translations/fr/eips/index.md +++ b/src/content/translations/fr/eips/index.md @@ -24,18 +24,29 @@ En plus de fournir les spécifications techniques des modifications, les EIP rep Le dépôt [GitHub des EIP](https://github.com/ethereum/EIPs) a été créé en octobre 2015. Le processus des EIP est basé sur celui des [propositions d'amélioration de Bitcoin (BIP)](https://github.com/bitcoin/bips), lui-même basé sur celui des [propositions d'amélioration de Python (PEP)](https://www.python.org/dev/peps/). -Des éditeurs sont chargés de vérifier la solidité technique, l'orthographe/la grammaire et le style du code des EIP. Martin Becze, Vitalik Buterin, Gavin Wood et quelques autres ont été les éditeurs d'origine des EIP de 2015 à fin 2016. Les éditeurs d'EIP actuels sont : +Des éditeurs sont chargés de vérifier la solidité technique, l'orthographe/la grammaire et le style du code des EIP. Martin Becze, Vitalik Buterin, Gavin Wood et quelques autres ont été les éditeurs d'origine des EIP de 2015 à fin 2016. -- Alex Beregszaszi (EWASM/Ethereum Foundation) -- Greg Colvin (Communauté) -- Casey Detrio (EWASM/Ethereum Foundation) -- Matt Garnett (Quilt) -- James Hudson (Ethereum Foundation) -- Nick Johnson (ENS) -- Nick Savers (Communauté) -- Micah Zoltu (Communauté) +Les éditeurs actuels EIP sont -Les éditeurs d'EIP, avec les membres de la communauté des [Ethereum Cat Herders](https://ethereumcatherders.com/) et des [Ethereum Magicians](https://ethereum-magicians.org/), décident des EIP qui seront implémentées et sont responsables de la facilitation des EIP ainsi que du passage des EIP au stade "Final" ou "Retiré". +- Alex Beregszaszi (@axic) +- Gavin John (@Pandapip1) +- Greg Colvin (@gcolvin) +- Matt Garnett (@lightclient) +- Sam Wilson (@SamWilsn) + +Les éditeurs Emeritus EIP sont + +- Casey Detrio (@cdetrio) +- Hudson Jameson (@Souptacular) +- Martin Becze (@wanderer) +- Micah Zoltu (@MicahZoltu) +- Nick Johnson (@arachnid) +- Nick Savers (@nicksavers) +- Vitalik Buterin (@vbuterin) + +Si vous souhaitez devenir un éditeur EIP, veuillez consulter [EIP-5069](https://eips.ethereum.org/EIPS/eip-5069). + +Les éditeurs d'EIP, avec les membres de la communauté des [Ethereum Cat Herders](https://ethereumcatherders.com/) et des [Ethereum Magicians](https://ethereum-magicians.org/), décident des EIP qui seront implémentées et sont responsables de la facilitation des EIP ainsi que du passage des EIP au stade « Final » ou « Retiré ». Le processus complet de normalisation ainsi que la charte sont détaillés dans le document [EIP-1](https://eips.ethereum.org/EIPS/eip-1) @@ -49,7 +60,7 @@ Si vous souhaitez en savoir plus, consultez le [site dédié aux EIP](https://ei ## Participer {#participate} -Tout le monde peut créer une EIP ou une ERC, mais il est conseillé de lire [EIP-1](https://eips.ethereum.org/EIPS/eip-1), qui décrit le processus d'EIP, ce qu'est une EIP, les différents types d'EIP, ce que le document EIP doit contenir, le format et le modèle EIP, la liste des éditeurs d'EIP et tout ce que vous devez savoir sur les EIP avant d'en créer une. Votre nouvelle EIP doit définir une nouvelle fonctionnalité qui n'est pas vraiment complexe mais pas super niche et peut être utilisée par des projets dans l'écosystème Ethereum. L'élément le plus difficile est la facilitation : en tant qu'auteur, vous devez rassembler la communauté autour de votre EIP, collecter des commentaires, écrire des articles décrivant les problèmes que votre EIP résout, et collaborer avec des projets pour implémenter votre EIP. +Tout le monde peut créer une EIP ou une ERC, mais il est conseillé de lire [EIP-1](https://eips.ethereum.org/EIPS/eip-1), qui décrit le processus d'EIP, ce qu'est une EIP, les différents types d'EIP, ce que le document EIP doit contenir, le format et le modèle EIP, la liste des éditeurs d'EIP et tout ce que vous devez savoir sur les EIP avant d'en créer une. Votre nouvelle EIP doit définir une nouvelle fonctionnalité qui n'est pas vraiment complexe mais pas une super niche et peut être utilisée par des projets dans l'écosystème Ethereum. L'élément le plus compliqué est la facilitation : en tant qu'auteur, vous devez rassembler la communauté autour de votre EIP, collecter des commentaires, écrire des articles décrivant les problèmes que votre EIP résout, et collaborer avec des projets pour implémenter votre EIP. Si vous souhaitez suivre la discussion sur les EIP ou faire part de vos commentaires, consultez le [forum Ethereum Magicians](https://ethereum-magicians.org/), où la communauté discute des EIP. diff --git a/src/content/translations/fr/upgrades/beacon-chain/index.md b/src/content/translations/fr/upgrades/beacon-chain/index.md index 29727138d96..4c6f677e589 100644 --- a/src/content/translations/fr/upgrades/beacon-chain/index.md +++ b/src/content/translations/fr/upgrades/beacon-chain/index.md @@ -5,63 +5,71 @@ lang: fr template: upgrade image: ../../../../../assets/upgrades/core.png summaryPoint1: La chaîne phare ne change rien à la manière actuelle d'utiliser Ethereum. -summaryPoint2: Elle assurera la coordination du réseau, en servant de couche de consensus. -summaryPoint3: Elle a introduit la preuve d'enjeu dans l'écosystème Ethereum. -summaryPoint4: Vous pouvez le connaître sous le nom de « Phase 0 » sur les feuilles de route techniques. +summaryPoint2: Elle a introduit la preuve d'enjeu dans l'écosystème Ethereum. +summaryPoint3: Elle a été fusionnée avec la chaîne originale de preuve de travail Ethereum en 2022. +summaryPoint4: Le protocole de logique de consensus et de bloc des commérages introduits par la chaîne phare sécurisent désormais Ethereum. --- - La chaîne phare a démarré le 1er décembre à midi UTC. Pour en savoir plus, explorez les données. Si vous voulez aider à valider la chaîne, vous pouvez miser vos ETH. + La Chaîne phare a été mise en service le 1er décembre 2020. À l'époque, il s'agissait d'une chaîne séparée du réseau principal Ethereum. Elle utilisait la preuve d'enjeu sans gérer de transactions. La Chaîne phare a été fusionnée avec le réseau principal original Ethereum en 2022 pour reprendre la logique de consensus et la propagation de blocs pour Ethereum. Depuis la fusion, il n'y a eu qu'une seule chaîne Ethereum. -## Que fait la chaîne phare ? {#what-does-the-beacon-chain-do} +## Qu'est-ce que fut la Chaîne phare ? {#what-is-the-beacon-chain} -La chaîne phare dirigera ou coordonnera le réseau étendu de [fragments](/upgrades/sharding/) et de [validateurs](/staking/). Mais ce ne sera pas comme le [réseau principal Ethereum](/glossary/#mainnet) d'aujourd'hui. Elle ne peut gérer ni les comptes ni les contrats intelligents. +La Chaîne phare était le nom de la blockchain originale par preuve d'enjeu qui a été lancée en 2020. Elle a été créé pour s'assurer que la logique de consensus par preuve d'enjeu était saine et durable avant de l'activer sur le réseau principal Ethereum. Par conséquent, elle a fonctionné aux côtés de l'Ethereum original de preuve de travail. La désactivation de la preuve de travail au profit de la preuve d'enjeu sur Ethereum nécessite d'indiquer à la Chaîne phare d'accepter les transactions de la chaîne Ethereum d'origine, de les regrouper en blocs, puis les organiser en blockchain en utilisant un mécanisme de consensus basé sur la preuve d'enjeu. Au même moment, les clients originaux d'Ethereum ont arrêté leur minage, la propagation du bloc et la logique de consensus, regroupant tout ceci sur la Chaîne phare. Cet événement était connu sous le nom de [La Fusion](/upgrades/merge/). Une fois la Fusion réalisée, il n'y avait plus deux blockchains mais une chaîne unique Ethereum de preuve d'enjeu. -Le rôle de la chaîne phare évoluera au fil du temps, mais restera un élément fondamental de l'[Ethereum sécurisé, durable et évolutif auquel nous travaillons](/upgrades/vision/). +## Que fait la Chaîne phare ? {#what-does-the-beacon-chain-do} -## Fonctionnalités de la chaîne phare {#beacon-chain-features} +La Chaîne phare était le nom donné à un registre de comptes qui a mené et coordonné le réseau des [validateurs Ethereum](/staking/) avant que ces mêmes validateurs ne commencent à valider de véritables transactions Ethereum. Elle ne traitait pas les transactions ou ne gérait pas les interactions entre les contrats intelligents. + +Elle a introduit le moteur de consensus (ou « couche de consensus ») qui a pris la place du minage par preuve de travail sur Ethereum et a apporté de nombreuses améliorations significatives. + +La Chaîne phare était un composant fondamental pour [la sécurisation, le respect environnemental et l'évolutivité d'Ethereum](/upgrades/vision/). + +## Impact de la Chaîne phare {#beacon-chain-features} ### Présentation de la preuve d'enjeu {#introducing-staking} -La chaîne phare introduira la [preuve d'enjeu](/developers/docs/consensus-mechanisms/pos/) dans Ethereum. C'est une nouvelle façon pour vous de contribuer à la sécurité d'Ethereum. Pensez-y comme un bien public qui rendra Ethereum plus sain et vous fera gagner plus d'ETH dans le processus. En pratique, vous devrez miser des ETH pour activer le logiciel de validation. En tant que validateur, vous traiterez les transactions et créerez de nouveaux blocs dans la chaîne. +La Chaîne phare introduit la [preuve d'enjeu](/developers/docs/consensus-mechanisms/pos/) dans Ethereum. Cela permet de sécuriser Ethereum et pour les validateurs de gagner plus d'ETH au cours du processus. En pratique, le staking implique de miser des ETH pour activer le logiciel de validation. En tant que validateur, vous exécutez le logiciel qui créé et valide de nouveaux blocs dans la chaîne. -Miser des ETH et devenir validateur est plus simple que de [miner](/developers/docs/mining/) (ce qui sécurise actuellement le réseau). Et nous espérons que cela contribuera à améliorer la sécurité d'Ethereum sur le long terme. Plus le nombre de participants sera élevé sur le réseau, plus celui-ci sera décentralisé et à l'abri des attaques. +La mise en jeu a un objectif similaire au [minage](/developers/docs/mining/), mais diffère à plusieurs titres. Le minage nécessitait d’importantes dépenses initiales sous la forme d’une puissante consommation en matériel et énergie, entraînant des économies d’échelle et promouvant la centralisation. Le minage n'impliquait pas non plus l'obligation de bloquer les actifs en tant que garantie, ce qui limite la capacité du protocole à punir les mauvais acteurs après une attaque. + +La transition vers la preuve d'enjeu rend Ethereum nettement plus sûr et décentralisé par comparaison. Plus le nombre de participants sera élevé sur le réseau, plus celui-ci sera décentralisé et à l'abri des attaques. -Si vous souhaitez devenir validateur et aider à sécuriser la chaîne phare, familiarisez-vous avec le concept de mise en jeu. + Si vous souhaitez devenir validateur et aider à sécuriser Ethereum, familiarisez-vous avec le concept de mise en jeu. -Il s'agit également d'un changement important pour une autre mise à jour : [les chaînes de fragments](/upgrades/sharding/). +### Mise en place de la fragmentation {#setting-up-for-sharding} + +Depuis que la Chaîne phare a fusionné avec le réseau principal Ethereum d'origine, la communauté Ethereum a commencé à chercher à mettre le réseau à niveau. -### Mise en place des chaînes de fragments {#setting-up-for-shard-chains} +La preuve d’enjeu présente l’avantage d’avoir un registre de tous les producteurs de blocs approuvés à un moment donné, chacun avec l’ETH en jeu. Ce registre ouvre la voie à la possibilité de diviser et de conquérir mais de manière fiable et de séparer les responsabilités spécifiques des réseaux. -Après que le réseau principal ait fusionné avec la chaîne phare, la prochaine mise à jour introduira les chaînes de fragments au réseau de preuve de mise à enjeu. Ces "fragments" augmenteront la capacité du réseau et amélioreront la vitesse de transaction en étendant le réseau à 64 blockchains. La chaîne phare est une première étape importante dans l'introduction des chaînes fragment, car elles requièrent des enjeux pour fonctionner en toute sécurité. +Cette responsabilité contraste avec la preuve de travail, où les mineurs n'ont aucune obligation à l'égard du réseau et pourraient arrêter de miner et fermer définitivement leur logiciel de nœud en un instant et sans répercussion. Il n'y a pas non plus de registre des soumissionnaires de blocs connus et aucun moyen fiable de séparer en toute sécurité les responsabilités des réseaux. -Au final, la chaîne phare sera également responsable de l'assignation aléatoire des validateurs pour sécuriser les chaînes fragment. Il s'agit d'un élément clé pour rendre difficile la collusion entre les acteurs et la prise de contrôle d'un fragment. Cela signifie qu'ils ont [ moins d'un milliard de chances](https://medium.com/@chihchengliang/minimum-committee-size-explained-67047111fa20). +[En savoir plus sur la fragmentation](/upgrades/sharding/) -## Relations entre les mises à niveau {#relationship-between-upgrades} +## Relation entre les mises à niveau {#relationship-between-upgrades} -Les mises à niveau d'Ethereum sont plus ou moins interdépendantes. Récapitulons donc comment la chaîne phare affecte les autres mises à niveau. +Les mises à niveau Ethereum sont plus ou moins interdépendantes. Récapitulons donc comment la chaîne phare affecte les autres mises à niveau. -### Réseau principal et chaîne phare {#mainnet-and-beacon-chain} +### La Chaîne phare et La Fusion {#merge-and-beacon-chain} -La chaîne phare existera d'abord séparément du réseau principal Ethereum que nous utilisons aujourd'hui. Mais elles finiront par être connectées. Le plan est de "fusionner" le réseau principal dans le système de preuve à enjeu qui sera contrôlé et coordonné par la chaîne phare. +Au début, La Chaîne phare existait séparément du réseau principal Ethereum, mais ils ont été fusionnés en 2022. - La fusion + La Fusion -### Chaîne phare et chaîne de fragments {#shards-and-beacon-chain} +### Fragments et chaîne phare {#shards-and-beacon-chain} -Les chaînes de fragments ne peuvent s'ajouter en toute sécurité dans l'écosystème Ethereum que s'il existe un mécanisme de consensus sur la preuve de mise à enjeu. La chaîne phare introduira la mise en jeu, ouvrant la voie à la mise à niveau suivante : la chaîne de fragments. +La fragmentation ne peut s'ajouter en toute sécurité dans l'écosystème Ethereum que s'il existe un mécanisme de consensus sur la preuve d'enjeu. La Chaîne phare a introduit la notion de mise en jeu qui a « fusionnée » avec le réseau principal et a ouvert la voie à la fragmentation pour favoriser une plus grande évolutivité d'Ethereum. - Chaînes de fragments + Chaînes de fragments - - -## Interagir avec la chaîne phare {#interact-with-beacon-chain} +## Complément d'information - +[En apprendre plus sur les futures mises à niveau d'Ethereum](/upgrades/vision) [En apprendre plus sur la preuve d'enjeu](/develoeprs/docs/consensus-mechanisms/pos) diff --git a/src/content/translations/fr/upgrades/merge/index.md b/src/content/translations/fr/upgrades/merge/index.md index 5ce5600e869..5cd87ba2529 100644 --- a/src/content/translations/fr/upgrades/merge/index.md +++ b/src/content/translations/fr/upgrades/merge/index.md @@ -1,67 +1,218 @@ --- -title: La fusion -description: En apprendre plus à propos de la fusion - lorsque le réseau principal d'Ethereum rejoint la chaîne phare coordonnée par le système de mise à enjeu. +title: La Fusion +description: En savoir plus sur La Fusion - quand le réseau principal Ethereum adopte la preuve d'enjeu. lang: fr template: upgrade image: ../../../../../assets/upgrades/merge.png -summaryPoint1: Prochainement, le réseau principal actuel « fusionnera » avec le système de preuve d'enjeux de la chaîne phare. -summaryPoint2: Cette évènement marquera la transition complète vers la preuve de mise à enjeu et la fin de la preuve de travail pour Ethereum. -summaryPoint3: Ceci est prévu pour précéder le déploiement de chaînes de fragment. -summaryPoint4: Précédemment, cette étape était appelée « le docking ». +summaryPoint1: Le réseau principal Ethereum utilise la preuve d'enjeu, mais cela n'a pas toujours été le cas. +summaryPoint2: La transition du mécanisme original de preuve de travail à celui de la preuve d'enjeu s'appelle La Fusion. +summaryPoint3: La Fusion fait référence au réseau principal original Ethereum qui fait désormais partie d'une chaîne de blocs distincte de preuve d'enjeu appelée la Chaîne phare et qui existe maintenant sous la forme d'une chaîne unique. +summaryPoint4: La Fusion a réduit la consommation d'énergie d'Ethereum de ~99,95 %. --- - - Cette mise à jour représente le passage officiel au consensus de preuve de mise à enjeu. Cela élimine le besoin de mines à forte intensité énergétique et sécurise le réseau à l'aide de l'éther staker. Une étape vraiment excitante dans la réalisation de la vision d'Ethereum – plus évolutif, plus sécurisé et plus durable. - +## Qu'est-ce que La Fusion ? {#what-is-the-merge} -## Qu'est-ce que la fusion ? {#what-is-the-docking} +La Fusion est la réunion de la couche d'exécution originale d'Ethereum (le réseau principal qui existe depuis [genesis](/history/#frontier)) avec sa nouvelle couche de consensus de preuve d'enjeu ; la Chaîne phare. Cela a permis d'éliminer le besoin de minage, gros consommateur énergétique et de sécuriser le réseau via la mise en jeu d'ETH. Ce fut une étape vraiment passionnante dans la réalisation de la vision Ethereum - plus d'évolutivité, de sécurité et de durabilité. -Il est important de se rappeler que, dans un premier temps, la [chaîne phare](/upgrades/beacon-chain/) sortira séparément du [réseau principal](/glossary/#mainnet) - la chaîne que nous utilisons aujourd'hui. Le réseau principal Ethereum continuera d'être sécurisé par [la preuve de travail](/developers/docs/consensus-mechanisms/pow/), même lorsque la chaîne phare fonctionnera en parallèle en utilisant [la preuve de mise à enjeu](/developers/docs/consensus-mechanisms/pos/). La fusion se fera au moment où ces deux systèmes se réuniront enfin. + -Imaginez qu'Ethereum est un vaisseau spatial qui n’est pas tout à fait prêt pour un voyage interstellaire. Avec la chaîne phare, la communauté a construit un nouveau moteur et une coque renforcée. Quand il sera temps, le vaisseau actuel s'arrimera à ce nouveau système, fusionnant en un seul vaisseau, prêt à parcourir des années lumières et à s'emparer de l'univers. +Initialement, la [Chaîne phare](/upgrades/beacon-chain/) était envoyée séparément du [réseau principal](/glossary/#mainnet). Le réseau principal Ethereum - avec tous ses comptes, ses soldes, ses contrats intelligents et l'état de la blockchain - continue d'être sécurisé par [la preuve de travail](/developers/docs/consensus-mechanisms/pow/), même si la Chaîne phare fonctionne en parallèle en utilisant [la preuve d'enjeu](/developers/docs/consensus-mechanisms/pos/). La Fusion a été le moment où ces deux systèmes se sont finalement combinés, et la preuve de travail a été remplacée de façon permanente par la preuve d'enjeu. -## Fusionner avec le réseau principal {#docking-mainnet} +Imaginez qu'Ethereum est un vaisseau spatial qui a été lancé avant qu'il ne soit prêt pour un voyage interstellaire. Avec la Chaîne phare, la communauté a construit un nouveau moteur et un fuselage renforcé. Après de nombreux tests, il a été temps de remplacer à chaud le nouveau moteur par l'ancien en plein vol. Cela a permis de fusionner le nouveau moteur, plus efficace, avec le vaisseau existant, prêt à franchir plusieurs années-lumière et à conquérir l'univers. -Lorsqu'il sera prêt, le réseau principal Ethereum "fusionnera" à la chaîne phare, devenant son propre fragment qui utilise la preuve d'enjeu au lieu de la [preuve de travail](/developers/docs/consensus-mechanisms/pow/). +## La fusion avec le réseau principal {#merging-with-mainnet} -Mainnet apportera la possibilité d'exécuter des contrats intelligents dans le système de preuve d'enjeu, ainsi que l'historique complet et l'état actuel d'Ethereum, afin de garantir que la transition se déroule en douceur pour tous les détenteurs et utilisateurs d'ETH. +La preuve de travail a sécurisé le réseau principal Ethereum de la genèse jusqu'à La Fusion. Cela a permis à la blockchain Ethereum que nous utilisons tous de voir le jour en juillet 2015 avec toutes ses fonctionnalités familières — transactions, contrats intelligents, comptes, etc. -## Après la fusion {#after-the-merge} +Tout au long de l'histoire d'Ethereum, les développeurs se sont préparés à une éventuelle transition de la preuve de travail à la preuve d'enjeu. Le 1er décembre 2020, la Chaîne phare a été créée comme une blockchain distincte du réseau principal et fonctionnant en parallèle. -Cela marquera la fin de la preuve de travail pour Ethereum, et ouvrira l'ère d'un Ethereum plus durable et plus respectueux de l’environnement. À ce moment, Ethereum fera un pas de plus vers les aspects évolutif, sécurisé et durable décrits dans sa [vision d'Ethereum](/upgrades/vision/). +La Chaîne phare ne traitait pas à l'origine les transactions du réseau principal. Au lieu de cela, elle atteignait le consensus sur son propre état en reconnaissant les validateurs actifs et leurs soldes de compte. Après des tests approfondis, il était temps pour la Chaîne phare de parvenir à un consensus sur les données du monde réel. Après La Fusion, la Chaîne phare est devenue le moteur de consensus pour toutes les données du réseau, y compris les transactions de la couche d'exécution et les soldes des comptes. -Il est important de noter qu'un objectif d'implémentation de la fusion a pour simple objectif d'accélérer la transition de la preuve de travail vers la preuve d'enjeu. Les développeurs concentrent leurs efforts sur cette transition et minimisent les fonctionnalités supplémentaires qui pourraient retarder cet objectif. +La Fusion représente le passage officiel à l'utilisation de la Chaîne phare comme moteur de production de blocs. Le minage n'est plus le moyen de produire des blocs valides. À la place, les validateurs de la preuve d'enjeu assurent ce rôle et sont chargés de traiter la validité de toutes les transactions et de proposer des blocs. -**Cela signifie que certaines fonctionnalités comme la possibilité de retirer l'ETH misé, devront attendre la fin de la fusion.** Les plans intègrent une mise à jour après la fusion appelée « nettoyage » pour répondre aux nécessités de ces fonctionnalités, ce qui devrait se produire rapidement après la fin de la fusion. +Aucun historique n'a été perdu dans la Fusion. Au fur et à mesure que le réseau principal a fusionné avec la Chaîne phare, il a également fusionné la totalité de l'historique transactionnel d'Ethereum. + + +Cette transition vers la preuve d'enjeu a modifié la façon dont l'éther est émis. En savoir plus sur l'émission d'éthers avant et après la Fusion. + + +### Utilisateurs et détenteurs {#users-holders} + +**La Fusion n'a rien changé pour les détenteurs/utilisateurs.** + +_Ceci nécessite d'être répété _: en tant qu'utilisateur ou détenteur d'ETH ou de tout autre actif numérique sur Ethereum, ainsi que pour les stakers qui n'opèrent pas sur les nœuds, **vous n'avez pas besoin de faire quoi que ce soit avec vos fonds ou votre portefeuille pour vous rendre compte de La Fusion.**. L'ETH n'est que l'ETH. Il n'existe rien de tel que « les anciens ETH »/« les nouveaux ETH » ou « ETH1 »/« ETH2 » et les portefeuilles fonctionnent exactement de la même manière après La Fusion qu'auparavant — les personnes vous disant l'inverse sont probablement des escrocs. + +Malgré le passage de la preuve de travail vers la preuve d'enjeu, tout l'historique d'Ethereum depuis sa genèse reste intact et inaltéré depuis ladite transition. Tous les fonds détenus dans votre portefeuille avant La Fusion sont toujours accessibles après La Fusion. **Aucune action n'est requise pour mettre à jour de votre côté.** + +[En savoir plus sur la sécurité et Ethereum](/security/#eth2-token-scam) + +### Opérateurs de nœuds et développeurs de dApps {#node-operators-dapp-developers} + + + +Les principaux éléments d'action incluent : + +1. Exécutez _à la fois_ un client de consensus et un client d'exécution  ; les points de terminaison tiers pour obtenir des données d'exécution ne fonctionnent plus depuis La Fusion. +2. Authentifier à la fois les clients d'exécution et de consensus avec un secret JWT partagé pour qu'ils puissent communiquer en toute sécurité. +3. Définissez une adresse 'destinataire des frais' pour recevoir vos frais de transaction ou MEV gagnés. + +Si vous ne remplissez pas les deux premiers éléments ci-dessus, votre nœud sera considéré comme « hors ligne » jusqu'à ce que les deux couches soient synchronisées et authentifiées. + +Ne pas définir un « destinataire de frais » permettra toujours à votre validateur de se comporter comme d'habitude, mais vous n'allez pas recevoir les frais non brûlés et autres MEV que vous auriez autrement gagnés avec les blocs que votre validateur propose. + + + + +Jusqu'au moment de La Fusion, un client d'exécution (comme Geth, Erigon, Besu ou Nethermind) suffisait pour recevoir, valider correctement et diffuser les blocs créés par le réseau. Après La Fusion, la validité des transactions contenues dans un bloc d'exécution dépend désormais également de la validité du « bloc de consensus » qu'il contient. + +Par conséquent, un nœud Ethereum complet nécessite maintenant à la fois un client d'exécution et un client de consensus. Ces deux clients travaillent ensemble en utilisant une nouvelle API Moteur. L'API Moteur nécessite une authentification à l'aide d'un secret JWT, qui est fourni aux deux clients permettant ainsi une communication sécurisée. + +Les éléments clés d'action incluent le fait : + +- D'installer un client de consensus en plus d'un client d'exécution +- D'authentifier les clients d'exécution et de consensus avec un secret JWT partagé pour qu'ils puissent communiquer en toute sécurité entre eux. + +Si vous ne répondez pas aux exigences ci-dessus, votre nœud apparaîtra comme « hors ligne » jusqu'à ce que les deux couches soient synchronisées et authentifiées. + + + + + +La Fusion a été réalisée avec des changements de consensus, qui impliquent également les changements liés à : + +- La structure de bloc +- Le slot/timing de bloc +- Les changements d'opcode +- Les sources en chaîne aléatoire +- Les concepts de _tête sécurisée_ et de _blocs finalisés_ + +Pour plus d'informations, veuillez consulter cet article de blog de Tim Beiko sur [Comment la Fusion impacte la couche d'application d'Ethereum](https://blog.ethereum.org/2021/11/29/how-the-merge-impacts-app-layer/). + + +## La Fusion et la consommation énergétique {#merge-and-energy} + +La Fusion marque la fin de la preuve de travail pour Ethereum, et le début de l'ère d'un Ethereum plus durable et plus écologique. La consommation énergétique d'Ethereum a chuté d'environ 99,95 %, faisant de l'Ethereum une blockchain verte. Apprenez-en plus à propos de [la consommation énergétique d'Ethereum](/energy-consumption/). + +## La Fusion et la fragmentation {#merge-and-scaling} + +La Fusion permet également de préparer le terrain pour d'autres améliorations des mises à niveau non envisageables avec la preuve de travail, en rapprochant Ethereum d'une étape de la réalisation d'évolutivité, de sécurité et de durabilité décrite dans le [plan de développement d'Ethereum](/upgrades/vision/). + +## Les idées fausses sur La Fusion {#misconceptions} + + +Il existe deux types de nœuds sur Ethereum : ceux qui peuvent proposer de nouveaux blocs, et ceux qui ne le peuvent pas. + +Les nœuds qui peuvent proposer des blocs représentent une petite fraction du nombre total de nœuds existants. Cette catégorie inclut les nœuds de minage sous preuve de travail (PoW) et les nœuds des validateurs sous preuve d'enjeu (PoS). Cette catégorie nécessite d'engager des ressources économiques (que ce soient le pouvoir d'hachage des GPU pour la preuve de travail ou des ETH mis en jeu par les validateurs en preuve d'enjeu) afin de pouvoir, occasionnellement, proposer un nouveau bloc et gagner les récompenses offertes par le protocole. + +Les autres nœuds sur le réseau (la majorité en fait) ne nécessitent pas d'engager des ressources économiques, exception faite d'un ordinateur grand public bénéficiant d'un ou deux TO de stockage disponible et d'une connexion internet. Ces nœuds ne proposent pas de blocs mais ils jouent quand même un rôle critique dans la sécurité du réseau, en tenant tous les promoteurs responsables de l'énumération des blocs déjà existants et de la vérification de la validité des nouveaux blocs, conformément aux règles de consensus du réseau. Si le bloc est valide, le noeud permettra sa diffusion sur le réseau. Si le bloc n'est pas valable pour une raison quelconque, le logiciel ne le considérera pas valable et empêchera sa propagation. + +Exécuter un noeud ne produisant pas de bloc est possible pour quiconque et ce, quel que soit le mécanisme de consensus (preuve de travail ou preuve d'enjeu). C'est même fortement encouragé pour l'ensemble des utilisateurs qui en ont les moyens. L'exécution d'un noeud est extrêmement précieuse pour Ethereum et permet à chaque personne qui opère son propre noeud de bénéficier d'avantages supplémentaires en matière de sécurité, de vie privée, et de résistance à la censure améliorées. + +La possibilité pour quiconque de pouvoir exécuter son propre noeud est absolument essentiel afin de maintenir la décentralisation du réseau Ethereum. + +[En savoir plus sur l'exécution de votre propre noeud](/run-a-node/) + + + + +Les frais de gaz sont le produit des demandes envoyées au réseau par rapport à sa capacité. La Fusion a rendu obsolète l'utilisation de la preuve de travail pour une transition vers le consensus par la preuve d'enjeu, mais elle n'a pas modifié de manière significative les paramètres qui influencent directement la capacité ou le débit du réseau. + +Avec une feuille de route axée sur les rollups, les efforts sont concentrés sur la mise à l'échelle de l'activité des utilisateurs sur la couche 2, tout en activant le réseau principal de couche 1 en tant que couche de règlement décentralisée, sécurisée et optimisée pour le stockage de données cumulatives afin de rendre les transactions rollups exponentiellement moins chères. La transition vers la preuve d'enjeu est une étape préalable essentielle afin de réaliser cela. [En savoir plus sur le gaz et les frais.](/developers/docs/gas/) + + + +La « vitesse » d'une transaction peut être mesurée de différentes façons, y compris le délai à inclure dans un bloc et le temps pour la finalisation. Ces deux facteurs sont légèrement modifiés, mais pas dans des proportions suffisantes pour que les utilisateurs le remarquent. + +Historiquement, concernant la preuve de travail, l'objectif était de permettre la création d'un nouveau bloc toutes les 13,3 secondes. Avec la preuve d'enjeu, cette production sera effective toutes les 12 secondes, ce qui constituera à chaque fois une opportunité pour un validateur de publier un nouveau bloc. La plupart des slots ont des blocs, mais pas nécessairement tous (lorsqu'un validateur est hors ligne). Avec la preuve d'enjeu, les blocs sont produits ~10 % plus fréquemment qu'avec la preuve de travail. Il s'agit d'un changement trop insignifiant pour qu'il soit réellement perçu par les utilisateurs. + +La preuve d’enjeu a introduit le concept de finalité des transactions qui n’existait pas auparavant. Avec la de preuve de travail, la possibilité d'inverser un bloc devient exponentiellement plus difficile avec chaque nouveau bloc créé, mais elle n'atteindra jamais zéro. Avec la preuve d'enjeu, les blocs sont regroupés dans des périodes (6,4 minutes de temps contenant 32 chances pour les blocs) sur lesquelles les validateurs votent. Lorsqu'une période se termine, les validateurs se prononcent sur la question de savoir s'il faut considérer la période comme « justifiée ». Si les validateurs acceptent de justifier la période, elle sera finalisée lors de la prochaine période. L'annulation des transactions finalisées n'est pas viable économiquement, car cela nécessiterait l'obtention et la combustion de plus d'un tiers du total de l'ETH misé. + + + + +Les récompenses d'ETH et de mise en jeu continuent d'être verrouillées sans possibilité d'être retirées. Les retraits sont prévus pour la prochaine mise à niveau Shanghai. + + + +Cela peut sembler contre-intuitif, au regard des éléments ci-dessus, dans la mesure où les retraits ne sont pas activés jusqu'à la mise à niveau Shanghai, mais les validateurs DOIVENT avoir un accès immédiat aux récompenses de frais/MEV gagnés lors des propositions de bloc. + +Le protocole émet l'ETH comme récompense à destination des validateurs pour avoir contribué au consensus. La couche de consensus représente l'ETH nouvellement émis, où un validateur a une adresse unique qui contient son ETH mis en jeu ainsi que ses récompenses de protocole. Ces ETH sont bloqués jusqu'à la mise à niveau Shanghai. + +L'ETH pour la couche d'exécution est comptabilisé séparément de la couche de consensus. Lorsque les utilisateurs exécutent des transactions sur le réseau principal Ethereum, ils doivent s'acquitter des frais de gaz en ETH, y compris une commission pour le validateur. Cet ETH se trouve déjà sur la couche d'exécution, n'est PAS nouvellement émis par le protocole, et est disponible immédiatement pour le validateur (étant donné qu'une adresse appropriée de « destinataire de frais » est fournie au logiciel client). + + + +Depuis que les retraits ont été activés suite à la mise à niveau Shanghai, tous les validateurs seront incités à retirer leur solde d'ETH si celui-ci est supérieur à 32, ces fonds ne permettant pas de générer un rendement complémentaire et qu'ils seront par ailleurs, verrouillés. En fonction de l'APR (déterminé par l'ETH total mis en jeu), ils peuvent être encouragés à quitter leur(s) validateur(s) pour récupérer leur solde en entier ou potentiellement en miser encore plus en utilisant leurs récompenses pour obtenir plus de rendement. + +Une mise en garde importante et nécessaire ici, les sorties complètes de validateur sont limitées par le protocole. Ainsi, uniquement six validateurs peuvent sortir par période (chaques 6,4 minutes, et ainsi 1 350 fois par jour, ou seulement environ 43 200 ETH par jour sur plus de 10 millions d'ETH misés). Cette limite de taux s’ajuste en fonction du total d'ETH mis en jeu et empêche un exode massif des fonds. De plus, il empêche un attaquant potentiel d'utiliser ses ETH mis en jeu pour commettre une attaque normalement punissable tout en retirant sa mise avant que le protocole ne puisse appliquer la sanction. + +L'APR a été rendue dynamique intentionnellement, afin de permettre aux stakers de trouver un équilibre concernant le montant de la rémunération qu'ils souhaitent percevoir pour aider à sécuriser le réseau. Lorsque les retraits seront activés et si le taux est trop bas, les validateurs se retireront à un taux limité par le protocole. Peu à peu, cela permettra d'élever l'APR pour tous ceux qui restent, attirant encore une fois de nouveaux stakers ou en permettant le retour d'anciens validateurs. + + +## Que devient « Eth2 » ? {#eth2} + +Le terme « Eth2 » est obsolète. Après avoir fusionné « Eth1 » et « Eth2 » dans une seule chaîne, il n'est plus nécessaire de faire la distinction entre deux réseaux Ethereum ; il n'existe plus qu'Ethereum. + +Pour limiter la confusion, la communauté a mis à jour ces termes : + +- « Eth1 » est maintenant « la couche d'exécution », qui gère les transactions et les exécutions. +- « Eth2 » est maintenant la « couche de consensus », qui gère le consensus de la preuve d'enjeu. + +Ces mises à jour d'ordre terminologique ne concernent que les conventions de nommage ; les objectifs et la feuille de route d'Ethereum restent inchangés. + +[En savoir plus sur le changement de nom « Eth2 »](https://blog.ethereum.org/2022/01/24/the-great-eth2-renaming/) ## Relation entre les mises à niveau {#relationship-between-upgrades} -Les mises à niveau d'Ethereum sont plus ou moins interdépendantes. Alors résumons comment la fusion est liée aux autres mises à niveau. +Les mises à niveau Ethereum sont plus ou moins interdépendantes. Alors résumons comment la fusion est liée aux autres mises à niveau. + +### La Fusion et la chaîne phare {#merge-and-beacon-chain} -### La fusion et la chaîne phare {#docking-and-beacon-chain} +La Fusion représente l'adoption formelle de la Chaîne phare comme nouvelle couche de consensus pour la couche d'exécution sur le réseau principal d'origine. Depuis La Fusion, les validateurs sont affectés au réseau principal sécurisé d'Ethereum et le minage par [preuve de travail](/developers/docs/consensus-mechanisms/pow/) n'est plus un moyen valide de production de blocs. -Une fois la fusion réalisée, les validateurs auront en charge la validation du réseau principal Ethereum. [Miner](/developers/docs/consensus-mechanisms/pow/mining/) ne sera plus nécessaire, de sorte que les mineurs investiront probablement leurs gains dans le nouveau système de preuve d'enjeu. +Les blocs sont dès lors proposés par validation des nœuds qui ont misés l'ETH en échange du droit de participer au consensus. Ces mises à niveau permettent de préparer le terrain pour de futures améliorations d'évolutivité, y compris la fragmentation. - La chaîne phare + La Chaîne phare -### La fusion et le nettoyage post-fusion {#merge-and-post-merge-cleanup} +### La Fusion et la mise à niveau de Shanghai {#merge-and-shanghai} -Immédiatement après la fusion, certaines fonctionnalités comme le retrait de l'ETH misé ne seront pas encore prises en charge. Celles-ci sont prévues dans le cadre d'une mise à jour séparée qui suivra peu après la fusion. +Afin de simplifier et de permettre une transition aussi rapide et réussie que possible vers le système de preuve d'enjeu, la mise à jour vers La Fusion n'intègre pas certaines fonctionnalités anticipées telles que, par exemple, la possibilité de retirer les ETH bloqués sur la chaîne phare. La prochaine mise à niveau de Shanghai qui suivra la Fusion intégrera la possibilité de retirer les ETH bloqués sur chaîne phare. -Restez à jour avec le [Blog de Recherche et Développement EF](https://blog.ethereum.org/category/research-and-development/). Pour ceux qui sont curieux, apprenez-en plus sur [Ce qui se passe après la fusion](https://youtu.be/7ggwLccuN5s?t=101), une présentation par Vitalik lors de l'événement ETHGlobal d'avril 2021. +Restez à jour avec [la question de la planification de la mise à jour Shanghai sur GitHub](https://github.com/ethereum/pm/issues/450) ou le [Blog EF Recherche et Développement](https://blog.ethereum.org/category/research-and-development/). Pour ceux qui sont curieux, apprenez-en plus sur [Ce qui se passe après la fusion](https://youtu.be/7ggwLccuN5s?t=101), une présentation par Vitalik lors de l'événement ETHGlobal d'avril 2021. -### La fusion et les chaînes de fragments {#docking-and-shard-chains} +### La Fusion et la fragmentation {#merge-and-data-sharding} -À l'origine, le plan était de travailler sur des chaînes de fragments avant la fusion – pour aborder l'évolutivité. Cependant, avec l'explosion [des solutions de mise à l'échelle par la couche 2](/developers/docs/scaling/#layer-2-scaling), la priorité s'est déplacée vers le passage de la preuve de travail vers la preuve d'enjeu au travers de La fusion. +Initialement, l'objectif était de travailler sur la fragmentation avant la Fusion afin d'optimiser l'évolutivité d'Ethereum. Cela dit, avec l'expansion des [solutions d'évolutivité de la couche 2](/layer-2/), la priorité a été de passer de la preuve de travail à la preuve d'enjeu. -Il s'agira d'une évaluation continue de la part de la communauté quant à la potentielle nécessité de plusieurs séries de chaînes fragmentées afin de permettre une évolutivité sans fin. +Les plans liés à la fragmentation évoluent rapidement, mais compte tenu du développement et du succès rencontré par les technologies de couche 2 visant à augmenter l'évolutivité de l'exécution des transactions, ces plans de fragmentation ont été modifiés afin de trouver la meilleure manière de répartir le poids lié au stockage des données d'appel comprimées émanant des contrats roll-up et de permettre la croissance exponentielle du réseau. Cela ne serait pas possible sans opérer d'abord une transition vers le système de preuve d'enjeu. - Chaines de fragments + Fragmentation -## En savoir plus {#read-more} +## Complément d'information {#further-reading} diff --git a/src/content/translations/fr/upgrades/sharding/index.md b/src/content/translations/fr/upgrades/sharding/index.md index d7fb42a1b41..c10982c5a34 100644 --- a/src/content/translations/fr/upgrades/sharding/index.md +++ b/src/content/translations/fr/upgrades/sharding/index.md @@ -1,22 +1,22 @@ --- -title: Chaînes de fragments -description: En savoir plus sur les chaînes de fragments, ces fragmentations du réseau qui donnent à Ethereum une plus grande capacité de transaction et facilitent son exécution. +title: Fragmentation +description: Apprenez-en plus sur la fragmentation - la division et la répartition des données chargées nécessaires pour offrir à Ethereum des capacités supérieures de transaction et faciliter leur exécution. lang: fr template: upgrade image: ../../../../../assets/upgrades/newrings.png summaryPoint1: La fragmentation est une mise à niveau en plusieurs phases visant à améliorer l'évolutivité et la capacité d'Ethereum. -summaryPoint2: Les chaînes de fragments fournissent des couches de stockage supplémentaires, moins chères, pour stocker les données des applications et rollups. +summaryPoint2: La fragmentation assure la distribution sécurisée comme exigée en matière de stockage des données, permettant la création de rollups encore moins chers et ainsi de faciliter le fonctionnement des nœuds. summaryPoint3: Elles permettent aux solutions de couche 2 de faibles frais de transaction tout en profitant de la sécurité d'Ethereum. -summaryPoint4: Cette mise à niveau est prévue après la fusion du réseau principal avec la chaîne phare. +summaryPoint4: Cette mise à niveau a pris une place plus importante depuis qu'Ethereum est passé à la preuve d'enjeu. --- - Les chaînes de fragments devraient être lancées courant 2022, en fonction de la rapidité avec laquelle le travail progresse après le lancement de la fusion. Ces fragments donneront à Ethereum une plus grande capacité à stocker et à accéder aux données, mais ils ne seront pas utilisés pour exécuter du code. + La fragmentation pourrait intervenir courant 2023. La fragmentation offrira à Ethereum une plus grande capacité à stocker et à accéder aux données, mais elle ne sera pas utilisée pour l'exécution du code. ## Qu'est ce que la fragmentation ? {#what-is-sharding} -La fragmentation (sharding) est le processus qui consiste à diviser une base de données horizontalement pour répartir la charge - c'est un concept courant en informatique. Dans le cadre d'Ethereum, cette fragmentation permettra de réduire l'encombrement du réseau en augmentant le nombre de transactions par seconde grâce à la création de nouvelles chaînes, appelées "fragments". +La fragmentation (sharding) est le processus qui consiste à diviser une base de données horizontalement pour répartir la charge - c'est un concept courant en informatique. Dans le contexte Ethereum, la fragmentation fonctionnera de façon synergique avec les [rollups de couche 2](/layer-2/) en divisant le fardeau de la gestion de la grande quantité de données nécessaire pour les rollups sur l'ensemble du réseau. Cela continuera à réduire la congestion du réseau et à augmenter les transactions par seconde. C'est important pour des raisons autres que l'évolutivité. @@ -24,32 +24,31 @@ C'est important pour des raisons autres que l'évolutivité. ### Tout le monde peut exécuter un nœud {#everyone-can-run-a-node} -La fragmentation est un bon moyen de dimensionner si vous souhaitez que les choses restent décentralisées, car l'alternative consiste à mettre à l'échelle en augmentant la taille de la base de données existante. Cela rendrait Ethereum moins accessible aux validateurs de réseau car ils auraient besoin d'ordinateurs puissants et coûteux. Avec les chaînes de fragments, les validateurs n'ont besoin que de stocker/d'exécuter les données du fragment qu'ils valident, et non de l'ensemble du réseau (comme ce qui se passe aujourd'hui). Cela accélère les choses et réduit considérablement les besoins en matériel. +La fragmentation est un bon moyen de dimensionner si vous souhaitez que les choses restent décentralisées, car l'alternative consiste à mettre à l'échelle en augmentant la taille de la base de données existante. Cela rendrait Ethereum moins accessible aux validateurs de réseau car ils auraient besoin d'ordinateurs puissants et coûteux. Avec la fragmentation, les validateurs ne seront plus tenus de stocker toutes ces données eux-mêmes, mais à la place pourront utiliser des techniques de données pour confirmer que les données ont été rendues disponibles par le réseau dans son ensemble. Cela réduit considérablement le coût de stockage des données sur la couche 1 en réduisant les exigences matérielles. ### Plus de participation au réseau {#more-network-participation} La fragmentation vous permettra tôt ou tard de faire fonctionner Ethereum sur un ordinateur portable ou un téléphone personnel. Ainsi, un plus grand nombre de personnes devraient pouvoir participer, ou lancer des [clients](/developers/docs/nodes-and-clients/), dans un fragment Ethereum. La sécurité sera renforcée car plus le réseau est décentralisé, plus la surface d'attaque est réduite. -Les exigences en matière de matériel étant moins élevées, la fragmentation permettra plus facilement l'exécution des [clients](/developers/docs/nodes-and-clients/) par vous-même, sans avoir recours à aucun service intermédiaire. Et si vous le pouvez, pensez à exécuter plusieurs clients. Cela peut contribuer à la santé du réseau en réduisant davantage les points de défaillance. [Exécuter un client de chaîne phare](/upgrades/get-involved/) +Les exigences en matière de matériel étant moins élevées, la fragmentation permettra plus facilement l'exécution des [clients](/developers/docs/nodes-and-clients/) par vous-même, sans avoir recours à aucun service intermédiaire. Et si vous le pouvez, pensez à exécuter plusieurs clients. Cela peut contribuer à la santé du réseau en réduisant davantage les points de défaillance.
- - Tout d'abord, vous allez devoir exécuter un client de réseau principal en même temps que le client de chaîne phare. Le tableau de bord vous guidera à travers les exigences matérielles et les processus. Vous pouvez également utiliser une API backend. + + Vous devrez exécuter un client d'exécution en même temps que votre client de consensus. Le tableau de bord vous guidera à travers les exigences matérielles et les processus. ## Chaînes de fragments version 1 : disponibilité des données {#data-availability} + + Remarque : Les plans pour la fragmentation ont évolué au fur et à mesure que des chemins plus efficaces de mise à l'échelle ont été développés. Le « Danksharding » est une nouvelle approche de fragmentation, qui n'utilise pas le concept de « chaînes » fragmentées mais utilise à la place des « blobs » de fragmentation pour séparer les données, avec « l'échantillonnage de données disponibles » pour confirmer que toutes les données ont été rendues disponibles. Ce changement de plan résout le même problème initial.

+ Les détails ci-dessous peuvent être obsolètes avec les derniers plans de développement. Pendant les mises à jour, découvrez Le Guide du Hitchhiker pour Ethereum pour une excellente découverte de la feuille de route d'Ethereum. +
+ Lorsque les premières chaînes de fragments seront expédiées, elles ne fourniront que des données supplémentaires au réseau. Elles ne traiteront pas les transactions ni les contrats intelligents. Mais elles offriront tout de même des améliorations incroyables en matière de transactions par seconde lorsqu'elles seront combinées avec les rollups. Les Rollups sont une technologie de "layer 2" qui existe aujourd'hui. Ils permettent aux DApps de regrouper ou de "lancer" des transactions en une seule transaction hors chaîne, de générer une preuve cryptographique et de la soumettre ensuite à la chaîne. Cela réduit les données nécessaires pour une transaction. Combinez ceci avec toutes les données supplémentaires fournies par les fragments et vous obtenez 100 000 transactions par seconde. - - Étant donné les progrès récents dans la recherche et le développement des solutions de passage à l'échelle par la couche 2, La Fusion a été priorisée par rapport aux chaînes partitionnées. Celles-ci seront au centre des préoccupations à la suite de la transition du réseau principal aux preuves de mise à enjeu. - -[En savoir plus sur les rollups](/developers/docs/scaling/#rollups) - - ## Chaînes de fragments version 2 : exécution de code {#code-execution} Le plan a toujours été d'ajouter des fonctionnalités supplémentaires aux fragments, pour les rendre plus similaires au réseau principal [Ethereum](/glossary/#mainnet) actuel. Cela leur permettra de stocker et d'exécuter du code et de gérer les transactions, car chaque fragment contiendra un ensemble unique de contrats intelligents et de soldes de comptes. La communication transversale permettra de réaliser des transactions entre les fragments. @@ -68,7 +67,7 @@ Cela signifierait que nous ne donnerions pas aux fragments la capacité de gére #### 2. Avoir des fragments d'exécution {#some-execution-shards} -Peut-être y a-t-il un compromis où nous n'avons pas besoin de tous les fragments (64 sont prévus pour l'instant) pour être plus intelligents. Nous pourrions simplement ajouter cette fonctionnalité à quelques fragments, et pas aux autres. Cela pourrait accélérer l'implémentation. +Il existe peut-être un compromis où nous n’avons pas besoin de tous les fragments pour être plus intelligents. Nous pourrions simplement ajouter cette fonctionnalité à quelques fragments, et pas aux autres. Cela pourrait accélérer l'implémentation. #### 3. Attendre de pouvoir faire des snarks Zero Knowledge (ZK) {#wait-for-zk-snarks} @@ -86,25 +85,9 @@ Ce point de discussion reste actif. Nous mettrons à jour ces pages dès que nou Les mises à niveau d'Ethereum sont plus ou moins interdépendantes. Récapitulons donc comment les chaînes de fragments sont liées aux autres mises à niveau. -### Fragments et chaîne phare {#shards-and-beacon-chain} - -La chaîne phare contient toute la logique permettant de sécuriser et de synchroniser les fragments de façon sécurisée. La chaîne phare coordinera les validateurs dans le réseau, en les assignant à des fragments sur lesquels ils doivent travailler. De plus, elle facilitera la communication entre les fragments en recevant et en stockant des données sur les transactions qui sont accessibles par d'autres fragments. Cela donnera aux fragments un aperçu de l'état d'Ethereum pour garder tout à jour. - - - La chaîne phare - - -### Les fragments et la fusion {#shards-and-docking} - -Au même moment où des fragments supplémentaires sont ajoutés, le réseau principal d'Ethereum sera déjà sécurisé par la chaîne phare à l'aide d'une preuve de mise à enjeu. Cela autorise un réseau principal actif à créer des chaînes de fragments, alimentées par les solutions de la couche 2 qui renforcent l'évolutivité. - -Reste à voir si le réseau principal existera en tant que seul fragment "intelligent" capable de gérer l'exécution de code – mais autrement, une décision pour étendre les fragments pourra être envisagée en cas de besoin. - - - La fusion - +### La fragmentation et la blockchain Ethereum {#shards-and-blockchain} - +La logique de sécurisation et de synchronisation des fragments est intégrée dans les clients Ethereum qui construisent la blockchain. Les validateurs du réseau seront assignés aux fragments sur lesquels travailler. Les fragments auront accès à des instantanés d'autres fragments pour qu'ils puissent construire une vue de l'état d'Ethereum pour garder tout à jour. ### En savoir plus {#read-more} diff --git a/src/content/translations/hi/nft/index.md b/src/content/translations/hi/nft/index.md index 31311fea442..ee5b857fb4e 100644 --- a/src/content/translations/hi/nft/index.md +++ b/src/content/translations/hi/nft/index.md @@ -4,7 +4,6 @@ description: एथेरियम पर NFT का अवलोकन lang: hi template: use-cases emoji: ":frame_with_picture:" -sidebar: true sidebarDepth: 2 image: ../../../../assets/infrastructure_transparent.png alt: होलोग्राम के माध्यम से एक Eth लोगो प्रदर्शित किया जा रहा है। diff --git a/src/content/translations/ja/bridges/index.md b/src/content/translations/ja/bridges/index.md index 5dca1a154f1..cbe1420a23f 100644 --- a/src/content/translations/ja/bridges/index.md +++ b/src/content/translations/ja/bridges/index.md @@ -2,7 +2,6 @@ title: ブロックチェーンブリッジの紹介 description: 異なるブロックチェーン間の資金移動を可能にするブリッジ lang: ja -sidebar: true --- # ブロックチェーンブリッジ {#prerequisites} diff --git a/src/content/translations/ko/bridges/index.md b/src/content/translations/ko/bridges/index.md new file mode 100644 index 00000000000..78a4f66a323 --- /dev/null +++ b/src/content/translations/ko/bridges/index.md @@ -0,0 +1,129 @@ +--- +title: 블록체인 브리지에 대한 소개 +description: 브리지를 통해 사용자는 자금을 다른 블록체인으로 옮길 수 있음 +lang: ko +--- + +# 블록체인 브리지 {#prerequisites} + +_웹3는 L1 블록체인과 L2 확장 솔루션의 생태계로 진화했으며, 각각은 고유한 기능과 장단점을 지니고 있습니다. 블록체인 프로토콜의 수가 증가함에 따라, [체인 간에 자금을 이동하기 위한 수요]() 또한 증가하고 있습니다. 이를 충족시키기 위해 브리지가 필요합니다._ + + + +## 브리지란 무엇인가요? {#what-are-bridges} + +블록체인 브리지는 현실에서의 브리지(다리)와 비슷한 역할을 합니다. 현실에서의 브리지가 서로 다른 두 위치를 이어 주는 것처럼, 블록체인 브리지는 두 개의 블록체인 생태계를 연결합니다. 브리지는 정보와 자산을 전송하여 블록체인 간의 통신을 원활하게 합니다. + +다음 예시를 살펴보겠습니다. + +미국에 살고 있으며 유럽 여행을 계획하고 있다고 가정해 봅시다. USD 화폐가 있지만, 여행지에서는 EUR 화폐를 사용해야 합니다. USD를 EUR로 바꾸려면 약간의 수수료를 지불하고 환전소를 이용할 수 있습니다. + +그렇다면 가지고 있는 자금을 다른 블록체인의 자금으로 환전하여 사용하려면 어떻게 해야 할까요? 예를 들어 이더리움 메인넷의 ETH를 [아비트럼](https://arbitrum.io/)의 ETH로 환전하고 싶을 수 있습니다. 이러한 경우, EUR 화폐를 위한 환전소가 있었던 것처럼 이더리움에서 아비트럼으로 ETH를 이동하기 위한 메커니즘이 필요합니다. 브리지는 이러한 거래를 가능하게 합니다. 상단 예시의 경우, 아비트럼에는 메인넷의 ETH를 아비트럼으로 이전할 수 있는 [자체적인 브리지](https://bridge.arbitrum.io/)가 있습니다. + +## 브리지가 왜 필요한가요? {#why-do-we-need-bridges} + +모든 블록체인에는 한계가 있습니다. 수요에 맞춰 이더리움을 확장하려면 롤업이 필요합니다. 반면, Solana 및 Avalanche 등의 L1은 더 많은 요청을 처리할 수 있도록 다르게 설계되었지만 탈중앙화를 위한 비용이 따릅니다. + +앞서 알아본 바와 같이, 모든 블록체인은 독립된 환경에서 개발되며 서로 다른 규칙과 합의 메커니즘이 작용합니다. 즉, 블록체인은 자체적으로 통신할 수 없으며 토큰은 블록체인 간에 자유롭게 이동할 수 없습니다. + +브리지는 블록체인을 연결하고, 블록체인 간에 정보 및 토큰이 교환될 수 있게 합니다. + +브리지를 통해 다음 작업을 할 수 있습니다. + +- 블록체인 간의 정보 및 자산의 이동 +- 디앱의 다양한 블록체인 활용도 증가를 통한 기능의 강화(프로토콜에 혁신을 위한 더 많은 설계 여력이 생김) +- 사용자의 새로운 플랫폼 및 다른 체인의 장점에 대한 접근성 및 활용도 증가 +- 서로 다른 블록체인 생태계의 개발자들이 협업하고 사용자를 위해 새로운 플랫폼을 구축 + + + +## 브리지 사용 사례 {#bridge-use-cases} + +다음은 브리지를 사용할 수 있는 몇 가지 시나리오입니다. + +### 보다 저렴한 거래 수수료 {#transaction-fees} + +이더리움 메인넷에 ETH가 있지만 다른 디앱을 사용하기 위해 더 낮은 거래 수수료를 찾고 있다고 가정해 봅시다. 이러한 경우, ETH를 메인넷에서 이더리움 L2 롤업으로 브리징함으로써 더 저렴한 거래 수수료를 지불할 수 있습니다. + +### 다른 블록체인 상의 디앱 {#dapps-other-chains} + +USDT를 빌려주는 플랫폼으로 이더리움 메인넷의 Aave를 사용하고 있는 경우, Polygon에서 Aave를 사용하여 USDT를 대출하면 이자율이 더 높습니다. + +### 블록체인 생태계 살펴보기 {#explore-ecosystems} + +이더리움 메인넷에 ETH를 보유하고 있을 때 다른 네이티브 디앱을 사용하기 위해 알트 L1을 살펴보고자 할 수 있습니다. 이러한 경우, 브리지를 사용하여 이더리움 메인넷의 ETH를 알트 L1으로 이전할 수 있습니다. + +### 네이티브 크립토 자산 소유 {#own-native} + +네이티브 비트코인(BTC)을 소유하고 있지만 이더리움 메인넷에만 자금이 있다고 가정해 봅시다. 이더리움에서 BTC에 연결하기 위해 랩트비트코인(WBTC)을 구매할 수 있습니다. 다만 WBTC는 이더리움 네트워크 기반인 ERC-20 토큰이며, 비트코인 블록체인 상의 원본 화폐가 아닌, 이더리움 버전의 비트코인입니다. 네이티브 BTC를 소유하려면 브리지를 사용하여 이더리움의 자산을 비트코인으로 옮겨야 합니다. 이는 WBTC를 연결하고 네이티브 BTC로 변환합니다. 또는 BTC를 소유하고 있을 때 이더리움 디파이 프로토콜에서 사용하고자 할 수도 있습니다. 이 또한 브리지를 통해 가능하며, BTC를 WBTC로 전환하여 이더리움에서 자금으로 사용할 수 있습니다. + + + 상단의 모든 작업은 중앙화 거래소에서도 실행할 수 있습니다. 하지만 자금이 이미 거래소에 등록되어 있지 않으면 여러 단계를 거쳐야 하며, 브리지를 사용하는 것이 더욱 간단합니다. + + + + +## 브리지의 종류 {#types-of-bridge} + +브리지는 설계 방법 및 그 정교함에 따라 여러 가지로 나뉩니다. 일반적으로 브리지는 신뢰할 수 있는 브리지와 신뢰할 수 없는 브리지의 두 개의 카테고리로 나뉩니다. + +| 특정 주체 신뢰 브리지 | 특정 주체 신뢰 불필요 브리지 | +| ------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | +| 신뢰 브리지는 작업에 대해 중앙 기관이나 시스템에 의존합니다. | 신뢰 불필요 브리지는 스마트 계약과 알고리즘을 활용합니다. | +| 자금의 보관과 브리지의 보안에 있어 특정 주체에 대한 신뢰를 가정합니다. 사용자는 대부분 브리지 운영자의 평판에 의존합니다. | 특정 주체에 대한 신뢰가 필요하지 않습니다. 즉, 브리지의 보안은 적용되는 블록체인의 보안과 동일합니다. | +| 사용자는 가상 화폐 자산에 대한 제어권을 포기해야 합니다. | 스마트 계약을 통해 사용자는 자금에 대한 제어 권한을 그대로 유지합니다. | + +간단히 말하면, 특정 주체 신뢰 브리지는 신뢰에 대한 가정을 필요로 하는 반면, 신뢰 불필요 브리지는 신뢰가 최소화되어 있고 기반이 되는 도메인을 넘어서는 부분(제3자 등)에 대한 신뢰와 가정을 필요로 하지 않습니다. 주요 용어의 뜻은 다음과 같습니다. + +- **신뢰 불필요**: 기반이 되는 블록체인과 동일한 보안성을 지닙니다. [이 문서에서 Arjun Bhuptani](https://medium.com/connext/the-interoperability-trilemma-657c2cf69f17) 님의 설명을 참고하세요. +- **신뢰 가정**: 기반이 되는 도메인의 보안에서 벗어나 시스템에 외부 검증자를 추가하므로 가상 화폐 경제적 측면에서는 덜 안전합니다. + +두 접근 방식의 주요 차이점을 이해하기 위해 예시를 살펴보겠습니다. + +현재 공항 보안 검색대에 있다고 가정해 보겠습니다. 여기에는 두 가지 확인 방법이 있습니다. + +1. 보안 검색 요원이 진행: 탑승 수속 전 보안 요원이 직접 수동으로 표와 신원 등 상세 사항을 확인합니다. +2. 셀프 체크인: 비행 정보를 입력한 후 정보가 확인되면 탑승권을 출력하는 기계가 진행합니다. + +보안 검색 요원 진행 방식은 요원과 같은 제3자에게 의지하므로 신뢰 가정 모델과 유사합니다. 사용자는 해당 요원이 올바른 결정을 내리고 개인 정보를 적합하게 다룰 것이라고 신뢰합니다. + +셀프 체크인은 운영자의 역할을 제거하고 기술을 사용하므로 신뢰 불필요 모델과 유사합니다. 사용자는 언제든지 데이터를 제어할 수 있으며, 자신의 개인 정보에 대해 제3자를 신뢰하지 않아도 됩니다. + +다양한 브리지 솔루션이 이 두 개의 극명한 모델 중에서 채택하고 있으며, 신뢰 정도는 각각 다릅니다. + + + +## 브리지 사용의 리스크 {#bridge-risk} + +브리지는 아직 초기 개발 단계입니다. 최적화된 브리지 디자인은 아직 발견되지 않았을 가능성이 큽니다. 어느 브리지에서 작업하더라도 리스크가 존재합니다. + +- **스마트 계약 리스크:** 사용자가 자금을 잃을 수도 있는 버그가 코드 상에 존재할 수 있습니다. +- **기술 리스크:** 소프트웨어 오류, 코드의 버그, 사용자 실수, 스팸, 해킹 등 다양한 요인이 사용자를 방해할 수 있습니다. + +특히 특정 주체 신뢰 브리지의 경우, 신뢰 가정을 추가하므로 다음과 같은 추가 위험을 수반합니다. + +- **검열 리스크:** 브리지 운영자는 이론상 사용자가 브리지를 통해 자산을 이동하지 못하게 할 수 있습니다. +- **보관 리스크:** 브리지 운영자가 사용자의 자금을 훔치기 위해 공모할 수 있습니다. + +사용자의 자금은 다음과 같은 경우에 리스크에 노출됩니다. + +- 스마트 계약 상에 버그가 존재하는 경우 +- 사용자가 오류를 발생하는 경우 +- 기반이 되는 블록체인이 해킹당하는 경우 +- 브리지 운영자가 신뢰 브리지를 악의적으로 사용하려는 경우 +- 브리지가 해킹당하는 경우 + +최근 해킹의 예시로는 Solana의 웜홀 브리지 해킹이 있으며, [120,000개의 wETH(3.25억 USD)가 손실되었습니다](https://rekt.news/wormhole-rekt/). + +브리지는 이더리움 L2에 등록하는 사용자 또는 다른 생태계를 살펴보고자 하는 사용자에게 매우 중요합니다. 하지만 브리지 사용에 포함되는 리스크를 생각한다면, 사용자는 브리지의 장단점을 잘 이해해야 합니다. + + + +## 더 읽을거리 {#further-reading} + +- [블록체인 브리지란 무엇이고, 어떻게 분류할 수 있는가?](https://blog.li.finance/what-are-blockchain-bridges-and-how-can-we-classify-them-560dc6ec05fa) _2021년 2월 18일, Arjun Chand_ +- [크로스체인 브리지란?](https://www.alchemy.com/overviews/cross-chain-bridges) *2022년 5월 10일, Alchemy* +- [블록체인 브리지: 크립토네트워크로 네트워크 만들기](https://medium.com/1kxnetwork/blockchain-bridges-5db6afac44f8) _2021년 9월 8일, Dmitriy Berenzon_ +- [크립토 공간의 브리지](https://medium.com/chainsafe-systems/bridges-in-crypto-space-12e158f5fd1e) _2021년 8월 23일, Ben Adar Hyman_ +- [상호 운용성 트릴레마](https://medium.com/connext/the-interoperability-trilemma-657c2cf69f17) _2021년 10월 1일, Arjun Bhuptani_ +- [브리지의 보안성: 올바른 크로스체인 커뮤니케이션](https://medium.com/dragonfly-research/secure-the-bridge-cross-chain-communication-done-right-part-i-993f76ffed5d) _2021년 8월 23일, Celia Wan_ diff --git a/src/content/translations/ko/decentralized-identity/index.md b/src/content/translations/ko/decentralized-identity/index.md new file mode 100644 index 00000000000..28efdf9316d --- /dev/null +++ b/src/content/translations/ko/decentralized-identity/index.md @@ -0,0 +1,183 @@ +--- +title: 분산 신원 증명 +description: 분산 신원 증명이란 무엇이며, 왜 중요할까요? +lang: ko +template: use-cases +emoji: ":id:" +image: ../../../../assets/eth-gif-cat.png +summaryPoint1: 기존의 신원 증명 시스템은 식별자의 발급, 점검, 제어를 한 곳으로 집중시켰습니다. +summaryPoint2: 분산 신원 증명을 사용하면 더 이상 중앙화된 제3자에 의존할 필요가 없어집니다. +summaryPoint3: 암호화폐 덕분에 사용자는 다시 한 번 자신의 식별자와 증명 정보를 발급, 소유, 제어할 도구를 갖게 되었습니다. +--- + +오늘날 신원 증명은 사실상 삶의 모든 부분을 뒷받침하고 있습니다. 온라인 서비스 이용, 은행 계좌 개설, 선거 투표, 재산 구매, 고용 보장 등 이 모든 활동에는 신원 증명이 필요합니다. + +그러나 기존 신원 관리 시스템은 오랜 기간동안 중앙 집권적인 중개자에게 의존해 왔으며, 중개자가 귀하의 신원과 인증 정보를 발급, 소유 및 [증명](#what-are-attestations)했습니다. 즉, 귀하의 신원 관련 정보를 직접 관리하거나 개인 식별 정보(PII)에 누가 얼마나 접근할 수 있는지 또한 귀하가 제어할 수 없다는 것을 의미합니다. + +이 문제를 해결하기 위해 이더리움과 같은 공개 블록체인에 분산 신원 증명 시스템이 도입되었습니다. 분산 신원 증명으로 개인이 직접 자신의 신원 관련 정보를 관리할 수 있습니다. 분산 신원 증명 솔루션을 통해 서비스 제공자나 정부 등 중앙 기관에 의존하지 않고도 자신의 식별자를 *직접* 제작하고 인증 정보를 획득, 소유할 수 있습니다. + +## 신원이란 무엇인가요? {#what-is-identity} + +신원은 개인의 고유한 정보를 바탕으로 정의되는 개인 증명 수단입니다. 신원은 _개인_, 즉 구별되는 인간 개체를 의미합니다. 또한 신원은 조직이나 기관과 같은 인간이 아닌 주체를 의미할 수도 있습니다. + +## 식별자란 무엇인가요? {#what-are-identifiers} + +식별자는 특정 신원의 포인터 역할을 하는 정보입니다. 일반적인 식별자는 다음과 같습니다. + +- 이름 +- 주민등록번호 및 납세자 식별 번호 +- 휴대 전화 번호 +- 생년월일 및 출생지 +- 이메일 주소, 사용자 이름, 프로필 사진 등의 디지털 신원 정보 + +이러한 기존 식별자는 중앙 기관에 의해 발급, 소유, 관리됩니다. 이름을 바꾸기 위해서는 정부의 허가가 필요하고, 닉네임을 바꾸기 위해서는 소셜 미디어 플랫폼의 허가를 받아야 합니다. + +## 증명이란 무엇인가요? {#what-are-attestations} + +증명이란 한 개체에 의해 만들어진 다른 개체에 대한 주장입니다. 예를 들어, 미국에 거주하는 경우 미국의 도로 교통 공단(한 주체)에서 발급한 운전 면허증은 본인(다른 주체)이 법적으로 자동차를 운전할 수 있음을 증명합니다. + +증명은 식별자와 다릅니다. 증명은 특정 신원을 파악할 수 있도록 신원 정보를 *포함*하며 그 신원과 관련된 정보를 주장합니다. 즉, 운전 면허증은 식별자(성명, 생년월일, 주소)를 포함할 뿐만 아니라 운전할 수 있는 법적 권리에 대한 증명이기도 합니다. + +### 분산 식별자는 무엇인가요? {#what-are-decentralized-identifiers} + +법적 이름 또는 이메일 주소 같은 기존 식별자는 정부와 이메일 제공자 같은 제3자에 의존합니다. 분산 식별자(DID)는 다릅니다. 중앙 개체에 의해 발급, 관리, 제어되지 않습니다. + +분산 식별자는 개인이 발급, 소유, 관리합니다. [이더리움 계정](/developers/docs/accounts/)은 분산 식별자의 예시입니다. 누군가의 허락 없이 원하는 만큼 많은 계정을 만들 수 있으며, 중앙 저장소에 보관해야 할 필요도 없습니다. + +분산 식별자는 분산 원장(블록체인) 또는 P2P 네트워크에 저장됩니다. 이는 DID를 [유일하고, 높은 가용성과 활용성을 지니며, 암호화 검증이 가능](https://w3c-ccg.github.io/did-primer/)하게 만듭니다. 분산 식별자는 개인, 조직 또는 정부 등 다른 개체와 연결될 수 있습니다. + +## 분산 식별자는 어떻게 가능한가요? {#what-makes-decentralized-identifiers-possible} + +### 1. 공개 키 기반 구조(PKI) {#public-key-infrastructure} + +공개 키 기반 구조(PKI)는 특정 주체를 위해 [공개 키](/glossary/#public-key) 와 [개인 키](/glossary/#private-key)를 생성하는 정보 보안 장치입니다. 공개 키 암호화 기법은 블록체인 네트워크에서 사용자의 신원을 인증하고 디지털 자산의 소유권을 증명하는 용도로 사용됩니다. + +이더리움 계정과 같은 일부 분산 식별자에는 공개 키와 개인 키가 있습니다. 공개 키는 계정의 제어자를 식별하는 반면, 개인 키는 이 계정의 메시지에 서명하거나 메시지를 해독할 수 있습니다. PKI는 주체를 인증하는 데 필요한 증명을 제공하고, [암호화 서명](https://andersbrownworth.com/blockchain/public-private-keys/)을 통해 모든 주장을 검증함으로써 명의 도용 및 허위 신원 사용을 방지합니다. + +### 2. 분산형 데이터 보관 {#decentralized-datastores} + +블록체인은 검증 가능한 데이터 레지스트리의 역할을 합니다. 즉, 개방되어 있고, (주로 중앙 집권적인) 특정 주체를 신뢰하지 않아도 되며, 탈중앙화된 정보 저장소입니다. 공용 블록체인은 중앙 집권적인 레지스트리에 식별 정보를 저장해야 할 필요를 제거합니다. + +분산 식별자의 유효성을 확인해야 하는 경우, 블록체인에서 연관된 공개 키를 조회해 볼 수 있습니다. 이것이 인증에 제3자가 필요한 기존의 식별자와 다른 점입니다. + +## 분산 식별자와 증명이 어떻게 분산 신원 증명을 가능하게 하나요? {#how-decentralized-identifiers-and-attestations-enable-decentralized-identity} + +분산형 신원 증명은 신원 관련 정보는 소유자 본인이 제어하고 보호 및 이동 가능한 형태여야 한다는 아이디어를 분산형 식별 정보와 증명을 주요 기반으로 구현한 것입니다. + +분산형 신원 증명의 관점에서 증명(= [검증 가능한 인증 정보](https://www.w3.org/TR/vc-data-model/))이란, 발행자가 만든 위조 불가능하고 암호학적으로 검증 가능한 주장을 말합니다. 한 주체(예: 조직)에서 발급하는 모든 증명 또는 검증 가능한 인증 정보는 해당하는 DID에 연계됩니다. + +DID는 블록체인에 저장되기 때문에 누구든지 이더리움에서 발급자의 DID를 대조하여 증명의 유효성을 검증할 수 있습니다. 본질적으로 이더리움 블록체인은 특정 주체에 연계된 DID를 인증할 수 있게 하는 글로벌 디렉터리와 같은 역할을 합니다. + +분산형 식별 정보는 증명이 자체적으로 제어되고 검증될 수 있기 때문에 가능한 것입니다. 발급자가 더 이상 존재하지 않더라도 소유자는 언제든지 증명의 경로와 유효성을 검증할 수 있습니다. + +분산형 식별 정보는 또한 분산형 신원 증명을 통해 개인 정보를 보호하는 데에도 중요한 역할을 합니다. 예를 들어, 개인이 증명(운전 면허증 등)을 제출하는 경우 검증하는 주체는 증명에 포함된 정보의 유효성을 확인하지 않아도 됩니다. 대신, 검증자는 증명의 진위와 발급 기관의 신원에 대한 암호화 보증만 확인하면 증명이 유효한지 판단할 수 있습니다. + +## 분산형 신원 증명에서 증명 방식의 종류 {#types-of-attestations-in-decentralized-identity} + +이더리움 기반 신원 증명 생태계에서 증명 정보가 보관되고 제공되는 방법은 기존의 신원 관리 시스템과 다릅니다. 분산형 신원 증명 시스템에서 증명을 발급, 저장 및 인증하기 위한 다양한 접근 방식은 다음과 같습니다. + +### 오프체인 증명 {#off-chain-attestations} + +온체인으로 증명을 저장할 때 발생하는 문제점 중 하나는 해당 정보에 개인이 비공개로 유지하고자 하는 정보가 포함될 수도 있다는 부분입니다. 이더리움 블록체인은 공개적이라는 특성이 있기 때문에 이러한 증명을 저장하기에 부적절해 보일 수 있습니다. + +이 문제는 사용자가 디지털 지갑에서 오프체인으로 보유하고 있지만 온체인에 저장된 발급자의 DID로 서명된 증명을 발급함으로써 해결할 수 있습니다. 해당하는 증명은 [JSON 웹 토큰](https://en.wikipedia.org/wiki/JSON_Web_Token)으로 인코딩되고 발급자의 디지털 서명을 포함하므로, 간편하게 오프체인 클레임의 인증에 사용될 수 있습니다. + +다음은 오프체인 증명을 설명하는 가상 시나리오입니다. + +1. 한 대학교(발급자)가 증명(디지털 학위 증명서)을 생성한 후 대학교의 키로 서명하고, 이를 Bob(ID의 소유자)에게 발급합니다. + +2. Bob이 회사에 지원하기 위해 학위를 증명해야 할 때 모바일 지갑에서 해당 증명을 꺼내 회사에 제출할 수 있습니다. 회사(검증자)는 발급자의 DID(예: 이더리움 상의 공개 키)를 확인하여 증명의 유효성을 검증할 수 있습니다. + +### 영구 액세스 권한이 있는 오프체인 증명 {#offchain-attestations-with-persistent-access} + +오프체인 인증 방식에서 증명은 JSON 파일로 변환된 후 오프체인(이상적으로는 IPFS 또는 Swarm과 같은 [탈중앙화된 클라우드 스토리지](/developers/docs/storage/) 플랫폼)에 저장됩니다. 한편, 해당 JSON 파일의 [해시](/glossary/#hash) 값은 온체인으로 저장되며 온체인 레지스트리를 통해 DID에 링크됩니다. 연계되는 DID는 해당 증명의 발급자의 것이거나 수신인의 것일 수도 있습니다. + +이러한 방식은 증명이 블록체인 기반으로 영구 보관되는 동시에 민감한 정보는 암호화되어 필요시 검증할 수 있게 합니다. 또한 해당 증명은 개인 키의 소유자만이 복호화하여 정보를 확인할 수 있으므로, 선택적인 공개를 가능하게 합니다. + +### 온체인 증명 {#onchain-attestations} + +온체인 증명은 이더리움 블록체인의 [스마트 계약](/developers/docs/smart-contracts/)에서 이루어집니다. 스마트 계약(레지스트리 역할)은 해당하는 온체인의 분산형 식별 정보(공개 키)에 증명을 매핑합니다. + +아래는 온체인 증명이 실제로 어떻게 작동하는지를 보여주는 예시입니다. + +1. 한 기업(XYZ 회사)이 스마트 계약을 통해 주식을 판매하고자 하며, 신원이 증명된 사람에게만 구매를 허용하려고 합니다. + +2. XYZ 회사는 이더리움의 온체인 증명을 통해 개인의 신원 조회를 진행할 수 있습니다. 이러한 증명은 개인 정보를 노출하지 않고 개인의 신원 조회가 가능하게 합니다. + +3. 주식을 판매하는 스마트 계약은 레지스트리 계약에서 선별된 구매자의 신원을 확인할 수 있으므로 스마트 계약이 누가 주식을 살 수 있는지 여부를 결정할 수 있습니다. + +### 소울바운드 토큰과 신원 증명 {#soulbound} + +[소울바운드 토큰](https://vitalik.ca/general/2022/01/26/soulbound.html)(양도 불가한 NFT)은 특정 지갑에 국한된 고유한 정보를 수집하는 데 사용될 수 있습니다. 이는 개인적인 성취(특정 온라인 강의 완료 또는 게임에서 높은 점수 획득 등)나 특정 커뮤니티에 참여 등을 증명하기 위한 토큰과 같은 온체인 신원 증명이 특정 이더리움 주소에만 고유하게 소속될 수 있게 만듭니다. + +## 분산형 신원 증명의 장점 {#benefits-of-decentralized-identity} + +1. 분산형 신원 증명은 식별하는 정보에 대한 개인의 관리 권한을 강화합니다. 분산형 식별 정보 및 증명은 중앙 집권적인 기관이나 제3자 서비스에 의존하지 않고도 확인될 수 있습니다. + +2. 분산형 신원 증명 솔루션은 사용자 신원 관리 및 검증이 더욱 원활하고, 보호적이며, 특정 기관에 대한 신뢰 없이 이루어질 수 있게 합니다. + +3. 분산형 신원 증명은 블록체인 기술을 활용함으로써, 서로 다른 주체 간에 신뢰 관계를 구축하고, 증명의 유효성을 검증할 수 있는 암호화 기법을 제공합니다. + +4. 분산형 신원 증명은 신원 데이터를 휴대 가능하도록 합니다. 사용자는 증명 및 식별 정보를 모바일 지갑에 저장하고, 필요할 때 원하는 상대방과 공유할 수 있습니다. 분산형 식별 정보와 증명은 발행 기관의 특정 데이터베이스에 고정되지 않습니다. + +5. 분산형 신원 증명은 개인이 특정 정보를 공개하지 않고도 자신이 소유하거나 실행한 작업을 증명할 수 있게 하는 새로운 영지식 기술과 원활하게 작동합니다. 이는 투표와 같은 애플리케이션에 대한 신뢰와 개인 정보를 결합하는 강력한 방법이 될 수 있습니다. + +6. 분산형 신원 증명을 통해 반시빌(anti-Sybil) 메커니즘을 사용하여 한 사람이 게임 상에서 여러 사람인 것처럼 속이거나 특정 시스템을 스팸하는 행위를 식별할 수 있습니다. + +## 분산형 신원 증명 사용 사례 {#decentralized-identity-use-cases} + +분산형 신원 증명은 다양한 곳에 사용될 수 있습니다. + +### 1. 보편적 로그인 {#universal-dapp-logins} + +분산형 신원 증명은 비밀번호 기반 로그인을 [탈중앙화 인증](https://www.ibm.com/blogs/blockchain/2018/10/decentralized-identity-an-alternative-to-password-based-authentication/)으로 대체할 수 있게 합니다. 서비스 제공자는 사용자에게 증명을 발행할 수 있으며, 해당 증명은 이더리움 지갑에 저장됩니다. 증명의 예시로, 소유자가 특정 온라인 커뮤니티에 액세스할 수 있게 하는 [NFT](/nft/)가 있을 수 있습니다. + +그 후 [이더리움 로그인](https://login.xyz/) 기능은 서버가 사용자의 이더리움 계정을 확인하고 해당 계정 주소로부터 필요한 증명 정보를 가져올 수 있도록 합니다. 즉, 사용자는 긴 비밀번호를 기억하지 않고도 플랫폼이나 웹사이트에 액세스할 수 있으며, 이는 사용자의 온라인 환경을 향상합니다. + +### 2. KYC 인증 {#kyc-authentication} + +다양한 온라인 서비스를 사용하려면 개인은 운전면허증이나 여권과 같은 증명을 제공해야 합니다. 이러한 방식은 사용자의 개인 정보가 노출될 수 있고, 서비스 제공 업체가 자체적으로 증명을 인증할 수 없다는 문제가 있을 수 있습니다. + +분산형 신원 증명을 통해 회사는 기존의 [KYC(Know-Your-Customer)](https://en.wikipedia.org/wiki/Know_your_customer) 절차를 건너뛰고, 이른바 "검증 가능한 인증 정보"를 통해 사용자 인증을 진행할 수 있습니다. 이는 신원 관리 비용을 절감하는 한편 허위 문서의 사용 등을 방지합니다. + +### 3. 투표 및 온라인 커뮤니티 {#voting-and-online-communities} + +온라인 투표와 소셜 미디어는 분산형 신원 증명을 사용한 가장 놀라운 예시입니다. 온라인 투표는 특히 악의적인 사용자가 허위 신원을 만들어서 투표할 수 있기 때문에 조작에 취약합니다. 이때 개인이 온체인 증명을 제공하도록 요청한다면 온라인 투표 과정의 신뢰도를 개선할 수 있을 것입니다. + +분산형 신원 증명은 허위 계정이 불가능한 온라인 커뮤니티를 만들 수 있게 지원합니다. 예를 들어, 각 사용자가 ENS(이더리움 이름 서비스) 등의 온체인 신원 증명 시스템을 사용하여 신원을 증명하게 함으로써 허위 계정을 막을 수 있습니다. + +### 4. 반시빌(Anti-Sybil) 보호 {#sybil-protection} + +시빌(Sybil) 공격은 개인이 자신의 영향력을 늘리기 위해 여러 사람인 것처럼 시스템을 속이는 행위를 말합니다. [2차 투표](https://www.radicalxchange.org/concepts/plural-voting/)를 사용하는 [보조금 제공 애플리케이션](https://gitcoin.co/grants/)은 이러한 시빌 공격에 취약합니다. 더 많은 개인이 투표할 때 보조금의 가치가 증가하므로 사용자가 기여금을 여러 ID로 분할하도록 유도하기 때문입니다. 분산형 신원 증명은 특정 개인 정보를 공개하도록 요구하지 않는 경우가 많지만, 각 참가자가 실제 사용자임을 증명해야 하는 부담을 줌으로써 이를 방지하는 데 도움이 됩니다. + +## 분산 신원 증명을 사용하세요 {#use-decentralized-identity} + +분산 신원 증명 솔루션을 위한 기반으로 이더리움을 사용하는 야심 찬 프로젝트가 많이 있습니다. + +- **[이더리움 이름 서비스(ENS)](https://ens.domains/)**: _이더리움 지갑 주소, 콘텐츠 해시, 메타데이터 등 온체인 기반 컴퓨터용 식별 정보를 위한 탈중앙화 이름 시스템입니다._ +- **[SpruceID](https://www.spruceid.com/)**: _사용자가 제3자 서비스에 의존하지 않고 이더리움 계정과 ENS 프로필을 이용하여 디지털 신원을 직접 관리할 수 있도록 하는 분산 신원 증명 프로젝트입니다._ +- **[인간 증명](https://www.proofofhumanity.id)**: *인간 증명(PoH: Proof of Humanity)은 이더리움 기반의 소셜 신원 증명 시스템입니다.* +- **[BrightID](https://www.brightid.org/)**: _소셜 그래프를 만들고 분석함으로써 신원 증명을 개혁하고자 하는 탈중앙화된 오픈소스의 소셜 신원 증명 네트워크입니다._ +- **[개인 증명 여권](https://proofofpersonhood.com/)**: _탈중앙화 디지털 신원 정보 종합 플랫폼입니다._ + +## 더 읽을 거리 {#further-reading} + +### 문서 {#articles} + +- [블록체인 사용 사례: 디지털 신원 증명 블록체인](https://consensys.net/blockchain-use-cases/digital-identity/) — *ConsenSys* +- [이더리움 ERC725란 무엇인가요? 블록체인의 자기 주권 신원 관리](https://cryptoslate.com/what-is-erc725-self-sovereign-identity-management-on-the-blockchain/) — *Sam Town* +- [블록체인은 어떻게 디지털 신원 문제를 해결하는가](https://time.com/6142810/proof-of-humanity/) — _Andrew R. Chow_ +- [분산 신원이란 무엇이며, 왜 중요한가?](https://web3.hashnode.com/what-is-decentralized-identity) — _Emmanuel Awosika_ + +### 영상 {#videos} + +- [분산 신원 증명 (보너스 실시간 세션)](https://www.youtube.com/watch?v=ySHNB1za_SE&t=539s): _Andreas Antonopolous의 분산 신원 증명에 대한 설명 영상_ +- [Ceramic, IDX, React, 3ID Connect를 사용하여 이더리움과 분산 신원 증명에 로그인하기](https://www.youtube.com/watch?v=t9gWZYJxk7c): *Nader Dabit의 이더리움 지갑을 사용하여 사용자 프로필을 생성, 조회, 업데이트하기 위한 신원 관리 시스템을 구축하는 유튜브 튜토리얼* +- [BrightID - 이더리움의 분산 신원 증명](https://www.youtube.com/watch?v=D3DbMFYGRoM): *이더리움을 위한 분산 신원 증명 솔루션인 BrightID에 대해 얘기하는 Bankless 팟캐스트 에피소드* +- [오프체인 인터넷: 분산 신원 증명 & 검증 가능한 증명서](https://www.youtube.com/watch?v=EZ_Bb6j87mg) — Evin McMullen의 2022년 EthDenver 발표 + +### 커뮤니티 {#communities} + +- [GitHub의 ERC-725 연합](https://github.com/erc725alliance): *이더리움 블록체인에서 신원 관리를 위한 ERC 725 표준의 지원자* +- [SpruceID 디스코드 서버](https://discord.com/invite/Sf9tSFzrnt): *이더리움 로그인을 개발 중인 개발자와 매니아의 커뮤니티* +- [Veramo Labs](https://discord.gg/sYBUXpACh4): *애플리케이션의 검증 가능한 데이터를 위한 프레임워크 개발자의 커뮤니티* diff --git a/src/content/translations/ko/defi/index.md b/src/content/translations/ko/defi/index.md new file mode 100644 index 00000000000..3169af30b0f --- /dev/null +++ b/src/content/translations/ko/defi/index.md @@ -0,0 +1,352 @@ +--- +title: 탈중앙화 금융(DeFi) +description: 이더리움의 디파이 개요 +lang: ko +template: use-cases +emoji: ":money_with_wings:" +image: ../../../../assets/use-cases/defi.png +alt: 레고 블록으로 만든 이더리움 로고. +summaryPoint1: 현재 금융 시스템에 대한 글로벌하고 개방적인 대안입니다. +summaryPoint2: 대출, 저축, 투자, 거래 등을 할 수 있는 제품입니다. +summaryPoint3: 누구나 프로그래밍할 수 있는 오픈 소스 기술을 기반으로 합니다. +--- + +디파이는 인터넷 시대에 맞게 구축된 개방적이고 글로벌한 금융 시스템이며, 수십 년 된 인프라와 프로세스에 의해 불투명하며 엄격하게 통제되어 함께 유지되는 시스템의 대안입니다. 그것은 당신에게 당신의 돈에 대한 통제력과 가시성을 제공합니다. 글로벌 시장으로의 진출과 현지 통화나 은행 옵션에 대한 대안도 제공합니다. 디파이 제품은 인터넷 연결이 되는 모든 사람에게 금융 서비스를 제공하며 대체로 사용자가 소유하고 관리합니다. 지금까지 수십억 달러 가치의 암호화폐가 디파이 애플리케이션을 통해 유입되었으며 매일 성장하고 있습니다. + +## 디파이가 무엇인가요? {#what-is-defi} + +디파이는 인터넷 연결이 되고 이더리움을 사용하는 모든 사람에게 접근 가능한 금융 제품과 서비스를 이르는 총칭입니다. 디파이를 사용하면 시장은 항상 열려 있고 결제를 막거나 모든 것에 접근할 수 있는 권한을 거부할 수 있는 중앙화된 기관이 없습니다. 이전에는 느리고 인적 오류 위험이 있었던 서비스가 이제 누구나 점검하고 면밀하게 검사할 수 있는 코드로 처리되어 자동적이고 더 안전합니다. + +대부, 대출, 롱/숏, 이자를 얻는 것 등이 가능한 유행 중인 암호화폐 경제가 있습니다. 암호화폐를 잘 아는 아르헨티나인들은 치명적인 인플레이션을 피하기 위해 디파이를 사용해 왔습니다. 기업들은 직원들의 임금을 실시간으로 스트리밍하기 시작했습니다. 어떤 사람들은 심지어 개인 신분증 없이 수백만 달러 상당의 대출을 받아 갚기도 했습니다. + + + +## 디파이 대 기존 금융 {#defi-vs-tradfi} + +디파이의 잠재력을 알 수 있는 가장 좋은 방법 중 하나는 현재 존재하는 문제를 이해하는 것입니다. + +- 일부 사람들에게는 은행 계좌를 개설하거나 금융 서비스를 이용할 수 있는 액세스 권한이 부여되지 않습니다. +- 금융 서비스에 대한 접근권이 없다면 사람들이 고용되지 못할 수 있습니다. +- 금융 서비스는 당신이 급여를 받지 못하게 할 수 있습니다. +- 금융 서비스의 숨겨진 요금은 당신의 개인 데이터입니다. +- 정부와 중앙화된 기관들은 마음대로 시장을 폐쇄할 수 있습니다. +- 거래 시간은 종종 특정 시간대의 영업 시간으로 제한됩니다. +- 송금은 내부 인적 프로세스로 인해 며칠이 걸릴 수 있습니다. +- 중개 기관은 그들의 몫이 필요하기 때문에 금융 서비스에는 할증료가 붙습니다. + +### 비교 {#defi-comparison} + +| 디파이 | 기존 금융 | +| -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | +| 당신이 돈을 소유합니다. | 기업이 당신의 돈을 소유합니다. | +| 당신이 돈이 어디로 송금되고 어떻게 소비되는지 통제합니다. | 위험한 대출자에게 돈을 빌려주는 것과 같이 돈을 잘못 관리하지 않도록 기업을 신뢰해야 합니다. | +| 자금 이체가 몇 분 내로 이루어집니다. | 결제는 수동 프로세스로 인해 며칠이 소요될 수 있습니다. | +| 트랜잭션 활동이 가명입니다. | 금융 활동은 당신의 신원과 밀접하게 연관되어 있습니다. | +| 디파이는 모두에게 열려 있습니다. | 금융 서비스를 이용하려면 신청해야 합니다. | +| 시장이 항상 열려 있습니다. | 직원들에게 휴식이 필요하기 때문에 시장이 문을 닫습니다. | +| 투명성을 기반으로 구축되었으며, 누구나 제품 데이터를 보고 시스템이 어떻게 작동하는지 검사할 수 있습니다. | 금융 기관은 알 수 없는 미스터리입니다. 대출 내역, 관리 자산에 대한 기록 등을 볼 수 없습니다. | + + + 디파이 앱 둘러보기 + + +## 그것은 비트코인으로 시작했습니다... {#bitcoin} + +여러 면에서 비트코인은 최초의 디파이 애플리케이션이었습니다. 비트코인으로 가치를 소유하고 통제하며 전 세계 어디서든 보낼 수 있습니다. 이것은 서로를 믿지 않는 많은 사람들에게 신뢰할 수 있는 중개자가 없이도 계정 장부에 합의할 수 있도록 방법을 제공하는 것으로 이뤄집니다. 비트코인은 누구에게나 열려 있으며 누구도 규칙을 변경할 권한이 없습니다. 희소성 및 개방성과 같은 비트코인의 규칙은 기술에 포함되어 있습니다. 정부가 저축한 돈의 가치를 낮추는 돈을 인쇄할 수 있고 기업이 시장을 폐쇄할 수 있는 기존 금융과는 다릅니다. + +이더리움은 이를 기반으로 합니다. 비트코인과 마찬가지로 규칙을 변경할 수 없으며 모든 사람이 액세스할 수 있습니다. 그러나 또한 [스마트 계약](/glossary#smart-contract)을 사용하여 이 디지털 화폐를 프로그래밍할 수 있게 함으로써, 가치를 저장하고 보내는 것 이상을 할 수 있습니다. + + + +## 프로그래밍 가능한 돈 {#programmable-money} + +이건 이상하게 들립니다. "왜 제가 돈을 프로그래밍하고 싶겠어요?" 그러나 이것은 이더리움 토큰의 기본 기능일 뿐입니다. 누구나 로직을 지불금으로 프로그래밍할 수 있습니다. 그래서 당신은 금융기관이 제공하는 서비스와 함께 비트코인의 통제권과 보안을 얻을 수 있습니다. 이것을 통해 비트코인으로 할 수 없는 대부와 대출, 결제 일정 수립, 인덱스 펀드에 투자하기 등과 같은 것들을 암호화폐로 할 수 있습니다. + + +
이더리움이 처음이시면 디파이 애플리케이션에 대한 제안을 살펴보세요.
+ + 디파이 앱 둘러보기 + +
+ +## 디파이로 무엇을 할 수 있나요? {#defi-use-cases} + +대부분의 금융 서비스에는 탈중앙화된 대안이 있습니다. 그러나 이더리움은 완전히 새로운 금융 상품을 만들 수 있는 기회도 제공합니다. 이 목록은 계속 늘어납니다. + +- [전 세계로 송금하기](#send-money) +- [전 세계로 돈을 스트리밍하기](#stream-money) +- [안정적인 통화에 액세스하기](#stablecoins) +- [담보로 자금 대출하기](#lending) +- [무담보 대출하기](#flash-loans) +- [암호화폐 저축 시작하기](#saving) +- [토큰 거래하기](#swaps) +- [포트폴리오 확장하기](#investing) +- [아이디어 자금 모으기](#crowdfunding) +- [보험 가입하기](#insurance) +- [포트폴리오 관리하기](#aggregators) + + + +### 전 세계로 빠르게 송금하세요 {#send-money} + +이더리움은 블록체인으로서 안전하고 글로벌하게 트랜잭션을 전송할 수 있도록 설계되었습니다. 비트코인과 마찬가지로 이더리움은 이메일을 보내는 것만큼 쉽게 전 세계로 돈을 송금할 수 있습니다. 수령인의 [ENS 이름](/nft/#nft-domains)(예: bob.eth) 또는 지갑의 계정 주소를 입력하기만 하면 몇 분 안에 수취인에게 직접 지급됩니다(보통은). 지불금을 보내거나 받으려면 [지갑](/wallets/)이 필요합니다. + + + 결제 디앱 보기 + + +#### 전 세계로 돈을 스트리밍하세요... {#stream-money} + +이더리움으로 돈을 스트리밍할 수도 있습니다. 이렇게 하면 누군가에게 초 단위로 월급을 지급하여 필요할 때마다 돈을 받을 수 있습니다. 또는 초 단위로 보관 사물함이나 전기 스쿠터를 빌릴 수 있습니다. + +그리고 가치가 변하는 정도 때문에 [ETH](/eth/)를 송금하거나 스트리밍하고 싶지 않다면, 이더리움에는 스테이블 코인이라는 대체 화폐가 있습니다. + + + +### 안정적인 화폐에 액세스하세요 {#stablecoins} + +암호 화폐 변동성은 많은 금융상품과 일반 지출에 문제가 됩니다. 디파이 커뮤니티는 스테이블 코인으로 이 문제를 해결했습니다. 그것의 가치는 보통 달러처럼 인기 있는 통화인 또 다른 자산에 고정되어 있습니다. + +다이 또는 USDC와 같은 코인의 가치는 몇 센트 이내입니다. 이런 점 때문에 스테이블 코인은 돈 버는 것 또는 소매업에 적합합니다. 라틴 아메리카의 많은 사람들은 정부가 발행한 화폐로 매우 불확실한 시기에 저축한 돈을 지키는 방법으로 스테이블 코인을 사용했습니다. + + + 스테이블 코인에 대해 더 보기 + + + + +### 대출 {#lending} + +탈중앙화된 제공자로부터 돈을 대출하는 것은 두 종류가 있습니다. + +- P2P, 대출자가 직접 특정 대출 기관에서 직접 대출하는 방식. +- 대출 기관에서 자산을 대출자가 대출할 수 있는 풀로 지급하는(유동성) 풀 기반. + + + 대출용 디앱 보기 + + +탈중앙화된 대출 기관을 사용하는 것은 이점이 많습니다. + +#### 개인 정보 보호를 통한 대출 {#borrowing-privacy} + +오늘날, 돈을 빌려주고 대출하는 것은 모두 관련된 개인들을 중심으로 돌아갑니다. 은행은 돈을 빌려주기 전에 당신이 대출을 상환할 수 있는지 알아야 합니다. + +탈중앙화 대출은 어느 당사자도 신원을 확인할 필요 없이 가능합니다. 대신 대출자는 대출금이 상환되지 않을 경우 대출 기관이 자동으로 받을 수 있도록 담보를 내놓아야 합니다. 일부 대출 기관은 NFT를 담보로 받기도 합니다. NFT는 그림과 같은 고유 자산에 대한 증서입니다. [NFT에 대해 더 보기](/nft/) + +이를 통해 신용 확인이나 개인 정보 양도 없이 돈을 빌릴 수 있습니다. + +#### 글로벌 펀드에 대한 액세스 {#access-global-funds} + +탈중앙화된 대출 기관을 이용하면 선택하신 은행이나 기관에서 보관하는 자금 뿐만 아니라 전 세계에서 예치된 자산에 대한 액세스를 갖게 됩니다. 이것은 대출을 더 접근하기 쉽게 만들고 금리를 향상시킵니다. + +#### 조세 효율성 {#tax-efficiencies} + +대출을 통해 ETH(과세 대상 이벤트)를 판매하지 않고도 필요한 자금을 이용할 수 있습니다. 대신 스테이블 코인 대출을 위한 담보로 ETH를 사용할 수 있습니다. 이렇게 하면 필요한 현금 흐름이 생기고 ETH를 유지할 수 있습니다. 스테이블 코인은 ETH처럼 가치가 변동하지 않아 현금이 필요할 때 훨씬 좋은 토큰입니다. [스테이블 코인에 대해 더 보기](#stablecoins) + +#### 플래시 론 {#flash-loans} + +플래시 론은 보다 실험적인 형태의 탈중앙화 대출로, 담보나 개인 정보를 제공할 필요 없이 돈을 빌릴 수 있습니다. + +지금은 비전문가들이 쉽게 접근할 수 없지만, 모든 사람들에게 미래에 무엇이 가능한지 알려줍니다. + +동일한 트랜잭션 내에서 대출을 받고 갚는 것을 기준으로 작동합니다. 상환할 수 없는 경우 트랜잭션은 아무 일도 없었던 것처럼 되돌아갑니다. + +자주 사용되는 자금은 유동성 풀(대출에 사용되는 대규모 자금 풀)에 보관됩니다. 만약 자금이 주어진 순간에 사용되지 않는다면, 누군가 이 자금을 빌려서 자금으로 거래를 하고, 대출하는 동시에 자금으로 완전히 갚을 수 있는 기회가 생깁니다. + +맞춤형 트랜잭션에 많은 로직이 포함되어야 한다는 뜻입니다. 간단한 예로는 플래시 론을 사용하여 한 가격에 많은 자산을 대출하여 가격이 더 높은 다른 거래소에 판매할 수 있습니다. + +따라서 단일 트랜잭션에서 다음과 같은 일이 발생합니다. + +- 거래소 A에서 $1.00에 X 금액의 $asset을 대출합니다. +- 거래소 B에서 X $asset을 $1.10에 판매합니다. +- A를 교환하기 위해 대출금을 상환합니다. +- 당신은 거래 수수료를 제외한 수익을 갖게 됩니다. + +만약 B 거래소의 공급이 갑자기 감소하고 사용자가 원래 대출금을 감당할 수 있을 만큼 충분히 살 수 없다면, 트랜잭션은 간단히 실패할 것입니다. + +전형적인 금융 세계에서 위의 예시를 가능하게 하려면 엄청난 돈이 필요합니다. 이러한 돈벌이 전략은 기존의 부를 가진 사람들만이 접근할 수 있습니다. 플래시 론은 돈을 버는 것의 전제 조건이 돈을 소유하는 것이 아니라는 미래의 예시입니다. + +[플래시 론에 대해 더 보기](https://aave.com/flash-loans/) + + + +### 암호화폐로 저축을 시작하세요 {#saving} + +#### 대출 {#lending} + +빌려주는 것으로 암호화폐의 이자를 벌어 실시간으로 자산이 늘어가는 걸 볼 수 있습니다. 현재 이자율은 지역 은행에서 얻을 수 있는 것보다 훨씬 높습니다(운 좋게 은행에 갈 수 있다면). 예시는 다음과 같습니다. + +- Aave와 같은 제품에 [스테이블 코인](/stablecoins/)인 100다이를 빌려줍니다. +- 대출한 다이를 상징하는 토큰인 Aave 다이(aDai) 백 개를 받습니다. +- 이자율에 따라 aDai는 증가하고 지갑에서 잔고가 늘어가는 걸 보실 수 있습니다. 연이율에 따라 지갑 잔고는 며칠 또는 심지어 몇 시간 후에 100.1234와 같은 수치가 되어 있을 겁니다! +- 언제든지 aDai 잔액과 동일한 금액의 일반 다이를 인출할 수 있습니다. + + + 대출 디앱 보기 + + +#### 무손실 복권 {#no-loss-lotteries} + +풀투게더 같은 무손실 복권은 돈을 절약할 수 있는 재미있고 혁신적인 새로운 방법입니다. + +- 다이 토큰 100개로 티켓 100장을 구매합니다. +- 100장의 티켓과 동등한 100plDai를 받습니다. +- 당신의 티켓 중 하나가 승자로 선택되면 plDai 잔액은 상금 풀의 금액만큼 증가합니다. +- 이기지 못하면 당신의 100 plDai는 다음 주 추첨으로 넘어갑니다. +- 언제든지 plDai 잔액과 동일한 금액의 일반 다이를 인출할 수 있습니다. + +상금 풀은 위의 대출 예시와 같이 티켓 예금을 대출하여 발생하는 모든 이자로 생성됩니다. + + + 풀투게더 사용해보기 + + + + +### 토큰을 교환하세요 {#swaps} + +이더리움에는 수천 개의 토큰이 있습니다. 탈중앙화 거래소(DEX)를 사용하면 원할 때마다 다른 토큰을 거래할 수 있습니다. 자산에 대한 통제권을 포기하지 마세요. 이것은 마치 다른 나라를 방문할 때 환전소를 이용하는 것과 같습니다. 하지만 디파이 버전은 절대 문을 닫지 않습니다. 시장은 연중무휴로 365일 운영되며 기술 덕에 거래를 수락할 사람을 항상 구할 수 있습니다. + +예를 들어, 무손실 복권 풀투게더(위에서 설명함)를 사용하려면 다이 또는 USDC와 같은 토큰이 필요합니다. 이런 DEX를 사용하면 ETH를 토큰으로 교환할 수 있고 끝나면 반대로 토큰을 ETH로 교환할 수 있습니다. + + + 토큰 거래소 보기 + + + + +### 고급 거래 {#trading} + +더 많은 통제권을 원하는 거래자를 위한 고급 옵션이 있습니다. 지정가 주문, 무기한, 마진 거래 등이 모두 가능합니다. 분산 거래를 통해 글로벌 유동성에 접근할 수 있고 시장이 닫히지 않으며 항상 자산을 통제할 수 있습니다. + +중앙화 거래소를 이용하면 거래 전에 자산을 예치해야 하고, 그 자산을 책임질 거래소를 신뢰해야 합니다. 자산이 예치되어 있으면 중앙화 거래소는 해커에게 매력적인 대상이기 때문에 자산이 위험합니다. + + + 거래 디앱 보기 + + + + +### 포트폴리오를 확장하세요 {#investing} + +이더리움에는 선택한 전략에 따라 포트폴리오를 확장하는 펀드 관리 제품이 있습니다. 이것은 자동적이고 모두에게 공개되며, 수익의 일부를 가져가는 인간 관리자가 필요 없습니다. + +좋은 예가 [디파이 펄스 인덱스 펀드(DPI)](https://defipulse.com/blog/defi-pulse-index/)입니다. 이 펀드는 포트폴리오에 항상 [시가총액 기준 상위 디파이 토큰](https://www.coingecko.com/en/defi)이 포함되도록 자동으로 재조정합니다. 세부 사항을 관리할 필요가 없으며 원할 때마다 펀드에서 인출할 수 있습니다. + + + 투자 디앱 보기 + + + + +### 아이디어 자금을 모으세요 {#crowdfunding} + +이더리움은 크라우드 펀딩을 위한 이상적인 플랫폼입니다. + +- 잠재적 후원자는 어디서든 나올 수 있습니다. 이더리움과 이더리움 토큰은 전 세계 어디든, 누구에게나 개방되어 있습니다. +- 투명하기 때문에 모금자가 얼마나 많은 돈이 모였는지 증명할 수 있습니다. 심지어 나중에 자금이 어떻게 사용되는지 추후에 추적할 수 있습니다. +- 예를 들면 모금자는 구체적인 기한과 최소 금액이 충족되지 않는 경우 자동 환불을 설정할 수 있습니다. + + + 크라우드 펀딩 디앱 보기 + + +#### 2차 펀딩 {#quadratic-funding} + +이더리움은 오픈 소스 소프트웨어이며 지금까지의 많은 작업물이 커뮤니티에서 자금을 지원받았습니다. 이는 2차 펀딩이라는 흥미롭고 새로운 모금 모델의 성장으로 이어졌습니다. 2차 펀딩은 미래에 모든 공공재 유형에 자금을 지원하는 방식을 개선할 잠재력이 있습니다. + +2차 펀딩은 가장 많은 자금을 받는 프로젝트가 가장 특이한 수요가 있는 프로젝트인지 확인합니다. 즉, 대부분의 사람들의 삶을 개선하기 위한 프로젝트입니다. 운영 방식은 다음과 같습니다. + +1. 기부된 자금의 매칭 풀이 있습니다. +2. 공개 펀딩이 시작됩니다. +3. 사람들은 돈을 기부하여 프로젝트에 대한 수요를 알릴 수 있습니다. +4. 펀딩 라운드가 끝나면 매칭 풀이 프로젝트에 분배됩니다. 가장 눈에 띄는 수요가 있는 프로젝트는 매칭 풀에서 가장 많은 금액을 얻습니다. + +이는 1달러의 기부를 100번 받은 프로젝트 A가 만 달러 기부를 한 번 받은 프로젝트 B보다 더 많은 펀딩을 받았다는 것을 의미합니다(매칭 풀의 크기에 따라 다름). + +[2차 펀딩에 대해 더 보기](https://wtfisqf.com) + + + +### 보험 {#insurance} + +탈중앙화 보험은 보험을 더 싸고, 더 빠르게 돈을 지불할 수 있고, 더 투명하게 하는 것을 목표로 합니다. 더 많은 자동화가 이뤄지면 보험이 더욱 저렴해지고 지불도 훨씬 빨라집니다. 당신의 청구를 결정하는 데 사용되는 데이터는 완전히 투명합니다. + +이더리움 제품은 다른 소프트웨어와 마찬가지로 버그와 악용에 시달릴 수 있습니다. 그래서 현재 이 분야의 많은 보험 상품들은 자금 손실로부터 사용자를 보호하는 데 초점을 맞추고 있습니다. 삶이 우리에게 던질 수 있는 모든 것에 대한 보험으로 확장 중인 프로젝트가 몇 가지 있습니다. 이것의 좋은 예는 [케냐의 소규모 농부들을 가뭄과 홍수로부터 보호하는 것](https://blog.etherisc.com/etherisc-teams-up-with-chainlink-to-deliver-crop-insurance-in-kenya-137e433c29dc)을 목표로 하는 이더리스크의 농작물 보험입니다. 탈중앙화 보험은 종종 일반적인 보험에서 제외되는 농부들에게 더 저렴한 보험을 제공할 수 있습니다. + + + 보험 디앱 보기 + + + + +### 애그리게이터 및 포트폴리오 관리자 {#aggregators} + +많은 일이 진행됨에 따라 모든 투자, 대출 및 거래를 추적할 수 있는 방법이 필요할 것입니다. 한 곳에서 디파이 활동을 조율할 수 있는 여러 제품이 있습니다. 이것이 디파이의 개방형 아키텍처의 아름다움입니다. 팀에서 여러 제품 간의 잔액을 볼 수 있는 인터페이스를 구축할 수 있을 뿐만 아니라 기능을 사용할 수도 있습니다. 디파이에 대해 더 알아갈 수록 이것이 유용할 것입니다. + + + 포트폴리오 디앱 보기 + + + + +## 디파이는 어떻게 작동하나요? {#how-defi-works} + +디파이는 암호화폐와 스마트 계약으로 중개인이 필요 없는 서비스를 제공합니다. 오늘날의 금융 세계에서 금융 기관은 거래의 보증인 역할을 합니다. 돈이 금융 기관을 통해 흐르기 때문에 금융 기관이 엄청난 힘을 갖게 됩니다. 게다가 전 세계 수십억 명의 사람들은 은행 계좌에 접근할 수도 없습니다. + +디파이에서는 거래 시에 스마트 계약이 금융 기관을 대신합니다. 스마트 계약은 자금을 보유할 수 있고 특정 조건에 따라 송금/환불할 수 있는 일종의 이더리움 계정입니다. 스마트 계약이 실행 중에는 아무도 변경할 수 없습니다. 항상 프로그래밍된 대로 실행됩니다. + +용돈 혹은 주머닛돈을 나눠주도록 고안된 계약은 계정 A에서 계정 B로 매주 금요일에 송금하도록 프로그래밍될 수 있습니다. 그리고 계정 A에 필요한 자금이 있는 동안에만 그렇게 할 것입니다. 아무도 자금을 훔치기 위해 계약을 변경하고 계정 C를 수령인으로 추가할 수 없습니다. + +또한 계약을 누구나 검사하고 감사할 수 있습니다. 이는 불량 계약은 보통 매우 빠르게 커뮤니티의 면밀한 조사를 받게 된다는 의미입니다. + +이더리움 커뮤니티의 코드를 읽을 수 있는 기술자 멤버들을 더욱 신뢰해야 할 필요가 있다는 것입니다. 오픈 소스 기반 커뮤니티는 개발자들을 통제하는 데에 도움이 되지만, 스마트 계약이 읽기 쉬워지고 코드의 신뢰성을 증명할 다른 방법이 개발되어 그 필요성은 점점 줄어들 것입니다. + +## 이더리움과 디파이 {#ethereum-and-defi} + +이더리움이 디파이를 위한 완벽한 기반인 이유는 다음과 같습니다. + +- 아무도 이더리움이나 그것을 토대로 한 스마트 계약을 소유하지 않습니다. 이는 모두에게 디파이를 사용할 기회를 줍니다. 또한 아무도 규칙을 변경할 수 없습니다. +- 디파이 제품은 모두 동일하게 이더리움을 사용합니다. 이는 많은 제품이 원활하게 함께 작동한다는 것을 의미합니다. 한 플랫폼에서 토큰을 빌려주고 완전히 다른 애플리케이션에서 다른 시장의 이자가 붙는 토큰을 교환할 수 있습니다. 은행에서 로열티 포인트를 현금화할 수 있는 것과 같습니다. +- 토큰과 암호화폐는 공유된 장부인 이더리움에 내장되어 있습니다. 거래와 소유권을 추적하는 것은 이더리움의 특기입니다. +- 이더리움은 완전한 재정적 자유를 허용합니다. 대부분의 제품은 당신의 자금을 관리하지 않으므로 통제할 수 있습니다. + +디파이를 레이어 구조로 생각해 볼 수 있습니다. + +1. 블록체인 – 이더리움에 거래 내역과 계정 상태가 들어있습니다. +2. 자산 – [ETH](/eth/) 및 기타 토큰(화폐)입니다. +3. 프로토콜 – 자산의 탈중앙화 대출을 허용하는 서비스와 같은 기능을 제공하는 [스마트 계약](/glossary/#smart-contract)입니다. +4. [애플리케이션](/dapps/) – 프로토콜을 관리하고 액세스하는 데 사용하는 제품입니다. + +## 디파이를 구축하세요 {#build-defi} + +디파이는 오픈 소스 캠페인입니다. 디파이 프로토콜과 애플리케이션은 검사하고, 포크하고, 혁신할 수 있도록 누구에게나 열려 있습니다. 이러한 계층화된 스택(모두 동일한 베이스 블록체인과 자산을 공유함)으로 인해 프로토콜을 합치고 맞춰서 독특한 콤보 기회를 열 수 있습니다. + + + 디앱 구축에 대해 더 보기 + + +## 더 읽을 거리 {#futher-reading} + +### 디파이 데이터 {#defi-data} + +- [디파이 펄스](https://defipulse.com/) +- [디파이 프라임](https://defiprime.com/) +- [디파이 라마](https://defillama.com/) + +### 디파이 기사 {#defi-articles} + +- [탈중앙화 금융이란 무엇인가요?](https://docs.ethhub.io/built-on-ethereum/open-finance/what-is-open-finance/) – _ETHHub, 정기적으로 업데이트됨_ +- [디파이 초보자 가이드](https://blog.coinbase.com/a-beginners-guide-to-decentralized-finance-defi-574c68ff43c4) – _시드 코엘로-프라부, 2020년 1월 6일_ + +### 영상 {#videos} + +- [Finematics - 탈중앙화 금융 교육](https://finematics.com/) – _디파이에 대한 영상_ +- [디파이언트](https://www.youtube.com/playlist?list=PLaDcID4s1KronHMKojfjwiHL0DdQEPDcq) - _디파이 기초: 가끔은 혼란스러운 이곳에서 시작하려면 알아야 할 모든 것._ +- [화이트보드 크립토](https://youtu.be/17QRFlml4pA) _디파이란 무엇인가요?_ + +### 커뮤니티 {#communities} + +- [디파이 라마 디스코드 서버](https://discord.gg/buPFYXzDDd) +- [디파이 펄스 디스코드 서버](https://discord.gg/Gx4TCTk) diff --git a/src/content/translations/ko/energy-consumption/index.md b/src/content/translations/ko/energy-consumption/index.md new file mode 100644 index 00000000000..6ddee1d15fa --- /dev/null +++ b/src/content/translations/ko/energy-consumption/index.md @@ -0,0 +1,68 @@ +--- +title: 이더리움 에너지 소비 +description: 이더리움의 에너지 소비를 이해하는 데 필요한 기본 정보입니다. +lang: ko +--- + +# 이더리움 에너지 소비 {#introduction} + +이더리움은 친환경 블록체인입니다. 저전력 장치에서 실행 가능하고 참여하기 위해 많은 계산이 필요 없는 [지분 증명](/developers/docs/consensus-mechanisms/pos) 합의 메커니즘을 사용합니다. 이더리움의 지분 증명 메커니즘은 [작업 증명](/developers/docs/consensus-mechanisms/pos)처럼 소모된 에너지를 사용하지 않고 스테이킹된 ETH를 사용하여 네트워크를 보호합니다. 지분 증명 전환은 이더리움 네트워크로 소모되는 에너지가 연간 약 0.01TWh로, 비교적 적습니다. + +## 지분 증명 에너지 소비 {#proof-of-stake-energy} + +이더리움의 에너지 소비량은 네트워크의 각 노드가 일반 노트북을 가동하는 데 드는 에너지 소비량과 거의 동일합니다. + +많은 기사에서 다른 산업과 블록체인을 비교하기 위해 "트랜잭션당" 에너지 소비량을 추정합니다. 이것의 장점은 이해하기 쉽다는 것입니다. 하지만 트랜잭션 기반 추정치는 블록을 제안하고 검증하는 데에 필요한 에너지가 블록의 트랜잭션 수와 무관하기 때문에 오해의 소지가 있습니다. 트랜잭션 단위당 에너지 소비는 더 적은 트랜잭션이 에너지 소비의 감소로 이어지고 그 반대의 경우도 마찬가지라는 것을 의미하지만, 그 경우가 아닙니다. 트랜잭션당 추정치는 블록체인의 트랜잭션 처리량이 어떻게 정해지는가에 크게 좌우되고, 이 기준을 조작하면 값이 더 크거나 더 작게 보이도록 할 수 있습니다. + +예를 들면 이더리움에서 트랜잭션 처리량은 베이스 레이어 처리량뿐만 아니라 계산에 보통 포함되지 않고 크게 감소시키는 모든 "[레이어 2](/layer-2/)" 롤업의 트랜잭션 처리량 합계이기도 합니다. 이는 플랫폼 간에 트랜잭션당 에너지 소비량을 비교하는 방법이 오해의 소지가 있는 이유 중 하나입니다. + +보다 관련성 높은 것은 네트워크 전체의 전반적인 에너지 소비량과 탄소 발자국입니다. 그 값으로 그 네트워크가 사용자와 사회 전반에 무엇을 제공하는지를 살펴볼 수 있고 그 에너지 소비가 정당한지 아닌지에 대한 전체적인 평가를 할 수 있습니다. 반면에 트랜잭션당 측정법은 네트워크 값이 계정 간 암호화폐를 전송하는 역할에서 나온다는 것을 의미하며, 정직한 비용편익 분석을 막습니다. + +[디지코노미스트는 비트코인과 이더리움의 총 네트워크 에너지 소비량과 탄소 발자국을 제공합니다](https://digiconomist.net/ethereum-energy-consumption). 이 기사를 작성할 당시에 비트코인은 연간 200TWh의 에너지를 소모하고 100MT(메가톤)의 탄소를 매년 배출하면서 연간 노후된 하드웨어에서 32,000T의 전자기기 폐기물을 생성하고 있었습니다. 이에 비해 이더리움 보호를 위한 총 에너지 소비량은 **연간 0.01TWh**에 가깝습니다. + +![산업 전반의 에너지 소비량 비교](./energy.png) + +위의 수치는 여러 산업의 연간 에너지 소비량 추정치를 연간 TWh로 나타낸 것입니다(2022년 6월 검색). _그래프에 표시된 추정치는 아래 본문에 연결된 공개적으로 사용할 수 있는 출처에서 얻은 것입니다. 추정치는 예시이며 공식적인 추정, 약속 또는 예측을 대변하지 않습니다._ + +이더리움 에너지 소비에 대해 설명하려면 다른 산업의 연간 추정치를 비교할 수 있습니다. 이더리움이 투자금인 디지털 자산을 안전하게 지킬 수 있는 플랫폼이라고 가정하면 [연간 240TWh](https://www.kitco.com/news/2021-05-17/Gold-s-energy-consumption-doubles-that-of-bitcoin-Galaxy-Digital.html)를 소모하는 것으로 추정되는 금 채굴에 비교할 수 있습니다. 디지털 결제 플랫폼으로는 페이팔과 비교해 볼 수 있습니다([연간 약 0.26TWh](https://app.impaakt.com/analyses/paypal-consumed-264100-mwh-of-energy-in-2020-24-from-non-renewable-sources-27261)를 소비할 것으로 추정됨). 오락 플랫폼으로는 [연간 약 34TW](https://www.researchgate.net/publication/336909520_Toward_Greener_Gaming_Estimating_National_Energy_Use_and_Energy_Efficiency_Potential)를 소비하는 것으로 추정되는 게임 산업과 비교할 수 있습니다. 넷플릭스의 에너지 소비량의 추정치는 크게 [연간 약 0.45TWh](https://s22.q4cdn.com/959853165/files/doc_downloads/2020/02/0220_Netflix_EnvironmentalSocialGovernanceReport_FINAL.pdf)(넷플릭스의 2019년에 보고된 추정치)에서 최대 연간 약 94TWh([시프트 프로젝트](https://theshiftproject.org/en/article/unsustainable-use-online-video/)에서 추정함) 사이입니다. [카본 브리프](https://www.carbonbrief.org/factcheck-what-is-the-carbon-footprint-of-streaming-video-on-netflix)에서 이 추정치의 기반이 되는 가설에 대한 논의를 볼 수 있습니다. 또는 이더리움을 [연간 약 244TWh](https://thefactsource.com/how-much-electricity-does-youtube-use/)를 소비할 것으로 추정되는 유튜브와 비교할 수 있지만, 이 값은 영상이 스트리밍되는 장치 종류와 데이터 센터와 같이 기반이 되는 인프라의 에너지 효율성에 크게 좌우됩니다. 유튜브 에너지 소비량 추정치는 채널과 각 영상별로 세분화되었습니다. [그 추정치](https://thefactsource.com/how-much-electricity-does-youtube-use/)는 2019년 강남 스타일을 시청한 사람들이 이더리움이 1년간 사용하는 지분 증명보다 45배 더 많은 에너지를 소비했다는 것을 의미합니다. + +## 친환경 애플리케이션 레이어 {#green-applications} + +이더리움의 에너지 소비량은 매우 낮지만 이더리움에는 크고 성장하며 매우 활발한 **재생 금융(ReFi)** 커뮤니티가 있습니다. 리파이 애플리케이션은 디파이 구성요소를 사용해 환경에 도움이 되는 긍정적인 외부 효과가 있는 금융 애플리케이션을 구축합니다. 리파이는 이더리움과 긴밀하게 연계되어 있고 더 광범위한 ["솔라펑크"](https://en.wikipedia.org/wiki/Solarpunk) 운동의 일부이며 기술 발전과 환경 관리 결합을 목표로 합니다. 탈중앙화된, 허가가 필요없는, 구성 가능한 이더리움의 특성은 이더리움을 리파이와 솔라펑크 커뮤니티를 위한 이상적인 베이스 레이어로 만듭니다. 이런 것의 개발(및 기타, 예: [디사이](/desci/))을 통해, 이더리움은 환경과 사회적으로 긍정적인 기술이 되고 있습니다. + +## 이더리움의 탄소 부채 {#carbon-debt} + +이더리움의 현재 에너지 소비량은 매우 낮지만, 항상 그렇지는 않았습니다. 이더리움은 2022년 3분기에 지분 증명 합의 메커니즘을 실행했습니다. 하지만 이더리움은 2014~2022년 작업 증명 메커니즘을 사용했으며, 이는 환경 비용이 훨씬 더 컸습니다. + +개시 후로 이더리움은 지분 증명 합의 메커니즘 구현을 목표로 했으나, 보안과 탈중앙화를 희생하지 않고 구현하는 데 수년 간의 집중 연구와 개발이 진행되었습니다. 따라서 네트워크를 작동하기 위해 작업 증명 메커니즘이 사용되었습니다. 작업 증명 합의는 채굴자가 퍼즐을 풀기 위해 컴퓨터 하드웨어를 사용해야 하며, 그 과정에서 에너지를 소비합니다. 퍼즐이라는 해결책은 채굴자가 에너지를 소비했다는 것을 증명하며, 블록체인에 추가할 권리를 위해 현실 세계의 가치를 투자했다는 것을 보여줍니다. 이더리움 총 에너지 소비량은 암호화폐 상승장 정점이었던 2022년 2월에 연간 94TWh 미만으로 최고조에 달했습니다. 지분 증명 전환 전 여름 에너지 소비량은 우즈베키스탄과 비슷한 연간 60TWh에 가까웠고 탄소 배출량은 아제르바이잔과 같았습니다(연간 33MT). + +작업 증명과 지분 증명 모두 다음 블록을 추가할 사람을 정하는 메커니즘일 뿐입니다. 작업 증명에서 투자된 현실 세계의 가치가 스마트 계약에 직접 투자된 ETH에서 나오는 지분 증명으로 교체하면 채굴자가 블록체인에 추가하기 위해 에너지를 태울 필요가 없어집니다. 따라서 네트워크를 보호하는 환경 비용이 대폭 감소합니다. + +## 지분 증명이 작업 증명보다 더 친환경적인 이유 {#why-pos-is-greener-than-pow} + +작업 증명은 네트워크를 보호하는 강력한 방법입니다. 이전의 작업 증명 시스템에서 이더리움 블록체인의 트랜잭션은 [채굴자](/developers/docs/consensus-mechanisms/pow/mining)에 의해 검증되었습니다. 채굴자는 트랜잭션을 정렬된 블록으로 묶어 이더리움 블록체인에 추가했습니다. 새 블록은 트랜잭션을 독자적으로 운영하는 모든 노드 운영자에게 전파되며 트랜잭션이 유효한지 확인했습니다. 모든 부정 행위는 다른 노드 간 불일치로 드러났습니다. 정직한 블록은 블록체인에 추가되어 변하지 않는 기록의 일부가 되었습니다. 채굴자의 새 블록을 넣는 기능은 채굴에 관련된 비용이 있고 다음 블록을 제출하는 특정 노드에 대해 예측 불가능한 경우에만 작동합니다. 이런 조건은 작업 증명을 도입하여 충족됩니다. 트랜잭션 한 블록을 제출할 자격을 얻으려면 채굴자가 계산 비용이 많이 드는 퍼즐의 해답을 제출해서 1등이 되어야 합니다. 블록체인을 성공적으로 통제하려면 부정직한 채굴자가 다른 채굴자 대부분을 능가할 수 있는 충분한 하드웨어와 에너지를 투자하여 작업 증명 경쟁에서 꾸준히 이겨야 합니다. + +네트워크를 보호하는 이 메커니즘은 여러 이유로 문제가 있습니다. 첫째, 채굴자는 더 강력한 하드웨어에 투자하여 갈수록 전력이 많이 드는 채굴 장비를 구하는 채굴자 간의 군비 경쟁 조건을 만들어 성공 확률을 높입니다. 이는 네트워크의 에너지 소비량을 증가시키고 하드웨어 폐기물을 생성했습니다. 둘째, 이더리움의 작업 증명 프로토콜(지분 증명 전환하기 전) 연간 총 전력 소비량은 대략 핀란드[^1]와 같고 탄소 발자국은 스위스[^1]와 비슷합니다. + +지분 증명은 채굴자 대신 검증자를 사용합니다. 검증자는 에너지 소비로 자산을 미리 지출하지 않고 부정직한 행위를 막기 위한 담보로 ETH를 스테이킹한다는 점을 제외하면 채굴자와 같은 기능을 합니다. 검증자가 문제를 일으키면 이 스테이킹된 ETH는 파괴됩니다. 더 나쁜 행위에는 더 심한 패널티가 주어집니다. 이는 큰 에너지 소비 없이 네트워크를 보호하는 것에 활발하고 정직하게 참여하도록 장려합니다. 작업 증명 네트워크를 보호하는 데에 쓰는 거의 모든 에너지가 채굴 알고리즘에서 나왔기 때문에 지분 증명 전환으로 에너지 소비가 크게 줄었습니다. 지분 증명 아래에서 더욱 강력한 하드웨어에 투자하여 얻을 수 있는 이득이 없으므로, 군비 경쟁 상황이 없고 전자기기 폐기물이 더 적습니다. 이더리움 검증자는 일반적인 노트북이나 [라즈베리 파이](https://ethereum-on-arm-documentation.readthedocs.io/en/latest/user-guide/ethereum2.0.html) 같은 저전력 장치에서 실행할 수 있습니다. + +[이더리움이 지분 증명을 구현하는 방법](/developers/docs/consensus-mechanisms/pos)과 작업 증명과 지분 증명의 차이점에 대해서 자세히 알아보세요. + + + 이러한 통계가 잘못되었거나 더 정확하게 만들 수 있다고 생각하는 경우 문제 제기 또는 풀 리퀘스트(Pull Request)를 하십시오. 이 추정치는 공개적으로 액세스할 수 있는 정보와 현재 이더리움 로드맵을 사용하여 나온 것입니다. 이 발언들은 이더리움 재단의 공식적 약속으로 한 것이 아닙니다. + + +## 더 읽을 거리 {#further-reading} + +- [한 국가만큼의 전력, 더는 안 된다](https://blog.ethereum.org/2021/05/18/country-power-no-more/) – _카를 베쿠이첸, 2021년 5월 18일_ +- [이더리움 에너지 소비](https://mirror.xyz/jmcook.eth/ODpCLtO4Kq7SCVFbU4He8o8kXs418ZZDTj0lpYlZkR8) +- [이더리움 배출량: 세부 추정치](https://kylemcdonald.github.io/ethereum-emissions/) – 카일 맥도널드 +- [이더리움 에너지 소비 인덱스](https://digiconomist.net/ethereum-energy-consumption/) – _디지코노미스트_ +- [ETHMerge.com](https://ethmerge.com/) — *[@InsideTheSim](https://twitter.com/InsideTheSim)* + +## 관련 주제 {#related-topics} + +- [이더리움의 비전](/upgrades/vision/) +- [비콘 체인](/upgrades/beacon-chain) +- [병합](/upgrades/merge/) +- [샤딩](/upgrades/beacon-chain/) diff --git a/src/content/translations/ko/governance/index.md b/src/content/translations/ko/governance/index.md new file mode 100644 index 00000000000..6b30c2fe285 --- /dev/null +++ b/src/content/translations/ko/governance/index.md @@ -0,0 +1,183 @@ +--- +title: 이더리움 운영 방식 +description: 이더리움이 결정을 내리는 과정에 대한 소개. +lang: ko +--- + +# 이더리움 운영 방식에 대한 소개 {#introduction} + +_아무도 이더리움을 소유하지 않고 있다면 이더리움에 적용될 과거와 미래의 변화에 대한 결정은 어떻게 내릴까요? 이더리움 운영 방식은 이러한 결정이 내려지는 과정을 일컫습니다._ + + + +## 운영 방식이란 무엇인가요? {#what-is-governance} + +운영 방식은 결정을 할 수 있도록 하는 시스템입니다. 일반적인 조직 구조에서 경영진 또는 이사회는 의사 결정의 최종 결정권을 가질 수 있습니다. 아니면 주주들이 변동 사항을 제정하기 위한 제안에 투표할 수도 있습니다. 정치 체계에서 선출된 국회의원은 유권자들의 요구를 대표하여 법률을 제정할 수 있습니다. + +## 탈중앙화 운영 방식 {#decentralized-governance} + +아무도 이더리움 프로토콜을 소유하거나 통제하지 않지만, 네트워크의 수명 및 번영을 가장 잘 보장하기 위해 변경 사항 실행에 대한 의사 결정은 여전히 필요합니다. 이러한 소유권 부족으로 인해 전통적인 조직 운영 방식은 무용지물이 됩니다. + +## 이더리움 운영 방식 {#ethereum-governance} + +이더리움 운영 방식은 프로토콜이 변경되는 과정입니다. 중요한 점은 이 과정이 사람과 애플리케이션이 프로토콜을 사용하는 방식과 관련이 없다는 것입니다. 즉, 이더리움은 허가가 필요하지 않습니다. 전 세계 어디서든 누구든지 온체인 활동에 참여할 수 있습니다. 누가 애플리케이션을 만들거나 만들 수 없는지, 거래를 보내거나 보낼 수 없는지 정하는 규칙은 없습니다. 단, 이러한 애플리케이션이 실행되는 핵심 프로토콜에 대한 변경을 제안하는 프로세스는 있습니다. 많은 사람이 이더리움의 안정성에 의존하기 때문에 사회적, 기술적 과정을 포함한 핵심 변경 사항에 대한 조정 문턱은 매우 높습니다. 이는 이더리움에 대한 어떠한 변화도 안전하고 커뮤니티의 폭넓은 지지를 받게 하기 위함입니다. + +### 온체인 vs 오프체인 운영 방식 {#on-chain-vs-off-chain} + +블록체인 기술은 새로운 운영 방식 능력인 온체인 운영 방식을 가능하게 합니다. 온체인 운영 방식은 제안된 프로토콜 변경 사항이 이해 당사자의 투표(일반적으로 운영 방식 토큰의 보유자)에 의해 결정되고 블록체인에서 투표가 이루어지는 경우를 말합니다. 일부 형태의 온체인 운영 방식을 통해, 제안된 프로토콜 변동 사항은 이미 코드로 작성되고 이해 당사자들이 변경을 승인하면 자동으로 시행됩니다. + +반대 접근 방식인 오프체인 운영 방식은 사회적 논의라는 비공식 프로세스를 통해 프로토콜 변경 사항에 대한 결정이 이루어지고, 승인되면 코드로 구현됩니다. + +**이더리움 운영 방식은 오프체인에서** 프로세스에 관여하는 다양한 이해 당사자들과 함께 진행됩니다. + +_프로토콜 수준에서 이더리움 운영 방식은 오프체인인 반면, DAO와 같은 이더리움 상에 구축된 다양한 사용 사례는 온체인 운영 방식을 사용합니다._ + + + DAO에 대해 자세히 알아보기 + + + + +## 누가 관련돼 있나요? {#who-is-involved} + +[이더리움 커뮤니티](/community/)에는 다양한 이해 당사자들이 있으며, 각자 운영 방식 프로세스에서 역할을 담당하고 있습니다. 프로토콜에서 가장 멀리 떨어져 있는 이해 당사자로부터 시작하여 확대해 보면 다음과 같은 사용자가 있습니다. + +- **이더 소유자**: 임의의 양의 ETH를 가지고 있는 사람들입니다. [ETH에 대해 자세히 알아보기](/eth/). +- **애플리케이션 사용자**: 이더리움 블록체인에 있는 애플리케이션을 사용하는 사람들입니다. +- **애플리케이션/툴링 개발자**: 이더리움 블록체인에서 실행되는 애플리케이션(예: DeFi, NFT 등)을 만드는 사람이나 이더리움에서 상호 작용하는 툴링(예: 지갑, 테스트 제품군 등)을 만드는 사람들입니다. [디앱에 대해 자세히 알아보기](/dapps/). +- **노드 운영자**: 노드를 운영하고 블록과 거래를 전파하며, 무효한 거래를 거부하거나 차단하는 사람들입니다. [노드에 대해 자세히 알아보기](/developers/docs/nodes-and-clients/). +- **EIP 저자**: 이더리움 개선 제안(EIP)의 형태로 이더리움 프로토콜에 대한 변경 사항을 제안하는 사람들입니다. [EIP에 대해 자세히 알아보기](/eips/). +- **채굴자/검증자**: 이더리움 블록체인에 새로운 블록을 추가할 수 있는 노드를 운영하는 사람들입니다. +- **프로토콜 개발자**( "코어 개발자"라고도 함): 다양한 이더리움 구현(예: 실행 계층에서 고-이더리움, 네더마인드, 베수, 에리곤 또는 합의 계층에서 프리즘, 라이트하우스, 님버스, 테쿠, 로데스타)을 유지하는 사람들입니다. [이더리움 클라이언트에 대해 자세히 알아보기](/developers/docs/nodes-and-clients/) + +_참고: 개인은 이러한 여러 그룹에 속할 수 있습니다(예: 프로토콜 개발자는 EIP를 보호하고, 비콘 체인 검증자를 실행하거나, 디파이 애플리케이션을 사용할 수 있음). 개념적 명확성을 위해서는 둘을 구별하는 것이 가장 쉽겠지만 말입니다._ + + + +## EIP가 무엇인가요? {#what-is-an-eip} + +이더리움 운영 방식에서 사용되는 중요한 프로세스 중 하나는 **이더리움 개선 제안(EIP)**의 제안입니다. EIP는 이더리움의 잠재적인 새로운 기능이나 프로세스를 지정하는 표준입니다. 이더리움 커뮤니티 내의 누구나 EIP를 만들 수 있습니다. 예를 들어, NFT를 표준화한 EIP인 EIP-721의 그 어떤 저자도 이더리움 프로토콜 개발에 직접적으로 관여하지 않았습니다. + + + EIP에 대해 자세히 알아보기 + + + + +## 공식적인 프로세스 {#formal-process} + +이더리움 프로토콜의 변경 사항을 소개하는 공식적인 프로세스는 다음과 같습니다. + +1. **코어 EIP 제안**: [EIP-1](https://eips.ethereum.org/EIPS/eip-1#core-eips)에서 설명한 대로 이더리움에 변경 사항을 공식적으로 제안하는 첫 번째 방법은 코어 EIP에 자세히 설명하는 것입니다. 이는 프로토콜 개발자가 승인할 경우 구현할 EIP의 공식 설명서로 작용합니다. + +2. **프로토콜 개발자에게 EIP를 제시**: 커뮤니티 의견을 수집해서 코어 EIP를 정리했으면 프로토콜 개발자에게 제시해야 합니다. [AllCoreDevs 소집](https://github.com/ethereum/execution-specs/tree/master/network-upgrades#getting-the-considered-for-inclusion-cfi-status)에서 논의를 위해 제안할 수도 있습니다. [이더리움 마술사 포럼](https://ethereum-magicians.org/)이나 [이더리움 R&D 디스코드 서버](https://discord.gg/mncqtgVSVw)에서 비동기적으로 이미 논의가 진행되었을 수도 있습니다. + +> 이 단계에서 나올 수 있는 결과는 다음과 같습니다. + +> - 해당 EIP는 향후 네트워크 업그레이드에 대해 고려됩니다. +> - 기술적인 변경 사항이 요청됩니다. +> - 우선순위가 아니거나 개발 노력에 비해 충분한 개선 효과가 없는 경우 거부될 수도 있습니다. + +3. **마지막 제안까지 반복**: 관련된 모든 이해 당사자들로부터 피드백을 받은 후 보안을 향상시키거나 다양한 사용자의 요구를 더욱 잘 충족시키기 위해 초기 제안을 변경해야 할 수도 있습니다. EIP에 필요한 모든 변경 사항이 적용되었다면, 다시 프로토콜 개발자들에게 제시해야 합니다. 그 후 이 프로세스의 다음 단계로 이동하거나, 새로운 문제가 발생하면 제안을 다시 반복해야 합니다. + +4. **네트워크 업그레이드에 포함된 EIP**: EIP가 승인되어 테스트 및 구현이 완료되었다고 가정했을 때 이는 네트워크 업그레이드의 일부분으로 예약됩니다. 네트워크 업그레이드의 높은 조정 비용(모든 사용자가 동시에 업그레이드해야 함)을 고려할 때 EIP는 일반적으로 업그레이드에 번들로 함께 제공됩니다. + +5. **활성화된 네트워크 업그레이드**: 네트워크 업그레이드가 활성화된 후 EIP는 이더리움 네트워크에 라이브로 실행됩니다. _참고: 네트워크 업그레이드는 이더리움 메인넷에서 활성화되기 전에 보통 테스트넷에서 활성화됩니다._ + +이 흐름은 굉장히 간략하지만 프로토콜 변경 사항이 이더리움에서 활성화되는 중요한 단계의 개요를 제공합니다. 이제 이 과정에서 나타나는 비공식적인 요인을 살펴보겠습니다. + +## 비공식적인 프로세스 {#informal-process} + +### 이전 작업을 이해하기 {#prior-work} + +EIP 챔피언은 이더리움 메인넷에 배포하는 것을 진지하게 고려할 수 있는 EIP를 만들기 전에 이전 작업물 및 제안 사항을 숙지해야 합니다. 이렇게 하면 EIP는 이전에 거절되지 않았던 새로운 기능을 제안할 수 있습니다. 이를 검색할 수 있는 3대 주요 장소는 [EIP 저장소](https://github.com/ethereum/eips), [이더리움 마술사](https://ethereum-magicians.org/) 및 [ethresear.ch](https://ethresear.ch/)입니다. + +### 작업 그룹 {#working-groups} + +EIP의 초안은 수정이나 변경 없이 이더리움 메인넷에 구현될 가능성이 낮습니다. 일반적으로 EIP 챔피언은 프로토콜 개발자의 하위 집합과 협력하여 해당하는 제안을 구체화, 구현, 테스트, 반복, 확정합니다. 과거에 비추어 봤을 때 이러한 작업 그룹은 몇 개월(때로는 몇 년이나!) 동안 작업하기도 했습니다. 마찬가지로, EIP 챔피언은 변경 사항에 대해 최종 사용자의 피드백을 수집하고 배포 위험을 완화하기 위해 관련 애플리케이션/툴링 개발자를 조기에 참여시켜야 합니다. + +### 커뮤니티 합의 {#community-consensus} + +일부 EIP는 최소한의 뉘앙스로 간단한 기술적 개선이지만, 다른 EIP는 더 복잡하고 본질적으로 상호 절충적인 것이어서 다양한 이해 관계자에게 다양한 방식으로 영향을 미칩니다. 즉, 일부 EIP는 다른 EIP보다 커뮤니티 내에서 더 많은 논쟁을 일으킬 수도 있다는 의미이기도 합니다. + +논쟁의 소지가 있는 제안을 처리하는 방법에 대한 정해진 각본은 없습니다. 프로토콜 개발자는 사용자에게 네트워크 업그레이드를 채택하도록 강요할 방법이 없기 때문에 일반적으로 폭넓은 공동체에 대한 이익보다 논쟁성이 더 큰 EIP의 구현은 피하게 됩니다. + +EIP 챔피언은 모든 관련 이해 당사자로부터 의견을 수집해야 합니다. 귀하가 논쟁의 소지가 될 EIP의 챔피언인 경우, 해당하는 EIP에 대한 합의를 형성하기 위해 반대 의견을 해결하려고 노력해야 합니다. 이더리움 커뮤니티의 크기와 다양성을 고려할 때 커뮤니티 합의를 측정하는 데 사용할 수 있는 단일 기준(예: 동전 투표)은 없으며, EIP 챔피언은 제안에 대한 정황을 받아들여야 합니다. + +이더리움 네트워크의 보안을 넘어, 이더리움을 사용하고 이더리움에서 개발하는 것이 다른 이해 당사자에게 생태계를 매력적으로 만드는 요소라는 점에서 프로토콜 개발자는 역사적으로 애플리케이션/툴링 개발자와 애플리케이션 사용자가 중요하게 여기는 것에 상당한 비중을 두고 있습니다. 또한 EIP는 모든 클라이언트에 걸쳐 구현되어야 하며, 이는 별도의 팀이 관리합니다. 이 프로세스의 일부는 일반적으로 여러 프로토콜 개발자 팀에게 특정 변경 사항이 더 중요하고 최종 소비자에게 도움이 되거나 보안 문제를 해결할 수 있다고 설득하는 작업을 의미합니다. + + + +## 의견 차이 해결하기 {#disagreements} + +다른 동기와 믿음을 가진 많은 이해 당사자들이 있기에 의견 차이는 흔히 있는 일입니다. + +일반적으로 의견 차이는 공개적인 포럼에서 문제의 근원을 이해하고 모두가 관여할 수 있게 장시간 토론으로 해결됩니다. 보통 한 그룹이 수긍하거나 양쪽 다 만족할 수 있는 중간 지점에서 합의합니다. 한 그룹이 의견을 굽히지 않고 특정 변경 사항을 강제로 진행하는 것은 연쇄 분열을 초래할 수 있습니다. 체인 분열은 일부 이해 당사자들이 프로토콜 변경 사항 구현에 반대하는 것으로, 서로 다른 호환되지 않는 버전의 프로토콜 운영에서 두 개의 개별 블록체인이 나타나는 결과로 이어집니다. + +### DAO 포크 {#dao-fork} + +포크는 네트워크에 주요 기술 업그레이드나 변경 사항이 필요할 때 프로토콜의 "규칙"을 바꿉니다. [이더리움 클라이언트는](/developers/docs/nodes-and-clients/) 새로운 포크 규칙을 구현하기 위해 소프트웨어를 업데이트해야 합니다. + +DAO 포크는 안전하지 않은 [DAO 계약](/glossary/#dao)에서 해킹에 의해 360만 ETH가 소실된 [2016년 DAO 공격](https://www.coindesk.com/understanding-dao-hack-journalists)에 대한 대응책이었습니다. 포크는 부실 계약에서 새로운 계약으로 자금을 이동시켜 해킹으로 자금을 잃은 사람 누구나 자금을 회수할 수 있게 했습니다. + +이러한 조치는 이더리움 커뮤니티가 투표한 결과입니다. ETH 보유자는 누구든지 [투표 플랫폼](http://v1.carbonvote.com/)에서 트랜잭션을 통해 투표할 수 있었습니다. 포크하기 위한 결정은 85% 이상의 표를 얻었습니다. + +프로토콜이 해킹을 되돌리기 위해 포크를 실시했지만, 포크를 결정하는 데 있어서 투표의 중요성은 다음과 같은 몇 가지 이유로 논쟁의 여지가 있다는 부분에 주목해야 합니다. + +- 투표를 위한 투표자 수가 굉장히 낮았습니다. +- 대부분의 사람들은 투표가 진행되는 줄 몰랐습니다. +- 투표는 ETH 보유자만 대변할 뿐, 시스템의 다른 참여자 중 누구도 대변하지 않았습니다. + +커뮤니티의 한 부분 집단은 DAO 사건이 프로토콜의 결함이 아니라고 생각했기 때문에 포크를 거부했습니다. 해당 사용자는 계속해서 [이더리움 클래식](https://ethereumclassic.org/)을 제작했습니다. + +오늘날 이더리움 커뮤니티는 계약 오류나 자금 손실의 경우 시스템의 신뢰 중립성을 유지하기 위해 개입하지 않는다는 정책을 받아들였습니다. + +DAO 해킹에 대해 자세히 보기: + + + + + +### 포킹의 유용성 {#forking-utility} + +이더리움/이더리움 클래식 포크는 건강한 포크의 좋은 예입니다. 일부 핵심 가치에 대해 서로 강하게 반대했던 두 그룹이 있었는데, 그들은 구체적인 행동 방침을 추구하기 위해 관련 위험을 감수할 가치가 있다고 느꼈습니다. + +이더리움 운영 방식의 성공에는 상당한 정치적, 철학적 또는 경제적 차이에 맞닥뜨렸을 때 포크할 수 있는 기능이 큰 몫을 합니다. 포크 기능이 없다면 대안책은 지속적인 싸움, 이더리움 클래식을 개발한 사람들의 강제적이고 마지못한 참여, 이더리움의 성공에 대해 갈수록 달라지는 비전이었습니다. + + + +## 비콘 체인 개발 {#beacon-chain} + +이더리움 운영 방식 프로세스는 자주 개방성과 포용성을 위해 속도와 효율성을 교환합니다. 비콘 체인의 개발을 가속화하기 위해 이는 작업 증명 이더리움 네트워크에서 별도로 출시되었고 자체 운영 방식 관행을 따랐습니다. + +사양 및 구현 개발은 항상 완전한 오픈 소스였지만, 상단에 설명한 업데이트를 제안하기 위한 공식적인 절차는 사용되지 않았습니다. 이를 통해 연구자와 구현자가 변경 사항을 더 빨리 명시하고 합의할 수 있었습니다. + +비콘 체인이 이더리움 실행 계층과 병합되면 변경 사항을 제안하기 위한 운영 방식 프로세스가 조화를 이룰 것으로 기대합니다. 병합을 실행하려는 이 프로세스는 [이미 진행 중입니다](https://github.com/ethereum/EIPs/pull/3675). + + + 병합에 대해 자세히 알아보기 + + + + +## 어떻게 참여하나요? {#get-involved} + +- [EIP를 제안하세요](/eips/#participate) +- [현재 제안에 대해 논의하세요](https://ethereum-magicians.org/) +- [R&D 토론에 참여하세요](https://ethresear.ch/) +- [이더리움 R&D 디스코드에 참여하세요](https://discord.gg/mncqtgVSVw) +- [노드를 운영하세요](/developers/docs/nodes-and-clients/run-a-node/) +- [클라이언트 개발에 기여하세요](/developers/docs/nodes-and-clients/#execution-clients) +- [코어 개발자 견습 프로그램](https://blog.ethereum.org/2021/09/06/core-dev-apprenticeship-second-cohort/) + +## 더 읽을거리 {#further-reading} + +이더리움의 운영 방식은 엄격하게 정해진 것이 아닙니다. 여러 커뮤니티 참여자들이 이에 대해 다양한 관점을 가지고 있습니다. 다음은 그 중 몇 가지입니다. + +- [블록체인 운영 방식에 대한 설명](https://vitalik.ca/general/2017/12/17/voting.html) - _비탈릭 부테린_ +- [이더리움의 운영 방식](https://docs.ethhub.io/ethereum-basics/governance/) – _ETHHub_ +- [이더리움 운영 방식은 어떻게 작동합니까?](https://cryptotesters.com/blog/ethereum-governance) – _크립토테스터스_ +- [어떻게 이더리움 운영 방식이 작동하는가](https://medium.com/coinmonks/how-ethereum-governance-works-71856426b63a) – _미카 졸투_ +- [이더리움 코어 개발자란 무엇인가요?](https://hudsonjameson.com/2020-06-22-what-is-an-ethereum-core-developer/) - _허드슨 제임슨_ +- [운영 방식, 2부: 금권정치는 아직도 나쁘다](https://vitalik.ca/general/2018/03/28/plutocracy.html) - _비탈릭 부테린_ +- [코인 투표 운영 방식을 넘어서](https://vitalik.ca/general/2021/08/16/voting3.html) - _비탈릭 부테린_ diff --git a/src/content/translations/ko/security/index.md b/src/content/translations/ko/security/index.md new file mode 100644 index 00000000000..5f540262034 --- /dev/null +++ b/src/content/translations/ko/security/index.md @@ -0,0 +1,281 @@ +--- +title: 이더리움 보안 및 사기 방지 +description: 이더리움에서 안전 유지하기 +lang: ko +--- + +# 이더리움 보안 및 사기 방지 {#introduction} + +암호화폐에 대한 관심이 늘어남에 따라, 암호화폐를 올바르게 사용하는 방법을 배우는 것 또한 필수 사항이 되었습니다. 암호화폐는 재미있고 흥미로울 수 있지만, 상당한 위험도 따릅니다. 사용에 앞서 작은 준비만 한다면, 이러한 위험을 줄일 수 있습니다. + + + +## 웹 보안에 대한 모든 것 {#web-security} + +### 강력한 비밀번호 사용하기 {#use-strong-passwords} + +[80% 이상의 계정이 비밀번호가 취약하기 때문에 해킹됩니다](https://cloudnine.com/ediscoverydaily/electronic-discovery/80-percent-hacking-related-breaches-related-password-issues-cybersecurity-trends/). 문자, 숫자, 특수 문자를 조합한 긴 비밀번호를 사용하면 계정을 안전하게 보호할 수 있습니다. + +일반 사용자들이 비밀번호를 만들 때 많이 하는 실수 중 하나는 일반적으로 쓰이고 서로 관련된 단어 2~3개의 조합을 사용하는 것입니다. 이러한 비밀번호는 흔한 해킹 기술인 [사전 공격](https://wikipedia.org/wiki/Dictionary_attack)에 취약합니다. + +```md +취약한 비밀번호의 예시: CuteFluffyKittens! + +강력한 비밀번호의 예시: ymv\*azu.EAC8eyp8umf +``` + +또 다른 흔한 실수는 쉽게 추측이 가능하거나 [사회공학]() 해킹을 통해 짐작하기 쉬운 비밀번호를 사용하는 것입니다. 어머니, 자녀 또는 애완동물의 이름이나 자신의 생일을 포함해서 만든 비밀번호는 보안에 취약하고 해킹의 위험을 높입니다. + +#### 강력한 비밀번호를 만드는 방법: {#good-password-practices} + +- 비밀번호 생성기 및 작성하는 양식에 최대한 긴 비밀번호를 사용합니다. +- 비밀번호에 대소문자, 숫자 및 특수 문자를 조합합니다. +- 비밀번호에 가족 이름 등의 개인 정보를 사용하지 않습니다. +- 비밀번호에 일반적으로 자주 쓰이는 단어를 사용하지 않습니다. + +[강력한 비밀번호를 만드는 방법에 대해 자세히 알아보기](https://terranovasecurity.com/how-to-create-a-strong-password-in-7-easy-steps/) + +### 서로 다른 비밀번호 사용하기 {#use-unique-passwords} + +아무리 강력한 비밀번호라도 한 번 유출된 이후에는 보안에 도움이 되지 않습니다. [내 비밀번호가 유출되었을까요?](https://haveibeenpwned.com) 웹사이트에서 계정 비밀번호가 유출되어 해커의 데이터베이스에 존재하는지 여부를 확인할 수 있습니다. 존재하는 경우엔 **해당 비밀번호를 즉시 변경해야** 합니다. 계정마다 고유한 비밀번호를 사용하면 한 계정의 비밀번호가 유출되었을 때 다른 계정을 보호할 수 있는 방법이 됩니다. + +### 비밀번호 관리 프로그램 사용하기 {#use-password-manager} + + +
+ 비밀번호 관리 프로그램은 자동으로 강력하고 고유한 비밀번호를 생성하고 저장합니다. 해당하는 프로그램을 사용할 것을 강력하게 권하며, 대부분은 무료입니다! +
+
+ +모든 계정마다 강력하고 유일한 비밀번호를 만들고 기억하는 것은 거의 불가능합니다. 비밀번호 관리 프로그램은 모든 비밀번호에 대해 하나의 강력한 마스터 비밀번호를 통해 액세스할 수 있는 안전하고 암호화된 저장소를 제공합니다. 해당 프로그램은 새로운 서비스에 가입할 때 강력한 비밀번호를 제안하므로, 직접 고민하여 만들지 않아도 됩니다. 다수의 비밀번호 관리 프로그램은 비밀번호가 유출되었을 경우에 알림을 보내며, 악의적인 공격이 발생하기 전에 비밀번호를 변경할 수 있게 합니다. + +![비밀번호 관리 프로그램 사용의 예시](./passwordManager.png) + +#### 다음과 같은 비밀번호 관리 프로그램을 사용해 보십시오. {#try-password-manager} + +- [Bitwarden](https://bitwarden.com/) +- [KeePass](https://keepass.info/) +- [LastPass](https://www.lastpass.com/) +- [1Password](https://1password.com/) + +### 2단계 인증 사용하기 {#two-factor-authentication} + +본인 인증에는 다양한 증명 방법을 사용할 수 있습니다. 이를 **요소(factor)**라고 하며, 다음과 같은 3가지 대표적인 요소가 있습니다. + +- 지식 기반 (비밀번호 혹은 보안 질문 등) +- 속성 기반 (지문, 홍채, 얼굴 인식 등) +- 소유 기반 (스마트폰의 보안 키 또는 인증 앱) + +**2개 요소 인증(2FA)** 또는 2단계 인증이란 온라인 계정에 추가 *보안 요소*를 제공함으로써 로그인 시 비밀번호를 아는 것(지식 기반) 이외에도 1가지를 더 증명하도록 한 것을 일컫습니다. 가장 흔한 두 번째 요소는 6자리의 무작위 숫자 코드인 **시간 기반 일회성 비밀번호(TOTP)**를 사용하는 것으로, Google Authenticator 또는 Authy과 같은 인증 앱을 통해 액세스할 수 있습니다. 시간 기반 코드를 생성하는 시드는 스마트폰에 저장되기 때문에 "소유 기반" 요소로 작동합니다. + + +
+ 참고: 문자(SMS) 기반 2FA는 SIM 탈취 공격에 노출되므로 보안에 취약합니다. 가장 안전한 방법은 Google Authenticator 또는 Authy와 같은 서비스를 사용하는 것입니다. +
+
+ +#### 보안 키 {#security-keys} + +더 강도 높은 2단계 인증을 사용하시려면 보안 키 사용을 고려해 보세요. 보안 키는 인증 앱과 동일한 방식으로 작동하는 물리적 하드웨어 인증 기기입니다. 보안 키는 가장 강력한 보안을 제공하는 2단계 인증 수단입니다. 사용되는 키의 대부분은 FIDO Universal 2nd Factor(U2F) 표준입니다. [FIDO U2F에 대해 자세히 알아보기](https://www.yubico.com/authentication-standards/fido-u2f/). + +2단계 인증에 대해 자세히 알아보기: + + + +### 브라우저 확장 프로그램 삭제하기 {#uninstall-browser-extensions} + +Chrome 확장 프로그램 또는 Firefox 애드온과 같은 브라우저 확장 프로그램은 유용한 브라우저 기능을 확장하고 사용자 환경을 향상하지만, 일정 위험을 수반합니다. 기본적으로 대부분의 브라우저 확장 프로그램은 '사이트 데이터의 읽기 및 변경' 권한을 요청하기 때문에 귀하의 데이터를 마음대로 활용할 수 있습니다. Chrome 확장 프로그램은 항상 자동으로 업데이트되기 때문에 이전에는 안전했던 확장 프로그램에 나중에 보안에 위험한 코드가 추가될 수 있습니다. 대부분의 확장 프로그램은 데이터를 훔치려고 시도하지 않지만, 항상 리스크가 있다는 것을 인식하고 있어야 합니다. + +#### 보안을 강화하는 방법 {#browser-extension-safety} + +- 믿을 수 있는 출처의 브라우저 확장 프로그램만 설치 +- 사용하지 않는 확장 프로그램 제거 +- 로컬에 Chrome 확장 프로그램을 설치하여 자동 업데이트 중지 (고급) + +[브라우저 확장 프로그램의 위험성에 대해 자세히 알아보기](https://www.kaspersky.co.uk/blog/browser-extensions-security/12750/) + + + +## 암호화폐 보안에 대한 모든 것 {#crypto-security} + +### 지식의 수준 높이기 {#level-up-your-knowledge} + +사람들이 일반적으로 암호화폐 관련 사기를 당하는 이유는 이해도가 부족하기 때문입니다. 예를 들어, 이더리움 네트워크는 탈중앙화되어 있고 소유자가 없다는 사실을 이해하지 못한다면 고객 지원 서비스 담당자로 위장하여 개인 키에 대한 대가로 거래소에서 잃은 ETH를 돌려주겠다고 약속하는 누군가에게 속아 넘어가기 쉽습니다. 이더리움의 작동 원리에 대해 알아두는 것은 충분한 가치가 있습니다. + + + 이더리움이란? + + + + 이더는 무엇인가? + + + +## 지갑 보안 {#wallet-security} + +### 개인 키를 타인에게 제공하지 마세요 {#protect-private-keys} + +**어떠한 이유로든 절대로 개인 키를 공유하지 마세요!** + +지갑의 개인 키는 당신의 이더리움 지갑에 대한 비밀번호로 작용합니다. 개인 키만 있다면 지갑 주소를 알고 있는 누군가가 계정의 모든 자금을 가져갈 수 있습니다! + + + 이더리움 지갑이란? + + +#### 시드 문구나 개인 키의 스크린샷을 찍지 마세요 {#screenshot-private-keys} + +시드 문구나 개인 키를 스크린샷으로 찍는 것은 클라우드에 동기화할 위험에 노출될 수 있으며 잠재적으로 해커가 액세스할 수도 있습니다. 클라우드에서 개인 키를 알아내는 것은 해커의 흔한 공격 방식입니다. + +### 하드웨어 지갑을 사용하세요 {#use-hardware-wallet} + +하드웨어 지갑은 개인 키에 대한 오프라인 저장 공간을 제공합니다. 이는 개인 키를 보관할 수 있는 가장 안전한 지갑 옵션으로 알려져 있습니다. + +개인 키를 오프라인으로 보관하는 것은 해커가 컴퓨터를 해킹한 경우에도 지갑 해킹의 가능성은 크게 낮춰 줍니다. + +#### 다음과 같은 하드웨어 지갑을 사용해 보십시오. {#try-hardware-wallet} + +- [Ledger](https://www.ledger.com/) +- [Trezor](https://trezor.io/) + +### 보내기 전에 거래를 한 번 더 확인하세요 {#double-check-transactions} + +잘못된 지갑 주소로 암호화폐를 보내는 실수가 종종 발생합니다. **이더리움에서는 트랜잭션을 한 번 보내면 돌이킬 수 없습니다.** 해당 주소의 소유자가 누군지 알고 있고 다시 자금을 돌려주는 경우가 아니라면, 자금을 되돌려 받을 방법은 없습니다. + +트랜잭션을 보내기 전에 받는 사람의 주소가 올바른지 꼭 다시 한 번 확인하세요. 스마트 계약을 사용하는 경우 서명 전에 트랜잭션 메시지를 읽는 것 또한 권장됩니다. + +### 스마트 계약 지불 한도를 설정하세요 {#spend-limits} + +스마트 계약을 사용할 때 지불 한도를 무제한으로 허용하지 마십시오. 무제한으로 지정하면 스마트 계약이 지갑의 자금을 모두 사용할 수도 있습니다. 대신, 트랜잭션을 위해 필요한 만큼만 지불 한도를 설정하세요. + +많은 이더리움 지갑은 계정의 자금을 보호하기 위해 한도 설정 기능을 제공합니다. + +[한도 설정 기능이 포함된 지갑 살펴보기](/wallets/find-wallet/?filters=has_limits_protection) + + + +## 흔한 사기 방식 {#common-scams} + +사기꾼들은 귀하의 자금을 항상 노리고 있습니다. 사기꾼을 모두 막는 것은 어렵겠지만, 이들의 가장 흔한 사기 방식을 알고 있다면 해당 사기로 인한 위험을 줄일 수 있습니다. 사기 방식은 물론 다양하지만, 일반적으로 동일한 고급 패턴 중 하나를 따릅니다. 특별한 경우가 아니라면, 다음 사항을 숙지하세요. + +- 항상 의심합니다. +- 공짜 혹은 할인된 ETH는 존재하지 않습니다. +- 개인 키 혹은 개인 정보는 절대로 제공할 필요가 없습니다. + +### 공짜 사기 {#giveaway} + +암호화폐에서 가장 흔한 사기 방식으로 공짜 사기가 있습니다. 공짜 사기에는 다양한 유형이 있지만 일반적으로 귀하가 특정 지갑 주소로 ETH를 보내면 그 2배의 ETH가 돌아온다는 형태가 있습니다. *이러한 이유로, 이 사기는 1대2 사기라고도 합니다.* + +이러한 방식의 사기는 보통 제한 시간 혹은 기간을 두어 다급함을 위장하고 잘못된 선택을 유도합니다. + +#### 소셜미디어 해킹 {#social-media-hacks} + +대표적인 예시로 2020년 7월 트위터의 유명 연예인 및 조직의 계정이 해킹된 사건이 있습니다. 해커는 바로 해킹된 계정에 비트코인 공짜 제공 게시글을 올렸습니다. 해당 게시물은 바로 삭제 처리되었지만, 그럼에도 불구하고 해커는 11비트코인(2021년 9월 기준 약 50만불)을 훔쳐 갈 수 있었습니다. + +![트위터에서의 사기](./appleTwitterScam.png) + +#### 유명인 공짜 사기 {#celebrity-giveaway} + +유명인 공짜 사기는 공짜 사기의 또 다른 흔한 유형입니다. 사기꾼들은 유명인의 연설이나 인터뷰를 녹화한 후 이를 YouTube에서 생중계인 것처럼 방송합니다. 마치 유명인이 실시간으로 암호화폐를 공짜로 제공하는 듯한 인터뷰 영상을 내보냅니다. + +비탈릭 부테린은 이 사기에 가장 많이 사용되고 있으며, 이외에 암호화폐와 관련된 많은 유명 인사들(일론 머스크나 찰스 호킨스)도 이용당합니다. 이렇게 유명인을 사용하는 것은 사기꾼들의 생중계가 마치 합법적인 것처럼 보이게끔 만듭니다(뭔가 이상하지만, 비탈릭이 하는 것이니까 괜찮겠지!). + +**공짜로 주겠다는 것은 언제나 사기입니다. 만약 해당하는 계정으로 자금을 보낸다면 영원히 없어지는 것이라고 보면 됩니다.** + +![YouTube에서의 사기](./youtubeScam.png) + +### 후원 사기 {#support-scams} + +암호화폐는 생긴 지 얼마 안 됐으며, 종종 잘못된 내용으로 인지되고 있는 기술입니다. 이 점을 파고드는 흔한 사기 방식이 후원 사기이며, 사기꾼들은 유명한 지갑, 거래소, 블록체인 등의 후원 직원으로 가장하여 접근합니다. + +이더리움에 대한 대부분의 논의는 디스코드에서 이루어집니다. 후원 사기꾼들은 종종 이런 공개 디스코드 채널에서 후원 관련 질문을 한 사람을 찾아 타겟으로 삼은 후 개인 메시지를 보냅니다. 후원 사기꾼들은 신뢰를 쌓은 후 지갑의 개인 키를 공개하도록 속이거나 직접 자금을 보내달라고 요청합니다. + +![디스코드에서의 후원 사기](./discordScam.png) + +일반적인 규칙으로, 직원은 절대 개인 또는 비공식 채널을 통해 소통하지 않습니다. 후원 관련하여 아래 사항을 명심하세요. + +- 절대로 개인 키, 시드 문구, 비밀번호를 공유하지 마세요. +- 절대로 타인을 당신의 컴퓨터에 원격 접속시키지 마세요. +- 절대로 기관의 정해진 채널 외에 다른 곳에서 소통하지 마세요. + + +
+ 명심하세요: 대부분의 후원 사기는 디스코드에서 발생하지만, 이외에 이메일 등 암호화폐 관련 논의가 오가는 채팅 애플리케이션에서도 일어날 수 있습니다. +
+
+ +### 'Eth2' 토큰 사기 {#eth2-token-scam} + +[병합](/upgrades/merge/)이 이슈화됨에 따라 사기꾼들은 'Eth2' 용어와 관련된 혼란을 이용하여 사용자가 'ETH2' 토큰에 대해 ETH를 상환하도록 속입니다. 하지만 병합과 관련하여 'Eth2'는 물론이고 어떠한 합법적인 토큰도 소개된 적이 없습니다. 병합 이전에 소유한 ETH는 지금도 동일한 ETH입니다. **작업 증명에서 지분 증명으로 넘어갈 때 ETH와 관련하여 귀하가 취해야 하는 작업은 아무것도 없습니다**. + +사기꾼들은 "도우미" 역할을 자청하여, 만약 ETH를 예치할 경우 'ETH2'를 받게 된다고 속이려 할 것입니다. 하지만 [공식적인 이더리움 도우미](/community/support/)라는 것은 존재하지 않으며, 새로운 토큰 또한 없습니다. 절대로 지갑의 시드 문구를 다른 사람과 공유하지 마십시오. + +_참고: 스테이킹된 ETH를 나타내기 위한 파생 토큰/티커가 있을 수 있습니다(로켓 풀의 rETH, 리도의 stETH, 코인베이스의 ETH2 등). 하지만 이는 특별히 "이전해야 하는" 대상이 아닙니다._ + +### 피싱 사기 {#phishing-scams} + +피싱 사기는 최근 증가하고 있는 또 다른 사기 유형입니다. + +일부 피싱 이메일은 사용자가 링크를 클릭하면 유사한 웹사이트로 이동하게 한 후, 시드 문구를 입력하거나 비밀번호를 재설정 또는 ETH를 보내게끔 안내합니다. 때로는 몰래 악성 코드를 설치하게 함으로써 컴퓨터의 파일에 사기꾼들이 액세스할 수 있게 합니다. + +알 수 없는 발신자로부터 이메일을 수신하는 경우, 다음 사항을 숙지하세요. + +- 모르는 이메일 주소에서 발송된 이메일에 포함된 링크나 첨부파일은 절대 클릭하지 마세요. +- 개인 정보나 비밀번호를 누구에게도 제공하지 마세요. +- 모르는 발신자로부터 받은 이메일은 삭제하세요. + +[피싱 사기를 피하는 방법 자세히 알아보기](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월, 이더리움에서의 채굴은 불가능해졌습니다. 하지만 채굴 풀 사기는 아직도 존재합니다. 채굴 풀 사기꾼들은 이더리움 채굴 풀에 참여하면 많은 이익을 가져갈 수 있다고 주장하며 접근합니다. 사기꾼들은 얼마나 오래 걸리든 귀하와 계속 연락합니다. 사기꾼들은 귀하가 이더리움 채굴 풀에 참여하면 암호화폐가 새로운 ETH를 만드는 데 쓰일 것이고 여기에서 ETH 배당을 받게 된다고 설득합니다. 하지만 결국 암호화폐는 작은 이익만 창출하게 됩니다. 이는 귀하가 더 많은 자금을 투자하게끔 유도합니다. 결국, 모든 자금이 알 수 없는 주소로 전송되고, 사기꾼들은 사라지거나 최근 사례와 같이 계속 연락할 수도 있습니다. + +기본적으로 소셜미디어에서 접근하여 채굴 풀에 참여하라고 설득하는 사람이 있다면 경계하십시오. 암호화폐는 한 번 잃게 되면 영원히 잃는 것입니다. + +아래 사항들을 기억하세요. + +- 암호화폐를 가지고 돈을 벌 수 있다고 하는 사람은 모두 의심하십시오. +- 스테이킹, 유동성 풀 등 암호화폐를 투자하는 방법에 대해 직접 공부하십시오. +- 제대로 된 투자 방법은 매우 드뭅니다. 올바른 투자 방법이라면 이미 한 번이라도 들어 보았어야 할 것입니다. + +[채굴 풀 사기로 인해 20만 불을 잃은 사람](https://www.reddit.com/r/CoinBase/comments/r0qe0e/scam_or_possible_incredible_payout/) + +### 에어드랍 사기 {#airdrop-scams} + +에어드랍 사기는 NFT, 토큰 등의 자산을 지갑에 에어드랍하고, 가짜 웹사이트에 방문하도록 유도함으로써 이루어집니다. 이더리움 지갑으로 로그인한 후 에어드랍으로 받은 자산을 확정할 수 있도록 트랜잭션을 "승인"하도록 안내받습니다. 하지만 이러한 트랜잭션은 사실 계정을 탈취하여 공개 키 및 개인 키를 사기꾼에게 보내게 합니다. 이 사기의 다른 형태로는 사기꾼의 계좌로 자금을 보내는 트랜잭션을 승인하도록 하는 방식 등이 있습니다. + +[에어드랍 사기 자세히 알아보기](https://www.youtube.com/watch?v=LLL_nQp1lGk) + + + +## 더 읽을거리 {#further-reading} + +### 웹 보안 {#reading-web-security} + +- [2단계 인증에 텍스트를 사용하지 않아야 하는 이유](https://www.theverge.com/2017/9/18/16328172/sms-two-factor-authentication-hack-password-bitcoin) - _The Verge_ +- [최대 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) - _코인베이스_ + +### 암호화폐 보안 {#reading-crypto-security} + +- [당신과 당신의 자금 보호하기](https://support.mycrypto.com/staying-safe/protecting-yourself-and-your-funds) - _MyCrypto_ +- [암호화폐를 안전하게 보관하는 4가지 방법](https://www.coindesk.com/tech/2021/04/20/4-ways-to-stay-safe-in-crypto/) - _코인데스크_ +- [모두를 위한 보안 가이드](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} + +- [안전한 암호화폐: 흔한 사기 유형들](https://support.mycrypto.com/staying-safe/common-scams) - _MyCrypto_ +- [사기 예방하기](https://bitcoin.org/en/scams) - _Bitcoin.org_ +- [일반적인 암호화폐 피싱 이메일과 메시지에 대한 트위터 글](https://twitter.com/tayvano_/status/1516225457640787969) - *Taylor Monahan* diff --git a/src/content/translations/ko/smart-contracts/index.md b/src/content/translations/ko/smart-contracts/index.md new file mode 100644 index 00000000000..b814c75bdbc --- /dev/null +++ b/src/content/translations/ko/smart-contracts/index.md @@ -0,0 +1,94 @@ +--- +title: 스마트 계약 +description: 스마트 계약에 대한 비기술적 소개 +lang: ko +--- + +# 스마트 계약에 대한 소개 {#introduction-to-smart-contracts} + +스마트 계약은 [이더리움 애플리케이션](/dapps/)의 기초적인 빌딩 블록입니다. 이는 블록체인에 저장된 컴퓨터 프로그램이며, 기존의 계약을 디지털 병렬로 변환할 수 있습니다. 스마트 계약은 매우 논리적이며, 적용할 수 있는 구조가 있을 때 해당 구조를 따릅니다. 이는 프로그래밍된 대로 정확하게 작동하며, 변경할 수 없음을 의미합니다. + +Nick Szabo는 "스마트 계약"이라는 용어를 만들었습니다. 1994년에 그는 [해당 개념에 대한 소개를 작성](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart.contracts.html)하고, 1996년에는 [스마트 계약이 어떤 작업을 실행할 수 있는지 탐구](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart_contracts_2.html)했습니다. + +Nick Szabo는 이러한 자동 암호화 보안 절차를 기반으로 구축된 디지털 시장을 구상했습나다. 이는 거래 및 비즈니스 기능이 신뢰해야 하는 중개자 없이 실행될 수 있는 장소입니다. 이더리움의 스마트 계약은 이러한 비전을 실행에 옮겼습니다. + +## 계약이란 무엇일까요? {#what-are-contracts} + +아마도 다음과 같은 생각이 앞설 것입니다. *"나는 변호사도 아닌데, 내가 왜 계약에 대해 신경을 써야 하지?"* 대부분의 사람에게 계약은 불필요하게 긴 약관 및 조건이나 지루한 법적 문서를 떠올리게 합니다. + +계약은 간단한 동의일 뿐입니다. 즉, 어떤 형태의 동의도 계약의 조건 내에 압축될 수 있습니다. 구두 계약이나 서면 계약은 많은 경우에 허용되지만, 결함이 없지는 않습니다. + +### 신뢰와 계약 {#trust-and-contracts} + +전통적인 계약의 가장 큰 문제 중 하나는 신뢰할 수 있는 개인이 계약의 결과를 따라야 한다는 것입니다. + +다음과 같은 예제를 들어보겠습니다. + +앨리스와 밥이 자전거 경주를 하고 있습니다. 앨리스가 밥에게 그녀가 경주에서 이기는 데 10달러를 걸었다고 가정해 봅시다. 밥은 자신이 이길 것이라고 확신하고 내기에 동의합니다. 결국 앨리스는 밥보다 훨씬 앞서 경주를 마치고 확실한 승자가 됩니다. 그러나 밥은 앨리스가 속임수를 썼다고 주장하며 내기에 대한 지급을 거부합니다. + +이 간단한 예제는 스마트하지 않은 계약의 문제를 보여줍니다. 계약 조건이 충족되더라도(예: 귀하가 경주의 승자가 됨) 여전히 다른 상대방이 해당 계약을 이행할 것으로 신뢰해야 합니다(예: 내기에 대한 지급). + +## 스마트 계약 {#smart-contracts} + +스마트 계약은 계약 조건이 충족될 때 자동으로 실행되는 컴퓨터 코드로 계약 조건을 변환하여 계약을 디지털화합니다. + +### 디지털 자판기 {#vending-machine} + +스마트 계약에 대한 간단한 비유는 스마트 계약과 다소 유사하게 작동하는 자동 판매기가 될 수 있겠습니다. 즉, 특정 입력은 미리 결정된 출력을 보장합니다. + +- 직접 제품을 선택합니다. +- 자판기는 상품 구매에 필요한 금액을 표시합니다. +- 정확한 금액을 삽입합니다. +- 자판기는 올바른 금액을 넣었는지 확인합니다. +- 자판기는 선택된 상품을 제공합니다. + +자판기는 모든 요구 사항이 충족된 후에만 원하는 제품을 제공합니다. 상품을 선택하지 않거나 충분한 금액을 투입하지 않으면 자판기는 상품을 제공하지 않습니다. + +### 자동 실행 {#automation} + +스마트 계약이 일반 계약에 비해 우수한 중요한 이점 중 하나는 계약 조건이 실현될 때 결과가 자동으로 실행된다는 부분입니다. 사람이 결과를 실행할 때까지 기다릴 필요가 없습니다. 즉, 스마트 계약은 신뢰의 필요성을 제거합니다. + +예를 들어, 자녀를 위해 조건부 날인 증서로 자금을 보관하는 스마트 계약서를 작성하여 특정 날짜 이후에 자금을 인출하게 할 수 있습니다. 자녀가 지정된 날짜 이전에 자금을 인출하려고 하는 경우, 스마트 계약은 실행되지 않습니다. 또는 딜러에게 요금을 지불할 때 자동차 소유권의 디지털 버전을 자동으로 제공하는 계약서를 작성할 수도 있습니다. + +### 예측 가능한 결과 {#predictability} + +인적 요인은 전통적인 계약의 가장 큰 실패 부분 중 하나입니다. 예를 들어, 두 명의 개별 판사가 전통적인 계약을 다른 방식으로 해석할 수 있습니다. 해당하는 해석은 서로 다른 결정을 내리고 다른 결과를 초래할 수 있습니다. 스마트 계약은 다른 해석의 가능성을 제거합니다. 대신 스마트 계약은 계약 코드 내에 작성된 조건에 따라 정확하게 실행됩니다. 이 정확도는 동일한 상황에서 스마트 계약이 동일한 결과를 생성한다는 것을 의미합니다. + +### 공공 기록 {#public-record} + +스마트 계약은 감사 및 추적에도 유용합니다. 이더리움 스마트 계약은 공공 블록체인에 있으므로 누구든지 자산 전송 및 기타 관련 정보를 즉시 추적할 수 있습니다. 예를 들어, 누군가가 귀하의 주소로 송금했는지 확인할 수 있습니다. + +### 개인 정보 보호 {#privacy-protection} + +또한 스마트 계약은 개인 정보를 보호할 수 있습니다. 이더리움은 가명의 네트워크(귀하의 거래는 귀하의 신분이 아닌 고유한 암호화 주소에 공개적으로 연결됨)이기 때문에 감시자로부터 개인 정보를 보호할 수 있습니다. + +### 확인할 수 있는 용어 {#visible-terms} + +마지막으로, 일반 계약과 마찬가지로 스마트 계약서에 서명하기 전에(또는 상호 작용하기 전에) 스마트 계약의 내용을 확인할 수 있습니다. 계약의 조건이 공개적으로 투명하기 때문에 누구나 검토할 수 있다는 점은 스마트 계약의 강점입니다. + +## 스마트 계약 사용 사례 {#use-cases} + +결론적으로, 스마트 계약은 블록체인에 존재하는 컴퓨터 프로그램입니다. 스마트 계약은 자동으로 실행할 수 있습니다. 거래를 추적하고, 거래 방식을 예측하며, 가명으로 사용할 수도 있습니다. 완벽하지 않습니까? 그렇다면 이는 어느 부분에 유용할까요? 스마트 계약은 본질적으로 다른 컴퓨터 프로그램이 실행하는 모든 작업을 할 수 있습니다. + +계산을 수행하고, 통화를 만들고, 데이터를 저장하고, NFT를 발행하며, 통신을 보내고, 그래픽을 생성할 수도 있습니다. 다음은 몇 가지 일반적인 실제 사례입니다. + +- [스테이블코인](/stablecoins/) +- [고유한 디지털 자산 생성 및 배포](/nft/) +- [자동 개방형 환전소](/get-eth/#dex) +- [탈중앙화 게임](/dapps/?category=gaming) +- [자동으로 지급되는 보험](https://etherisc.com/) +- [사용자가 상호 운용 가능한 맞춤형 통화를 만들 수 있게 하는 표준](/developers/docs/standards/tokens/) + +## 시각적으로 알아보고 싶습니까? {#visual-learner} + +스마트 계약에 대해 설명하는 Finematics 시청하기: + + + +## 더 읽을거리 {#further-reading} + +- [스마트 계약이 세상을 바꾸는 방법](https://www.youtube.com/watch?v=pA6CGuXEKtQ) +- [스마트 계약: 변호사를 대체할 블록체인 기술](https://blockgeeks.com/guides/smart-contracts/) +- [개발자를 위한 스마트 계약](/developers/docs/smart-contracts/) +- [스마트 계약 작성 방법 배우기](/developers/learning-tools/) +- [이더리움 마스터하기 - 스마트 계약이란 무엇입니까?](https://github.com/ethereumbook/ethereumbook/blob/develop/07smart-contracts-solidity.asciidoc#what-is-a-smart-contract) diff --git a/src/content/translations/ko/social-networks/index.md b/src/content/translations/ko/social-networks/index.md new file mode 100644 index 00000000000..1af7d1dccc7 --- /dev/null +++ b/src/content/translations/ko/social-networks/index.md @@ -0,0 +1,117 @@ +--- +title: 분산형 소셜 네트워크 +description: 이더리움에서의 분산형 소셜 네트워크에 대한 개요 +lang: ko +template: use-cases +emoji: ":mega:" +image: ../../../../assets/ethereum-learn.png +summaryPoint1: 소셜 상호작용, 콘텐츠 창작 및 배포를 위한 블록체인 기반 플랫폼입니다. +summaryPoint2: 분산형 소셜 미디어 네트워크는 사용자의 개인 정보를 보호하고 데이터 보안을 강화합니다. +summaryPoint3: 토큰과 NFT는 콘텐츠를 통한 수익 창출의 새로운 방법을 만듭니다. +--- + +소셜 네트워크는 우리가 매일 소통하고 상호 작용하는 데 어마어마한 역할을 합니다. 하지만 중앙화된 플랫폼 제어 방식은 데이터 유출, 서버 장애, 플랫폼 불매 운동, 검열 및 개인 정보 보호 정책 위반 등의 문제를 지속적으로 야기해 왔습니다. 이러한 문제를 없애기 위해 개발자들은 이더리움에서 소셜 네트워크를 구축합니다. 분산형 소셜 네트워크는 기존 소셜 네트워크 플랫폼의 많은 문제점을 해결하고 사용자의 전체적인 환경을 개선할 수 있습니다. + +## 분산형 소셜 네트워크란 무엇인가요? {#what-are-decentralized-social-networks} + +분산형 소셜 네트워크는 사용자들이 정보를 교환할 수 있을 뿐만 아니라 콘텐츠를 게재하고 다른 사람들에게 배포할 수 있는 블록체인 기반의 플랫폼입니다. 이러한 애플리케이션은 블록체인을 기반으로 작동하기 때문에 탈중앙화 방식으로 운영되기에 적합하고 검열되지 않으며 과도한 통제에서 벗어날 수 있습니다. + +대부분의 분산형 소셜 네트워크는 Facebook, LinkedIn, Twitter 및 Medium 등 이미 서비스를 제공하고 있는 소셜 미디어 서비스의 대체적인 서비스로 활용됩니다. 하지만 블록체인 기반 소셜 네트워크에는 기존 소셜 플랫폼보다 뛰어난 많은 기능이 있습니다. + +### 분산형 소셜 네트워크는 어떻게 작동하나요? {#decentralized-social-networks-overview} + +분산형 소셜 네트워크는 블록체인 상에 배포된 [스마트 계약](/developers/docs/smart-contracts/) 기반의 애플리케이션인 [탈중앙화 애플리케이션(디앱)](/dapps/)의 일종입니다. 계약 코드는 해당 앱에 대한 백엔드로 제공되며 비즈니스 논리를 정의합니다. + +기존의 소셜 미디어 플랫폼은 사용자의 정보, 프로그램 코드 및 다른 형식의 데이터를 보관하기 위해 데이터베이스를 이용합니다. 하지만 여기에는 한 곳에서 문제가 발생하면 서비스가 중단된다는 심각한 문제가 있습니다. 예를 들어, 작년에 Facebook 서버가 [몇 시간 동안](https://www.npr.org/2021/10/05/1043211171/facebook-instagram-whatsapp-outage-business-impact) 가동 중지되고 그동안 사용자들이 플랫폼을 이용할 수 없었던 사태가 발생했습니다. + +분산형 소셜 네트워크는 전 세계에 수천 개의 노드가 있는 P2P 네트워크 상에 존재합니다. 일부 노드에서 오류가 발생해도 네트워크는 중단되지 않고 작동하며, 애플리케이션이 고장과 정전에도 견뎌낼 수 있게 합니다. + +[IPFS(InterPlanetary File System)](https://ipfs.io/)와 같은 탈중앙화 스토리지 시스템을 사용하여, 이더리움상에 구축된 소셜 네트워크는 사용자 정보를 불법적이고 악의적인 이용으로부터 보호할 수 있습니다. 아무도 귀하의 개인 정보를 광고사에 판매하지 않으며, 해커 또한 비밀 정보를 훔칠 수 없습니다. + +다수의 블록체인 기반 소셜 플랫폼은 광고 매출 없이 이익 창출이 가능한 고유 토큰을 보유하고 있습니다. 사용자는 이러한 토큰을 구매하여 특정 기능에 액세스하거나, 앱 내 구매를 완료하고, 마음에 드는 콘텐츠 창작자에게 팁을 줄 수 있습니다. + +## 분산형 소셜 네트워크의 장점 {#benefits} + +1. 분산형 소셜 네트워크는 검열이 불가능하며 모두가 제약 없이 사용할 수 있습니다. 따라서 사용자는 서비스에서 차단되거나, 사용 금지 조치를 받거나, 임의로 제한받지 않습니다. + +2. 분산형 소셜 네트워크는 오픈 소스의 이상에 따라 구축되며, 애플리케이션의 소스 코드를 공개적으로 확인할 수 있게 합니다. 전통적인 소셜 미디어에 존재하는 일반적인 불투명한 알고리즘의 구현을 제거함으로써, 블록체인 기반의 소셜 네트워크는 사용자와 플랫폼 제작자의 기대에 더욱 부응할 수 있습니다. + +3. 분산형 소셜 네트워크는 "중개자"를 제거합니다. 콘텐츠 창작자는 콘텐츠에 대한 직접적인 소유권을 가지며, 팔로워, 팬, 구매자 및 다른 대상자들과 스마트 계약만을 통해 직접 관계를 맺게 됩니다. + +4. 노드의 글로벌 P2P 네트워크에서 유지되는 이더리움 네트워크에서 실행되는 디앱으로서의 분산형 소셜 네트워크는 서버 다운타임 및 중단의 영향을 적게 받습니다. + +5. 탈중앙화 소셜 플랫폼은 대체 불가능 토큰 (NFT), 앱 내 암호화폐 결제 등을 통해 컨텐츠 창작자에게 보다 나은 수익 창출 체계를 제공합니다. + +6. 분산형 소셜 네트워크는 사용자에게 높은 수준의 개인 정보 보호와 익명성을 제공합니다. 예를 들어, 한 개인은 이름, 이메일 주소 등과 같은 개인 식별 정보(PII)를 공유하지 않고 ENS 프로필이나 지갑을 사용해 이더리움 기반의 소셜 네트워크에 로그인할 수 있습니다. + +7. 분산형 소셜 네트워크는 중앙화 데이터베이스 대신 사용자의 데이터를 보다 안전하게 보호할 수 있는 탈중앙화 저장 공간을 이용합니다 + +## 이더리움 기반의 분산형 소셜 네트워크 {#ethereum-social-networks} + +이더리움 네트워크는 토큰(ERC-20/ERC-721)의 인기와 거대한 사용자 기반의 특성으로 인해 분산형 소셜 미디어를 만드는 개발자들이 선호하는 도구가 되어가고 있습니다. 이더리움을 기반으로 구축된 소셜 네트워크의 몇 가지 사례는 다음과 같습니다. + +### Peepeth {#peepeth} + +[Peepeth](https://peepeth.com/)는 Twitter와 비슷한 단편 블로그 플랫폼입니다. Peepeth는 이더리움 블록체인에서 실행되며 사용자 데이터를 저장하기 위해 IPFS를 사용합니다. + +사용자는 "Peeps"라는 짧은 메시지를 보낼 수 있으며, 이는 삭제하거나 수정할 수 없습니다. 앱에서 나가지 않고 플랫폼 상에서 이더(ETH)로 팁을 받거나 줄 수 있습니다. + +### Mirror {#mirror} + +[Mirror](https://mirror.xyz/)는 탈중앙화되고 사용자가 주인인 플랫폼이 되는 것을 목표로 하는 웹3 기반 글쓰기 플랫폼입니다. 사용자는 각자의 지갑에 연결하기만 하면 무료로 Mirror에서 메시지를 읽거나 작성할 수 있습니다. 사용자는 가장 좋아하는 작가를 구독하고 작품을 수집할 수도 있습니다. + +Mirror에 게시된 글은 탈중앙화 저장 공간 플랫폼인 Arweave에 영구적으로 저장되고, 글쓰기 NFT와 같은 수집물 [대체 불가 토큰(NFT)](/nft/)으로 발행될 수 있습니다. 글쓰기 NFT는 작가가 창작하는 작업에 대해 완전히 무료이며 수집은 이더리움 L2 상에서 일어나기 때문에 거래가 저렴하고, 빠르며, 친환경적으로 가능합니다. + +### MINDS {#minds} + +[MINDS](https://www.minds.com/)는 가장 많이 사용하는 분산형 소셜 네트워크 중 하나입니다. Facebook과 비슷한 방식으로 작동하며 이미 몇백만 명의 사용자를 보유하고 있습니다. + +사용자는 플랫폼 고유의 ERC-20 토큰 $MIND를 사용하여 아이템을 결제합니다. 사용자는 인기 콘텐츠를 게시하거나, 생태계에 기여, 다른 사용자에게 플랫폼을 추천하여 $MIND를 벌 수도 있습니다. + +## 이더리움을 사용하는 웹2 기반 소셜 네트워크 {#web2-social-networks-and-ethereum} + +블록체인 기술을 소셜 미디어에 통합하려는 시도는 [웹3](/web3/) 기반의 소셜 플랫폼이 아닌 곳에서도 이루어지고 있습니다. 다양한 중앙화 플랫폼 또한 이더리움을 해당 인프라에 통합하려는 계획을 세우고 있습니다. + +### 레딧 {#reddit} + +Reddit은 [ERC-20 토큰](/developers/docs/standards/tokens/erc-20/) 기반의 [커뮤니티 포인트](https://cointelegraph.com/news/reddit-to-reportedly-tokenize-karma-points-and-onboard-500m-new-users)를 보유하고 있으며, 사용자는 양질의 콘텐츠를 게시하거나 온라인 커뮤니티(서브레딧)에 기여함으로써 토큰을 받을 수 있습니다. 해당 토큰은 서브레딧 내에서 [특별한 혜택이나 특전](https://www.reddit.com/community-points/)을 받는 데 사용될 수 있습니다. 본 프로젝트를 위해 Reddit은 이더리움의 거래를 확장하기 위해 디자인된 [레이어 2](/layer-2/) 롤업인 Arbitrum과 협업하고 있습니다. + +해당 프로그램은 이미 ["Moons"라는 커뮤니티 포인트](https://www.reddit.com/r/CryptoCurrency/wiki/moons_wiki)의 가상화폐 서브레딧에서 실제로 진행되고 있습니다. 공식 발표에 따르면, Moons는 "게시자, 코멘트 생성자, 중재자 등 서브레딧에 기여하고 있는 사람들에게 보상"을 제공하고 있습니다. 이 토큰은 블록체인 상에 존재하기 때문에(사용자는 지갑에 토큰을 받음) Reddit과는 독립적이며 제거할 수 없습니다. + +레딧 커뮤니티 포인트는 Rinkeby 테스트넷에서의 베타 테스트를 마치고, 이제 [발리디움](/developers/docs/scaling/validium/)과 [낙관적 롤업](/developers/docs/scaling/optimistic-rollups/)의 특성을 결합한 [Arbitrum Nova](https://nova.arbitrum.io/) 블록체인 상에서 운영되고 있습니다. 토큰은 커뮤니티 포인트에서의 특전 이외에, 실제 화폐와의 교환에도 사용될 수 있습니다. 또한 커뮤니티 포인트의 보유량이 많을수록 커뮤니티 내에서 의사결정 과정에 영향력을 키울 수 있습니다. + +### 트위터 {#twitter} + +2021년 1월, Twitter Blue는 [NFT에 대한 지원](https://mashable.com/article/twitter-blue-nft-profile-picture)을 발표했으며, 사용자가 지갑을 연결하고 NFT를 프로필 사진으로 표시할 수 있게 했습니다. 또한 최근, [분산형 소셜 네트워크 구축 계획을 발표](https://www.theverge.com/2021/8/16/22627435/twitter-bluesky-lead-jay-graber-decentralized-social-web)하였습니다. + +### 인스타그램 {#instagram} + +2022년 5월, [인스타그램은 이더리움과 폴리곤의 NFT를 지원한다고 발표](https://about.instagram.com/blog/announcements/instagram-digital-collectibles)했습니다. 사용자들은 각자의 이더리움 지갑을 연결하여 인스타그램에 NFT를 직접 게시할 수 있게 되었습니다. + +## 분산형 소셜 네트워크 사용하기 {#use-decentralized-social-networks} + +- **[Status.im](https://status.im/)**: *Status는 오픈소스의 P2P 프로토콜과 종단 간 암호화 기술을 사용하여 제3자로부터 메시지를 보호하는 안전한 메시징 앱입니다.* +- **[Mirror.xyz](https://mirror.xyz/)**: *Mirror는 이더리움 기반의 탈중앙화, 사용자 소유형 퍼블리싱 앱으로, 사용자는 아이디어를 크라우드펀딩하고, 콘텐츠로 수익을 올리며, 고급 커뮤니티를 만들 수 있습니다.* +- **[Lens Protocol](https://lens.xyz/)**: *Lens Protocol은 탈중앙화된 구성 가능한 소셜 그래프로, 창작자가 탈중앙화 인터넷에 있는 디지털 가든의 어디에서든지 자신의 콘텐츠에 대한 소유권을 가질 수 있게 도와줍니다.* + +## 더 읽을거리 {#further-reading} + +### 문서 {#articles} + +- [탈중앙화 기술의 다음 큰 기회: 소셜 네트워크](https://www.coindesk.com/tech/2021/01/22/social-networks-are-the-next-big-decentralization-opportunity/) — _Ben Goertzel_ +- [Web3는 탈중앙화, 커뮤니티 기반 소셜 네트워크의 핵심이다](https://venturebeat.com/2022/02/26/web3-holds-the-promise-of-decentralized-community-powered-social-networks/) — *Sumit Ghosh* +- [블록체인 소셜 미디어의 개요](https://www.gemini.com/cryptopedia/blockchain-social-media-decentralized-social-media) — *Gemini Cryptopedia* +- [블록체인은 어떻게 소셜 미디어의 개인 정보 문제를 어떻게 해결하는가](https://www.investopedia.com/news/ethereum-blockchain-social-media-privacy-problem-linkedin-indorse/) — *Prableen Bajpai* +- [블록체인에 소셜 미디어 네트워크가 다가오고 있다](https://businesstechguides.co/what-are-decentralized-social-networks) — *Emmanuel Awosika* + +### 영상 {#videos} + +- [분산형 소셜 미디어 설명](https://www.youtube.com/watch?v=UdT2lpcGvcQ) — _Coinmarketcap_ +- [DeSo 블록체인은 소셜 미디어의 탈중앙화를 원한다](https://www.youtube.com/watch?v=SG2HUiVp0rE) — *Bloomberg 테크놀로지* +- [분산형 소셜 미디어의 미래 w/ Balaji Srinivasan, Vitalik Buterin, Juan Benet](https://www.youtube.com/watch?v=DTxE9KV3YrE) — _이더리움 글로벌_ + +### 커뮤니티 {#communities} + +- [Status의 디스코드 서버](https://discord.com/invite/3Exux7Y) +- [Mirror의 디스코드 서버](https://discord.com/invite/txuCHcE8wV) +- [r/CryptoCurrency 서브 레딧](https://www.reddit.com/r/CryptoCurrency/) diff --git a/src/content/translations/ko/staking/pools/index.md b/src/content/translations/ko/staking/pools/index.md new file mode 100644 index 00000000000..4f17bd1dbe5 --- /dev/null +++ b/src/content/translations/ko/staking/pools/index.md @@ -0,0 +1,85 @@ +--- +title: 풀 스테이킹 +description: 풀 ETH 스테이킹을 시작하는 방법에 대한 개요 +lang: ko +template: staking +emoji: ":money_with_wings:" +image: ../../../../../assets/staking/leslie-pool.png +alt: 수영장에서 수영하는 코뿔소 레슬리. +summaryPoints: + - 다른 사용자와 함께 ETH의 양과 관계없이 스테이킹하고 보상을 받으세요. + - 어려운 부분은 건너뛰고 검증자 작업은 제3자에게 맡기세요. + - 자신의 지갑에 유동성 토큰을 보관하세요. +--- + +## 스테이킹 풀이란 무엇인가요? {#what-are-staking-pools} + +스테이킹 풀은 적은 양의 ETH를 가진 많은 사람이 검증자 키의 세트를 활성화하기 위해 필요한 32 ETH를 얻을 수 있게 하는 협업 방식입니다. 풀링 기능은 프로토콜 내에서 기본적으로 지원되지 않으므로 솔루션은 이러한 요구 사항을 해결하기 위해 별도로 구축되었습니다. + +일부 풀은 자금을 계약에 예치할 수 있는 스마트 계약을 사용하여 운영되며, 이 계약은 귀하의 스테이킹을 신뢰 없이 관리 및 추적하고 이 가치를 나타내는 토큰을 발행합니다. 다른 풀에는 스마트 계약이 포함되지 않을 수 있으며 대신 오프체인에서 중개됩니다. + +## 풀로 스테이킹하는 이유는 무엇인가요? {#why-stake-with-a-pool} + +풀을 통한 스테이킹에는 [스테이킹 소개](/staking/)에서 설명한 이점 외에도 뚜렷한 장점이 많습니다. + + + + 돈이 많지 않다고요? 괜찮습니다. 대부분의 스테이킹 풀에서는 32 ETH가 필요한 솔로 스테이킹과 달리, 다른 스테이커와 협동하여 양에 상관없이 ETH를 가상으로 스테이킹할 수 있습니다. + + + 풀로 스테이킹하는 것은 토큰 교환만큼 쉽습니다. 하드웨어 설치와 노드 유지 작업에 대해 고려할 필요가 없습니다. 풀을 사용하여 노드 운영자가 검증자를 실행할 수 있도록 ETH를 예치할 수 있습니다. 그 후 노드 운영 수수료를 제외한 보상이 참여자에게 분배됩니다. + + + 대부분의 스테이킹 풀에서는 스테이킹한 ETH와 이에 대한 보상의 소유권을 주장할 수 있는 토큰을 제공합니다. 이를 통해 스테이킹한 ETH는 디파이 애플리케이션의 담보 등으로 사용할 수 있습니다. + + + + + +## 고려 사항 {#what-to-consider} + +풀 스테이킹 또는 대리 스테이킹은 이더리움 프로토콜이 기본적으로 지원하는 기능은 아니지만, 32 ETH보다 적은 금액을 스테이킹하는 사람들의 수요에 따라 점점 더 많은 솔루션이 구축되었습니다. + +사용되는 각 풀과 도구 또는 스마트 계약은 서로 다른 팀이 개발하였으며, 각각의 위험성과 장점이 따릅니다. + +아래의 속성 지표는 현재 목록에 있는 스테이킹 풀의 대표적인 강점 및 약점을 나타내기 위해 사용되었습니다. 참여할 풀을 선택할 때 이 섹션을 참고하여 이러한 속성이 정의되는 방법을 알아보세요. + + + +## 스테이킹 풀 살펴보기 {#explore-staking-pools} + +설정에 도움이 되는 다양한 옵션이 있습니다. 위의 지표를 사용하여 아래 도구에 대한 안내를 받으세요. + + +참고로, 클라이언트 다양성을 고려한 서비스의 선택은 네트워크의 보안을 강화하고 위험성을 최소화할 수 있으므로 매우 중요합니다. 대부분 클라이언트의 사용을 제한하는 것으로 밝혀진 서비스는 "다양한 클라이언트"로 표시됩니다. + + + + +저희가 놓친 스테이킹 풀을 제안하고 싶으신가요? 이더리움 [제품 나열 정책](/contributing/adding-staking-products/)을 확인하고 정책에 맞는 제품인 경우 검토를 위해 제출해 주세요. + +## 자주 묻는 질문 {#faq} + + +일반적으로 ERC-20 유동성 토큰은 스테이킹된 ETH와 보상의 가치를 나타내는 스테이커에게 발행됩니다. 각 풀마다 조금씩 다른 방식으로 스테이킹 보상을 사용자에게 분배하지만, 보통 앞서 말한 경우가 일반적입니다. + + + + +현재 이더리움 검증자로부터 자금을 인출할 수 없으며, 이로 인해 합의 계층에 고정된 ETH 보상에 대한 유동성 토큰을 실제로 상환할 수 있는 기능이 제한됩니다. + +그 대안으로, ERC-20 유동성 토큰을 사용하는 풀은 사용자가 오픈 마켓에서 이 토큰을 거래할 수 있게 허용하여 스테이킹 포지션을 판매함으로써 스테이킹 계약에서 ETH를 실제로 제거하지 않고도 실질적인 "출금"이 가능합니다. + + + +이러한 풀 스테이킹 옵션과 중앙화 거래소 간에는 다양한 유사점이 있으며, 적은 양의 ETH를 스테이킹하고 합쳐 검증자 역할을 활성화할 수 있도록 하는 것이 한 예시입니다. + +중앙화 거래소와는 달리, 다양한 스테이킹 풀 옵션에서 스마트 계약 및/또는 ERC-20 토큰의 일종으로 일반 토큰처럼 매매가 가능하며 지갑에 보관될 수 있는 유동성 토큰을 활용하고 있습니다. 이는 자신의 토큰에 대한 제어권을 제공하여 주도성과 보안성을 지닐 수 있게 하지만, 배경에서 귀하를 대신하여 증명하는 검증자 클라이언트에 대한 직접적인 제어권은 제공하지 않습니다. + +일부 풀링 옵션은 지원하는 노드에 관해 다른 풀보다 더욱 탈중앙화되어 있습니다. 네트워크의 양호한 상태와 탈중앙화를 장려하기 위해 스테이커는 항상 노드 운영자에게 권한이 집중되지 않는 탈중앙화 체계를 마련할 수 있는 풀링 서비스를 선택하는 것이 좋습니다. + + +## 더 읽을거리 {#further-reading} + +- [Rocket Pool을 통한 스테이킹 - 스테이킹 개요](https://docs.rocketpool.net/guides/staking/overview.html) - _RocketPool 문서_ +- [Lido를 통한 이더리움 스테이킹](https://help.lido.fi/en/collections/2947324-staking-ethereum-with-lido) - _Lido 도움말 문서_ diff --git a/src/content/translations/ko/staking/saas/index.md b/src/content/translations/ko/staking/saas/index.md new file mode 100644 index 00000000000..907bf8ee682 --- /dev/null +++ b/src/content/translations/ko/staking/saas/index.md @@ -0,0 +1,88 @@ +--- +title: 서비스로서의 스테이킹 +description: 풀링된 ETH 스테이킹을 시작하는 방법에 대한 개요 +lang: ko +template: staking +emoji: ":money_with_wings:" +image: ../../../../../assets/staking/leslie-saas.png +alt: 구름 위에 떠 있는 코뿔소 레슬리 +summaryPoints: + - 제3자 노드 운영자가 검증자 클라이언트의 운영을 처리함 + - 32 ETH를 보유하고 있으며 노드를 실행하는 데 필요한 복잡한 기술에 친숙하지 않은 사용자에게 탁월한 옵션 + - 신뢰를 줄이고 출금 키에 대한 보관 유지 +--- + +## 서비스로서 스테이킹이란? {#what-is-staking-as-a-service} + +서비스로서 스테이킹(SaaS)은 귀하가 검증자를 위해 32 ETH를 예치하지만 노드 운영은 제3자 운영자에게 지정하는 스테이킹 서비스의 카테고리를 나타냅니다. 일반적으로 이 과정에는 키 생성 및 예치, 운영 업체에 서명 키 업로드와 같은 초기 설정에 대한 안내가 포함됩니다. 이를 통해 서비스가 귀하를 대신하여 검증자를 실행할 수 있으며, 일반적으로 매월 수수료가 부과됩니다. + +## 스테이킹을 서비스로 제공하는 이유 {#why-stake-with-a-service} + +이더리움 프로토콜 자체는 스테이크의 위임을 지원하지 않기 때문에 이러한 수요를 충족시키기 위해 스테이킹 서비스가 구축되었습니다. 스테이킹할 32 ETH가 있지만 하드웨어를 다루는 데 능숙하지 않은 경우, SaaS 서비스를 통해 어려운 부분은 맡기고 기존의 블록 보상은 계속해서 받을 수 있습니다. + + + + 소유하고 있는 32 ETH를 예치하여 이더리움 합의 메커니즘에 참여할 수 있는 서명 키 세트를 활성화하세요. 대시보드를 통해 ETH 보상이 적립되는 과정을 모니터링합니다. + + + 하드웨어 사양, 설치, 노드 점검 및 업그레이드는 더 이상 생각하지 않아도 됩니다. + SaaS 제공자의 서비스를 사용하면 자신의 서명 자격 증명을 업로드하여 어려운 부분을 외부에 대신 맡기고 적은 비용으로 귀하를 대신하여 검증자를 실행할 수 있게 합니다. + + + 대부분의 경우에 사용자는 스테이킹된 자금을 출금하거나 이전할 수 있게 하는 키에 대한 접근 권한을 포기하지 않아도 됩니다. 앞서 말한 키는 서명 키와는 다르며, 스테이커의 위험성을 최소화(제거하지는 않음)하도록 분리하여 저장할 수 있습니다. + + + + + +## 고려 사항 {#what-to-consider} + +ETH를 스테이킹할 수 있도록 도와주는 서비스형 스테이킹 제공 업체의 수는 점점 증가하고 있지만 각 업체마다 서로 다른 장점과 위험성이 있습니다. + +아래의 속성 지표는 현재 목록에 있는 SaaS 제공 업체의 대표적인 강점 및 약점을 나타내기 위해 사용되었습니다. 스테이킹 여정을 도와 줄 서비스를 선택할 때 이 섹션을 참고하여 이러한 속성이 정의되는 방법을 알아보세요. + + + +## 스테이킹 서비스 제공 업체 찾기 {#saas-providers} + +다음은 사용 가능한 SaaS 공급자입니다. 상단의 지표를 사용하면 해당 서비스를 둘러보는 데 도움이 됩니다. + + +참고로, 클라이언트 다양성에 대한 지원은 네트워크의 보안을 강화하고 위험성을 최소화할 수 있으므로 매우 중요합니다. 대부분 클라이언트의 사용을 제한하는 것으로 밝혀진 서비스는 "다양한 클라이언트"로 표시됩니다. + + +#### SaaS 제공업체 + + + +#### 키 생성기 + + + +저희가 놓친 서비스로서 스테이킹 제공 업체를 제안하고 싶으신가요? 이더리움 [제품 나열 정책](/contributing/adding-staking-products/)을 확인하고 정책에 맞는 제품인 경우 검토를 위해 제출해 주세요. + +## 자주 묻는 질문 {#faq} + + + 진행 방식은 업체별로 다를 수 있지만 일반적으로 필요한 서명 키(32 ETH 당 1개)를 설정하고 본인을 대신하여 검증자를 실행할 수 있게 제공 업체에 키를 업로드하도록 안내받게 됩니다. 서명 키만으로는 자금을 인출하거나 이체 또는 소비할 수 없습니다. 다만, 업체는 합의를 위한 투표에 참여할 수 있게 되며, 이는 적절하게 이루어지지 않는 경우에 오프라인에서 벌금 및 슬래싱을 받게 될 수 있습니다. + + + +네. 각 계정은 서명 키와 인출 키를 모두 포함하여 구성됩니다. 검증자가 체인의 상태를 증명하고, 그룹 동기화, 블록 제안 등을 용이하게 하기 위해서는 검증자 클라이언트가 서명 키에 쉽게 접근할 수 있어야 합니다. 이는 어떠한 형태로든 반드시 인터넷에 연결되어 있어야 하므로, 본질적으로 "핫(hot)"키로 고려됩니다. 이는 검증자가 증명되기 위해 필요한 구성 요소이며, 보안을 위해 자금 인출이나 이체를 위해 사용되는 키와 분리되어 있습니다. + +이 모든 키는 24개 단어로 구성된 시드 문구를 사용하여 언제든지 재생성될 수 있습니다. 이 시드 문구를 안전한 곳에 백업해 두십시오. 그렇지 않으면 필요할 때 인출 키를 생성할 수 없게 됩니다. + + + + SaaS 공급 업체를 통해 32 ETH를 스테이킹할 경우, 해당하는 ETH는 여전히 공식 스테이킹 예치 계약 상에 예치됩니다. 따라서 현재 SaaS 스테이커는 솔로 스테이커와 동일하게 인출이 제한됩니다. 이는 현재 ETH 스테이킹이 단방향 입금이라는 것을 의미합니다. 이는 상하이 업그레이드 이전까지 지속될 예정입니다. + + + +SaaS 공급 업체를 사용하면 노드의 운영을 타인에게 맡기게 됩니다. 이는 노드 성능이 양호하지 않을 수도 있는 리스크를 동반하며, 귀하가 제어할 수 없습니다. 검증자가 제거되는 경우, 검증자의 잔액에 불이익이 적용되고 강제적으로 검증자 풀에서 제외됩니다. 해당하는 자금은 프로토콜 수준에서 인출이 가능하게 될 때까지 잠기게 됩니다. + +각 SaaS 업체에 연락하여 보증이나 보험 옵션에 대한 자세한 내용을 안내 받으십시오. 검증자 설정을 완전히 제어하고자 하는 경우, ETH를 솔로 스테이킹하는 방법에 대해 자세히 알아보세요. + + +## 더 읽을거리 {#further-reading} + +- [스테이킹 서비스 평가하기](https://www.attestant.io/posts/evaluating-staking-services/) - _짐 맥도널드 2020_ diff --git a/src/content/translations/ko/staking/solo/index.md b/src/content/translations/ko/staking/solo/index.md new file mode 100644 index 00000000000..0c244c4ddba --- /dev/null +++ b/src/content/translations/ko/staking/solo/index.md @@ -0,0 +1,187 @@ +--- +title: ETH를 솔로 스테이킹하기 +description: ETH 솔로 스테이킹을 시작하는 방법에 대한 개요 +lang: ko +template: staking +emoji: ":money_with_wings:" +image: ../../../../../assets/staking/leslie-solo.png +alt: 컴퓨터 칩 위의 코뿔쏘 레슬리 +summaryPoints: + - 검증자가 온라인에서 올바르게 작동하도록 유지하여 프로토콜에서 직접 최대 보상을 받으세요. + - 가정용 컴퓨터를 실행하고 이더리움 네트워크의 보안과 탈중앙화에 기여해 보세요. + - 특정 주체를 신뢰하지 않고 자금에 대한 제어권을 유지하세요. +--- + +## 솔로 스테이킹이란 무엇인가요? {#what-is-solo-staking} + +솔로 스테이킹은 인터넷에 연결된 [이더리움 노드를 실행](/run-a-node/)하고 32 ETH를 예치하여 [검증자](#faq)를 활성화하며, 네트워크 합의에 직접 참여할 수 있게 하는 기능입니다. + +이더리움 노드는 실행 계층(EL) 클라이언트와 합의 계층(CL) 클라이언트로 이루어져 있습니다. 해당하는 클라이언트는 유효한 서명 키와 함께 작동하는 소프트웨어이며, 블록과 거래를 확인하고, 올바른 체인의 헤드를 증명, 증명을 관리하거나 블록을 제안합니다. + +솔로 스테이커는 이러한 클라이언트를 실행하기 위해 필요한 하드웨어를 운영하는 역할을 맞습니다. 이 작업을 위해 집에서 작동하는 전용 컴퓨터를 사용할 것을 강력하게 추천합니다. 네트워크 상태에 큰 도움이 되기 때문입니다. + +솔로 스테이커는 검증자가 온라인에서 올바르게 작동하도록 유지하여 프로토콜에서 직접 보상을 받을 수 있습니다. + +## 솔로 스테이킹이 왜 필요한가요? {#why-stake-solo} + +솔로 스테이킹에는 더 많은 책임이 따르지만, 자금 및 스테이킹 설정에 대한 가장 많은 관리 권한을 제공합니다. + + + + 검증자가 온라인일 때 중간의 제3자에게 수수료를 떼어 주지 않고 프로토콜에서 직접 ETH 보상을 받을 수 있습니다. + + + 자신의 키를 직접 지키십시오. 리스크를 최소화하고 네트워크의 상태와 보안에 가장 크게 기여하는 클라이언트와 하드웨어 조합을 선택할 수 있습니다. 제3자 스테이킹 서비스는 귀하를 대신하여 이러한 결정을 내리지만, 가장 안전한 결정이 아닐 수도 있습니다. + + + 솔로 스테이킹은 가장 효과적인 스테이킹 방법입니다. 집에서 직접 검증자를 실행함으로써, 이더리움 프토토콜의 견고함, 탈중앙화 및 보안을 강화할 수 있습니다. + + + +## 솔로 스테이킹 전에 고려할 사항 {#considerations-before-staking-solo} + +솔로 스테이킹에 모두 접근할 수 있고 위험 부담이 없기를 바라지만, 현실은 이와 다릅니다. ETH를 솔로 스테이킹하기 전에 염두에 두어야 할 실용적이고 중요한 고려 사항이 있습니다. + + + + 자신의 노드를 직접 운영할 때 선택한 소프트웨어를 사용하는 방법에 대해 알아봐야 합니다. 여기에는 관련 문서를 읽거나 해당하는 개발 팀의 통신 채널에 주목하는 것도 포함됩니다. + 실행하는 소프트웨어와 지분 증명 작동의 원리를 잘 이해할수록 스테이커로서의 위험 부담이 낮아지며 노드 운영자로서 도중에 발생할 수 있는 문제를 더 쉽게 해결할 수 있습니다. + + + 새로운 도구를 통해 작업이 더 쉬워지더라도 노드를 설치하려면 컴퓨터를 사용하는 작업에 어느 정도 친숙해야 합니다. 명령줄 인터페이스를 이해하는 것이 도움은 되지만 더 이상 반드시 필요한 것은 아닙니다. + 또한 매우 기초적인 하드웨어 설치 및 최소 권장 사양에 대해 어느 정도 이해하고 있어야 합니다. + + + 개인 키가 이더리움 주소를 보호하는 방법처럼 검증자를 위한 특별한 키를 생성해야 합니다. 시드 문구 또는 개인 키를 안전하게 보호하는 방법을 반드시 이해해야 합니다. +

이더리움 보안 및 사기 방지

+
+ + 스테이킹된 ETH를 출금하거나 검증자 잔고에서 보상은 아직 지원되지 않습니다. 인출은 향후 예정된 상하이 업데이트 이후에 지원될 예정입니다. ETH가 최소 1년에서 최대 2년까지 동결된다는 점을 예상하십시오. 상하이 업그레이드 후에는 스테이크 중 일부 또는 모두를 원하는 대로 출금할 수 있습니다. + + + 가끔 하드웨어에 문제가 발생하고, 네트워크 연결에 오류가 생길 때 클라이언트 소프트웨어는 주기적으로 업그레이드해야 합니다. 노드를 유지 관리하는 작업은 꼭 필요하며 가끔 주의를 기울여야 합니다. 예상되는 네트워크 업그레이드 또는 기타 중요한 클라이언트 업그레이드에 대해 알고 있는 것이 좋습니다. + + + 보상은 검증자가 온라인 상태일 때 적절하게 증명 작업에 소요한 시간에 비례합니다. 가동 중지 시간이 발생하면 동일한 시간에 오프라인인 다른 검증자의 수에 비례하여 불이익을 받지만 슬래싱을 당하지는 않습니다. 적시에 받지 못한 증명이 있는 경우 보상이 줄어들기 때문에 대역폭 또한 중요합니다. 요구 사항은 달라질 수 있지만 최소 10Mb/s 내외의 대역폭이 권장됩니다. + + + 오프라인 상태가 되어 받는 비활동 상태에 대한 불이익과는 달리, 슬래싱은 악의적 행동에 대한 훨씬 심각한 불이익입니다. 한 번에 하나의 시스템에만 로드된 키를 사용하여 소수의 클라이언트를 실행하면 슬래시 처리될 위험성이 최소화됩니다. 이를 통해 알 수 있듯이 모든 스테이커는 슬래싱의 위험성을 주의해야 합니다. + +

슬래싱 및 검증자의 주기 자세히 알아보기

+
+
+ + + +## 작동 방법 {#how-it-works} + + + +필요한 경우 검증자 역할을 그만두고 오프라인으로 전환할 수 있으며, 더 이상 보상받지 않을 수 있습니다. 이러한 자금의 *인출*은 향후 상하이 업데이트가 실행될 때까지 불가함을 참고하세요. + +상하이 업데이트 이후, 사용자는 보상 및 스테이킹된 자금을 인출할 수 있게 됩니다. + +## 스테이킹 런치패드 시작하기 {#get-started-on-the-staking-launchpad} + +스테이킹 런치패드는 스테이커가 되는 것을 도와주는 오픈소스 애플리케이션입니다. 이는 클라이언트를 선택하고, 키를 생성하거나, 스테이킹 계약에 ETH를 예치하는 등의 작업을 안내합니다. 검증자를 안전하게 설정하기 위한 체크리스트도 제공됩니다. + + + +## 노드 및 클라이언트 설정 도구에서 고려할 사항 {#node-tool-considerations} + +ETH 솔로 스테이킹을 지원하는 도구와 서비스는 점점 많아지고 있지만, 다양한 이점과 리스크가 존재합니다. + +아래의 속성 지표는 현재 목록에 있는 스테이킹 도구의 대표적인 강점 또는 약점을 나타내기 위해 사용되었습니다. 스테이킹 여정을 지원하는 도구를 선택할 때 이 섹션을 참고하여 이러한 속성이 정의되는 방법을 알아보세요. + + + +## 노드 및 클라이언트 설정 도구 살펴보기 {#node-and-client-tools} + +설정에 도움이 되는 다양한 옵션이 있습니다. 상단의 지표를 사용하여 아래 도구에 대한 안내를 받으세요. + + +참고로, 소수 클라이언트는 네트워크의 보안을 강화하고 위험성을 최소화할 수 있으므로 매우 중요합니다. 소수 클라이언트를 설정하기 위한 도구를 "멀티 클라이언트"라고 부릅니다. + + +#### 노드 도구 + + + +#### 키 생성기 + +이러한 도구는 키를 생성하는 데 있어 [Staking Deposit CLI](https://github.com/ethereum/staking-deposit-cli/)의 대안으로 사용될 수 있습니다. + + + +저희가 놓친 다른 스테이킹 도구를 제안하고 싶으신가요? 이더리움 [제품 나열 정책](/contributing/adding-staking-products/)을 확인하고 정책에 맞는 제품인 경우 검토를 위해 제출해 주세요. + +## 솔로 스테이킹 가이드 살펴보기 {#staking-guides} + + + +## FAQ {#faq} + +다음은 참고하면 좋을 스테이킹에 대한 가장 일반적인 질문입니다. + + + +검증자는 이더리움 상에 존재하고 이더리움 합의 프로토콜에 참여하는 가상의 주체입니다. 검증자는 잔고, 공개 키 및 기타 속성으로 나타납니다. 검증자 클라이언트는 검증자의 개인 키를 보유하고 사용하여 검증자 역할을 대신하는 소프트웨어입니다. 하나의 검증자 클라이언트는 여러 개의 키 페어를 보유하며 여러 검증자를 제어할 수 있습니다. + + + + +검증자와 연계된 각각의 키 쌍이 활성화되려면 정확히 32 ETH가 필요합니다. 검증자마다 32 ETH의 유효 잔고 제한이 있기 때문에 한 개의 키 세트에 ETH를 더 예치해도 보상이 증가하지는 않습니다. 이는 스테이킹은 32 ETH 단위로 이루어지며 각각 고유한 키와 잔고가 있음을 의미합니다. + +하나의 검증자에 32 ETH보다 더 많은 금액을 예치하지 마세요. 이러한 작업이 보상을 증가하지는 않으며 계획된 상하이 업데이트 시기까지 동결됩니다. + +솔로 스테이킹이 너무 부담스럽다면 스테이킹 서비스 제공 업체의 이용을 고려해 보세요. 또는 32 ETH보다 적은 금액을 스테이킹하려면 스테이킹 풀을 확인해 보세요. + + + +네트워크가 적절하게 최종 확정될 때 오프라인 상태가 된다고 슬래싱되지는 않습니다. 작은 비활동 패널티는 검증자가 특정 에폭(각 6.4분 길이)에 대해 증명할 수 없는 경우에 발생하지만, 이는 슬래싱과는 완전히 다릅니다. 이 패널티는 검증자가 정상적으로 증명할 수 있는 경우의 보상보다 약간 낮게 설정되며, 손실은 동일한 시간만큼 다시 온라인 연결이 되었을 때 메꿀 수 있습니다. + +비활동 패널티의 정도는 같은 시간 동안 오프라인이었던 검증자의 수에 비례한다는 점을 참고하세요. 네트워크의 대부분이 한꺼번에 모두 오프라인이 된 경우, 각 검증자에 대한 불이익은 한 개의 검증자를 사용할 수 없는 경우에 비해 더 큽니다. + +극단적으로 만약 1/3 이상의 검증자가 한꺼번에 오프라인이 되어 네트워크가 멈추게 된다면, 각 사용자는 이른바 2차 비활동 누출을 겪게 되며, 오프라인 검증자 계정에서 ETH를 기하급수적으로 잃게 됩니다. 이는 해당하는 비활성 검증자의 잔고가 16 ETH가 되어 검증자 풀에서 자동으로 탈락될 때까지 ETH를 계속 제거함으로써 결국엔 네트워크가 자생할 수 있도록 합니다. 나머지 온라인 검증자들이 다시 네트워크의 2/3 이상을 차지하게 되면 체인은 다시 작동하기 시작합니다. + + + +요약하자면 (물론 100% 확신은 불가하지만) 지침에 따라 한 번에 한 기계에만 서명 키를 유지하는 방식으로 소수 클라이언트를 실행한다면, 슬래싱이 일어날 확률은 거의 0에 가까워지게 됩니다. + +검증자가 네트워크에서 슬래싱되어 제거되는 이유는 몇 개밖에 없습니다. 현시점에서 슬래싱은 서명 키가 동시에 두 개의 서로 다른 기계에 보관되는 중복성 하드웨어 설정이 이유였던 경우가 대부분이었습니다. 이는 실수로 키에서 2중 투표가 일어나는 원인이 될 수 있으며, 이러한 경우에 슬래싱 대상으로 간주되기 때문입니다. + +대규모 클라이언트(네트워크의 2/3 이상을 사용하는 클라이언트)를 운영하는 경우에도 슬래싱을 당할 수 있으며, 이 클라이언트에 체인 포크를 야기하는 버그가 있을 경우에 발생합니다. 오류로 인한 포크가 일어나서 최종 확정될 수 있습니다. 원래의 체인으로 되돌리려면 확정된 블록을 취소하기 위한 서라운드 투표를 제출해야 합니다. 이 또한 슬래싱의 원인이 될 수 있으며, 단순히 소수 클라이언트를 실행함으로써 피할 수 있습니다. + +소수 클라이언트에서 유사한 버그가 발생할지라도 최종 확정되지 않으므로 서라운드 투표 및 슬래싱은 발생하지 않으며, 그저 비활동 패널티로만 그치게 됩니다. + +

소수 클라이언트 실행의 중요성에 대해 자세히 알아보기

+

슬래싱 방지에 대해 자세히 알아보기

+
+ + +개별 클라이언트는 다양한 팀들이 다양한 언어로 개발한 것이므로 성능과 사용성 면에서 차이를 보일 수 있습니다. 즉, "최고"의 클라이언트는 존재하지 않습니다. 모든 프로덕션 클라이언트는 우수한 소프트웨어이며 블록체인을 활용하고 동기화하기 위한 동일한 핵심 기능을 제공합니다. + +모든 프로덕션 클라이언트에서 동일한 기본 기능을 제공하기 때문에 소수 클라이언트를 선택하는 것이 매우 중요합니다. 즉, 현재 네트워크 상에서 아직 검증자들이 많이 사용하고 있지 않은 클라이언트를 선택하는 것이 중요합니다. 처음에는 와닿지 않을 수 있지만, 대다수 혹은 대규모 클라이언트를 실행하면 해당 클라이언트에 버그가 있는 경우에 슬래싱될 가능성이 높아집니다. 소수 클라이언트를 실행하면 이 리스크를 크게 줄입니다. + +클라이언트 다양성이 중요한 이유에 대해 자세히 알아보기 + + + +가상 사설 서버(VPS: Virtual Private Server)가 가정용 하드웨어 대신 사용될 수는 있지만, 검증자 클라이언트의 물리적인 액세스 및 위치가 실제로 중요합니다. 아마존 웹 서비스나 디지털 오션과 같은 중앙화된 클라우드 솔루션은 하드웨어를 직접 소유하고 운영하지 않아도 된다는 편리함을 제공하지만, 네트워크를 중앙화한다는 단점이 있습니다. + +하나의 중앙화된 클라우드 스토리지 솔루션에서 더 많은 검증자 클라이언트가 실행될수록 해당 사용자들은 위험해집니다. 해킹, 규제 또는 단순한 정전/인터넷 오류에 의해 해당 서비스가 오프라인이 되는 경우, 이 서버를 사용하는 모든 검증자 클라이언트도 동시에 오프라인이 됩니다. + +오프라인 패널티의 정도는 동시에 오프라인 상태에 있는 클라이언트 수에 비례합니다. 따라서 VPS를 사용하면 오프라인 패널티에 대한 리스크를 현저히 증가시키며, 고장이 대규모인 경우에 2차적 누출이나 슬래싱을 당할 리스크 또한 키웁니다. 귀하의 리스크와 네트워크의 리스크를 최소화하기 위해 사용자는 자신의 하드웨어를 확보하고 운영할 것을 강력히 권장합니다. + +보상 및 패널티에 대해 자세히 알아보기 + + +## 더 읽을거리 {#further-reading} + +- [이더리움의 클라이언트 다양성 문제](https://hackernoon.com/ethereums-client-diversity-problem) - *@emmanuelawosika 2022* +- [클라이언트 다양성 개선](https://www.attestant.io/posts/helping-client-diversity/) - _Jim McDonald 2022_ +- [이더리움 합의 계층에서의 클라이언트 다양성](https://mirror.xyz/jmcook.eth/S7ONEka_0RgtKTZ3-dakPmAHQNPvuj15nh0YGKPFriA) - _jmcook.eth 2022_ +- [사용법: 이더리움 검증자용 하드웨어 구매하기](https://www.youtube.com/watch?v=C2wwu1IlhDc) - _EthStaker 2022_ +- [단계별: 이더리움 2.0 테스트넷에 참여하는 방법](https://kb.beaconcha.in/guides/tutorial-eth2-multiclient) - _Butta_ +- [Eth2 슬래싱 방지 팁](https://medium.com/prysmatic-labs/eth2-slashing-prevention-tips-f6faa5025f50) - _Raul Jordan 2020_ +- [이더리움 2.0에서 보상 및 패널티](https://consensys.net/blog/codefi/rewards-and-penalties-on-ethereum-20-phase-0/) - _James BeckMarch 2020_ diff --git a/src/content/translations/ko/web3/index.md b/src/content/translations/ko/web3/index.md new file mode 100644 index 00000000000..8a25e0e8f9b --- /dev/null +++ b/src/content/translations/ko/web3/index.md @@ -0,0 +1,159 @@ +--- +title: 웹3는 무엇이고 왜 중요한가? +description: 웹의 차세대 혁명 - 웹3에 대한 소개 및 중요한 이유 +lang: ko +--- + +# 웹3에 대한 소개 {#introduction} + +중앙화 방식은 수많은 사람이 웹을 사용할 수 있게 도와주었고, 안정적이고 거대한 인프라를 만들 수 있었습니다. 동시에 소수의 중앙화된 기관들은 허용되어야 하는 작업을 결정하는 데 있어 일방적으로 정보를 통제하기도 합니다. + +웹3로 바로 이 문제를 해결할 수 있습니다. 웹3에서는 거대 테크 기업들이 일괄적으로 관리되지 않고, 탈중앙화 방식을 통해 사용자가 직접 시스템을 만들고, 운영, 소유합니다. 웹3는 거대 기업이 아닌 개인들에게 권력을 분산합니다. 웹3에 대해 알아보기 전에 먼저 어떤 과정이 있었는지 알아보겠습니다. + + + +## 초기 웹 {#early-internet} + +많은 사람들은 웹이 발명된 이후 현재까지 그대로 이어져 온 현대화의 산물이라고 생각합니다. 하지만 오늘날 우리가 알고 있는 웹은 초기에 기획되었던 것과 많이 다릅니다. 웹 1.0과 웹 2.0의 역사에 대해 간략하게 알아보면 이를 이해하는 데 유용할 것입니다. + +### 웹 1.0: 읽기 전용 (1990-2004) {#web1} + +1989년 당시, 제네바에 위치한 CERN에서 근무하는 Tim Berners-Lee는 현재 WWW라고 하는 프로토콜 개발에 몰두하고 있었습니다. 그의 아이디어는 무엇이었을까요? 바로, 전 세계에서 정보를 공유할 수 있는 개방되고 분산된 방식의 프로토콜을 만드는 것이었습니다. + +현재 '웹1'이라고 알려진 Berners-Lee의 첫 번째 결과물은 약 1990년에서 2004년 사이에 탄생했습니다. 웹1.0은 기업 소유의 정적인 웹사이트이었던 경우가 대부분이어서 사용자가 콘텐츠를 생산하는 경우는 드물었고 서로 상호 작업하는 경우가 거의 없었습니다. 즉, 이는 읽기 전용 웹이라고 보는 게 정확할 것입니다. + +![웹 1.0: 클라이언트-서버 구조](./web1.png) + +### 웹 2.0: 읽기와 쓰기 (2004-현재) {#web2} + +웹 2.0 시기는 2004년, 소셜 미디어 플랫폼의 등장과 함께 시작되었습니다. 웹은 읽기만 가능했던 형태에서 읽고 쓰기가 가능한 형태로 진화했습니다. 사용자에게 콘텐츠를 제공하는 회사 대신, 사용자들이 생성한 콘텐츠를 공유하고 사용자 간 상호 작업에 참여할 수 있는 플랫폼이 제공되기 시작했습니다. 더 많은 사용자가 온라인에서 활동함에 따라, 소수의 기업이 웹에서 생산되는 대부분의 트래픽과 가치를 제어하게 되었습니다. 웹 2.0은 또한 광고 기반 수익 모델을 탄생시켰습니다. 콘텐츠는 사용자들이 만들었으나, 해당 사용자가 콘텐츠를 소유하거나 여기에서 발생하는 이익을 나눠 받지 못했습니다. + +![웹 2.0: 클라이언트--서버 구조](./web2.png) + + + +## 웹 3.0: 읽기, 쓰기, 그리고 소유 {#web3} + +웹 3.0'이라는 용어는 [이더리움](/what-is-ethereum/) 공동 창립자인 개빈 우드가 이더리움을 런칭한 직후인 2014년에 제안하였습니다. 개빈은 이 용어에 초기 암호화폐 사용자들이 공통적으로 느꼈던 문제를 담았습니다. 즉, 현재의 웹은 특정 주체에 대한 지나친 신뢰를 기반으로 한다는 것이었습니다. 오늘날 알려진 대부분의 웹 서비스는 몇 개의 사기업들이 공공의 이익을 위해서 행동할 것이라는 믿음 하에 사용되고 있습니다. + +![웹 3: 탈중앙화된 노드 구조](./web3.png) + +### 웹3는 무엇인가요? {#what-is-web3} + +웹3는 새롭고 더 나은 인터넷의 비전을 포괄하는 용어가 되었습니다. 웹3의 핵심은 블록체인, 암호화폐, NFT를 사용하여 사용자에게 소유권이라는 형태로 권한을 다시 돌려준다는 점입니다. [2020년, 한 트위터 글](https://twitter.com/himgajria/status/1266415636789334016)이 이를 가장 잘 설명합니다. 웹1은 읽기 전용, 웹2는 읽기와 쓰기, 웹3는 읽기, 쓰기 그리고 소유라는 것입니다. + +#### 웹3의 핵심 아이디어 {#core-ideas} + +웹3의 정확하고 유일한 정의를 내리는 것은 어렵지만, 몇 개의 핵심 원칙이 이를 잘 설명합니다. + +- **웹3는 탈중앙화되어 있습니다:** 중앙화된 주체에 의해 인터넷의 대부분이 소유 및 제어되는 것이 아닌, 창작자와 사용자에게 소유권이 분배되는 형태입니다. +- **웹3는 허가라는 개념이 없습니다:** 웹3에서 모두가 동등한 참가 권한을 지니며, 누구도 배제되지 않습니다. +- **웹3는 기반 화폐가 있습니다:** 은행 및 결제 서비스의 오래된 인프라에 의존하지 않고도 온라인 결제 및 송금이 가능한 암호화폐를 사용합니다. +- **웹3는 특정 주체에 대한 신뢰를 필요로 하지 않습니다:** 제3자를 신뢰하는 대신, 인센티브와 경제 메커니즘을 통해 작동합니다. + +### 웹3가 왜 중요한가요? {#why-is-web3-important} + +웹3의 혁신적인 특징은 서로 연관되어 있고 깔끔하게 범주화되지는 않지만, 보다 쉬운 설명을 위해 최대한 아래와 같이 나누어 보았습니다. + +#### 소유권 {#ownership} + +웹3는 디지털 자산에 대한 소유권을 과거엔 없었던 방식으로 제공합니다. 예를 들어, 웹2 게임을 즐기고 있다고 가정해 봅시다. 게임 상에서 아이템을 구매하는 경우, 이는 당신 계정에 직접 묶이게 됩니다. 게임 창작자가 귀하의 계정을 삭제한다면 해당하는 아이템을 모두 잃게 됩니다. 또는 게임을 중지하는 경우, 그동안 투자해서 얻은 게임 내의 아이템의 가치를 잃게 됩니다. + +웹3는 [대체 불가 토큰(NFT)](/nft/)을 통해 직접적인 소유가 가능하게 합니다. 아무도, 설령 게임 창작자일지라도, 귀하의 소유권을 가져갈 수 없습니다. 또한 게임을 더 이상 안 하더라도 게임 상의 아이템들을 오픈마켓에서 판매하거나 교환함으로써 가치를 활용할 수 있습니다. + + +
NFT에 대해 자세히 알아보기
+ + NFT 이해하기 + +
+ +#### 검열 저항력 {#censorship-resistance} + +플랫폼과 콘텐츠 창작자 간의 권력 구도는 매우 불균형한 상태입니다. + +OnlyFan은 사용자가 생성한 성인물 사이트로, 100만 명이 넘는 창작자들이 플랫폼에서의 수익을 주요 수익원으로 하고 있습니다. 그런데 2021년 8월, OnlyFan은 선정적인 콘텐츠를 차단하는 방안을 발표했습니다. 이 발표는 플랫폼에서 콘텐츠를 통한 수익을 빼앗았다는 인식을 줌으로써 수많은 창작자들의 공분을 샀습니다. 큰 반발 이후에, 결국 해당 발표는 취소되었습니다. 이 싸움에서 창작자들이 이기기는 했지만, 이는 웹 2.0의 문제를 보여줬습니다. 즉, 특정 플랫폼을 떠나는 경우엔 그동안 쌓은 명성과 팔로잉을 잃게 된다는 것입니다. + +웹3에서는 당신의 데이터가 블록체인 상에 존재하게 됩니다. 한 플랫폼을 떠나더라도 귀하의 명성을 유지할 수 있으며, 원하는 가치와 더 잘 맞는 다른 플랫폼에서 이를 그대로 사용할 수 있습니다. + +웹 2.0에서 콘텐츠 창작자들은 플랫폼이 규칙을 바꾸지 않으리라고 신뢰해야 하는 반면, 검열 저항력은 웹3 플랫폼의 본질적인 특징입니다. + +#### 탈중앙화 자율 조직(DAO) {#daos} + +웹3에서는 데이터를 소유하는 것 이외에도, 마치 주식을 통해 회사를 소유하는 것처럼 토큰을 이용하여 플랫폼을 소유할 수 있습니다. DAO는 플랫폼의 분산화된 소유권을 조정하고 미래에 대한 결정을 내릴 수 있게 합니다. + +DAO는 리소스 풀(토큰)을 이용한 자동화된 분산형 의사 결정을 이루어내는 동의 기반 스마트 계약이라고 정의될 수 있습니다. 토큰을 소유한 사용자는 리소스가 어떻게 쓰여야 하는지 투표할 수 있으며, 코드는 투표 결과를 자동으로 실행합니다. + +하지만 사람들은 많은 웹3 커뮤니티를 DAO라고 정의합니다. 이러한 커뮤니티의 탈중앙화 및 코드 자동화가 이루어지는 정도는 서로 다릅니다. 현재 우리는 DAO가 무엇이며 미래에 어떻게 진화해 나갈지 논의하고 있습니다. + + +
DAO에 대해 자세히 알아보기
+ + DAO 이해하기 + +
+ +### 신원 증명 {#identity} + +오늘날까지 사용하는 플랫폼마다 계정을 새로 만들어 왔을 것입니다. 예를 들어, 트위터 계정, 유튜브 계정, 레딧 계정을 각각 사용하고 있을 것입니다. 표시 이름이나 프로필 사진을 바꾸고 싶을 때는 어떻게 합니까? 모든 계정을 각각 바꾸어 주어야 합니다. 어떨 때는 소셜 로그인을 사용할 수도 있겠지만, 이는 흔히 말하는 검열 문제를 야기할 수 있습니다. 클릭 한 번으로, 이들 플랫폼은 귀하의 온라인 생활을 단번에 끊을 수도 있습니다. 더욱이, 많은 플랫폼에서 계정을 만들기 위해 개인 식별 정보를 다루고 귀하가 해당 플랫폼을 신뢰하도록 요구합니다. + +웹3는 귀하가 이더리움 주소 및 ENS 프로필을 통해 디지털 신원을 제어할 수 있게 허용하여 이러한 문제를 해결합니다. 이더리움 주소를 통해 안전하고, 검열 저항력을 지니며, 익명성이 보증되는 단일 로그인 방식을 다양한 플랫폼에서 사용할 수 있습니다. + + + 이더리움으로 로그인하기 + + +### 기본 결제 방식 {#native-payments} + +웹2의 결제 인프라는 은행이나 결제 서비스 업체에 의존하기 때문에 은행 계좌가 없거나 다른 나라에 사는 사람들은 배제됩니다. 웹3는 [ETH](/eth/)와 같은 토큰을 사용하여 브라우저에서 직접 돈을 보내며, 제3자에 의존하지 않습니다. + + + ETH에 대해 자세히 알아보기 + + +## 웹3의 제한 사항 {#web3-limitations} + +웹3는 이미 많은 장점을 가지고 있지만, 한계점 또한 아직 많으며 더 번창하기 위해서는 생태계가 해당 문제를 해결해야 합니다. + +### 접근성 {#accessibility} + +이더리움 로그인과 같은 중요한 웹3 기능은 이미 무료로 누구나 사용할 수 있습니다. 하지만 트랜잭션의 경우 거래 수수료로 인해 아직 접근성이 떨어집니다. 웹3는 높은 거래 수수료로 인해 덜 부유한 개발도상국의 경우엔 활용성이 떨어집니다. 이더리움에서는 이러한 문제들을 [네트워크 업그레이드](/upgrades/) 및 [레이어 2 확장 솔루션](/developers/docs/scaling/) 등을 통해 해결하려고 시도합니다. 기술 자체는 준비가 되었지만, 더 많은 사람이 웹3에 액세스할 수 있도록 레이어 2의 개선이 필요한 상황입니다. + +### 사용자 환경 {#user-experience} + +웹3를 사용하기 위한 기술 진입 장벽은 여전히 높습니다. 사용자는 보안 문제, 복잡한 기술 문서를 이해하고, 직관성이 떨어지는 사용자 인터페이스를 사용해야 합니다. 특히 [지갑 제공 업체](/wallets/find-wallet/)에서 본 문제를 해결하려고 노력하고 있으며, 웹3가 대중화되기까지는 많은 발전이 필요합니다. + +### 교육 {#education} + +웹3는 웹2.0을 사용한 경우와는 다른 방식의 멘탈 모델을 이해하도록 요구하는 새로운 패러다임을 소개합니다. 웹1.0이 1990년대 후반 인기를 얻기 시작했을 때에도 유사한 교육 방식의 소개가 있었습니다. www(world wide web)의 지지자들은 [텔레비전 방송](https://www.youtube.com/watch?v=SzQLI7BxfYI)에 간단한 비유(정보 고속도로, 브라우저, 웹 서핑 등)를 적용하는 등의 방식으로 교육을 진행하였습니다. 웹3는 어려운 것이 아니며, 그저 다른 것일 뿐입니다. 웹2의 사용자에게 웹3 패러다임을 설명하는 교육 이니셔티브는 웹3의 성공에 필수적인 부분입니다. + +Ethereum.org는 중요한 이더리움 콘텐츠를 가능한 많은 언어로 번역하는 [번역 프로그램](/contributing/translation-program/)을 통해 웹3 교육에 기여하고 있습니다. + +### 중앙화된 인프라 {#centralized-infrastructure} + +웹3 생태계는 젊고 빠르게 진화합니다. 그 결과, 현재는 중앙화된 인프라(GitHub, Twitter, Discord 등)에 의존하고 있습니다. 수많은 웹3 회사가 이 격차를 줄이려고 서두르고 있지만, 안정적인 고품질 인프라를 구축하는 데에는 많은 시간이 필요합니다. + +## 분산화된 미래 {#decentralized-future} + +웹3는 젊고 계속해서 진화하고 있는 생태계입니다. 개빈 우드가 2014년에 제안하였지만, 이 중 많은 아이디어는 오늘에 와서야 구현이 가능해졌습니다. 암호화폐, 레이어 2 확장 솔루션의 발전, 운영 방식의 새로운 형태에 대한 거대한 실험, 디지털 신원 인증의 혁신 등에 대한 관심은 작년에 급격하게 증가하였습니다. + +우리는 아직 웹3의 시작점에 서 있지만, 이를 위한 인프라를 계속 발전시켜나갈 것이기에 웹의 미래는 밝습니다. + +## 어떻게 참여하나요? {#get-involved} + +- [지갑 만들기](/wallets/) +- [커뮤니티 찾기](/community/) +- [웹3 애플리케이션 살펴보기](/dapps/) +- [DAO 가입하기](/dao/) +- [웹3 빌드하기](/developers/) + +## 더 읽을거리 {#further-reading} + +웹3는 한 문장으로 정의되지 않습니다. 다양한 커뮤니티 참가자들은 웹3에 대해 서로 다른 관점을 갖고 있습니다. 다음은 그 중 몇 가지입니다. + +- [ 웹3란? 미래의 분산화된 인터넷 살펴보기](https://www.freecodecamp.org/news/what-is-web3/) – _Nader Dabit_ +- [웹3 이해하기](https://medium.com/l4-media/making-sense-of-web-3-c1a9e74dcae) – _Josh Stark_ +- [웹3가 중요한 이유](https://future.a16z.com/why-web3-matters/) — _Chris Dixon_ +- [탈중앙화가 중요한 이유](https://onezero.medium.com/why-decentralization-matters-5e3f79f7638e) - _Chris Dixon_ +- [웹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) – _Packy McCormick_ diff --git a/src/content/translations/nl/dao/index.md b/src/content/translations/nl/dao/index.md index 0bf05ac9c14..e48e415d025 100644 --- a/src/content/translations/nl/dao/index.md +++ b/src/content/translations/nl/dao/index.md @@ -68,11 +68,21 @@ _Meestal gebruikt voor hechtere, mensgerichtere organisaties zoals liefdadigheid [MolochDAO](http://molochdao.com/) – MolochDAO is gericht op het financieren van Ethereum-projecten. Zij vereisen een voorstel voor lidmaatschap, zodat de groep kan beoordelen of u over de nodige expertise en het nodige kapitaal beschikt om weloverwogen beslissingen te nemen over potentiële begunstigden. U kunt niet zomaar toegang tot de DAO op de open markt kopen. +### Op reputatie gebaseerd lidmaatschap {#reputation-based-membership} + +Reputatie is een bewijs van deelname en geeft stemrecht in de DAO. Anders dan een op tokens of aandelen gebaseerd lidmaatschap, dragen op reputatie gebaseerde DAO's geen eigendomsrechten over aan de bijdragers. Reputatie kan niet worden gekocht, overgedragen of gedelegeerd; DAO-leden moeten reputatie verdienen door deelname. On-chain stemmen is vrij voor iedereen en toekomstige leden kunnen vrij voorstellen indienen om toe te treden tot de DAO, kunnen verzoeken reputatie en tokens te ontvangen als beloning voor hun bijdragen. + +_Meestal gebruikt voor gedecentraliseerde ontwikkeling en governance van protocollen en dapps, maar ook goed geschikt voor een veelzijdige groep organisaties zoals liefdadigheidsinstellingen, arbeiderscollectieven, investeringsclubs, enz._ + +#### Een goed voorbeeld {#reputation-example} + +[DXdao](https://DXdao.eth.link) – DXdao is een wereldwijd soeverein collectief dat sinds 2019 gedecentraliseerde protocollen en toepassingen bouwt en beheert. Het maakt gebruik van op reputatie gebaseerde governance en holografische consensus om fondsen te coördineren en te beheren, wat betekent dat niemand zomaar de toekomst ervan kan beïnvloeden door aankopen te doen. + ## Hoe werken DAO's? {#how-daos-work} -De basis van een DAO is het bijbehorende slimme contract. Het contract definieert de regels van de organisatie en houdt de schatkist van de groep. Zodra het contract live is op Ethereum, kan niemand meer de regels veranderen. De regels kunnen enkel veranderd worden door een stemming. Als iemand iets probeert te doen dat niet valt onder de regels en logica in de code, zal het mislukken. En omdat de schatkist ook in het slimme contract wordt gedefinieerd, betekent dat ook niemand het geld kan uitgeven zonder toestemming van de groep. Dit betekent dat DAO's geen centrale autoriteit nodig hebben. In plaats daarvan neemt de groep collectief besluiten en worden betalingen automatisch toegestaan wanneer er wordt gestemd. +De basis van een DAO is het bijbehorende slimme contract. Het contract definieert de regels van de organisatie en houdt de schatkist van de groep. Zodra het contract live is op Ethereum, kan niemand meer de regels veranderen. De regels kunnen enkel veranderd worden door een stemming. Als iemand iets probeert te doen dat niet valt onder de regels en logica in de code, zal het mislukken. En omdat de schatkist ook in het slimme contract wordt gedefinieerd, betekent dat niemand het geld kan uitgeven zonder toestemming van de groep. Dit betekent dat DAO's geen centrale autoriteit nodig hebben. In plaats daarvan neemt de groep collectief besluiten en worden betalingen automatisch toegestaan wanneer er wordt ingestemd. -Dit is mogelijk omdat slimme contracten fraudebestendig zijn zodra ze live op Ethereum gaan. U kunt de code (de regels van de DAO's) niet gewoon bewerken zonder dat mensen dat merken. Dit komt omdat alles openbaar is voor het publiek. +Dit is mogelijk omdat slimme contracten fraudebestendig zijn zodra ze live op Ethereum gaan. U kunt de code (de regels van DAO's) niet gewoon bewerken zonder dat mensen dat merken, omdat alles openbaar is. Meer over slimme contracten @@ -80,7 +90,7 @@ Dit is mogelijk omdat slimme contracten fraudebestendig zijn zodra ze live op Et ## Ethereum en DAO's {#ethereum-and-daos} -Ethereum is de perfecte basis voor DAO's door een aantal redenen: +Ethereum is de perfecte basis voor DAO's om een aantal redenen: - De eigen consensus van Ethereum is zo verdeeld en voldoende vastgesteld dat organisaties het netwerk kunnen vertrouwen. - De code van een slim contract kan niet aangepast worden zodra deze live is, zelfs niet door de eigenaren. Hierdoor kan de DAO functioneren volgens de regels waarmee ze oorspronkelijk was geprogrammeerd. @@ -99,7 +109,7 @@ Ethereum is de perfecte basis voor DAO's door een aantal redenen: - [Roep een DAO op met DAOHaus](https://app.daohaus.club/summon) - [Creëer een door Aragon mogelijk gemaakte DAO](https://aragon.org/product) - [Start een kolonie](https://colony.io/) -- [Maak een DAO met DAOstack](https://daostack.io/) +- [Maak een DAO met de holografische consensus van DAOstack](https://alchemy.daostack.io/daos/create) ## Verder lezen {#further-reading} @@ -110,6 +120,7 @@ Ethereum is de perfecte basis voor DAO's door een aantal redenen: - [Wat is een DAO en waar is het voor?](https://daohaus.substack.com/p/-what-is-a-dao-and-what-is-it-for) – [DAOhaus](https://daohaus.club/) - [Hoe een door een DAO mogelijk gemaakte digitale gemeenschap te starten](https://daohaus.substack.com/p/four-and-a-half-steps-to-start-a) - [DAOhaus](https://daohaus.club/) - [Wat is een DAO?](https://coinmarketcap.com/alexandria/article/what-is-a-dao) – [Coinmarketcap](https://coinmarketcap.com) +- [Wat is holografische consensus?](https://medium.com/daostack/holographic-consensus-part-1-116a73ba1e1c) - [DAOstack](https://daostack.io/) ### Video's {#videos} diff --git a/src/content/translations/pt-br/governance/index.md b/src/content/translations/pt-br/governance/index.md index 3bb8a02a767..a79be381d5d 100644 --- a/src/content/translations/pt-br/governance/index.md +++ b/src/content/translations/pt-br/governance/index.md @@ -2,7 +2,6 @@ title: Governança Ethereum description: Uma introdução à forma como as decisões sobre a Ethereum são tomadas. lang: pt-br -sidebar: true postMergeBannerTranslation: page-upgrades-post-merge-banner-governance-ood --- diff --git a/src/content/translations/pt-br/security/index.md b/src/content/translations/pt-br/security/index.md index f49ab770def..7f089b9afe7 100644 --- a/src/content/translations/pt-br/security/index.md +++ b/src/content/translations/pt-br/security/index.md @@ -2,7 +2,6 @@ title: Segurança e prevenção de fraude do Ethereum description: Como manter a segurança no Ethereum lang: pt-br -sidebar: true --- # Segurança e prevenção de fraude do Ethereum {#introduction} diff --git a/src/content/translations/ru/developers/docs/evm/opcodes/index.md b/src/content/translations/ru/developers/docs/evm/opcodes/index.md index 9e115683065..d25c426dc31 100644 --- a/src/content/translations/ru/developers/docs/evm/opcodes/index.md +++ b/src/content/translations/ru/developers/docs/evm/opcodes/index.md @@ -2,7 +2,6 @@ title: Машинный код для EVM description: Список всех доступных кодов операций для виртуальной машины Ethereum. lang: ru -sidebar: true --- ## Описание {#overview} diff --git a/src/content/translations/tr/community/online/index.md b/src/content/translations/tr/community/online/index.md index 8a59ce428f8..36e4a75575c 100644 --- a/src/content/translations/tr/community/online/index.md +++ b/src/content/translations/tr/community/online/index.md @@ -1,7 +1,6 @@ --- title: Çevrimiçi topluluklar description: Ethereum ekosistemindeki hibe programlarının bir listesi. -sidebar: true lang: tr --- diff --git a/src/content/translations/tr/staking/solo/index.md b/src/content/translations/tr/staking/solo/index.md index 8ea72565bc0..fe0e4cfdb31 100644 --- a/src/content/translations/tr/staking/solo/index.md +++ b/src/content/translations/tr/staking/solo/index.md @@ -4,7 +4,6 @@ description: ETH'nizi solo stake etmeye nasıl başlayacağınıza dair genel bi lang: tr template: staking emoji: ":money_with_wings:" -sidebar: true image: ../../../../../assets/staking/leslie-solo.png alt: Gergedan Leslie bilgisayar çipinin üstünde. sidebarDepth: 2 diff --git a/src/content/translations/vi/nft/index.md b/src/content/translations/vi/nft/index.md index 85a38892a9c..a1e656cffb1 100644 --- a/src/content/translations/vi/nft/index.md +++ b/src/content/translations/vi/nft/index.md @@ -4,7 +4,6 @@ description: Tổng quan về NFT trên Ethereum lang: vi template: use-cases emoji: ":frame_with_picture:" -sidebar: true sidebarDepth: 2 image: ../../../../assets/infrastructure_transparent.png alt: Một biểu tượng Eth được hiển thị ở dạng ảnh ba chiều. diff --git a/src/content/translations/zh-tw/dao/index.md b/src/content/translations/zh-tw/dao/index.md index 6ac8a210987..306d63a6681 100644 --- a/src/content/translations/zh-tw/dao/index.md +++ b/src/content/translations/zh-tw/dao/index.md @@ -4,7 +4,6 @@ description: 以太坊上的去中心化自治組織概要 lang: zh-tw template: use-cases emoji: ":handshake:" -sidebar: true sidebarDepth: 2 image: ../../../../assets/use-cases/dao-2.png alt: 在對提案投票的去中心化自治組織代表。 diff --git a/src/content/translations/zh/contributing/design-principles/index.md b/src/content/translations/zh/contributing/design-principles/index.md index c3cb0a1d849..7b71956cc1c 100644 --- a/src/content/translations/zh/contributing/design-principles/index.md +++ b/src/content/translations/zh/contributing/design-principles/index.md @@ -23,7 +23,7 @@ description: Ethereum.org 设计和内容决策背后的原则 让我们来看一个例子: 其中一项原则是“可信”,这意味着我们希望网站的访问者*感觉*并*知道*该网站是值得信赖的——就像更开放的以太坊生态系统一样。 在该原则下,我们有 3 个功能性“子原则”,我们认为这些是我们可以采取的可行步骤,以使网站具有可信度: - _“最新”_,即保持内容最新。 -- _“社会认同”_,即展示生态系统的规模、多样性和活跃度(您知道的:以太坊升级进度、去中心化金融、游戏、所有黑客马拉松等) +- _“社会认同”_,即展示生态系统的规模、多样性和活跃度(您知道的:以太坊升级进度、去中心化金融、游戏、所有黑客马拉松等) - _“一致”_,即网站设计以及写作的基调和准确性是一致的。 因此,当我们做出设计或文案决策时,我们可以参考“可信”原则并自问: @@ -90,4 +90,4 @@ description: Ethereum.org 设计和内容决策背后的原则 虽然这些原则主要体现在 ethereum.org 网站上,但我们希望其中许多原则能够代表以太坊生态系统的整体价值(例如,您可以看到[以太坊原则白皮书](https://github.com/ethereum/wiki/wiki/White-Paper#philosophy)的影响)。 也许您甚至想将其中一些原则运用到您自己的项目中! -请通过 [Discord 服务器](https://discord.gg/CetY6Y4)或者[创建一个提议](<(https://github.com/ethereum/ethereum-org-website/issues/new?assignees=&labels=Type%3A+Feature&template=feature_request.md&title=)>)来分享您的想法。 +在 [Discord 服务器](https://discord.gg/CetY6Y4)上或通过[创建问题](https://github.com/ethereum/ethereum-org-website/issues/new?assignees=&labels=Type%3A+Feature&template=feature_request.md&title=),让我们知道你的想法。 diff --git a/src/content/translations/zh/contributing/index.md b/src/content/translations/zh/contributing/index.md index 5bd6ac0cfc1..5ee43f4ac0d 100644 --- a/src/content/translations/zh/contributing/index.md +++ b/src/content/translations/zh/contributing/index.md @@ -73,7 +73,7 @@ Ethereum.org 网站,像开放的以太坊一样,也是一个开源项目。 ### 如何领取 {#how-to-claim} 1. 加入我们的 [Discord 服务器](https://discord.gg/E8dET2ux8y)。 -2. 在 `#🥇 | poaps` [频道](https://discord.com/channels/714888181740339261/804005643211898911)中粘贴指向你的贡献的链接 。 +2. 在 `#🥇 | poaps` [频道](https://discord.com/channels/714888181740339261/804005643211898911)中粘贴指向你的贡献的链接。 3. 等待我们的团队成员向您发送 POAP 徽章领取链接。 4. 领取您的 POAP 徽章! diff --git a/src/content/translations/zh/contributing/translation-program/index.md b/src/content/translations/zh/contributing/translation-program/index.md index f286820d082..031fbf70c42 100644 --- a/src/content/translations/zh/contributing/translation-program/index.md +++ b/src/content/translations/zh/contributing/translation-program/index.md @@ -1,176 +1,110 @@ --- title: 翻译计划 lang: zh -description: 如何为 ethereum.org 的翻译计划贡献力量 +description: 关于 ethereum.org 翻译计划的信息 +sidebarDepth: 3 --- # 翻译计划 {#translation-program} 翻译计划是一项将 ethereum.org 翻译成不同语言的协同工作计划,方便全球数十亿非英语人士更容易访问网站。 -我们迄今取得的进展: +![](./enterprise-eth.png) -- [超过 **3,600** 名翻译者参与](/contributing/translation-program/contributors/) -- [网站支持 **46** 种语言](/languages/) -- [2021 年翻译了超过 **290** 万字](/contributing/translation-program/acknowledgements/) -- [2022 年到目前为止已翻译 **150 万**单词](/contributing/translation-program/acknowledgements/) +## 帮助我们翻译 {#help-us-translate} -如果您想参与其中并帮助我们通过将网站翻译成您的语言来发展全球以太坊社区,请遵循下面的步骤! +Ethereum.org 翻译计划是开放的,所有人都可以参与! - - 查看我们的致谢翻译人员页面,{" "} -然后领取您的 POAP 代币。 如果您在 2022 年翻译了 ethereum.org,我们会给您发放一枚独特的 POAP 徽章。{" "} -有关 POAP 徽章的详细信息 - +1. 你需要登录或注册 Crowdin 帐户。 +2. 选择你想贡献翻译的语言。 +3. 在开始之前,请查看[如何翻译](/contributing/translation-program/how-to-translate/)指南,学习如何使用 Crowdin 和 [翻译风格指南](/contributing/translation-program/translators-guide/),了解相关提示和最佳做法。 +4. 机器翻译将不会被批准。 +5. 所有翻译在添加到网站之前都会经过审核,因此你的翻译在上线之前会有一个短暂的延迟。 + + + 开始翻译 + -## 使命和愿景 {#mission-and-vision} +## 关于翻译计划 {#about-us} 以太坊社区旨在成为全球化和包容性的社区,但其大部分内容仅面向英语使用者,而忽略了全球 60 亿非英语使用者。 为了使 ethereum.org 成为全球社区进入以太坊的门户,我们认为很有必要为非英语国家人士按母语提供以太坊内容。 Ethereum.org 翻译计划旨在通过将 Ethereum.org 和其他以太坊内容翻译成尽可能多的语言,让所有人都能参与以太坊。 -**我们的使命** - -- 提供网站的翻译版本,支持世界各地的访问者通过母语了解以太坊 -- 促进更多成员加入全球以太坊社区 -- 允许以更易获得和更具包容性的方式分享以太坊的信息和知识 -- 支持社区成员为以太坊贡献翻译,并在生态系统中留下自己的痕迹 -- 寻找、联系希望参与生态系统的热情贡献者,并为其提供指导 +阅读更多关于 ethereum.org 翻译计划[任务和视图](/contributing/translation-program/mission-and-vision)的信息。 -**我们的愿景** +### 我们迄今取得的进展 {#our-progress} -- 为来自世界上尽可能多的国家/地区的以太坊社区成员翻译基本内容 -- 支持跨语言的知识共享,创建一个信息灵通、受过更好教育的以太坊社区 -- 通过消除非英语人士加入生态系统的语言障碍,提高以太坊的包容性和可访问性 +- [超过 **3,800** 名翻译人员参与](/contributing/translation-program/contributors/) +- [网站支持 **48** 种语言](/languages/) +- [2021 年翻译了超过 **290** 万字](/contributing/translation-program/acknowledgements/) +- [2022 年迄今为止已翻译 **190 万**字](/contributing/translation-program/acknowledgements/) -## 如何翻译 {#how-to-translate} +如果你想参与其中并通过将网站翻译成你的语言来帮助我们发展全球以太坊社区,请遵循下面的步骤! - - 我们建议您查看一下《ethereum.org 翻译风格指南》。 该指南包含一些最重要的准则、说明和翻译技巧,帮助翻译人员对网站进行本地化。 - {" "}查看翻译风格指南 + + 查看我们的致谢翻译人员页面,{" "} +然后领取您的 POAP 代币。 如果您在 2022 年翻译了 ethereum.org,我们会给您发放一枚独特的 POAP 徽章。{" "} +有关 POAP 徽章的详细信息 -### 视觉指南 {#visual-guide} - -更喜欢视频学习的人员请观看 Luka 演示如何设置 Crowdin。 或者,您可以在下一节找到以书面形式列出的相同步骤。 - - - -### 书面指南 {#written-guide} - -1. **[加入我们的 Crowdin 项目](https://crowdin.com/project/ethereum-org/invite)** - 您需要登录 Crowdin 帐户,如果没有帐户,请注册。 只需要提供电子邮件帐户和密码。 - -2. **打开您想要翻译的语言并找到一个文档进行翻译** - 网站内容被分成若干个文档和内容存储桶。 您可以在右边查看每份文档的进度 - 如果翻译进度低于 100%,请贡献您的力量! - - 找不到您的语言列表? [创建一个提议](https://github.com/ethereum/ethereum-org-website/issues/new/choose)或者在 [Discord](https://discord.gg/6WX7E97) 中联系我们。 - - ![Crowdin 上已翻译和未翻译的文件](./crowdin-files.png) +### 我们的工作内容 {#our-projects} - 关于内容存储桶的说明:我们使用 Crowdin 中的“内容存储桶”功能来先发布最高优先级内容。 当您查看一种语言时(例如[菲律宾语](https://crowdin.com/project/ethereum-org/fil#)),您会看到内容存储桶对应的文件夹,例如(“1. 主页”,“2. 使用以太坊页面”,等等)。 +我们的贡献者社区正在为全球以太坊社区积极翻译多个具有强大影响力的网站和资源。 - 我们建议您按照数字顺序来进行翻译 (1 → 2 → 3 → ⋯),以保证影响最大的页面优先得到翻译。 +#### Ethereum.org(以太坊官网) {#ethereumorg} - [了解 ethereum.org 内容存储桶的更多信息](/contributing/translation-program/content-buckets/) +![](./ethereum-org-screenshot.png) -3. **翻译** - 选择您要翻译的文件后,随即在线编辑器中打开。 如果您从未使用过 Crowdin,您可以通过这个快速指南来了解基础知识。 +[Ethereum.org](/) 是以太坊社区的重要教育资源,也是翻译计划的主要关注点。 鉴于网站的规模、范围和覆盖面,它是需要翻译的最具影响力的网站,我们建议从这里开始! - ![Crowdin 在线编辑器](./online-editor.png) +参与方式: - **_1 - 左侧边栏_** +- 加入 [Crowdin 中的 ethereum.org 翻译项目](https://crowdin.com/project/ethereum-org/invite) - - 未翻译(红色)- 尚未翻译的文本。 这些是您应该翻译的文本。 - - 已翻译(绿色)- 已翻译但尚未审核的文本。 欢迎您提出其他翻译建议,或使用编辑器中的'“+'”和“-”按钮对现有翻译投票。 - - 已核准(勾号)- 已审核并且目前已经在网站上展示的文本。 +#### 以太坊质押启动板 {#ethereum-staking-launchpad} - 您也可以使用顶部的按钮搜索特定文本,按状态筛选或更改视图。 +![](./launchpad-screenshot.png) - **_2 - 编辑区域_** +[质押启动板](https://launchpad.ethereum.org/en/)使以太坊用户能够成为验证者,并通过质押以太币来帮助保护以太坊的未来。 - 主要翻译区域 - 源文本显示在顶部,还有更多上下文和屏幕截图(如果有)。 要添加新翻译,请在“Enter translation here”字段中输入您的翻译,然后点击“Save”。 +参与方式: - 您还可以在此部分找到现有文本翻译和其他语言的翻译,以及翻译记忆库的匹配和机器翻译建议。 +- 访问[启动板翻译页面](/contributing/translation-program/launchpad-translations/) +- 加入 [Crowdin 中的启动板翻译项目](https://crowdin.com/project/ethereum-staking-launchpad) - **_3 - 右侧边栏_** +#### 以太坊基金会博客 {#ethereum-foundation-blog} - 您可以在这里找到评论、翻译记忆库和词汇表条目。 默认视图会显示评论,允许翻译人员相互交流、提出问题或报告错误翻译。 +![](./blog-screenshot.png) - 通过使用上面的按钮,您还可以切换到翻译记忆库,在其中搜索现有翻译,或者切换到词汇表,其中包含关键术语的描述和标准翻译。 +[以太坊基金会博客](https://blog.ethereum.org/)是许多以太坊基金会支持的团队的主要发布工具,是以太坊社区公告、更新、报告、综述和其他公共通信内容的来源。 - 想了解更多信息? 可随时查看文档:[关于使用 Crowdin 在线编辑器](https://support.crowdin.com/online-editor/)。 +参与方式: -4. **审核过程** - 一旦完成翻译(即一个内容存储桶的所有文件均显示 100%),将由我们的专业翻译服务提供者审核(并有可能编辑)内容。 一旦审核完成(即审核进度为 100%),我们会将其添加到网站上。 +- 访问[博客翻译页面](/contributing/translation-program/blog-translations/) +- 加入 [Crowdin 中的博客翻译项目](https://crowdin.com/project/ethereum-foundation-blog) - - 请不要使用机器翻译来翻译项目。 所有译文在被添加到网站之前均会进行审核。 如果您提供的译文被发现是机器翻译的,译文将不会被应用,经常使用机器翻译的贡献者将被从项目中移除。 - - -还有其他问题? 或者想与我们的团队和其他翻译人员合作? 请在我们的 [ethereum.org Discord 服务器的](https://discord.gg/6WX7E97) #translations 频道中发布 - -您也可以通过向 translations@ethereum.org 发送邮件联系我们 - -感谢您参与 ethereum.org 翻译计划! - -**翻译人员官方互动时间** - -每个月的第二个星期三是翻译人员的官方互动时间。 互动会在 [ethereum.org Discord](https://discord.gg/geKhWjtF) 上的 #office-hours 频道举行,您也可以在那里查看确切的举行时间和其他详细信息。 - -官方互动的目的是让我们的翻译人员有机会提出有关翻译过程的问题、对计划提供反馈、分享他们的想法,或者只是跟我们聊聊天。 参与者还可以了解有关翻译计划的更多信息,并获得有关如何成为 ethereum.org 翻译人员的一些信息。 最后,我们希望通过这些电话会议传达翻译计划取得的最新进展,并与我们的贡献者分享重要的技巧和说明。 - -如果您是 ethereum.org 翻译人员或想要成其中一员,欢迎加入我们这些会议中的任何一场。 - - - 如果您在帮助我们进行翻译,您可能会在翻译常见问题中找到一些实用信息。 - {" "}有关翻译 ethereum.org 的常见问题 - +### 指南和资源 {#guides-and-resources} -## 资源 {#resources} - -### 指南 {#guides} +如果你正在为翻译计划做贡献或考虑参与其中,你应该查看以下翻译指南: - [翻译风格指南](/contributing/translation-program/translators-guide/) _– 适用于 ethereum.org 翻译者的说明和技巧_ - [翻译常见问题](/contributing/translation-program/faq/) _– 有关 ethereum.org 翻译计划的一些常见问题_ - [Crowdin 在线编辑指南](https://support.crowdin.com/online-editor/) _- 使用 Crowdin 在线编辑器和 Crowdin 一些高级功能的深入指南_ - [内容存储桶](/contributing/translation-program/content-buckets/) _– ethereum.org 的每个内容存储桶中包含哪些页面_ -### 工具 {#tools} - -- [Microsoft 语言门户](https://www.microsoft.com/en-us/language) _- 对于查找和核对技术术语标准翻译非常有用_ -- [Linguee](https://www.linguee.com/)。 _– 翻译和字典搜索引擎,可按词或短语搜索_ -- [Proz 术语搜索](https://www.proz.com/search/)。 _– 专业术语的翻译字典和词汇表数据库_。 -- [Eurotermbank](https://www.eurotermbank.com/) _ – 42 种语言的欧洲术语集_ - -### 社区 {#communities} - -- [特定语言的 Discord 翻译组](https://discord.gg/6WX7E97)。 _- 让 ethereum.org 翻译人员与 Discord 翻译组建立联系的举措_ -- [中文翻译组](https://www.notion.so/Ethereum-org-05375fe0a94c4214acaf90f42ba40171) _– 方便中文翻译人员之间协作的 Notion 页面_ - -### 内容存储桶概述 {#content-buckets-overview} - -- [内容存储桶](/contributing/translation-program/content-buckets/) _– ethereum.org 的每个内容存储桶中包含哪些页面_ - -### 最近更新 {#latest-updates} - -要了解翻译计划的最新进展,您可以关注[以太坊基金会博客](https://blog.ethereum.org/): - -- [2021 年 10 月里程碑更新](https://blog.ethereum.org/2021/10/04/translation-program-update/) -- [2020 年 12 月里程碑更新](https://blog.ethereum.org/2020/12/21/translation-program-milestones-updates-20/) -- [2020 年 7 月里程碑更新](https://blog.ethereum.org/2020/07/29/ethdotorg-translation-milestone/) -- [2019 年 8 月翻译计划启动](https://blog.ethereum.org/2019/08/20/translating-ethereum-for-our-global-community/) +有关其他有用的翻译工具、翻译社区和翻译计划博客文章,请访问[资源页面](/contributing/translation-program/resources/)。 -## 以太坊质押启动板翻译 {#staking-launchpad} +## 联系我们 {#get-in-touch} -我们的翻译社区也在进行[质押启动板](https://launchpad.ethereum.org/en/)的翻译工作。 这使得任何人都可以成为以太坊验证者,并帮助保护以太坊网络。 启动板目前支持 17 种语言。 +还有其他问题吗? 或者想与我们的团队和其他翻译人员合作? 请在我们的 [ethereum.org Discord 服务器](https://discord.gg/6WX7E97)的 #translations 频道中发帖 -如果您感兴趣,[请加入 Crowdin 的以太坊质押启动板翻译项目](https://crowdin.com/project/ethereum-staking-launchpad)。 如果 Crowdin 未提供您的语言,您可以在 GitHub 上[创建一个提议](https://github.com/ethereum/staking-launchpad/issues/new),请求增加新语言。 +也可以通过向 translations@ethereum.org 发送邮件联系我们 -## 开始您自己的翻译计划 {#starting-a-translation-program} +## 开始你自己的翻译计划 {#starting-a-translation-program} 我们致力于将以太坊内容翻译成尽可能多的语言,并向所有人提供教育内容。 我们对翻译很重视,希望帮助其他以太坊项目组织、管理和改进他们自己的翻译工作。 -出于这个原因,我们制作了一本[翻译计划手册](/contributing/translation-program/playbook/),其中包含我们在翻译 ethereum.org 的过程中获得的一些技巧和最佳实践。 +出于这个原因,我们制作了一本[翻译计划手册](/contributing/translation-program/playbook/),其中包含我们在翻译 ethereum.org 的过程中获得的一些技巧和最佳做法。 -想要进一步合作或使用我们的一些翻译资源? 对手册有任何反馈意见? 我们很乐意通过 translations@ethereum.org 收到您的来信。 +想要进一步合作或使用我们的一些翻译资源? 对手册有任何反馈意见? 我们很乐意通过 translations@ethereum.org 听到你们的声音。 diff --git a/src/content/translations/zh/contributing/translation-program/translators-guide/index.md b/src/content/translations/zh/contributing/translation-program/translators-guide/index.md index 7f88402d9d8..34c6f743f53 100644 --- a/src/content/translations/zh/contributing/translation-program/translators-guide/index.md +++ b/src/content/translations/zh/contributing/translation-program/translators-guide/index.md @@ -92,19 +92,33 @@ Crowdin 有一个内置功能,可以在翻译人员即将出错时发出警告 许多源内容包含标签和变量,它们在 Crowdin 编辑器中以黄色突出显示。 它们具有不同的功能,应该正确处理。 +**Crowdin 设置** + +为了更轻松地管理标签并直接从源中复制它们,我们建议你在 Crowdin 编辑器中更改你的设置。 + +1. 打开“设置” ![如何打开编辑器中的设置](./editor-settings.png) + +2. 向下滚动到“HTML 标签显示”部分 + +3. 选择“隐藏” ![请选择“隐藏”](./hide-tags.png) + +4. 点击“保存” + +通过选择此选项,完整的标签文本将不再显示,而是由一个数字代替。 翻译时,点击此标签会自动将确切的标签复制到翻译字段。 + **链接** -您可能会注意到 ethereum.org 或其他网站上的页面的完整链接。 +你可能会注意到 ethereum.org 或其他网站上的页面的完整链接。 -这些应该与来源相同,并且没有更改或翻译。 如果您翻译了链接或以任何方式更改了链接,即使只是删除其中的一部分,如斜杠 (/),这将导致链接损坏不可用。 +这些链接应该与源相同,并且不要更改或翻译。 如果你翻译了链接或以任何方式更改了链接,即使只是删除其中的一部分,如斜杠 (/),也将导致链接损坏且不可用。 -处理链接的最佳方法是直接从源中复制它们,方法是单击它们或使用“Copy Source”按钮 (Alt+C)。 +处理链接的最佳方法是直接从源中复制它们,方法是点击它们或使用“复制源”按钮 (Alt+C)。 ![link.png 示例](./example-of-link.png) -链接也以标签的形式出现在源文本中(即 <0> )。 如果您将鼠标悬停在标签上,编辑器将显示其全部内容 - 有时这些标签将代表链接。 +链接也以标签的形式出现在源文本中(即 <0> )。 如果你将鼠标悬停在标签上,编辑器将显示其全部内容 - 有时这些标签将代表链接。 -从源复制链接而不更改其顺序非常重要。 +从源复制链接而不要更改其顺序,这一点非常重要。 如果标签的顺序发生变化,它们所代表的链接将被破坏。 @@ -112,21 +126,21 @@ Crowdin 有一个内置功能,可以在翻译人员即将出错时发出警告 **标签和变量** -源文本包含许多不同类型的标签,这些标签应始终从源中复制并且永不更改。 与上述类似,这些标签在翻译中的顺序也应与源相同。 +源文本包含许多不同类型的标签,这些标签应始终从源中复制并且永远不要更改。 与上述类似,这些标签在翻译中的顺序也应与源相同。 标签总是包含一个开始和结束标签。 在大多数情况下,应该翻译开始和结束标签之间的文本。 -示例:``去中心化`` +示例:``Decentralized`` `` - _使文本变粗的开始标签_ -去中心化 - _可翻译文本_ +Decentralized - _可翻译文本_ `` - _结束标签_ !['strong' tags.png 的示例](./example-of-strong-tags.png) -代码片段的处理方式应与其他标签略有不同,因为它们包含不应翻译的代码。 +代码片段的处理方式与其他标签略有不同,因为它们包含不应翻译的代码。 示例:``nonce`` @@ -136,61 +150,61 @@ nonce - _不可翻译的文本_ `` - _结束标签_ -![代码片段.png 的示例](./example-of-code-snippets.png) +![代码片段 .png 的示例](./example-of-code-snippets.png) -源文本还包含缩短的标签,这些标签只包含数字,这意味着它们的功能不是很明显。 您可以将鼠标悬停在这些标签上,以准确查看它们提供的功能。 +源文本还包含缩短的标签,这些标签只包含数字,这意味着它们的功能不是很明显。 你可以将鼠标悬停在这些标签上,以准确查看它们提供的功能。 -在下面的示例中,您可以看到将鼠标悬停在 <0> 标签显示它代表 `` 并包含代码片段,因此不应翻译这些标签内的内容。 +在下面的示例中,你可以看到,将鼠标悬停在 <0> 标签显示,它代表 `` 并包含代码片段,因此不应翻译这些标签内的内容。 -![ambiguous tags.png 的示例](./example-of-ambiguous-tags.png) +![模棱两可的 tags.png 的示例](./example-of-ambiguous-tags.png) ### 简短与完整形式/缩写 {#short-vs-full-forms} -网站上使用了很多缩写,例如 dApp、NFT、DAO、DeFi 等 这些缩写通常用于英语,并且大多数网站访问者都熟悉它们。 +网站上使用了很多缩写,例如 dApp、NFT、DAO、DeFi 等。 这些缩写通常用于英语,并且大多数网站访问者都熟悉它们。 -由于他们通常没有其他语言的翻译,处理这些和类似术语的最佳方法是提供完整形式的描述性翻译,并在括号中添加英文缩写。 +由于它们通常没有其他语言的既定翻译,处理这些和类似术语的最佳方法是提供完整形式的描述性翻译,并在括号中添加英文缩写。 不要翻译这些缩写,因为大多数人不熟悉它们,而且本地化版本对大多数访问者来说没有多大意义。 如何翻译 dApp 的示例: -- 去中心化应用程序(dApps)→ _翻译完整形式(括号中为英文缩写)_ +- Decentralized applications (dapps) → _完整的翻译形式 (括号中为英文缩写)_ ### 没有既定翻译的术语 {#terms-without-established-translations} -某些术语可能尚未在其他语言中建立翻译,并且以原始英语术语而广为人知。 这些术语主要包括较新的概念,如工作量证明、权益证明、信标链、质押等。 +某些术语在其他语言中可能没有既定翻译,并且以原始英语术语而广为人知。 这些术语主要包括较新的概念,如工作量证明、权益证明、信标链、质押等。 虽然翻译这些术语听起来不自然,但由于英文版本也常用于其他语言,因此强烈建议将它们翻译。 翻译它们时,请随意发挥创意,使用描述性翻译,或直接按字面翻译。 -**大多数术语应该翻译而不是留下一些英文的原因是,随着越来越多的人开始使用以太坊和相关技术,这种新术语将在未来变得更加普遍。 如果我们想让来自世界各地的更多人加入这个领域,我们需要以尽可能多的语言提供易于理解的术语,即使我们需要自己创建它。** +**大多数术语应该翻译而不是将其中一些保留英文的原因是,随着越来越多的人开始使用以太坊和相关技术,这种新术语将在未来变得更加普遍。 如果我们想让来自世界各地的更多人加入这个领域,我们需要以尽可能多的语言提供易于理解的术语,即使我们需要自行创建它。** -### 按钮& CTAs {#buttons-and-ctas} +### 按钮与行动号召 {#buttons-and-ctas} 网站包含许多按钮,其翻译方式应与其他内容不同。 可以通过查看上下文屏幕截图、与大多数字符串连接或通过检查编辑器中的上下文(包括短语“button”)来识别按钮文本。 -按钮的翻译应尽可能短,以防止格式不匹配。 此外,按钮翻译应该是必要的,即呈现命令或请求。 +按钮的翻译应尽可能简短,以防止格式不匹配。 此外,按钮翻译应该是必要的,即呈现命令或请求。 -![如何找到一个按钮.png 的示例](./how-to-find-a-button.png) +![如何查找按钮 .png](./how-to-find-a-button.png) ### 翻译包容性 {#translating-for-inclusivity} -Ethereum.org 的访问者来自世界各地,来自不同的背景。 因此,网站上的语言应该是中立的,欢迎所有人而不是排他性的。 +Ethereum.org 的访问者来自世界各地和不同的背景。 因此,网站上的语言应该是中立的,欢迎所有人而不是排他性的。 -其中一个重要方面是性别中立。 这可以通过使用正式的地址形式轻松实现,并避免在翻译中使用任何特定性别的词。 +其中一个重要方面是性别中立。 这可以通过使用正式的地址形式并避免在翻译中使用任何特定性别的词来轻松实现。 -另一种形式的包容性是试图为全球观众翻译,而不是针对任何国家、种族或地区。 +另一种形式的包容性是,尝试面向全球观众翻译,而不是面向任何国家、种族或地区。 -最后,语言应该适合所有大众和年龄段的人。 +最后,语言应该适合所有大众和年龄段的读者。 ## 特定语言的翻译 {#language-specific-translations} -翻译时,重要的是要遵循您的语言中使用的语法规则、约定和格式,而不是从源头复制。 源文本遵循英语语法规则和约定,这不适用于许多其他语言。 +翻译时,重要的是要遵循你的语言中使用的语法规则、约定和格式,而不是从源复制。 源文本遵循英语语法规则和约定,而这不适用于许多其他语言。 -您应该了解您的语言规则并进行相应的翻译。 如果您需要帮助,请与我们联系,我们将帮助您找到一些有关如何在您的语言中使用这些元素的资源。 +你应该了解你的语言规则并进行相应的翻译。 如果你需要帮助,请与我们联系,我们将帮助你找到一些有关如何在你的语言中使用这些元素的资源。 一些需要特别注意的例子: @@ -276,4 +290,4 @@ Ethereum.org 的访问者来自世界各地,来自不同的背景。 因此, 翻译时尽量不要着急。 放轻松,玩得开心! -感谢您参与翻译计划并帮助我们让更广泛的受众可以访问网站。 以太坊社区是全球性的,我们很高兴您成为其中的一员! +感谢你参与翻译计划并帮助我们让更广泛的受众可以访问网站。 以太坊社区是全球性的,我们很高兴你也成为其中的一员! diff --git a/src/content/translations/zh/developers/docs/accounts/index.md b/src/content/translations/zh/developers/docs/accounts/index.md index 1f470c39c9d..5cfee4b66d0 100644 --- a/src/content/translations/zh/developers/docs/accounts/index.md +++ b/src/content/translations/zh/developers/docs/accounts/index.md @@ -45,7 +45,7 @@ lang: zh - `codeHash` - 该哈希表示以太坊虚拟机 (EVM) 上的帐户*代码*。 合约帐户具有编程的代码片段,可以执行不同的操作。 如果帐户收到消息调用,则执行此 EVM 代码。 与其他帐户字段不同,不能更改。 所有代码片段都被保存在状态数据库的相应哈希下,供后续检索。 此哈希值称为 codeHash。 对于外部所有的帐户,codeHash 字段是空字符串的哈希。 - `storageRoot` – 有时被称为存储哈希。 Merkle Patricia trie 根节点的 256 位哈希已编码了帐户的存储内容(256 位整数值映射),并编码为 Trie,作为来自 256 的 Keccak 256 位哈希的映射位整数键,用于 RLP 编码的 256 位整数值。 此 Trie 对此帐户存储内容的哈希进行编码,默认情况下为空。 -![显示帐户组成部分的图表](./accounts.png) _图表来自 [Ethereum EVM illustrated](https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf)_ +![显示帐户组成部分的图表](./accounts.png) _示意图节选自[以太坊虚拟机图解](https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf)_ ## 外部持有的帐户和密钥对 {#externally-owned-accounts-and-key-pairs} @@ -79,7 +79,7 @@ Repeat passphrase: "0x3d80b31a78c30fc628f20b2c89d7ddbf6e53cedc" ``` -[GETH 文档](https://geth.ethereum.org/docs) +[GETH 相关文档](https://geth.ethereum.org/docs) 可以通过您的私钥获取公钥,但您不能通过公钥获取私钥。 这意味着保持私人密钥的安全至关重要,如同名称所建议的 **PRIVATE**。 @@ -95,11 +95,17 @@ Repeat passphrase: 合约地址通常在将合约部署到以太坊区块链时给出。 地址产生自创建人的地址和从创建人地址发送的交易数量(“nonce”)。 +## 验证者密钥 {#validators-keys} + +以太坊还有一另种类型的密钥,它们是在以太坊从工作量证明过渡到权益证明共识时引入的。 它们是“BLS”密钥,用来识别验证者。 这些密钥可以有效地聚合,减少网络达成共识所需要的带宽。 没有这种密钥集合,验证者的最小质押金额将会高出许多。 + +[更多关于验证者密钥的信息](/developers/docs/consensus-mechanisms/pos/keys/)。 + ## 关于钱包的说明 {#a-note-on-wallets} -帐户和钱包不同。 账户是用户拥有的以太坊账户的密钥和地址对。 钱包是一个界面或者说应用程序,可以让您与以太坊账户交互。 +帐户和钱包不同。 帐户是用户拥有的以太坊帐户的密钥对。 钱包是界面或应用程序,可以让你与以太坊帐户交互。 -## 直观演示 {#a-visual-demo} +## 视频演示 {#a-visual-demo} 跟随 Austin 了解哈希函数和密钥对。 @@ -109,7 +115,7 @@ Repeat passphrase: ## 延伸阅读 {#further-reading} -_还有哪些社区资源对您有所帮助? 编辑并添加本页面!_ +_还有哪些社区资源对你有所帮助? 请编辑本页面以添加!_ ## 相关主题 {#related-topics} diff --git a/src/content/translations/zh/developers/docs/apis/backend/index.md b/src/content/translations/zh/developers/docs/apis/backend/index.md index dd22bb14dc0..a3a9502de3b 100644 --- a/src/content/translations/zh/developers/docs/apis/backend/index.md +++ b/src/content/translations/zh/developers/docs/apis/backend/index.md @@ -8,15 +8,15 @@ lang: zh 为此目的,每个以太坊客户端都执行 [JSON-RPC](/developers/docs/apis/json-rpc/) 规范,所以应用程序可以依赖统一的[端点](/developers/docs/apis/json-rpc/#json-rpc-methods)集。 -如果您想使用特定的编程语言去连接以太坊的节点,您可自行选择,但是在社区中已有几个方便的库,可以更方便地实现应用程序与以太坊的连接。 通过这些库,开发者可以写下直观易懂甚至单行的代码就能初始化与以太坊的互动(背后使用 JSON RPC 请求)。 +如果您想使用特定的编程语言去连接以太坊的节点,您可自行选择,但是在社区中已有几个方便的库,可以更方便地实现应用程序与以太坊的连接。 通过这些库,开发者可以方便地写下直观的一行函数来初始化(后端的)JSON RPC 请求并用于与以太坊进行交互。 -## 先决条件 {#prerequisites} +## 前置要求 {#prerequisites} 了解[以太坊堆栈](/developers/docs/ethereum-stack/)和[以太坊客户端](/developers/docs/nodes-and-clients/)可能会对您有所帮助。 ## 为什么要使用库? {#why-use-a-library} -这些库降低了大多数与一个以太坊节点交互的复杂度。 它们还提供实用的函数(例如:将 ETH 转化为 Gwei),而作为开发者,您可以花费更少的时间来处理以太坊客户端的复杂问题,从而将更多的时间集中于处理您的应用程序的独特功能。 +这些库降低了与一个以太坊节点交互的复杂性。 它们还提供实用的函数(例如:将 ETH 转化为 Gwei),而作为开发者,您可以花费更少的时间来处理以太坊客户端的复杂问题,从而将更多的时间集中于处理您的应用程序的独特功能。 ## 可用的库 {#available-libraries} @@ -120,7 +120,7 @@ _还有哪些社区资源帮助过您? 编辑并添加本页面!_ - [节点和客户端](/developers/docs/nodes-and-clients/) - [开发框架](/developers/docs/frameworks/) -## 相关参考 {#related-tutorials} +## 相关教程 {#related-tutorials} - [设置 Web3js 以在 JavaScript 中使用以太坊区块链](/developers/tutorials/set-up-web3js-to-use-ethereum-in-javascript/) _– 在项目中设置 web3.js 的说明。_ - [从 JavaScript 中调用智能合约](/developers/tutorials/calling-a-smart-contract-from-javascript/) _– 使用 DAI 代币,从而使用 JavaScript 调用合约函数。_ diff --git a/src/content/translations/zh/developers/docs/apis/javascript/index.md b/src/content/translations/zh/developers/docs/apis/javascript/index.md index 2ef8c2807b0..bdc9abf0085 100644 --- a/src/content/translations/zh/developers/docs/apis/javascript/index.md +++ b/src/content/translations/zh/developers/docs/apis/javascript/index.md @@ -10,29 +10,31 @@ lang: zh 如果您想要用 JavaScript 连接到一个以太坊节点, 可以使用原生 JavaScript,不过生态系统中存在一些方便的库,使得这个事情变得更加容易。 通过这些库,开发者可以写下直观易懂甚至单行的代码就能初始化与以太坊的互动(背后使用 JSON RPC 请求)。 -## 先决条件 {#prerequisites} +请注意,自从[合并](/upgrades/merge/)以来,运行一个节点需要两个连接的以太坊软件 - 一个执行客户端和一个共识客户端。 请确保你的节点同时包含执行客户端和共识客户端。 如果你的节点不在本地计算机上(例如,你的节点在 AWS 实例上运行),请相应地更新教程中的 IP 地址。 有关更多信息,请参阅我们关于[运行节点](/developers/docs/nodes-and-clients/run-a-node/)的页面。 -除了了解 JavaScript 外,了解[以太坊堆栈](/developers/docs/ethereum-stack/)和[以太坊 客户端](/developers/docs/nodes-and-clients/)也许是有帮助的。 +## 前提条件 {#prerequisites} + +除了了解 JavaScript 外,了解[以太坊堆栈](/developers/docs/ethereum-stack/)和[以太坊客户端](/developers/docs/nodes-and-clients/)也许是有帮助的。 ## 为什么要使用库? {#why-use-a-library} -这些库降低了大多数与一个以太坊节点交互的复杂度。 它们还提供实用的函数(例如:将 ETH 转化为 Gwei),而作为开发者,您可以花费更少的时间来处理以太坊客户端的复杂问题,从而将更多的时间集中于处理您的应用程序的独特功能。 +这些库降低了与一个以太坊节点直接交互的复杂性。 它们还提供实用功能(例如:将以太币转换为 Gwei),因此作为开发者,你可以花费更少的时间处理以太坊客户端的复杂问题,而将更多的时间集中于处理应用程序的独特功能。 -## 库的可用功能 {#library-features} +## 库功能 {#library-features} ### 连接到以太坊节点 {#connect-to-ethereum-nodes} -使用提供器,这些库允许您连接到以太坊并读取它的数据,不管是通过 JSON-RPC、INFURA、Etherscan、Alchemy 还是 MetaMask。 +使用提供程序,这些库允许你连接到以太坊并读取它的数据,不管是通过 JSON-RPC、INFURA、Etherscan、Alchemy 还是 Metamask。 **Ethers 示例** ```js -// 一个 Web3Provider 包含了标准的 Web3 提供者(provider),这个提供者 -//相当于将 MetaMask 作为一个以太坊窗口注入到每个页面中。 +// A Web3Provider wraps a standard Web3 provider, which is +// what MetaMask injects as window.ethereum into each page const provider = new ethers.providers.Web3Provider(window.ethereum) -// MetaMask 插件同时可以签署每一笔交易 -// 从而更改区块链中的状态。 +// The MetaMask plugin also allows signing transactions to +// send ether and pay to change state within the blockchain. // 为此,我们需要帐户签名者... const signer = provider.getSigner() ``` @@ -41,38 +43,38 @@ const signer = provider.getSigner() ```js var web3 = new Web3("http://localhost:8545") -// 或 +// or var web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545")) -// 更改提供者 +// change provider web3.setProvider("ws://localhost:8546") -// 或 +// or web3.setProvider(new Web3.providers.WebsocketProvider("ws://localhost:8546")) -// 在 node.js 中使用 IPC 提供者 +// Using the IPC provider in node.js var net = require("net") -var web3 = new Web3("/Users/myuser/Library/Ethereum/geth).ipc", net// mac os path -// 或 +var web3 = new Web3("/Users/myuser/Library/Ethereum/geth.ipc", net) // mac os path +// or var web3 = new Web3( - new Web3.providers. pcProvider("/Users/myuser/Library/Ethereum/geth.ipc", net" + new Web3.providers.IpcProvider("/Users/myuser/Library/Ethereum/geth.ipc", net) ) // mac os path -// 在 windows 操作系统上的路径是 "\\\\pipe\\geth.ipc" -// 在 linux 上的路径是 "/users/myuser/.efer/geth.ipc" +// on windows the path is: "\\\\.\\pipe\\geth.ipc" +// on linux the path is: "/users/myuser/.ethereum/geth.ipc" ``` -一旦设置,您将能够查询区块链的以下内容: +一旦设置,你将能够查询区块链的以下内容: -- 区块高度 -- 燃料评估 +- 区块号 +- 燃料估算 - 智能合约事件 - 网络 ID -- 及更多... +- 以及更多... ### 钱包功能 {#wallet-functionality} -这些库给予开发者创建钱包的功能,用于管理密匙和对交易进行签署。 +这些库为你提供了创建钱包、管理密匙和签署交易的功能。 -这里提供了一个以太币的例子 +这里提供了 Ethers 中的一个示例 ```js // 从助记符创建一个钱包实例... @@ -141,7 +143,7 @@ wallet.sendTransaction(tx) [阅读完整文档](https://docs.ethers.io/v5/api/signer/#Wallet) -一旦设置,您将能够: +一旦设置,你将能够: - 创建帐户 - 发送交易 @@ -150,11 +152,11 @@ wallet.sendTransaction(tx) ### 与智能合约交互的方法 {#interact-with-smart-contract-functions} -JavaScript 客户端库允许您的应用程序通过读取已编译合约的应用程序二进制接口 (ABI) 来调用智能合约函数。 +JavaScript 客户端库允许你的应用程序通过读取已编译合约的应用程序二进制接口 (ABI) 来调用智能合约函数。 -应用程序二进制接口本质上是基于 JSON 格式解释了合约的函数,并且允许您像普通 JavaScript 对象一样使用它。 +ABI 本质上是以 JSON 格式解释了合约的功能,并且允许你像普通 JavaScript 对象一样使用它。 -以下是基于 Solidity 开发的智能合约: +以下 Solidity 合约: ```solidity contract Test { @@ -174,7 +176,7 @@ contract Test { } ``` -可能会产生类似下面的 JSON 数据: +将会产生以下 JSON 代码: ```json [{ @@ -203,7 +205,7 @@ contract Test { }] ``` -这意味着您可以: +这意味着你可以: - 发送一笔交易到指定的智能合约上,并执行智能合约上的方法 - 调用方法去评估对气体的需求量。这个方法的执行是在以太坊虚拟机中执行的。 @@ -212,11 +214,11 @@ contract Test { ### 实用功能 {#utility-functions} -这些实用功能类似快捷键操作,可以让开发者在构建以太坊时更加简单些。 +这些实用功能为你提供了方便的快捷操作,让以太坊的构建变得更轻松一些。 -我们默认以太坊的价值单位是 Wei(以太坊的最小价值单位)。 1 ETH = 1,000,000,000,000,000,000 WEI - 这意味着开发者们可以处理计量很大的数字。 使用 `web3.utils.toWei` 可以将 ether 转换为 Wei 。 +以太币的默认价值单位是 Wei。 1 个以太币 = 1,000,000,000,000,000,000 WEI – 这意味着你需要处理很多的数字。 使用 `web3.utils.toWei` 可以将以太币转换为 Wei。 -以 Ether 为单位是这样的: +在 ethers 中,它看起来是这样的: ```js // 获取帐户中的资产(通过地址或者 ENS 名) @@ -244,7 +246,7 @@ ethers.utils.formatEther(balance) - [相关文档](https://docs.ethers.io/) - [GitHub](https://github.com/ethers-io/ethers.js/) -**Graph -** **_用于为以太坊和 IPFS 数据建立索引并使用 GraphQL 对其进行查询的协议。_** +**Graph -** **_用于为以太坊和星际文件系统数据建立索引并使用 GraphQL 对其进行查询的协议。_** - [图表](https://thegraph.com/) - [Graph Explorer](https://thegraph.com/explorer/) @@ -252,7 +254,7 @@ ethers.utils.formatEther(balance) - [GitHub](https://github.com/graphprotocol/) - [Discord](https://thegraph.com/discord) -**Web3.js -** **_针对轻客户端优化的高级响应式 JS 库。_** +**light.js -** **_针对轻客户端优化的高级响应式 JS 库。_** - [GitHub](https://github.com/openethereum/js-libs/tree/master/packages/light.js) @@ -261,19 +263,19 @@ ethers.utils.formatEther(balance) - [相关文档](https://0x.org/docs/web3-wrapper#introduction) - [GitHub](https://github.com/0xProject/0x-monorepo/tree/development/packages/web3-wrapper) -**Alchemyweb3 -** **_用于包裹 Web3.js 的库,带自动重试和增强应用程序接口。_** +**Alchemyweb3 -** **_Web3.js 的包装器,带自动重试和增强的应用程序接口。_** - [相关文档](https://docs.alchemy.com/reference/api-overview) - [GitHub](https://github.com/alchemyplatform/alchemy-web3) -**Alchemy NFT API -** **_ 用于提取非同质化代币数据的应用程序接口,包括所有权、元数据属性等数据。_** +**Alchemy 非同质化代币应用程序接口 -** **_ 用于提取非同质化代币数据的应用程序接口,包括所有权、元数据属性等数据。_** - [相关文档](https://docs.alchemy.com/alchemy/enhanced-apis/nft-api) - [GitHub](https://github.com/alchemyplatform/alchemy-web3) ## 延伸阅读 {#further-reading} -_还有哪些社区资源对您有所帮助? 请编辑本页面并添加它!_ +_还有哪些社区资源对你有所帮助? 编辑本页面以添加!_ ## 相关主题 {#related-topics} diff --git a/src/content/translations/zh/developers/docs/apis/json-rpc/index.md b/src/content/translations/zh/developers/docs/apis/json-rpc/index.md index 480d926e08e..abef090ecfd 100644 --- a/src/content/translations/zh/developers/docs/apis/json-rpc/index.md +++ b/src/content/translations/zh/developers/docs/apis/json-rpc/index.md @@ -4,16 +4,11 @@ description: 用于以太坊客户端的无状态、轻量级远程过程调用 lang: zh --- -为了使软件应用程序能够与以太坊区块链进行交互(读取区块链数据或发送交易信息到网络),软件必须连接到以太坊节点。 +为了让软件应用程序与以太坊区块链交互(通过读取区块链数据或向网络发送交易),它必须连接到以太坊节点。 -为此目的,每个[以太坊客户端](/developers/docs/nodes-and-clients/#execution-clients)都执行 [JSON-RPC 规范](http://www.jsonrpc.org/specification),所以应用可以依赖统一的方法集。 +为此目的,每个[以太坊客户端](/developers/docs/nodes-and-clients/#execution-clients)都实现了一项 [JSON-RPC 规范](https://github.com/ethereum/execution-apis),因此有一套统一的方法可供应用程序依赖,无论具体的节点或客户端实现如何。 -JSON-RPC 是无状态、轻量级远程程序调用协议。 规范主要界定了若干数据结构和围绕其处理的规则。 它与传输无关,因为这些概念可以在同一进程,通过接口、超文本传输协议或许多不同的消息传递环境中使用。 它使用 JSON (RFC 4627) 作为数据格式。 - -## JSON-RPC 资源 {#json-rpc-resources} - -- [以太坊 JSON-RPC 规范](https://playground.open-rpc.org/?schemaUrl=https://raw.githubusercontent.com/ethereum/eth1.0-apis/assembled-spec/openrpc.json&uiSchema[appBar][ui:splitView]=true&uiSchema[appBar][ui:input]=false&uiSchema[appBar][ui:examplesDropdown]=false) -- [以太坊 JSON-RPC 规范 GitHub 代码库](https://github.com/ethereum/eth1.0-apis) +[JSON-RPC](https://www.jsonrpc.org/specification) 是一种无状态的、轻量级远程过程调用 (RPC) 协议。 它定义了一些数据结构及其处理规则。 它与传输无关,因为这些概念可以在同一进程,通过接口、超文本传输协议或许多不同的消息传递环境中使用。 它使用 JSON (RFC 4627) 作为数据格式。 ## 客户端实现 {#client-implementations} @@ -23,8 +18,2328 @@ JSON-RPC 是无状态、轻量级远程程序调用协议。 规范主要界定 虽然您可以选择通过 JSON 应用程序接口直接与以太坊客户端交互,但是对于去中心化应用程序开发者来说,常常有更容易的选项。 许多 [JavaScript](/developers/docs/apis/javascript/#available-libraries) 和[后端应用程序接口](/developers/docs/apis/backend/#available-libraries)库已经存在,可以在 JSON-RPC 应用程序接口之上提供封装。 通过这些库,开发者可以方便地写下直观的一行函数来初始化(后端的)JSON RPC 请求并用于与以太坊进行交互。 +## 共识客户端应用程序接口 {#consensus-clients} + +本页主要处理以太坊执行客户端使用的 JSON-RPC 应用程序接口。 但是,共识客户端也有一个远程过程调用应用程序接口,允许用户直接从节点查询有关节点的信息、请求信标区块、信标状态和其他与共识相关的信息。 此应用程序接口记录在[信标应用程序接口网页](https://ethereum.github.io/beacon-APIs/#/)上。 + +内部应用程序接口还用于节点内的客户端间通信——也就是说,它使共识客户端和执行客户端能够交换数据。 这被称为“引擎应用程序接口”,该规范可在 [Github](https://github.com/ethereum/execution-apis/blob/main/src/engine/specification.md) 上找到。 + +## 执行客户端规范 {#spec} + +[阅读 GitHub 上完整的 JSON-RPC 应用程序接口规范](https://github.com/ethereum/execution-apis)。 + +## 约定 {#conventions} + +### 十六进制值编码 {#hex-encoding} + +两种关键数据类型通过 JSON 传递:未格式化的字节数组和数量。 两者都使用十六进制编码传递,但对格式化有不同的要求。 + +#### 数量 {#quantities-encoding} + +当对数量(整数、编号)进行编码时:编码为十六进制(以“0x”为前缀),最紧凑的表示方法(例外:0 应表示为“0x0”)。 + +以下是一些示例: + +- 0x41(十进制中是 65) +- 0x400(十进制中是 1024) +- 错误:0x(后面至少有一位,0 是“0x0”) +- 错误:0x0400(不允许有前导零) +- 错误:ff(必须有前缀 0x) + +### 无格式数据 {#unformatted-data-encoding} + +当对无格式数据(字节数组、帐户地址、哈希、字节码数组)进行编码时:编码为十六进制,以“0x”为前缀,每字节两个十六进制数字。 + +以下是一些示例: + +- 0x41(大小为 1,“A”) +- 0x004200(大小为 3,“\0B\0”) +- 0x(大小为 0,“”) +- 错误:0xf0f0f(位数必须是偶数) +- 错误:004200(必须以 0x 为前缀) + +### 默认区块参数 {#default-block} + +以下方法有额外的默认区块参数: + +- [eth_getBalance](#eth_getbalance) +- [eth_getCode](#eth_getcode) +- [eth_getTransactionCount](#eth_gettransactioncount) +- [eth_getStorageAt](#eth_getstorageat) +- [eth_call](#eth_call) + +当发出作用于以太坊状态的请求时,最后一个默认区块参数决定了区块的高度。 + +默认区块参数可以使用以下选项: + +- `HEX String` - 整数区块号 +- `String "earliest"` - 表示最早/创世区块 +- `String "latest"` - 最新挖出的区块 +- `String "pending"` - 用于未决状态/交易 + +## 示例 + +在此页面上,我们提供了如何通过命令行工具 [curl](https://curl.se) 使用单个 JSON_RPC 应用程序接口端点的示例。 这些单独的端点示例位于下面的 [Curl 示例](#curl-examples)部分。 在页面下方,我们还提供了一个[端到端示例](#usage-example),用于使用 Geth 节点、JSON_RPC 应用程序接口和 curl 编译和部署智能合约。 + +## Curl 示例 {#curl-examples} + +下面提供了通过向以太坊节点发出 [curl](https://curl.se) 请求来使用 JSON_RPC 应用程序接口的示例。 每个示例都包括对特定端点、其参数、返回类型的描述,以及应该如何使用它的工作示例。 + +Curl 请求可能会返回与内容类型相关的错误消息。 这是因为 `--data` 选项将内容类型设置为 `application/x-www-form-urlencoded`。 如果你的节点确实抱怨此问题,请通过在调用开始时放置 `-H "Content-Type: application/json"` 来手动设置标头。 这些示例也未包括网址/互联网协议与端口组合,该组合必须是 curl 的最后一个参数(例如 `127.0.0.1:8545`)。 包含这些附加数据的完整 curl 请求采用以下形式: + +```shell +curl -H "Content-Type: application/json" -X POST --data '{"jsonrpc":"2.0","method":"web3_clientVersion","params":[],"id":67}' 127.0.0.1:8545 +``` + +## Gossip、State、History {#gossip-state-history} + +少数核心 JSON-RPC 方法需要来自以太坊网络的数据,并且整齐地分为三个主要类别:_Gossip、State 和 History_。 使用这些部分中的链接跳转到每个方法,或使用目录浏览整个方法列表。 + +### Gossip 方法 {#gossip-methods} + +> 这些方法用于跟踪链头。 这就是交易如何在网络中传播、如何找到进入区块的方式,以及客户端如何发现新区块的方式。 + +- [eth_blockNumber](#eth_blocknumber) +- [eth_sendRawTransaction](#eth_sendrawtransaction) + +### State 方法 {#state_methods} + +> 用于报告所有已存储数据的当前状态的方法。 “状态”就像一大块共享内存,包括帐户余额、合约数据和燃料估算。 + +- [eth_getBalance](#eth_getbalance) +- [eth_getStorageAt](#eth_getstorageat) +- [eth_getTransactionCount](#eth_gettransactioncount) +- [eth_getCode](#eth_getcode) +- [eth_call](#eth_call) +- [eth_estimateGas](#eth_estimategas) + +### History 方法 {#history_methods} + +> 将每个区块的历史记录追溯到创世块。 这就像一个大的仅附加文件,包括所有区块头、区块体、叔块和交易收据 + +- [eth_getBlockTransactionCountByHash](#eth_getblocktransactioncountbyhash) +- [eth_getBlockTransactionCountByNumber](#eth_getblocktransactioncountbynumber) +- [eth_getUncleCountByBlockHash](#eth_getunclecountbyblockhash) +- [eth_getUncleCountByBlockNumber](#eth_getunclecountbyblocknumber) +- [eth_getBlockByHash](#eth_getblockbyhash) +- [eth_getBlockByNumber](#eth_getblockbynumber) +- [eth_getTransactionByHash](#eth_gettransactionbyhash) +- [eth_getTransactionByBlockHashAndIndex](#eth_gettransactionbyblockhashandindex) +- [eth_getTransactionByBlockNumberAndIndex](#eth_gettransactionbyblocknumberandindex) +- [eth_getTransactionReceipt](#eth_gettransactionreceipt) +- [eth_getUncleByBlockHashAndIndex](#eth_getunclebyblockhashandindex) +- [eth_getUncleByBlockNumberAndIndex](#eth_getunclebyblocknumberandindex) + +## JSON-RPC 应用程序接口方法 {#json-rpc-methods} + +### web3_clientVersion {#web3_clientversion} + +返回当前客户端版本。 + +**参数** + +无 + +**返回值** + +`String` - 当前客户端版本 + +**示例** + +```js +// Request +curl -X POST --data '{"jsonrpc":"2.0","method":"web3_clientVersion","params":[],"id":67}' +// Result +{ + "id":67, + "jsonrpc":"2.0", + "result": "Mist/v0.9.3/darwin/go1.4.1" +} +``` + +### web3_sha3 {#web3_sha3} + +返回给定数据的 Keccak-256(*不是*标准化的 SHA3-256)。 + +**参数** + +1. `DATA` - 要转换为 SHA3 哈希的数据 + +```js +params: ["0x68656c6c6f20776f726c64"] +``` + +**返回值** + +`DATA` - 给定字符串的 SHA3 结果。 + +**示例** + +```js +// Request +curl -X POST --data '{"jsonrpc":"2.0","method":"web3_sha3","params":["0x68656c6c6f20776f726c64"],"id":64}' +// Result +{ + "id":64, + "jsonrpc": "2.0", + "result": "0x47173285a8d7341e5e972fc677286384f802f8ef42a5ec5f03bbfa254cb01fad" +} +``` + +### net_version {#net_version} + +返回当前网络 id。 + +**参数** + +无 + +**返回值** + +`String` - 当前网络 id。 + +当前网络 ID 的完整列表可在 [chainlist.org](https://chainlist.org) 获得。 一些常见的网络 ID 有: `1`:以太坊主网 `2`:Morden 测试网(现已弃用) `3`:Ropsten 测试网 `4`:Rinkeby 测试网 `5`:Goerli 测试网 + +**示例** + +```js +// Request +curl -X POST --data '{"jsonrpc":"2.0","method":"net_version","params":[],"id":67}' +// Result +{ + "id":67, + "jsonrpc": "2.0", + "result": "3" +} +``` + +### net_listening {#net_peercount} + +如果客户端正在主动监听网络连接,则返回 `true`。 + +**参数** + +无 + +**返回值** + +`Boolean` - 监听时为 `true`,否则为 `false`。 + +**示例** + +```js +// Request +curl -X POST --data '{"jsonrpc":"2.0","method":"net_listening","params":[],"id":67}' +// Result +{ + "id":67, + "jsonrpc":"2.0", + "result":true +} +``` + +### net_peerCount {#net_listening} + +返回当前连接到客户端的对等点数。 + +**参数** + +无 + +**返回值** + +`QUANTITY` - 表示已连接的对等点数的整数。 + +**示例** + +```js +// Request +curl -X POST --data '{"jsonrpc":"2.0","method":"net_peerCount","params":[],"id":74}' +// Result +{ + "id":74, + "jsonrpc": "2.0", + "result": "0x2" // 2 +} +``` + +### eth_protocolVersion {#eth_protocolversion} + +返回当前的以太坊协议版本。 + +**参数** + +无 + +**返回值** + +`String` - 当前的以太坊协议版本 + +**示例** + +```js +// Request +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_protocolVersion","params":[],"id":67}' +// Result +{ + "id":67, + "jsonrpc": "2.0", + "result": "54" +} +``` + +### eth_syncing {#eth_syncing} + +返回一个对象,其中包含有关同步状态的数据或 `false`。 + +**参数** + +无 + +**返回值** + +`Object|Boolean`,具有同步状态数据的对象,或 `FALSE`(当不同步时): + +- `startingBlock`:`QUANTITY` - 导入开始的区块(只有当同步到达链头后才会重置) +- `currentBlock`:`QUANTITY` - 当前区块,同 eth_blockNumber +- `highestBlock`:`QUANTITY` - 估计的最高区块 + +**示例** + +```js +// Request +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_syncing","params":[],"id":1}' +// Result +{ + "id":1, + "jsonrpc": "2.0", + "result": { + startingBlock: '0x384', + currentBlock: '0x386', + highestBlock: '0x454' + } +} +// Or when not syncing +{ + "id":1, + "jsonrpc": "2.0", + "result": false +} +``` + +### eth_coinbase {#eth_coinbase} + +返回客户端 coinbase 地址。 + +**参数** + +无 + +**返回值** + +`DATA`,20 字节 - 当前的 coinbase 地址。 + +**示例** + +```js +// Request +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_coinbase","params":[],"id":64}' +// Result +{ + "id":64, + "jsonrpc": "2.0", + "result": "0x407d73d8a49eeb85d32cf465507dd71d507100c1" +} +``` + +### eth_mining {#eth_mining} + +如果客户端正在积极挖掘新区块,则返回 `true`。 + +**参数** + +无 + +**返回值** + +`Boolean` - 如果客户端正在挖矿则返回 `true`,否则返回 `false`。 + +**示例** + +```js +// Request +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_mining","params":[],"id":71}' +// +{ + "id":71, + "jsonrpc": "2.0", + "result": true +} +``` + +### eth_hashrate {#eth_hashrate} + +返回节点挖矿时使用的每秒哈希数。 + +**参数** + +无 + +**返回值** + +`QUANTITY` - 每秒哈希数。 + +**示例** + +```js +// Request +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_hashrate","params":[],"id":71}' +// Result +{ + "id":71, + "jsonrpc": "2.0", + "result": "0x38a" +} +``` + +### eth_gasPrice {#eth_gasprice} + +返回单位燃料的当前价格(以 wei 为单位)。 + +**参数** + +无 + +**返回值** + +`QUANTITY` - 表示当前燃料价格(以 wei 为单位)的整数。 + +**示例** + +```js +// Request +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_gasPrice","params":[],"id":73}' +// Result +{ + "id":73, + "jsonrpc": "2.0", + "result": "0x1dfd14000" // 8049999872 Wei +} +``` + +### eth_accounts {#eth_accounts} + +返回客户端拥有的地址列表。 + +**参数** + +无 + +**返回值** + +`Array of DATA`,20 字节 - 客户端拥有的地址。 + +**示例** + +```js +// Request +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_accounts","params":[],"id":1}' +// Result +{ + "id":1, + "jsonrpc": "2.0", + "result": ["0x407d73d8a49eeb85d32cf465507dd71d507100c1"] +} +``` + +### eth_blockNumber {#eth_blocknumber} + +返回最近区块的数量。 + +**参数** + +无 + +**返回值** + +`QUANTITY` - 表示客户端所在的当前区块号的整数。 + +**示例** + +```js +// Request +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":83}' +// Result +{ + "id":83, + "jsonrpc": "2.0", + "result": "0x4b7" // 1207 +} +``` + +### eth_getBalance {#eth_getbalance} + +返回给定地址的帐户余额。 + +**参数** + +1. `DATA`,20 字节 - 需要检查余额的地址。 +2. `QUANTITY|TAG` - 整数区块号,或字符串`“latest”`、`“earliest”`或`“pending”`,参见[默认区块参数](/developers/docs/apis/json-rpc/#default-block-parameter) + +```js +params: ["0x407d73d8a49eeb85d32cf465507dd71d507100c1", "latest"] +``` + +**返回值** + +`QUANTITY` - 表示当前余额的整数(以 wei 为单位)。 + +**示例** + +```js +// Request +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getBalance","params":["0x407d73d8a49eeb85d32cf465507dd71d507100c1", "latest"],"id":1}' +// Result +{ + "id":1, + "jsonrpc": "2.0", + "result": "0x0234c8a3397aab58" // 158972490234375000 +} +``` + +### eth_getStorageAt {#eth_getstorageat} + +从给定地址的存储位置返回值。 + +**参数** + +1. `DATA`,20 字节 - 存储地址。 +2. `QUANTITY` - 表示存储位置的整数。 +3. `QUANTITY|TAG` - 整数区块号,或字符串`“latest”`、`“earliest”`或`“pending”`,参见[默认区块参数](/developers/docs/apis/json-rpc/#default-block-parameter) + +**返回值** + +`DATA` - 此存储位置的值。 + +**示例** 计算正确位置取决于要检索的存储。 考虑通过地址 `0x391694e7e0b0cce554cb130d723a9d27458f9298` 部署在 `0x295a70b2de5e3953354a6a8344e616ed314d7251` 的以下合约。 + +``` +contract Storage { + uint pos0; + mapping(address => uint) pos1; + function Storage() { + pos0 = 1234; + pos1[msg.sender] = 5678; + } +} +``` + +检索 pos0 的值很简单: + +```js +curl -X POST --data '{"jsonrpc":"2.0", "method": "eth_getStorageAt", "params": ["0x295a70b2de5e3953354a6a8344e616ed314d7251", "0x0", "latest"], "id": 1}' localhost:8545 +{"jsonrpc":"2.0","id":1,"result":"0x00000000000000000000000000000000000000000000000000000000000004d2"} +``` + +检索映射的元素更难。 映射中的元素位置通过以下方式计算: + +```js +keccack(LeftPad32(key, 0), LeftPad32(map position, 0)) +``` + +这意味着要检索 pos1["0x391694e7e0b0cce554cb130d723a9d27458f9298"] 上的存储,我们需要通过以下方法计算位置: + +```js +keccak( + decodeHex( + "000000000000000000000000391694e7e0b0cce554cb130d723a9d27458f9298" + + "0000000000000000000000000000000000000000000000000000000000000001" + ) +) +``` + +可以使用 web3 库自带的 geth 控制台进行计算: + +```js +> var key = "000000000000000000000000391694e7e0b0cce554cb130d723a9d27458f9298" + "0000000000000000000000000000000000000000000000000000000000000001" +undefined +> web3.sha3(key, {"encoding": "hex"}) +"0x6661e9d6d8b923d5bbaab1b96e1dd51ff6ea2a93520fdc9eb75d059238b8c5e9" +``` + +现在获取存储: + +```js +curl -X POST --data '{"jsonrpc":"2.0", "method": "eth_getStorageAt", "params": ["0x295a70b2de5e3953354a6a8344e616ed314d7251", "0x6661e9d6d8b923d5bbaab1b96e1dd51ff6ea2a93520fdc9eb75d059238b8c5e9", "latest"], "id": 1}' localhost:8545 +{"jsonrpc":"2.0","id":1,"result":"0x000000000000000000000000000000000000000000000000000000000000162e"} +``` + +### eth_getTransactionCount {#eth_gettransactioncount} + +返回从一个地址*发送*的交易数量。 + +**参数** + +1. `DATA`,20 字节 - 地址。 +2. `QUANTITY|TAG` - 整数区块号,或字符串`“latest”`、`“earliest”`或`“pending”`,参见[默认区块参数](/developers/docs/apis/json-rpc/#default-block-parameter) + +```js +params: [ + "0x407d73d8a49eeb85d32cf465507dd71d507100c1", + "latest", // state at the latest block +] +``` + +**返回值** + +`QUANTITY` - 表示从该地址发送的交易数量的整数。 + +**示例** + +```js +// Request +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getTransactionCount","params":["0x407d73d8a49eeb85d32cf465507dd71d507100c1","latest"],"id":1}' +// Result +{ + "id":1, + "jsonrpc": "2.0", + "result": "0x1" // 1 +} +``` + +### eth_getBlockTransactionCountByHash {#eth_getblocktransactioncountbyhash} + +从与给定区块哈希匹配的区块返回区块中的交易数量。 + +**参数** + +1. `DATA`,32 字节 - 区块的哈希 + +```js +params: ["0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238"] +``` + +**返回值** + +`QUANTITY` - 表示此区块中的交易数量的整数。 + +**示例** + +```js +// Request +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getBlockTransactionCountByHash","params":["0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238"],"id":1}' +// Result +{ + "id":1, + "jsonrpc": "2.0", + "result": "0xb" // 11 +} +``` + +### eth_getBlockTransactionCountByNumber {#eth_getblocktransactioncountbynumber} + +返回与给定区块号匹配的区块中的交易数量。 + +**参数** + +1. `QUANTITY|TAG` - 表示区块编号的整数,或字符串`“earliest”`、`“latest”`或`“pending”`,参见[默认区块参数](/developers/docs/apis/json-rpc/#default-block-parameter)。 + +```js +params: [ + "0xe8", // 232 +] +``` + +**返回值** + +`QUANTITY` - 表示此区块中的交易数量的整数。 + +**示例** + +```js +// Request +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getBlockTransactionCountByNumber","params":["0xe8"],"id":1}' +// Result +{ + "id":1, + "jsonrpc": "2.0", + "result": "0xa" // 10 +} +``` + +### eth_getUncleCountByBlockHash {#eth_getunclecountbyblockhash} + +从与给定区块哈希匹配的区块返回区块中的叔块数。 + +**参数** + +1. `DATA`,32 字节 - 区块的哈希 + +```js +params: ["0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238"] +``` + +**返回值** + +`QUANTITY` - 表示此区块中的叔块数量的整数。 + +**示例** + +```js +// Request +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getUncleCountByBlockHash","params":["0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238"],"id":1}' +// Result +{ + "id":1, + "jsonrpc": "2.0", + "result": "0x1" // 1 +} +``` + +### eth_getUncleCountByBlockNumber {#eth_getunclecountbyblocknumber} + +从与给定区块号匹配的区块返回区块中的叔块数。 + +**参数** + +1. `QUANTITY|TAG` - 表示区块编号的整数,或字符串“latest”、“earliest”或“pending”,参见[默认区块参数](/developers/docs/apis/json-rpc/#default-block-parameter) + +```js +params: [ + "0xe8", // 232 +] +``` + +**返回值** + +`QUANTITY` - 表示此区块中的叔块数量的整数。 + +**示例** + +```js +// Request +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getUncleCountByBlockNumber","params":["0xe8"],"id":1}' +// Result +{ + "id":1, + "jsonrpc": "2.0", + "result": "0x1" // 1 +} +``` + +### eth_getCode {#eth_getcode} + +返回位于给定地址的代码。 + +**参数** + +1. `DATA`,20 字节 - 地址 +2. `QUANTITY|TAG` - 整数区块号,或字符串`“latest”`、`“earliest”`或`“pending”`,参见[默认区块参数](/developers/docs/apis/json-rpc/#default-block-parameter) + +```js +params: [ + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x2", // 2 +] +``` + +**返回值** + +`DATA` - 来自给定地址的代码。 + +**示例** + +```js +// Request +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getCode","params":["0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", "0x2"],"id":1}' +// Result +{ + "id":1, + "jsonrpc": "2.0", + "result": "0x600160008035811a818181146012578301005b601b6001356025565b8060005260206000f25b600060078202905091905056" +} +``` + +### eth_sign {#eth_sign} + +Sign 方法计算以太坊特定的签名:`sign(keccak256("\x19Ethereum Signed Message:\n" + len(message) + message)))`。 + +通过在消息中添加前缀,可以将计算出的签名识别为以太坊特定的签名。 这可以防止恶意去中心化应用程序可以签署任意数据(例如交易)并使用签名冒充受害者的滥用行为。 + +注意:要签名的地址必须已解锁。 + +**参数** + +1. `DATA`,20 字节 - 地址 +2. `DATA`,N 字节 - 要签名的消息 + +**返回值** + +`DATA`:签名 + +**示例** + +```js +// Request +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_sign","params":["0x9b2055d370f73ec7d8a03e965129118dc8f5bf83", "0xdeadbeaf"],"id":1}' +// Result +{ + "id":1, + "jsonrpc": "2.0", + "result": "0xa3f20717a250c2b0b729b7e5becbff67fdaef7e0699da4de7ca5895b02a170a12d887fd3b17bfdce3481f10bea41f45ba9f709d39ce8325427b57afcfc994cee1b" +} +``` + +### eth_signTransaction {#eth_signtransaction} + +为交易签名,该交易随后可使用 [eth_sendRawTransaction](#eth_sendrawtransaction) 提交到网络。 + +**参数** + +1. `Object` - 交易对象 + +- `from`:`DATA`,20 字节 - 发送交易的地址。 +- `to`:`DATA`,20 字节 -(创建新合约时可选)将交易定向到的地址。 +- `gas`:`QUANTITY` -(可选,默认值:90000)表示为交易执行提供的燃料的整数。 它将返回未使用的燃料。 +- `gasPrice`:`QUANTITY` -(可选,默认值:待确定)表示用于每个付费燃料的 gasPrice 的整数,单位为 Wei。 +- `value`:`QUANTITY` -(可选)表示与此交易一起发送的价值的整数,单位为 Wei。 +- `data`:`DATA` - 合约的编译代码或调用的方法签名和编码参数的哈希。 +- `nonce`:`QUANTITY` -(可选)表示随机数的整数。 这允许覆盖你自己的使用相同随机数的待处理交易。 + +**返回值** + +`DATA`,签名的交易对象。 + +**示例** + +```js +// Request +curl -X POST --data '{"id": 1,"jsonrpc": "2.0","method": "eth_signTransaction","params": [{"data":"0xd46e8dd67c5d32be8d46e8dd67c5d32be8058bb8eb970870f072445675058bb8eb970870f072445675","from": "0xb60e8dd61c5d32be8058bb8eb970870f07233155","gas": "0x76c0","gasPrice": "0x9184e72a000","to": "0xd46e8dd67c5d32be8058bb8eb970870f07244567","value": "0x9184e72a"}]}' +// Result +{ + "id": 1, + "jsonrpc": "2.0", + "result": "0xa3f20717a250c2b0b729b7e5becbff67fdaef7e0699da4de7ca5895b02a170a12d887fd3b17bfdce3481f10bea41f45ba9f709d39ce8325427b57afcfc994cee1b" +} +``` + +### eth_sendTransaction {#eth_sendtransaction} + +如果数据字段包含代码,则创建新的消息调用交易或合同创建。 + +**参数** + +1. `Object` - 交易对象 + +- `from`:`DATA`,20 字节 - 发送交易的地址。 +- `to`:`DATA`,20 字节 -(创建新合约时可选)将交易定向到的地址。 +- `gas`:`QUANTITY` -(可选,默认值:90000)表示为交易执行提供的燃料的整数。 它将返回未使用的燃料。 +- `gasPrice`:`QUANTITY` -(可选,默认值:待确定)表示用于每个付费燃料的 gasPrice 的整数。 +- `value`:`QUANTITY` -(可选)表示与此交易一起发送的值的整数。 +- `data`:`DATA` - 合约的编译代码或调用的方法签名和编码参数的哈希。 +- `nonce`:`QUANTITY` -(可选)表示随机数的整数。 这允许覆盖你自己的使用相同随机数的待处理交易。 + +```js +params: [ + { + from: "0xb60e8dd61c5d32be8058bb8eb970870f07233155", + to: "0xd46e8dd67c5d32be8058bb8eb970870f07244567", + gas: "0x76c0", // 30400 + gasPrice: "0x9184e72a000", // 10000000000000 + value: "0x9184e72a", // 2441406250 + data: "0xd46e8dd67c5d32be8d46e8dd67c5d32be8058bb8eb970870f072445675058bb8eb970870f072445675", + }, +] +``` + +**返回值** + +`DATA`,32 字节 - 交易哈希,如果交易尚不可用,则为零哈希。 + +当你创建合约时,交易被挖掘后,使用 [eth_getTransactionReceipt](#eth_gettransactionreceipt) 获取合约地址。 + +**示例** + +```js +// Request +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_sendTransaction","params":[{see above}],"id":1}' +// Result +{ + "id":1, + "jsonrpc": "2.0", + "result": "0xe670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d1527331" +} +``` + +### eth_sendRawTransaction {#eth_sendrawtransaction} + +为已签名的交易创建新的消息调用交易或合约创建。 + +**参数** + +1. `DATA`,签名的交易数据。 + +```js +params: [ + "0xd46e8dd67c5d32be8d46e8dd67c5d32be8058bb8eb970870f072445675058bb8eb970870f072445675", +] +``` + +**返回值** + +`DATA`,32 字节 - 交易哈希,如果交易尚不可用,则为零哈希。 + +当你创建合约时,交易被挖掘后,使用 [eth_getTransactionReceipt](#eth_gettransactionreceipt) 获取合约地址。 + +**示例** + +```js +// Request +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_sendRawTransaction","params":[{see above}],"id":1}' +// Result +{ + "id":1, + "jsonrpc": "2.0", + "result": "0xe670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d1527331" +} +``` + +### eth_call {#eth_call} + +立即执行新的消息调用,而不在区块链上创建交易。 + +**参数** + +1. `Object` - 交易调用对象 + +- `from`:`DATA`,20 字节 -(可选)发送交易的地址。 +- `to`:`DATA`,20 字节 - 将交易定向到的地址。 +- `gas`:`QUANTITY` -(可选)表示为交易执行提供的燃料的整数。 eth_call 消耗零燃料,但某些执行可能需要此参数。 +- `gasPrice`:`QUANTITY` -(可选)表示用于每个付费燃料的 gasPrice 的整数。 +- `value`:`QUANTITY` -(可选)表示与此交易一起发送的值的整数。 +- `data`:`DATA` - (可选)方法签名和编码参数的哈希。 有关详细信息,请参阅 [Solidity 文档中的以太坊合约应用程序二进制接口](https://docs.soliditylang.org/en/latest/abi-spec.html) + +2. `QUANTITY|TAG` - 整数区块号,或字符串`“latest”`、`“earliest”`或`“pending”`,参见[默认区块参数](/developers/docs/apis/json-rpc/#default-block-parameter) + +**返回值** + +`DATA` - 已执行合约的返回值。 + +**示例** + +```js +// Request +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_call","params":[{see above}],"id":1}' +// Result +{ + "id":1, + "jsonrpc": "2.0", + "result": "0x" +} +``` + +### eth_estimateGas {#eth_estimategas} + +生成并返回允许交易完成所需燃料数量的估算值。 交易不会被添加到区块链中。 请注意,出于各种原因,包括以太坊虚拟机机制和节点性能,估算值可能远远超过交易实际使用的燃料数量。 + +**参数** + +参见 [eth_call](#eth_call) 参数,期望所有属性都是可选的。 如果没有指定燃料限制,geth 将使用来自待处理区块的区块燃料限制作为上限。 因此,当所需燃料数量高于待处理区块的燃料限制时,返回的估算数量可能不足以执行调用/交易。 + +**返回值** + +`QUANTITY` - 使用的燃料数量。 + +**示例** + +```js +// Request +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_estimateGas","params":[{see above}],"id":1}' +// Result +{ + "id":1, + "jsonrpc": "2.0", + "result": "0x5208" // 21000 +} +``` + +### eth_getBlockByHash {#eth_getblockbyhash} + +根据哈希返回关于区块的信息。 + +**参数** + +1. `DATA`,32 字节 - 区块的哈希。 +2. `Boolean` - 如果为 `true` 则返回完整的交易对象,如果为 `false` 则仅返回交易的哈希。 + +```js +params: [ + "0xdc0818cf78f21a8e70579cb46a43643f78291264dda342ae31049421c82d21ae", + false, +] +``` + +**返回值** + +`Object` - 区块对象,或 `null`(当没有找到区块时): + +- `number`:`QUANTITY` - 区块编号。 当它是待处理区块时,则为 `null`。 +- `hash`:`DATA`,32 字节 - 区块的哈希。 当它是待处理区块时,则为 `null`。 +- `parentHash`:`DATA`,32 字节 - 父区块的哈希。 +- `nonce`:`DATA`,8 字节 - 已生成的工作量证明的哈希。 当它是待处理区块时,则为 `null`。 +- `sha3Uncles`:`DATA`,32 字节 - 区块中的叔块数据的 SHA3。 +- `logsBloom`:`DATA`,256 字节 - 区块日志的 bloom 过滤器。 当它是待处理区块时,则为 `null`。 +- `transactionsRoot`:`DATA`,32 字节 - 区块交易前缀树的根。 +- `stateRoot`:`DATA`,32 字节 - 区块最终状态前缀树的根。 +- `receiptsRoot`:`DATA`,32 字节 - 区块收据前缀树的根。 +- `miner`:`DATA`,20 字节 - 获得挖矿奖励的受益人地址。 +- `difficulty`:`QUANTITY` - 表示此区块难度的整数。 +- `totalDifficulty`:`QUANTITY` - 表示直到此区块为止链的总难度的整数。 +- `extraData`:`DATA` - 此区块的“额外数据”字段。 +- `size`:`QUANTITY` - 表示此区块大小的整数,以字节为单位。 +- `gasLimit`:`QUANTITY` - 此区块允许的最大燃料值。 +- `gasUsed`:`QUANTITY` - 此区块中所有交易使用的总燃料量。 +- `timestamp`:`QUANTITY` - 整理区块时的 unix 时间戳。 +- `transactions`:`Array` - 交易对象数组,或 32 字节交易哈希,取决于最后一个给定的参数。 +- `uncles`:`Array` - 叔块哈希数组。 + +**示例** + +```js +// Request +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getBlockByHash","params":["0xdc0818cf78f21a8e70579cb46a43643f78291264dda342ae31049421c82d21ae", false],"id":1}' +// Result +{ +{ +"jsonrpc": "2.0", +"id": 1, +"result": { + "difficulty": "0x4ea3f27bc", + "extraData": "0x476574682f4c5649562f76312e302e302f6c696e75782f676f312e342e32", + "gasLimit": "0x1388", + "gasUsed": "0x0", + "hash": "0xdc0818cf78f21a8e70579cb46a43643f78291264dda342ae31049421c82d21ae", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "miner": "0xbb7b8287f3f0a933474a79eae42cbca977791171", + "mixHash": "0x4fffe9ae21f1c9e15207b1f472d5bbdd68c9595d461666602f2be20daf5e7843", + "nonce": "0x689056015818adbe", + "number": "0x1b4", + "parentHash": "0xe99e022112df268087ea7eafaf4790497fd21dbeeb6bd7a1721df161a6657a54", + "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "sha3Uncles": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "size": "0x220", + "stateRoot": "0xddc8b0234c2e0cad087c8b389aa7ef01f7d79b2570bccb77ce48648aa61c904d", + "timestamp": "0x55ba467c", + "totalDifficulty": "0x78ed983323d", + "transactions": [ + ], + "transactionsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "uncles": [ + ] +} +} +``` + +### eth_getBlockByNumber {#eth_getblockbynumber} + +根据区块号返回关于区块的信息。 + +**参数** + +1. `QUANTITY|TAG` - 表示区块编号的整数,或字符串`“earliest”`、`“latest”`或`“pending”`,参见[默认区块参数](/developers/docs/apis/json-rpc/#default-block-parameter)。 +2. `Boolean` - 如果为 `true` 则返回完整的交易对象,如果为 `false` 则仅返回交易的哈希。 + +```js +params: [ + "0x1b4", // 436 + true, +] +``` + +**返回值** 参见 [eth_getBlockByHash](#eth_getblockbyhash) + +**示例** + +```js +// Request +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getBlockByNumber","params":["0x1b4", true],"id":1}' +``` + +结果参见 [eth_getBlockByHash](#eth_getblockbyhash) + +### eth_getTransactionByHash {#eth_gettransactionbyhash} + +根据交易哈希返回关于所请求交易的信息。 + +**参数** + +1. `DATA`,32 字节- 交易的哈希 + +```js +params: ["0x88df016429689c079f3b2f6ad39fa052532c56795b733da78a91ebe6a713944b"] +``` + +**返回值** + +`Object` - 交易对象,如果没有找到交易,则为 `null`: + +- `blockHash`:`DATA`,32 字节 - 此交易所在区块的哈希。 当它是待处理区块时,则为 `null`。 +- `blockNumber`:`QUANTITY` - 此交易所在的区块号。 当它是待处理区块时,则为 `null`。 +- `from`:`DATA`,20 字节 - 发送者的地址。 +- `gas`:`QUANTITY` - 发送者提供的燃料。 +- `gasPrice`:`QUANTITY` - 发送者提供的燃料价格,以 Wei 为单位。 +- `hash`:`DATA`,32 字节 - 交易的哈希。 +- `input`:`DATA` - 与交易一起发送的数据。 +- `nonce`:`QUANTITY` - 发送者在此交易之前进行的交易数量。 +- `to`:`DATA`,20 字节 - 接收者的地址。 当它是合约创建交易时,则为 `null`。 +- `transactionIndex`:`QUANTITY` - 表示区块中的交易索引位置的整数。 当它是待处理区块时,则为 `null`。 +- `value`:`QUANTITY` - 传输的价值,以 Wei 为单位。 +- `v`:`QUANTITY` - ECDSA 恢复 ID +- `r`:`QUANTITY` - ECDSA 签名 r +- `s`:`QUANTITY` - ECDSA 签名 s + +**示例** + +```js +// Request +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getTransactionByHash","params":["0x88df016429689c079f3b2f6ad39fa052532c56795b733da78a91ebe6a713944b"],"id":1}' +// Result +{ + "jsonrpc":"2.0", + "id":1, + "result":{ + "blockHash":"0x1d59ff54b1eb26b013ce3cb5fc9dab3705b415a67127a003c3e61eb445bb8df2", + "blockNumber":"0x5daf3b", // 6139707 + "from":"0xa7d9ddbe1f17865597fbd27ec712455208b6b76d", + "gas":"0xc350", // 50000 + "gasPrice":"0x4a817c800", // 20000000000 + "hash":"0x88df016429689c079f3b2f6ad39fa052532c56795b733da78a91ebe6a713944b", + "input":"0x68656c6c6f21", + "nonce":"0x15", // 21 + "to":"0xf02c1c8e6114b1dbe8937a39260b5b0a374432bb", + "transactionIndex":"0x41", // 65 + "value":"0xf3dbb76162000", // 4290000000000000 + "v":"0x25", // 37 + "r":"0x1b5e176d927f8e9ab405058b2d2457392da3e20f328b16ddabcebc33eaac5fea", + "s":"0x4ba69724e8f69de52f0125ad8b3c5c2cef33019bac3249e2c0a2192766d1721c" + } +} +``` + +### eth_getTransactionByBlockHashAndIndex {#eth_gettransactionbyblockhashandindex} + +根据区块哈希和交易索引位置返回关于交易的信息。 + +**参数** + +1. `DATA`,32 字节 - 区块的哈希。 +2. `QUANTITY` - 表示交易索引位置的整数。 + +```js +params: [ + "0xe670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d1527331", + "0x0", // 0 +] +``` + +**返回值** 参见 [eth_getTransactionByHash](#eth_gettransactionbyhash) + +**示例** + +```js +// Request +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getTransactionByBlockHashAndIndex","params":["0xc6ef2fc5426d6ad6fd9e2a26abeab0aa2411b7ab17f30a99d3cb96aed1d1055b", "0x0"],"id":1}' +``` + +结果参见 [eth_getTransactionByHash](#eth_gettransactionbyhash) + +### eth_getTransactionByBlockNumberAndIndex {#eth_gettransactionbyblocknumberandindex} + +根据区块编号和交易索引位置返回关于交易的信息。 + +**参数** + +1. `QUANTITY|TAG` - 区块编号,或字符串`“earliest”`、`“latest”`或`“pending”`,参见[默认区块参数](/developers/docs/apis/json-rpc/#default-block-parameter)。 +2. `QUANTITY` - 交易索引位置。 + +```js +params: [ + "0x29c", // 668 + "0x0", // 0 +] +``` + +**返回值** 参见 [eth_getTransactionByHash](#eth_gettransactionbyhash) + +**示例** + +```js +// Request +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getTransactionByBlockNumberAndIndex","params":["0x29c", "0x0"],"id":1}' +``` + +结果参见 [eth_getTransactionByHash](#eth_gettransactionbyhash) + +### eth_getTransactionReceipt {#eth_gettransactionreceipt} + +根据交易哈希返回交易的收据。 + +**注意**:收据不可用于待处理的交易。 + +**参数** + +1. `DATA`,32 字节- 交易的哈希 + +```js +params: ["0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238"] +``` + +**返回值** `Object` - 交易收据对象,如果没有找到收据,则为 `null`: + +- `transactionHash`:`DATA`,32 字节- 交易的哈希。 +- `transactionIndex`:`QUANTITY` - 表示区块中的交易索引位置的整数。 +- `blockHash`:`DATA`,32 字节 - 此交易所在区块的哈希。 +- `blockNumber`:`QUANTITY` - 此交易所在的区块号。 +- `from`:`DATA`,20 字节 - 发送者的地址。 +- `to`:`DATA`,20 字节 - 接收者的地址。 当它是合约创建交易时,则为 null。 +- `cumulativeGasUsed`:`QUANTITY` - 当在区块中执行此交易时使用的燃料总量。 +- `gasUsed`:`QUANTITY` - 仅此特定交易使用的燃料数量。 +- `contractAddress`:`DATA`,20 字节 - 如果交易是合约创建,则为创建的合约地址,否则为 `null`。 +- `logs`:`Array` - 此交易生成的日志对象数组。 +- `logsBloom`:`DATA`,256 字符 - 轻量客户端用于快速检索相关日志的 bloom 过滤器。 它还返回*以下两者之一*: +- `root`:`DATA` 32 字节的交易后 stateroot(拜占庭之前) +- `status`:`QUANTITY` - `1`(成功)或 `0`(失败) + +**示例** + +```js +// Request +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getTransactionReceipt","params":["0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238"],"id":1}' +// Result +{ +"id":1, +"jsonrpc":"2.0", +"result": { + transactionHash: '0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238', + transactionIndex: '0x1', // 1 + blockNumber: '0xb', // 11 + blockHash: '0xc6ef2fc5426d6ad6fd9e2a26abeab0aa2411b7ab17f30a99d3cb96aed1d1055b', + cumulativeGasUsed: '0x33bc', // 13244 + gasUsed: '0x4dc', // 1244 + contractAddress: '0xb60e8dd61c5d32be8058bb8eb970870f07233155', // or null, if none was created + logs: [{ + // logs as returned by getFilterLogs, etc. + }, ...], + logsBloom: "0x00...0", // 256 byte bloom filter + status: '0x1' + } +} +``` + +### eth_getUncleByBlockHashAndIndex {#eth_getunclebyblockhashandindex} + +根据哈希和叔块索引位置返回关于区块的叔块的信息。 + +**参数** + +1. `DATA`,32 字节 - 区块的哈希。 +2. `QUANTITY` - 叔块的索引位置。 + +```js +params: [ + "0xc6ef2fc5426d6ad6fd9e2a26abeab0aa2411b7ab17f30a99d3cb96aed1d1055b", + "0x0", // 0 +] +``` + +**返回值** 参见 [eth_getBlockByHash](#eth_getblockbyhash) + +**示例** + +```js +// Request +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getUncleByBlockHashAndIndex","params":["0xc6ef2fc5426d6ad6fd9e2a26abeab0aa2411b7ab17f30a99d3cb96aed1d1055b", "0x0"],"id":1}' +``` + +结果参见 [eth_getBlockByHash](#eth_getblockbyhash) + +**注意**:叔区不包含个人交易。 + +### eth_getUncleByBlockNumberAndIndex {#eth_getunclebyblocknumberandindex} + +根据编号和叔块索引位置返回关于区块的叔块的信息。 + +**参数** + +1. `QUANTITY|TAG` - 区块编号,或字符串`“earliest”`、`“latest”`或`“pending”`,参见[默认区块参数](/developers/docs/apis/json-rpc/#default-block-parameter)。 +2. `QUANTITY` - 叔块的索引位置。 + +```js +params: [ + "0x29c", // 668 + "0x0", // 0 +] +``` + +**返回值** 参见 [eth_getBlockByHash](#eth_getblockbyhash) + +**注意**:叔区不包含个人交易。 + +**示例** + +```js +// Request +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getUncleByBlockNumberAndIndex","params":["0x29c", "0x0"],"id":1}' +``` + +结果参见 [eth_getBlockByHash](#eth_getblockbyhash) + +### eth_getCompilers {#eth_getcompilers} + +返回客户端中的可用编译器列表。 + +**参数** 无 + +**返回值** `Array` - 可用编译器的数组。 + +**示例** + +```js +// Request +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getCompilers","params":[],"id":1}' +// Result +{ + "id":1, + "jsonrpc": "2.0", + "result": ["solidity", "lll", "serpent"] +} +``` + +### eth_compileSolidity {#eth_compile_solidity} + +返回已编译的 solidity 代码。 + +**参数** + +1. `String` - 源代码。 + +```js +params: [ + "contract test { function multiply(uint a) returns(uint d) { return a * 7; } }", +] +``` + +**返回值** `DATA` - 已编译的源代码。 + +**示例** + +```js +// Request +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_compileSolidity","params":["contract test { function multiply(uint a) returns(uint d) { return a * 7; } }"],"id":1}' +// Result +{ + "id":1, + "jsonrpc": "2.0", + "result": { + "code": "0x605880600c6000396000f3006000357c010000000000000000000000000000000000000000000000000000000090048063c6888fa114602e57005b603d6004803590602001506047565b8060005260206000f35b60006007820290506053565b91905056", + "info": { + "source": "contract test {\n function multiply(uint a) constant returns(uint d) {\n return a * 7;\n }\n}\n", + "language": "Solidity", + "languageVersion": "0", + "compilerVersion": "0.9.19", + "abiDefinition": [ + { + "constant": true, + "inputs": [ + { + "name": "a", + "type": "uint256" + } + ], + "name": "multiply", + "outputs": [ + { + "name": "d", + "type": "uint256" + } + ], + "type": "function" + } + ], + "userDoc": { + "methods": {} + }, + "developerDoc": { + "methods": {} + } + } +} +``` + +### eth_compileLLL {#eth_compileLLL} + +返回已编译的 LLL 代码。 + +**参数** + +1. `String` - 源代码。 + +```js +params: ["(returnlll (suicide (caller)))"] +``` + +**返回值** `DATA` - 已编译的源代码。 + +**示例** + +```js +// Request +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_compileLLL","params":["(returnlll (suicide (caller)))"],"id":1}' +// Result +{ + "id":1, + "jsonrpc": "2.0", + "result": "0x603880600c6000396000f3006001600060e060020a600035048063c6888fa114601857005b6021600435602b565b8060005260206000f35b600081600702905091905056" // the compiled source code +} +``` + +### eth_compileSerpent {#eth_compileserpent} + +返回已编译的 serpent 代码。 + +**参数** + +1. `String` - 源代码。 + +```js +params: ["/* some serpent */"] +``` + +**返回值** `DATA` - 已编译的源代码。 + +**示例** + +```js +// Request +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_compileSerpent","params":["/* some serpent */"],"id":1}' +// Result +{ + "id":1, + "jsonrpc": "2.0", + "result": "0x603880600c6000396000f3006001600060e060020a600035048063c6888fa114601857005b6021600435602b565b8060005260206000f35b600081600702905091905056" // the compiled source code +} +``` + +### eth_newFilter {#eth_newfilter} + +基于过滤器选项创建一个过滤器对象,以在状态更改(日志)时发出通知。 要检查状态是否已更改,请调用 [eth_getFilterChanges](#eth_getfilterchanges)。 + +**关于指定主题过滤器的说明:** 主题是顺序相关的。 日志中包含主题 [A, B] 的交易将被以下主题过滤器匹配: + +- `[]`“任意值” +- `[A]`“第一个位置为 A(之后的位置为任意值)” +- `[null, B]`“第一个位置为任意值,且第二个位置为 B(之后的位置为任意值)” +- `[A, B]`“第一个位置为 A,且第二个位置为 B(之后的位置为任意值)” +- `[[A, B], [A, B]]`“第一个位置为 (A OR B),且第二个位置为 (A OR B)(之后的位置为任意值)” +- **参数** + +1. `Object` - 过滤器选项: + +- `fromBlock`:`QUANTITY|TAG` -(可选,默认值:`“latest”`)整数区块号,`“latest”`(对于最后开采的区块),或`“pending”`、`“earliest”`(对于尚未开采的交易)。 +- `toBlock`:`QUANTITY|TAG` -(可选,默认值:`“latest”`)整数区块号,`“latest”`(对于最后开采的区块),或`“pending”`、`“earliest”`(对于尚未开采的交易)。 +- `address`:`DATA|Array`,20 字节 -(可选)日志起源的合同地址或地址列表。 +- `topics`:`Array of DATA` -(可选)32 字节 `DATA` 主题数组。 主题是顺序相关的。 每个主题也可以是带有“或”选项的 DATA 数组。 + +```js +params: [ + { + fromBlock: "0x1", + toBlock: "0x2", + address: "0x8888f1f195afa192cfee860698584c030f4c9db1", + topics: [ + "0x000000000000000000000000a94f5374fce5edbc8e2a8697c15331677e6ebf0b", + null, + [ + "0x000000000000000000000000a94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "0x0000000000000000000000000aff3454fce5edbc8cca8697c15331677e6ebccc", + ], + ], + }, +] +``` + +**返回值** `QUANTITY` - 过滤器 id。 + +**示例** + +```js +// Request +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_newFilter","params":[{"topics":["0x12341234"]}],"id":73}' +// Result +{ + "id":1, + "jsonrpc": "2.0", + "result": "0x1" // 1 +} +``` + +### eth_newBlockFilter {#eth_newblockfilter} + +在节点中创建一个过滤器,以在新区块到达时通知。 要检查状态是否已更改,请调用 [eth_getFilterChanges](#eth_getfilterchanges)。 + +**参数** 无 + +**返回值** `QUANTITY` - 过滤器 ID。 + +**示例** + +```js +// Request +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_newBlockFilter","params":[],"id":73}' +// Result +{ + "id":1, + "jsonrpc": "2.0", + "result": "0x1" // 1 +} +``` + +### eth_newPendingTransactionFilter {#eth_newpendingtransactionfilter} + +在节点中创建一个过滤器,以在新的待处理交易到达时发出通知。 要检查状态是否已更改,请调用 [eth_getFilterChanges](#eth_getfilterchanges)。 + +**参数** 无 + +**返回值** `QUANTITY` - 过滤器 ID。 + +**示例** + +```js +// Request +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_newPendingTransactionFilter","params":[],"id":73}' +// Result +{ + "id":1, + "jsonrpc": "2.0", + "result": "0x1" // 1 +} +``` + +### eth_uninstallFilter {#eth_uninstallfilter} + +卸载具有给定 ID 的过滤器。 当不再需要监控时应始终调用。 此外,过滤器在一段时间内未使用 [eth_getFilterChanges](#eth_getfilterchanges) 请求时便会超时。 + +**参数** + +1. `QUANTITY` - 过滤器 ID。 + +```js +params: [ + "0xb", // 11 +] +``` + +**返回值** `Boolean` - 如果成功卸载过滤器,则为 `true`,否则为 `false`。 + +**示例** + +```js +// Request +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_uninstallFilter","params":["0xb"],"id":73}' +// Result +{ + "id":1, + "jsonrpc": "2.0", + "result": true +} +``` + +### eth_getFilterChanges {#eth_getfilterchanges} + +过滤器的轮询方法,它会返回自上次轮询以来发生的日志数组。 + +**参数** + +1. `QUANTITY` - 过滤器 ID。 + +```js +params: [ + "0x16", // 22 +] +``` + +**返回值** `Array` - 日志对象数组,如果自上次轮询以来没有任何变化,则为空数组。 + +- 对于使用 `eth_newBlockFilter` 创建的过滤器,返回值是区块哈希(`DATA`,32 字节),例如 `["0x3454645634534..."]`。 +- 对于使用 `eth_newPendingTransactionFilter` 创建的过滤器,返回值是交易哈希(`DATA`,32 字节),例如 `["0x6345343454645..."]`。 +- 对于使用 `eth_newFilter` 创建的过滤器,日志是具有以下参数的对象: + - `removed`:`TAG` - 当日志被删除时,由于链重组,为 `true`。 当它是有效日志时,则为 `false`。 + - `logIndex`:`QUANTITY` - 表示日志在区块中的索引位置的整数。 当它是待处理日志时,则为 `null`。 + - `transactionIndex`:`QUANTITY` - 表示从中创建日志的交易索引位置的整数。 当它是待处理日志时,则为 `null`。 + - `transactionHash`:`DATA`,32 字节 - 从中创建此日志的交易的哈希。 当它是待处理日志时,则为 `null`。 + - `blockHash`: `DATA`,32 字节 - 此日志所在区块的哈希。 当它是待处理区块时,则为 `null`。 当它是待处理日志时,则为 `null`。 + - `blockNumber`:`QUANTITY` - 该日志所在的区块编号。 当它是待处理区块时,则为 `null`。 当它是待处理日志时,则为 `null`。 + - `address`:`DATA`,20 字节 - 此日志的来源地址。 + - `data`:`DATA` - 包含日志的一个或多个 32 字节非索引参数。 + - `topics`:`Array of DATA` - 0 到 4 个 32 字节 `DATA` 索引日志参数的数组。 (在 _solidity_ 中:第一个主题是事件签名的*哈希*(例如 `Deposit (address,bytes32,uint256)`),除非您使用 `anonymous` 限定符声明了该事件)。 +- **示例** + +```js +// Request +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getFilterChanges","params":["0x16"],"id":73}' +// Result +{ + "id":1, + "jsonrpc":"2.0", + "result": [{ + "logIndex": "0x1", // 1 + "blockNumber":"0x1b4", // 436 + "blockHash": "0x8216c5785ac562ff41e2dcfdf5785ac562ff41e2dcfdf829c5a142f1fccd7d", + "transactionHash": "0xdf829c5a142f1fccd7d8216c5785ac562ff41e2dcfdf5785ac562ff41e2dcf", + "transactionIndex": "0x0", // 0 + "address": "0x16c5785ac562ff41e2dcfdf829c5a142f1fccd7d", + "data":"0x0000000000000000000000000000000000000000000000000000000000000000", + "topics": ["0x59ebeb90bc63057b6515673c3ecf9438e5058bca0f92585014eced636878c9a5"] + },{ + ... + }] +} +``` + +### eth_getFilterLogs {#eth_getfilterlogs} + +返回与给定 id 的过滤器匹配的所有日志的数组。 + +**参数** + +1. `QUANTITY` - 过滤器 ID。 + +```js +params: [ + "0x16", // 22 +] +``` + +**返回值** 参见 [eth_getFilterChanges](#eth_getfilterchanges) + +**示例** + +```js +// Request +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getFilterLogs","params":["0x16"],"id":74}' +``` + +结果参见 [eth_getFilterChanges](#eth_getfilterchanges) + +### eth_getLogs {#eth_getlogs} + +返回与给定过滤器对象匹配的所有日志的数组。 + +**参数** + +1. `Object` - 过滤器选项: + +- `fromBlock`:`QUANTITY|TAG` -(可选,默认值:`“latest”`)整数区块号,`“latest”`(对于最后开采的区块),或`“pending”`、`“earliest”`(对于尚未开采的交易)。 +- `toBlock`:`QUANTITY|TAG` -(可选,默认值:`“latest”`)整数区块号,`“latest”`(对于最后开采的区块),或`“pending”`、`“earliest”`(对于尚未开采的交易)。 +- `address`:`DATA|Array`,20 字节 -(可选)日志起源的合同地址或地址列表。 +- `topics`:`Array of DATA` -(可选)32 字节 `DATA` 主题数组。 主题是顺序相关的。 每个主题也可以是带有“或”选项的 DATA 数组。 +- `blockhash`:`DATA`,32 字节 -(可选,**future**)添加 EIP-234 后,`blockHash` 将是一个新的过滤器选项,它会将返回的日志限制为具有 32 字节哈希 `blockHash` 的单一区块。 使用 `blockHash` 相当于 `fromBlock` = `toBlock` = 具有哈希`blockHash` 的区块号。 如果 `blockHash` 出现在过滤条件中,则 `fromBlock` 和 `toBlock` 都不允许。 + +```js +params: [ + { + topics: [ + "0x000000000000000000000000a94f5374fce5edbc8e2a8697c15331677e6ebf0b", + ], + }, +] +``` + +**返回值** 参见 [eth_getFilterChanges](#eth_getfilterchanges) + +**示例** + +```js +// Request +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getLogs","params":[{"topics":["0x000000000000000000000000a94f5374fce5edbc8e2a8697c15331677e6ebf0b"]}],"id":74}' +``` + +结果参见 [eth_getFilterChanges](#eth_getfilterchanges) + +### eth_getWork {#eth_getwork} + +返回当前区块的哈希、种子哈希和要满足的边界条件(“目标”)。 + +**参数** 无 + +**返回** `Array` - 具有以下属性的数组: + +1. `DATA`,32 字符 - 当前区块头 pow-hash +2. `DATA`,32 字节 - 用于有向无环图的种子哈希。 +3. `DATA`,32 字节 - 边界条件(“目标”),2^256 / 难度。 + +**示例** + +```js +// Request +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getWork","params":[],"id":73}' +// Result +{ + "id":1, + "jsonrpc":"2.0", + "result": [ + "0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef", + "0x5EED00000000000000000000000000005EED0000000000000000000000000000", + "0xd1ff1c01710000000000000000000000d1ff1c01710000000000000000000000" + ] +} +``` + +### eth_submitWork {#eth_submitwork} + +用于提交工作量证明解。 + +**参数** + +1. `DATA`,8 字节 - 找到的随机数(64 位) +2. `DATA`,32 字节 - 区块头的 pow-hash(256 位) +3. `DATA`,32 字节 - 混合摘要(256 位) + +```js +params: [ + "0x0000000000000001", + "0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef", + "0xD1FE5700000000000000000000000000D1FE5700000000000000000000000000", +] +``` + +**返回值** `Boolean` - 如果提供的解有效,则返回 `true`,否则返回 `false`。 + +**示例** + +```js +// Request +curl -X POST --data '{"jsonrpc":"2.0", "method":"eth_submitWork", "params":["0x0000000000000001", "0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef", "0xD1GE5700000000000000000000000000D1GE5700000000000000000000000000"],"id":73}' +// Result +{ + "id":73, + "jsonrpc":"2.0", + "result": true +} +``` + +### eth_submitHashrate {#eth_submithashrate} + +用于提交挖矿哈希率。 + +**参数** + +1. `Hashrate`,哈希率的十六进制字符串表示(32 字节) +2. `ID`,字符串 - 一个随机的十六进制(32 字节)ID,用于标识客户端 + +```js +params: [ + "0x0000000000000000000000000000000000000000000000000000000000500000", + "0x59daa26581d0acd1fce254fb7e85952f4c09d0915afd33d3886cd914bc7d283c", +] +``` + +**返回值** `Boolean` - 如果提交成功则返回 `true`,否则返回 `false`。 + +**示例** + +```js +// Request +curl -X POST --data '{"jsonrpc":"2.0", "method":"eth_submitHashrate", "params":["0x0000000000000000000000000000000000000000000000000000000000500000", "0x59daa26581d0acd1fce254fb7e85952f4c09d0915afd33d3886cd914bc7d283c"],"id":73}' +// Result +{ + "id":73, + "jsonrpc":"2.0", + "result": true +} +``` + +### db_putString (deprecated) {#db_putstring} + +在本地数据库中存储一个字符串。 + +**注意**:此方法已弃用。 + +**参数** + +1. `String` - 数据库名称。 +2. `String` - 键名。 +3. `String` - 要存储的字符串。 + +```js +params: ["testDB", "myKey", "myString"] +``` + +**返回值** `Boolean` - 如果值已存储,则返回 `true`,否则返回 `false`。 + +**示例** + +```js +// Request +curl -X POST --data '{"jsonrpc":"2.0","method":"db_putString","params":["testDB","myKey","myString"],"id":73}' +// Result +{ + "id":1, + "jsonrpc":"2.0", + "result": true +} +``` + +### db_getString (deprecated) {#db_getstring} + +从本地数据库返回字符串。 **注意**:此方法已弃用。 + +**参数** + +1. `String` - 数据库名称。 +2. `String` - 键名。 + +```js +params: ["testDB", "myKey"] +``` + +**返回值** `String` - 先前存储的字符串。 + +**示例** + +```js +// Request +curl -X POST --data '{"jsonrpc":"2.0","method":"db_getString","params":["testDB","myKey"],"id":73}' +// Result +{ + "id":1, + "jsonrpc":"2.0", + "result": "myString" +} +``` + +### db_putHex (deprecated) {#db_puthex} + +在本地数据库中存储二进制数据。 **注意**:此方法已弃用。 + +**参数** + +1. `String` - 数据库名称。 +2. `String` - 键名。 +3. `DATA` - 要存储的数据。 + +```js +params: ["testDB", "myKey", "0x68656c6c6f20776f726c64"] +``` + +**返回值** `Boolean` - 如果值已存储,则返回 `true`,否则返回 `false`。 + +**示例** + +```js +// Request +curl -X POST --data '{"jsonrpc":"2.0","method":"db_putHex","params":["testDB","myKey","0x68656c6c6f20776f726c64"],"id":73}' +// Result +{ + "id":1, + "jsonrpc":"2.0", + "result": true +} +``` + +### db_getHex (deprecated) {#db_gethex} + +从本地数据库返回二进制数据。 **注意**:此方法已弃用。 + +**参数** + +1. `String` - 数据库名称。 +2. `String` - 键名。 + +```js +params: ["testDB", "myKey"] +``` + +**返回值** `DATA` - 先前存储的数据。 + +**示例** + +```js +// Request +curl -X POST --data '{"jsonrpc":"2.0","method":"db_getHex","params":["testDB","myKey"],"id":73}' +// Result +{ + "id":1, + "jsonrpc":"2.0", + "result": "0x68656c6c6f20776f726c64" +} +``` + +### shh_version (deprecated) {#shh_post} + +返回当前的 whisper 协议版本。 + +**注意**:此方法已弃用。 + +**参数** 无 + +**返回值** `String` - 当前的 whisper 协议版本 + +**示例** + +```js +// Request +curl -X POST --data '{"jsonrpc":"2.0","method":"shh_version","params":[],"id":67}' +// Result +{ + "id":67, + "jsonrpc": "2.0", + "result": "2" +} +``` + +### shh_post (deprecated) {#shh_version} + +发送 whisper 消息。 + +**注意**:此方法已弃用。 + +**参数** + +1. `Object` - whisper post 对象: + +- `from`:`DATA`,60 字节 -(可选)发送者的身份。 +- `to`:`DATA`,60 字节 -(可选)接收者的身份。 当存在消息时,whisper 将加密消息,以便只有接收者可以将其解密。 +- `topics`:`Array of DATA` - `DATA` 主题数组,供接收者识别消息。 +- `payload`:`DATA` - 消息的载荷。 +- `priority`:`QUANTITY` - 表示 ... (?) 范围内的优先级的整数。 +- `ttl`:`QUANTITY` - 表示生存时间的整数,以秒为单位。 + +```js +params: [ + { + from: "0x04f96a5e25610293e42a73908e93ccc8c4d4dc0edcfa9fa872f50cb214e08ebf61a03e245533f97284d442460f2998cd41858798ddfd4d661997d3940272b717b1", + to: "0x3e245533f97284d442460f2998cd41858798ddf04f96a5e25610293e42a73908e93ccc8c4d4dc0edcfa9fa872f50cb214e08ebf61a0d4d661997d3940272b717b1", + topics: [ + "0x776869737065722d636861742d636c69656e74", + "0x4d5a695276454c39425154466b61693532", + ], + payload: "0x7b2274797065223a226d6", + priority: "0x64", + ttl: "0x64", + }, +] +``` + +**返回值** `Boolean` - 如果消息已发送,则返回 `true`,否则返回 `false`。 + +**示例** + +```js +// Request +curl -X POST --data '{"jsonrpc":"2.0","method":"shh_post","params":[{"from":"0xc931d93e97ab07fe42d923478ba2465f2..","topics": ["0x68656c6c6f20776f726c64"],"payload":"0x68656c6c6f20776f726c64","ttl":0x64,"priority":0x64}],"id":73}' +// Result +{ + "id":1, + "jsonrpc":"2.0", + "result": true +} +``` + +### shh_newIdentity (deprecated){#shh_newidentity} + +在客户端中创建新的 whisper 身份。 + +**注意**:此方法已弃用。 + +**参数** 无 + +**返回值** `DATA`,60 字节 - 新身份的地址。 + +**示例** + +```js +// Request +curl -X POST --data '{"jsonrpc":"2.0","method":"shh_newIdentity","params":[],"id":73}' +// Result +{ + "id":1, + "jsonrpc": "2.0", + "result": "0xc931d93e97ab07fe42d923478ba2465f283f440fd6cabea4dd7a2c807108f651b7135d1d6ca9007d5b68aa497e4619ac10aa3b27726e1863c1fd9b570d99bbaf" +} +``` + +### shh_hasIdentity (deprecated){#shh_hasidentity} + +检查客户端是否持有给定身份的私钥。 + +**注意**:此方法已弃用。 + +**参数** + +1. `DATA`,60 字节 - 要检查的身份地址。 + +```js +params: [ + "0x04f96a5e25610293e42a73908e93ccc8c4d4dc0edcfa9fa872f50cb214e08ebf61a03e245533f97284d442460f2998cd41858798ddfd4d661997d3940272b717b1", +] +``` + +**返回值** `Boolean` - 如果客户端持有该身份的私钥,则返回 `true`,否则返回 `false`。 + +**示例** + +```js +// Request +curl -X POST --data '{"jsonrpc":"2.0","method":"shh_hasIdentity","params":["0x04f96a5e25610293e42a73908e93ccc8c4d4dc0edcfa9fa872f50cb214e08ebf61a03e245533f97284d442460f2998cd41858798ddfd4d661997d3940272b717b1"],"id":73}' +// Result +{ + "id":1, + "jsonrpc": "2.0", + "result": true +} +``` + +### shh_newGroup (deprecated){#shh_newgroup} + +**注意**:此方法已弃用。 + +**参数** 无 + +**返回值** `DATA`,60 字节 - 新组的地址。 (?) + +**示例** + +```js +// Request +curl -X POST --data '{"jsonrpc":"2.0","method":"shh_newGroup","params":[],"id":73}' +// Result +{ + "id":1, + "jsonrpc": "2.0", + "result": "0xc65f283f440fd6cabea4dd7a2c807108f651b7135d1d6ca90931d93e97ab07fe42d923478ba2407d5b68aa497e4619ac10aa3b27726e1863c1fd9b570d99bbaf" +} +``` + +### shh_addToGroup (deprecated){#shh_addtogroup} + +**注意**:此方法已弃用。 + +**参数** + +1. `DATA`,60 字节 - 将要添加到组 (?) 的身份地址。 + +```js +params: [ + "0x04f96a5e25610293e42a73908e93ccc8c4d4dc0edcfa9fa872f50cb214e08ebf61a03e245533f97284d442460f2998cd41858798ddfd4d661997d3940272b717b1", +] +``` + +**返回值** `Boolean` - 如果身份已成功添加到组,则返回 `true`,否则返回 `false` (?)。 + +**示例** + +```js +// Request +curl -X POST --data '{"jsonrpc":"2.0","method":"shh_addToGroup","params":["0x04f96a5e25610293e42a73908e93ccc8c4d4dc0edcfa9fa872f50cb214e08ebf61a03e245533f97284d442460f2998cd41858798ddfd4d661997d3940272b717b1"],"id":73}' +// Result +{ + "id":1, + "jsonrpc": "2.0", + "result": true +} +``` + +### shh_newFilter (deprecated){#shh_newfilter} + +创建过滤器以通知客户端何时收到与过滤器选项匹配的 whisper 消息。 **注意**:此方法已弃用。 + +**参数** + +1. `Object` - 过滤器选项: + +- `to`:`DATA`,60 字节 -(可选)接收者的身份。 _如果客户端持有此身份的私钥,它将尝试解密任何传入的消息。_ +- `topics`: `Array of DATA` - Array of `DATA` topics which the incoming message's topics should match. You can use the following combinations: + - `[A, B] = A && B` + - `[A, [B, C]] = A && (B || C)` + - `[null, A, B] = ANYTHING && A && B` `null` 用作通配符 + - + +```js +params: [ + { + topics: ["0x12341234bf4b564f"], + to: "0x04f96a5e25610293e42a73908e93ccc8c4d4dc0edcfa9fa872f50cb214e08ebf61a03e245533f97284d442460f2998cd41858798ddfd4d661997d3940272b717b1", + }, +] +``` + +**返回值** `QUANTITY` - 新创建的过滤器。 + +**示例** + +```js +// Request +curl -X POST --data '{"jsonrpc":"2.0","method":"shh_newFilter","params":[{"topics": ['0x12341234bf4b564f'],"to": "0x2341234bf4b2341234bf4b564f..."}],"id":73}' +// Result +{ + "id":1, + "jsonrpc":"2.0", + "result": "0x7" // 7 +} +``` + +### shh_uninstallFilter (deprecated){#shh_uninstallfilter} + +卸载具有给定 id 的过滤器。 当不再需要监控时应始终调用。 此外,过滤器在一段时间内未使用 [shh_getFilterChanges](#shh_getfilterchanges) 请求时会超时。 **注意**:此方法已弃用。 + +**参数** + +1. `QUANTITY` - 过滤器 ID。 + +```js +params: [ + "0x7", // 7 +] +``` + +**返回值** `Boolean` - 如果成功卸载过滤器,则为 `true`,否则为 `false`。 + +**示例** + +```js +// Request +curl -X POST --data '{"jsonrpc":"2.0","method":"shh_uninstallFilter","params":["0x7"],"id":73}' +// Result +{ + "id":1, + "jsonrpc":"2.0", + "result": true +} +``` + +### shh_getFilterChanges (deprecated){#shh_getfilterchanges} + +Whisper 过滤器的轮询方法。 返回自上次调用此方法以来的新消息。 **注意**:调用 [shh_getMessages](#shh_getmessages) 方法将重置此方法的缓冲区,这样您就不会收到重复的消息。 **注意**:此方法已弃用。 + +**参数** + +1. `QUANTITY` - 过滤器 ID。 + +```js +params: [ + "0x7", // 7 +] +``` + +**返回值** `Array` - 自上次轮询以来收到的消息数组: + +- `hash`:`DATA`,32 字节(?) - 消息的哈希。 +- `from`:`DATA`,60 字节 - 如果指定了发送者,则为消息的发送者。 +- `to`:`DATA`,60 字节- 如果指定了接收者,则为消息的接收者。 +- `expiry`:`QUANTITY` - 表示此消息应到期的时间(以秒为单位)的整数 (?)。 +- `ttl`:`QUANTITY` - 表示消息应在系统中浮动的时间(以秒为单位)的整数 (?)。 +- `sent`:`QUANTITY` - 表示发送消息时的 unix 时间戳的整数。 +- `topics`:`Array of DATA` - 消息中包含的 `DATA` 主题数组。 +- `payload`:`DATA` - 消息的载荷。 +- `workProved`:`QUANTITY` - 表示发送此消息之前所需工作的整数 (?)。 + +**示例** + +```js +// Request +curl -X POST --data '{"jsonrpc":"2.0","method":"shh_getFilterChanges","params":["0x7"],"id":73}' +// Result +{ + "id":1, + "jsonrpc":"2.0", + "result": [{ + "hash": "0x33eb2da77bf3527e28f8bf493650b1879b08c4f2a362beae4ba2f71bafcd91f9", + "from": "0x3ec052fc33..", + "to": "0x87gdf76g8d7fgdfg...", + "expiry": "0x54caa50a", // 1422566666 + "sent": "0x54ca9ea2", // 1422565026 + "ttl": "0x64", // 100 + "topics": ["0x6578616d"], + "payload": "0x7b2274797065223a226d657373616765222c2263686...", + "workProved": "0x0" + }] +} +``` + +### shh_getMessages (deprecated) {#shh_getmessages} + +获取与过滤器匹配的所有消息。 与 `shh_getFilterChanges` 不同,它返回所有消息。 + +**注意**:此方法已弃用。 + +**参数** + +1. `QUANTITY` - 过滤器 ID。 + +```js +params: [ + "0x7", // 7 +] +``` + +**返回值** 参见 [shh_getFilterChanges](#shh_getfilterchanges) + +**示例** + +```js +// Request +curl -X POST --data '{"jsonrpc":"2.0","method":"shh_getMessages","params":["0x7" +],"id":73}' +``` + +结果参见 [shh_getFilterChanges](#shh_getfilterchanges) + +## 使用示例 {#usage-example} + +### 使用 JSON_RPC 部署合约 {#deploying-contract} + +本节包含如何仅使用远程过程调用接口部署合约的演示。 部署合约的其他途径可以消除这种复杂性 — 例如,使用在远程过程调用接口之上构建的库,如 [web3.js](https://web3js.readthedocs.io/) 和 [web3.py](https://github.com/ethereum/web3.py)。 这些抽象通常更容易理解且不易出错,但了解幕后发生的操作仍然很有帮助。 + +以下是一个名为 `Multiply7` 的简单智能合约,它将使用 JSON-RPC 接口部署到以太坊节点。 本教程假设读者已经在运行 Geth 节点。 [此处](/developers/docs/nodes-and-clients/run-a-node)提供了有关节点和客户端的更多信息。 请参阅单独的[客户端](/developers/docs/nodes-and-clients/)文档,了解如何为非 Geth 客户端启动超文本传输协议 JSON-RPC。 大多数客户端默认在 `localhost:8545` 上提供服务。 + +```javascript +contract Multiply7 { + event Print(uint); + function multiply(uint input) returns (uint) { + Print(input * 7); + return input * 7; + } +} +``` + +首先要做的是确保启用了超文本传输协议远程过程调用接口。 这意味着我们在启动时为 Geth 提供 `--http` 标志。 在此示例中,我们使用私有开发链上的 Geth 节点。 使用这种方法,我们在真实网络上不需要以太币。 + +```bash + +geth --http --dev --mine --miner.threads 1 --unlock 0 console 2>>geth.log + +``` + +这将在 `http://localhost:8545` 上启动超文本传输协议远程过程调用接口。 + +我们可以通过使用 [curl](https://curl.haxx.se/download.html) 检索 Coinbase 地址和余额来验证接口是否正在运行。 请注意,这些示例中的数据在您的本地节点上会有所不同。 如果你想尝试这些命令,请将第二个 curl 请求中的请求参数替换为第一个 curl 请求返回的结果。 + +```bash +curl --data '{"jsonrpc":"2.0","method":"eth_coinbase", "id":1}' -H "Content-Type: application/json" localhost:8545 +{"id":1,"jsonrpc":"2.0","result":["0x9b1d35635cc34752ca54713bb99d38614f63c955"]} + +curl --data '{"jsonrpc":"2.0","method":"eth_getBalance", "params": ["0x9b1d35635cc34752ca54713bb99d38614f63c955", "latest"], "id":2}' -H "Content-Type: application/json" localhost:8545 +{"id":2,"jsonrpc":"2.0","result":"0x1639e49bba16280000"} +``` + +因为数字是十六进制编码的,所以余额以十六进制字符串返回(以 wei 为单位)。 如果我们想要获得数字形式的以太币余额,我们可以使用 Geth 控制台中的 web3。 + +```javascript +web3.fromWei("0x1639e49bba16280000", "ether") +// "410" +``` + +现在我们的私有开发链上有一些以太币,我们可以部署合约了。 第一步是将 Multiply7 合约编译为可以发送到以太坊虚拟机的字节码。 要安装 Solidity 编译器 solc,请遵循 [Solidity 文档](https://docs.soliditylang.org/en/latest/installing-solidity.html)。 (您可能希望使用较旧的 `solc` 版本来匹配[在我们的示例中使用的编译器版本](https://github.com/ethereum/solidity/releases/tag/v0.4.20))。 + +下一步是将 Multiply7 合约编译为可以发送到以太坊虚拟机的字节码。 + +```bash +echo 'pragma solidity ^0.4.16; contract Multiply7 { event Print(uint); function multiply(uint input) public returns (uint) { Print(input * 7); return input * 7; } }' | solc --bin + +======= :Multiply7 ======= +Binary: +6060604052341561000f57600080fd5b60eb8061001d6000396000f300606060405260043610603f576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063c6888fa1146044575b600080fd5b3415604e57600080fd5b606260048080359060200190919050506078565b6040518082815260200191505060405180910390f35b60007f24abdb5865df5079dcc5ac590ff6f01d5c16edbc5fab4e195d9febd1114503da600783026040518082815260200191505060405180910390a16007820290509190505600a165627a7a7230582040383f19d9f65246752244189b02f56e8d0980ed44e7a56c0b200458caad20bb0029 +``` + +现在我们有了编译后的代码,我们需要确定部署它需要花费多少燃料。 远程过程调用接口有一个 `eth_estimateGas` 方法,可以给我们一个估计值。 + +```bash +curl --data '{"jsonrpc":"2.0","method": "eth_estimateGas", "params": [{"from": "0x9b1d35635cc34752ca54713bb99d38614f63c955", "data": "0x6060604052341561000f57600080fd5b60eb8061001d6000396000f300606060405260043610603f576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063c6888fa1146044575b600080fd5b3415604e57600080fd5b606260048080359060200190919050506078565b6040518082815260200191505060405180910390f35b60007f24abdb5865df5079dcc5ac590ff6f01d5c16edbc5fab4e195d9febd1114503da600783026040518082815260200191505060405180910390a16007820290509190505600a165627a7a7230582040383f19d9f65246752244189b02f56e8d0980ed44e7a56c0b200458caad20bb0029"}], "id": 5}' -H "Content-Type: application/json" localhost:8545 +{"jsonrpc":"2.0","id":5,"result":"0x1c31e"} +``` + +最后部署合约。 + +```bash +curl --data '{"jsonrpc":"2.0","method": "eth_sendTransaction", "params": [{"from": "0x9b1d35635cc34752ca54713bb99d38614f63c955", "gas": "0x1c31e", "data": "0x6060604052341561000f57600080fd5b60eb8061001d6000396000f300606060405260043610603f576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063c6888fa1146044575b600080fd5b3415604e57600080fd5b606260048080359060200190919050506078565b6040518082815260200191505060405180910390f35b60007f24abdb5865df5079dcc5ac590ff6f01d5c16edbc5fab4e195d9febd1114503da600783026040518082815260200191505060405180910390a16007820290509190505600a165627a7a7230582040383f19d9f65246752244189b02f56e8d0980ed44e7a56c0b200458caad20bb0029"}], "id": 6}' -H "Content-Type: application/json" localhost:8545 +{"id":6,"jsonrpc":"2.0","result":"0xe1f3095770633ab2b18081658bad475439f6a08c902d0915903bafff06e6febf"} +``` + +交易被节点接受并返回交易哈希。 此哈希可用于跟踪交易。 下一步是确定我们的合约部署的地址。 每个已执行的交易都将创建一个收据。 此收据包含有关交易的各种信息,例如交易包含在哪个区块中以及以太坊虚拟机使用了多少燃料。 如果交易创建了合约,它还将包含合约地址。 我们可以使用 `eth_getTransactionReceipt` 远程过程调用方法检索收据。 + +```bash +curl --data '{"jsonrpc":"2.0","method": "eth_getTransactionReceipt", "params": ["0xe1f3095770633ab2b18081658bad475439f6a08c902d0915903bafff06e6febf"], "id": 7}' -H "Content-Type: application/json" localhost:8545 +{"jsonrpc":"2.0","id":7,"result":{"blockHash":"0x77b1a4f6872b9066312de3744f60020cbd8102af68b1f6512a05b7619d527a4f","blockNumber":"0x1","contractAddress":"0x4d03d617d700cf81935d7f797f4e2ae719648262","cumulativeGasUsed":"0x1c31e","from":"0x9b1d35635cc34752ca54713bb99d38614f63c955","gasUsed":"0x1c31e","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":null,"transactionHash":"0xe1f3095770633ab2b18081658bad475439f6a08c902d0915903bafff06e6febf","transactionIndex":"0x0"}} +``` + +我们的合约是在 `0x4d03d617d700cf81935d7f797f4e2ae719648262` 上创建的。 空结果而不是收据意味着交易 尚未包含在区块中。 稍等片刻,检查您的矿工是否正在运行,然后重试。 + +#### 与智能合约交互 {#interacting-with-smart-contract} + +在本例中,我们将使用 `eth_sendTransaction` 将交易发送到合约的 `multiply` 方法。 + +`eth_sendTransaction` 需要几个参数,具体而言,`from`、`to` 和 `data`。 `From` 是我们帐户的公共地址,`to` 是合约地址。 `data` 参数包含有效载荷,其定义了必须调用哪个方法以及使用哪些参数。 这就是 [ABI(应用程序二进制接口)](https://docs.soliditylang.org/en/latest/abi-spec.html)发挥作用的地方。 应用程序二进制接口是一个 JSON 文件,定义了如何为以太坊虚拟机定义和编码数据。 + +有效载荷的字节定义了调用合约中的哪个方法。 这是 Keccak 哈希的前 4 个字节以及函数名称及其参数类型(十六进制编码)。 Multiply 函数接受一个 uint,它是 uint256 的别名。 这给我们留下了: + +```javascript +web3.sha3("multiply(uint256)").substring(0, 10) +// "0xc6888fa1" +``` + +下一步是对参数进行编码。 只有一个 uint256,比如值 6。 应用程序二进制接口有一个部分指定了如何编码 uint256 类型。 + +`int: enc(X)` 是 X 的高位优先二进制补码编码,对于负 X 在高阶(左侧)填充 0xff,对于正 X 填充零 > 字节,使得长度为 32 字节的倍数。 + +此编码为 `0000000000000000000000000000000000000000000000000000000000000006`。 + +结合函数选择器和编码参数,我们的数据将是 `0xc6888fa10000000000000000000000000000000000000000000000000000000000000006`。 + +现在可以将其发送到节点: + +```bash +curl --data '{"jsonrpc":"2.0","method": "eth_sendTransaction", "params": [{"from": "0xeb85a5557e5bdc18ee1934a89d8bb402398ee26a", "to": "0x6ff93b4b46b41c0c3c9baee01c255d3b4675963d", "data": "0xc6888fa10000000000000000000000000000000000000000000000000000000000000006"}], "id": 8}' -H "Content-Type: application/json" localhost:8545 +{"id":8,"jsonrpc":"2.0","result":"0x759cf065cbc22e9d779748dc53763854e5376eea07409e590c990eafc0869d74"} +``` + +由于发送了交易,因此返回了交易哈希。 检索收据给出: + +```javascript +{ + blockHash: "0xbf0a347307b8c63dd8c1d3d7cbdc0b463e6e7c9bf0a35be40393588242f01d55", + blockNumber: 268, + contractAddress: null, + cumulativeGasUsed: 22631, + gasUsed: 22631, + logs: [{ + address: "0x6ff93b4b46b41c0c3c9baee01c255d3b4675963d", + blockHash: "0xbf0a347307b8c63dd8c1d3d7cbdc0b463e6e7c9bf0a35be40393588242f01d55", + blockNumber: 268, + data: "0x000000000000000000000000000000000000000000000000000000000000002a", + logIndex: 0, + topics: ["0x24abdb5865df5079dcc5ac590ff6f01d5c16edbc5fab4e195d9febd1114503da"], + transactionHash: "0x759cf065cbc22e9d779748dc53763854e5376eea07409e590c990eafc0869d74", + transactionIndex: 0 + }], + transactionHash: "0x759cf065cbc22e9d779748dc53763854e5376eea07409e590c990eafc0869d74", + transactionIndex: 0 +} +``` + +收据中包含一个日志。 此日志由以太坊虚拟机在交易执行时生成并包含在收据中。 `multiply` 函数显示 `Print` 事件在输入乘以 7 时触发。 由于 `Print` 事件的参数是 uint256,我们可以根据应用程序二进制接口规则对其进行解码,这将为我们得出预期的十进制数 42。 除了数据之外,值得注意的是,主题可用于确定哪个事件创建了日志: + +```javascript +web3.sha3("Print(uint256)") +// "24abdb5865df5079dcc5ac590ff6f01d5c16edbc5fab4e195d9febd1114503da" +``` + +这只是对一些最常见任务的简要介绍,展示了 JSON-RPC 的直接用法。 + ## 相关主题 {#related-topics} +- [JSON-RPC 规范](http://www.jsonrpc.org/specification) - [节点和客户端](/developers/docs/nodes-and-clients/) - [JavaScript 应用程序接口](/developers/docs/apis/javascript/) - [后端应用程序接口](/developers/docs/apis/backend/) +- [执行客户端](/developers/docs/nodes-and-clients/#execution-clients) diff --git a/src/content/translations/zh/developers/docs/blocks/index.md b/src/content/translations/zh/developers/docs/blocks/index.md index e47da25690c..68ee659a7e4 100644 --- a/src/content/translations/zh/developers/docs/blocks/index.md +++ b/src/content/translations/zh/developers/docs/blocks/index.md @@ -12,58 +12,128 @@ lang: zh ## 为什么要有区块? {#why-blocks} -为了确保以太坊网络上的所有参与者保持同步状态并就交易的确切历史达成共识,我们将交易分为多个区块。 这意味着一次提交、商定和同步数十个(或数百个)交易。 +为了确保以太坊网络上的所有参与者保持同步状态并就交易的确切历史达成共识,我们将交易分为多个区块。 这意味着同时有数十个(甚至数百个)交易被提交、达成一致并同步。 ![区块中的交易导致状态变化的图表](./tx-block.png) _图表来自 [Ethereum EVM illustrated](https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf)_ -通过间隔提交,即使交易请求每秒发生数十次,我们仍能给所有网络参与者足够的时间达成共识。 以太坊上的区块大约每十五秒提交一次。 +通过间隔提交,所有网络参与者有足够时间达成共识:即使交易请求每秒发生数十次,但以太坊上的区块仅仅大约每十二秒创建并提交一次。 ## 区块如何工作 {#how-blocks-work} 为了保存交易历史,区块被严格排序(创建的每个新区块都包含一个其父块的引用),区块内的交易也严格排序。 除极少数情况外,在任何特定时间,网络上的所有参与者都同意区块的确切数目和历史, 并且正在努力将当前的活动交易请求分批到下一个区块。 -一旦某个区块被网络上的某个矿工放在一起(挖矿),它就会传播到网络的其余部分; 所有节点都将此块添加到其区块链的末尾,并且继续挖掘。 目前,以太坊的“工作量证明”协议指定了确切的块组装(挖矿)过程和提交/共识过程。 +某位验证者在网络上构建完区块后,区块将传播到整个网络;所有节点都将该区块添加至其区块链的末尾,然后挑选新的验证者来创建下一个区块。 目前,确切的区块构建过程和提交/共识过程由以太坊的“权益证明”协议规定。 -### 视觉演示 {#a-visual-demo} +## 权益证明协议 {#proof-of-work-protocol} - +权益证明是指: -## 工作量证明协议(POW) {#proof-of-work-protocol} +- 验证节点必须向存款合约中质押 32 个以太币,作为抵押品防止发生不良行为。 这有助于保护网络,因为如果发生不诚实活动且可以证实,部分甚至全部质押金额将被销毁。 +- 在每个时隙(12 秒的时间间隔)中,会随机选择一个验证者作为区块提议者。 他们将交易打包并执行,然后确定一个新的“状态”。 他们将这些信息包装到一个区块中并传送给其他验证者。 +- 其他获悉新区块的验证者再次执行区块中包含的交易,确定他们同意对全局状态提出的修改。 假设该区块是有效的,验证者就将该区块添加进各自的数据库。 +- 如果验证者获悉在同一时隙内有两个冲突区块,他们会使用自己的分叉选择算法选择获得最多质押以太币支持的那一个区块。 -工作量证明是指: - -- 挖矿节点必须花费可变但大量的能源、时间和算力,才能为试图提交给网络的区块生成“合法性证明”。 这可以帮助保护网络免受垃圾邮件/拒绝服务攻击,因为证书的生成成本很高。 -- 其他矿工如果听说新区块拥有有效的合法性证书,则必须接受新区块作为区块链上的下一个规范区块。 -- 特定矿工生成此证书所需的确切时间是一个随机变量,彼此差异很大。 这确保了两个矿工不太可能同时对提议的下一个区块产生验证;当矿工产生并广播经认证的新区块时,他们几乎可以肯定该区块将被网络接受为区块链上规范的下一个区块,没有冲突(尽管在几乎同时产生两个认证块链的情况下,也有处理冲突的协议)。 - -[关于挖矿的更多信息](/developers/docs/consensus-mechanisms/pow/mining/) +[有关权益证明的更多信息](/developers/docs/consensus-mechanisms/pos) ## 区块包含什么? {#block-anatomy} -- `timestamp` – 开采区块的时间。 -- `blockNumber` – 区块链中区块的长度。 -- `baseFeePerGas` - 要将交易纳入区块,每个 gas 所需的最低费用。 -- `difficulty` – 开采所需的努力。 -- `mixHash` – 该区块的唯一标识符。 -- `parentHash` – 前一区块的唯一标识符(这是区块形成链的方式)。 -- `transactions` –包含在区块中的交易。 -- `stateRoot` –系统的整个状态:帐户余额、合约存储、合约代码和帐户随机数。 -- `nonce` – 哈希,当与 mixHash 结合使用时,可以证明该块已经通过了[工作量证明](/developers/docs/consensus-mechanisms/pow/)。 - -## 区块时间 {#block-time} - -区块时间指的是开采一个新区块所需的时间。 在以太坊中,平均区块时间在 12 到 14 秒之间,并在每个区块后进行评估。 预期区块时间在协议层面被设定为一个常数,当矿工增加计算能力时,用于保护网络的安全。 平均区块时间与预期区块时间进行比较,如果平均区块时间较高,则区块头的难度会降低。 如果平均区块时间较小,则会增加区块头中的难度。 +一个区块中包含很多信息。 区块的最高层包含以下字段: + +``` +slot:区块所属的时隙 +proposer_index:提出区块的验证者的 ID +parent_root:前一个区块的哈希 +state_root:状态对象的根哈希 +body:包含一些字段的对象,定义如下 +``` + +区块的 `body` 包含一些自有字段: + +``` +randao_reveal:用于选择下一个区块提议者的值 +eth1_data:有关存款合约的信息 +graffiti:用于标记区块的任意数据 +proposer_slashings:将要受到惩罚的验证者的列表 +attester_slashings:将要受到惩罚的验证者的列表 +attestations:支持当前区块的认证列表 +deposits:存入存款合约中的新存款的列表 +voluntary_exits:将要退出网络的验证者的列表 +sync_aggregate:用于服务轻客户端的验证者子集 +execution_payload:由执行客户端传送的交易 +``` + +`attestations` 字段包含区块中所有认证的列表。 认证有自己的数据类型,其中包含多条数据。 每个认证包含: + +``` +aggregation_bits:参与此认证的验证者列表 +data:具有多个子字段的容器 +signature:所有证明验证者的聚合签名 +``` + +`attestation` 中的 `data` 字段包含以下内容: + +``` +slot:认证涉及的时隙 +index:证明验证者的索引 +beacon_block_root:包含此对象的信标链区块的根哈希 +source:上一个合理的检查点 +target:最新的时段边界区块 +``` + +执行 `execution_payload` 中的交易会更新全局状态。 所有客户端重新执行 `execution_payload` 中的交易,以确保新状态与新区块 `state_root` 字段中的状态相符。 这就是客户端如何判断新区块是否有效且可以安全添加到其区块链的方式。 `execution payload` 本身是一个包含多个字段的对象。 还有一个 `execution_payload_header`,包含有关执行数据的重要摘要信息。 这些数据结构如下组织: + +`execution_payload_header` 包含以下字段: + +``` +parent_hash:父块的哈希 +fee_recipient:向其中支付交易费的帐户地址 +state_root:在此区块中应用更改后全局状态的根哈希 +receipts_root:交易收据树的哈希 +logs_bloom:包含事件日志的数据结构 +prev_randao:随机选择验证者时使用的值 +block_number:当前区块的编号 +gas_limit:此区块中允许使用的最大燃料量 +gas_used:此区块中实际使用的燃料量 +timestamp::出块时间 +extra_data:作为原始字节的任意附加数据 +base_fee_per_gas:基础费值 +block_hash:执行区块的哈希 +transactions_root:有效载荷中交易的根哈希 +``` + +`execution_payload` 本身包含以下内容(请注意这与区块头相同,只是它包含实际的交易列表而不是交易的根哈希): + +``` +parent_hash:父块的哈希 +fee_recipient:向其中支付交易费的帐户地址 +state_root:在此区块中应用更改后全局状态的根哈希 +receipts_root:交易收据树的哈希 +logs_bloom:包含事件日志的数据结构 +prev_randao:随机选择验证者时使用的值 +block_number:当前区块的编号 +gas_limit:此区块中允许使用的最大燃料量 +gas_used:此区块中实际使用的燃料量 +timestamp:出块时间 +extra_data:作为原始字节的任意附加数据 +base_fee_per_gas:基础费值 +block_hash:执行区块的哈希 +transactions:要执行的交易的列表 +``` + +## 出块时间 {#block-time} + +出块时间是指两个区块之间的时间间隔。 在以太坊中,时间划分为每 12 秒一个单位,称为“时隙”。 在每个时隙内,选择一个单独的验证者提议区块。 假设所有验证者都在线且完全正常运行,则每个时隙内都会有一个区块产生,意味着出块时间是 12 秒。 但是,偶尔验证者在被要求提议区块时不在线,导致有时候一些时隙是空的。 这与基于工作量证明的系统不同。在工作量证明系统中,出块时间是带有概率性的,并由挖矿难度调节。 ## 区块大小 {#block-size} -最后一个重要的一点是,区块本身的大小是有界限的。 每个区块的目标大小为 1500 万 gas,但区块的大小将根据网络需求而增加或减少。区块限制最多不超过 3000 万(目标区块大小的 2 倍)。 区块中所有交易所消耗的 gas 总量必须低于区块的 gas 限制。 这很重要,因为它可以确保区块不会任意扩大。 如果区块可以任意大,由于空间和速度方面的要求,性能较差的完整节点将逐渐无法跟上网络。 +最后一条重要提示是,区块本身的大小是有界限的。 每个区块的目标大小为 1500 万单位燃料,但区块的大小将根据网络需求而增加或减少,直至达到 3000 万单位燃料的区块限制(目标区块大小的 2 倍)。 区块中所有交易所消耗的总燃料量必须低于区块的燃料限制。 这很重要,因为它可以确保区块不能任意扩大。 如果区块可以任意扩大,由于空间和速度方面的要求,性能较差的全节点将逐渐无法跟上网络。 区块越大,在下一个时隙中及时处理它们需要的算力就越强大。 这是一种集中化的因素,可以通过限制区块大小来抵制。 ## 延伸阅读 {#further-reading} -_还有哪些社区资源对您有所帮助? 请编辑本页面并添加!_ +_还有哪些社区资源对你有所帮助? 请编辑本页面以添加!_ ## 相关主题 {#related-topics} -- [挖矿](/developers/docs/consensus-mechanisms/pow/mining/) - [交易](/developers/docs/transactions/) -- [Gas](/developers/docs/gas/) +- [燃料](/developers/docs/gas/) +- [权益证明](/developers/docs/consensus-mechanisms/pos) diff --git a/src/content/translations/zh/developers/docs/consensus-mechanisms/index.md b/src/content/translations/zh/developers/docs/consensus-mechanisms/index.md index f75345e2057..2e873d1d9c7 100644 --- a/src/content/translations/zh/developers/docs/consensus-mechanisms/index.md +++ b/src/content/translations/zh/developers/docs/consensus-mechanisms/index.md @@ -4,79 +4,75 @@ description: 解释分布式系统中的协商一致协议及其在以太坊中 lang: zh --- -当涉及到像以太坊这样的区块链(本质上是分布式数据库)时,网络节点必须能够就系统的当前状态达成一致。 这是通过协商一致机制实现的。 - -虽然共识机制与建立 dapp 并无直接关系,但理解两者将有助于阐明与您和您的用户体验相关的概念,如 gas 价格和交易时间。 +“共识机制”一词常常泛指“权益证明”、“工作量证明”或“权威证明”协议。 但是,它们只是共识机制中用于防御“女巫攻击”的部分。 共识机制是由一整套想法、协议和激励构成的体系,使得一系列分布式节点能够就区块链状态达成一致。 ## 前置要求 {#prerequisites} -为了让您更好地读懂本页面的内容,建议您先阅读:[以太坊(Ethereum)项目介绍](/developers/docs/intro-to-ethereum/) +为了更好地理解此页面,我们建议你先阅读[以太坊简介](/developers/docs/intro-to-ethereum/)。 ## 什么是共识? {#what-is-consensus} -我们所说的共识,是指达成了普遍协议。 比如,一群人去看电影, 如果对电影的选择没有异议,那么共识就达成了。 在极端情况下,即没有对电影选择达成一致时,这群人就会分开。 +我们所说的共识,是指达成了广泛的一致。 比如,一群人去看电影, 如果他们对于提议“看某部电影”没有任何异议,那么就可以说共识达成了。 如果存在异议,那么他们就必须通过某种方法决定看哪一部电影。 在极端情况下,这群人就会分开。 -对于区块链,达成共识意味着网络上至少有 51% 的节点同意网络的下一个全球状态。 +对于以太坊区块链来说,达成共识的过程是标准化的,达成共识意味着全网络中至少 66% 的节点就网络的全局状态达成一致。 ## 什么是共识机制? {#what-is-a-consensus-mechanism} -共识机制(也称为共识协议或共识算法)允许分布式系统(计算机网络)协同工作并保持安全。 +共识机制是一整套由协议、激励和想法构成的体系,使得整个网络的节点能够就区块链状态达成一致。 -共识协议和共识算法经常互换使用。 然而,协议和算法是不同的。 协议是标准中规定的一系列规则,用于约束系统及其许多功能组件如何运行和交互。 算法类似于如何解决问题或计算结果的准确方法。 +以太坊采用基于权益证明的共识机制,其加密经济的安全性来自于对质押人的锁定资本实施的一系列奖励和罚没措施。 这种激励体系鼓励各个质押人诚信运行验证者节点,并惩罚那些有不良行为的质押人,让攻击网络的行为付出极其高昂的代价。 -几十年来,我们一直采用这些机制在数据库节点、应用程序服务器和其他企业基础设施之间建立共识。 近年来,新的共识机制出现,使以太坊等加密经济系统能够就网络状态达成一致。 +还有一个协议,用于规范如何选择诚实的验证者,让它们提议或验证区块、处理交易并投票支持其链头部的视图。 极少数情况下,如果链头部附近的同一位置存在多个区块,就会利用一个分叉选择机制来选择区块组成“最重的”链。区块权重根据为相应区块投票的验证者数量进行计算,并由验证者质押的以太币余额进行加权。 -加密经济体系中的共识机制也有助于防止某些类型的经济攻击。 从理论上讲,攻击者可以通过控制 51% 的网络来破坏共识。 共识机制旨在使这种“51% 攻击”难以实施。 人们设计了不同的机制,以不同的方式解决这种安全性问题。 +有些关于共识的重要概念并未在规范中明确定义,例如由潜在“带外社交协调”提供的额外安全保障,可作为防止网络攻击的最后防线。 - +这些部分共同组成了共识机制。 ## 共识机制类型 {#types-of-consensus-mechanisms} -### 工作量证明 {#proof-of-work} +### 基于工作量证明 {#proof-of-work} -与比特币一样,以太坊目前使用**工作量证明 (PoW)** 共识协议。 +和比特币类似,以太坊也曾经使用基于**工作量证明 (PoW)** 的共识协议。 #### 创建区块 {#pow-block-creation} -工作量证明由[矿工](/developers/docs/consensus-mechanisms/pow/mining/)完成,矿工相互竞争创建装满已处理交易的新区块。 获胜者在网络中共享新区块,并赢得一些新铸造的以太币。 能够最快解决数学难题的计算机在比赛中获胜,这将在当前区块和之前的区块之间产生加密链接。 解决难题就是“工作量证明”中的工作。 +验证者创建区块。 每个时隙中都会随机选择一个验证者成为区块提议者。 区块提议者的共识客户端请求配对执行客户端对交易打包,作为“执行负载”。 然后它们将“执行负载”包装成共识数据并形成一个区块,再把这个区块发送给以太坊网络上的其他节点。 这样的区块生产会得到以太币奖励。 在极少数情况下,一个时隙中产生了多个可能的区块,或节点在不同时间收到区块,分叉选择算法就会选择使形成的链具有最大认证权重的那个区块(认证权重是指为该区块提供认证的验证者数量,并根据验证者质押的以太币余额调整)。 #### 安全性 {#pow-security} -攻击者需要拥有网络中 51% 的算力才能够欺骗整条链,这保护了网络的安全。 由于需要巨大的设备和能源投入,很有可能付出大于收益,得不偿失。 +因为用户需要拥有网络中 51% 的算力才能够欺骗整条链,因此网络的安全得以保证。 这将需要巨大的设备与能源投入,支出很有可能超过收益。 -更多有关[工作量证明 (PoW) ](/developers/docs/consensus-mechanisms/pow/)的信息 +关于[工作量证明](/developers/docs/consensus-mechanisms/pow/)的更多信息 -### 权益证明 {#proof-of-stake} +### 基于权益证明 {#proof-of-stake} -以太坊计划升级到采用**权益证明 (PoS)** 共识协议。 +以太坊目前使用基于**权益证明 (PoS)** 的共识协议。 #### 区块创建 {#pos-block-creation} -权益证明由验证者完成,验证者通过质押以太币参与到系统中。 系统随机选择验证者来创建新区块,在网络上共享区块并获得奖励。 无需完成大量计算工作,只需在网络中质押以太币即可。 这将有利于激励健康的网络行为。 +权益证明由验证者完成,验证者通过质押以太币参与到系统中。 系统将随机选择一位验证者来创建新区块,并将它们分享到网络从而获得奖励。 无需完成大量计算工作,你只需在网络中质押以太币即可。 这将有利于激励健康的网络行为。 #### 安全性 {#pos-security} -攻击者需要拥有质押以太币总数的 51% 才能够欺骗整条链,这保护了权益证明系统的安全。 而且你的质押会因为你的恶意行为而被罚没。 +权益证明体系保障加密经济的安全,因为攻击者若试图控制整条链,就必须销毁大量以太币。 奖励机制会奖励诚实的质押人,而惩罚机制则阻止质押人作出恶意行为。 -更多有关[权益证明](/developers/docs/consensus-mechanisms/pos/)的信息 +有关[权益证明](/developers/docs/consensus-mechanisms/pos/)的更多信息 ### 直观指南 {#types-of-consensus-video} -观看视频,详细了解以太坊上采用的不同类型共识机制: +观看视频,详细了解以太坊采用的不同类型共识机制: ### Sybil 抗性和链选择 {#sybil-chain} -目前从技术上讲,工作量证明和权益证明本身并不是共识协议,但为了简单起见,它们通常被称为共识协议。 它们实际上是女巫攻击防御机制和区块生产者选择器;它们是决定最新区块生产者的一种方式。 正是这种女巫攻击防御机制加上链选择规则,构成了的真正共识机制。 - -**女巫攻击防御**衡量一种协议如何抗衡[女巫攻击](https://wikipedia.org/wiki/Sybil_attack)。 女巫攻击是指一个用户或团体假装成许多用户。 防御这种攻击对去中心化区块链至关重要,并使矿工和验证者能够在资源投入的基础上获得平等奖励。 通过让用户消耗大量能源或提供大量抵押品,工作量证明和权益证明可以防止这种攻击。 这些保护措施是对女巫攻击的经济威慑。 +仅仅工作量证明和权益证明还不能成为共识协议,然而为了简便起见,通常将它们称为共识协议。 它们实际上是女巫攻击防御机制和区块作者选择器;它们是决定最新区块的作者的一种方式。 另一个重要组成部分是链选择(又称分叉选择)算法,它让节点可以在同一位置有多个区块的情况下在链头部选择一个正确区块。 -**链选择规则**用来决定哪条链才是“正确”的链。 以太坊和比特币目前使用“最长链”规则。这意味着,任何最长的区块链,都会被其他节点作为有效链接受并与之协作。 对于工作量证明链,最长链由链上累积的工作量证明总难度决定。 +**女巫攻击防御**衡量一种协议如何抗衡[女巫攻击](https://wikipedia.org/wiki/Sybil_attack)。 女巫攻击是指一个用户或用户群体假装成许多用户。 防御这种攻击对去中心化区块链至关重要,并使矿工和验证者能够在资源投入的基础上获得平等奖励。 通过让用户消耗大量能源或提供大量抵押品,工作量证明和权益证明可以防止这种情况。 这些保护措施通过经济手段对女巫攻击形成威慑。 -工作量证明和最长链规则结合起来称为“中本聪共识”。 +**链选择规则**用于决定哪条链才是“正确”的。 比特币使用“最长链”规则。这意味着,任何最长的区块链,都会被其他节点作为有效链接受并与之协作。 对于工作量证明链,最长链由链上累积的工作量证明总难度决定。 以太坊曾经也使用过最长链规则,但现在运行在权益证明机制下的以太坊采用了一种最新的分叉选择算法,以此衡量链的“权重”。 权重是验证者投票的累积总数,并以验证者质押的以太币余额加权。 -[信标链](/upgrades/beacon-chain/)采用了称为[友好的最终确定性小工具 Casper](https://arxiv.org/abs/1710.09437) 的共识机制,该机制基于权益证明。 +以太坊使用被称为 [Gasper](/developers/docs/consensus-mechanisms/pos/gasper/) 的共识机制,该机制结合了 [Casper 友好的最终确定性工具权益证明](https://arxiv.org/abs/1710.09437)和 [GHOST 分叉选择规则](https://arxiv.org/abs/2003.03052)。 ## 延伸阅读 {#further-reading} diff --git a/src/content/translations/zh/developers/docs/consensus-mechanisms/pos/gasper/index.md b/src/content/translations/zh/developers/docs/consensus-mechanisms/pos/gasper/index.md index 0f172489ecd..cddb1f2cec2 100644 --- a/src/content/translations/zh/developers/docs/consensus-mechanisms/pos/gasper/index.md +++ b/src/content/translations/zh/developers/docs/consensus-mechanisms/pos/gasper/index.md @@ -1,8 +1,7 @@ --- -title: 信标链协议(以太坊 2.0 网络的底层协议) +title: Gasper description: 关于信标链协议权益证明机制的说明。 lang: zh -sidebar: true --- Gasper 是友好的最终确定性工具 Gasper (Casper-FFG) 和 LMD-GHOST 分叉选择算法的组合。 它们组成了一种共识机制,使采用权益证明的以太坊保持安全。 Casper 是一种能将特定区块更新为“最终确定”状态的机制,使网络的新加入者确信他们正在同步权威链。 当区块链出现多个分叉时,分叉选择算法使用累计投票来确保节点可以轻松选择正确的分叉。 diff --git a/src/content/translations/zh/developers/docs/consensus-mechanisms/pos/index.md b/src/content/translations/zh/developers/docs/consensus-mechanisms/pos/index.md index e1a99041371..892e55960da 100644 --- a/src/content/translations/zh/developers/docs/consensus-mechanisms/pos/index.md +++ b/src/content/translations/zh/developers/docs/consensus-mechanisms/pos/index.md @@ -4,7 +4,7 @@ description: 权益证明共识算法以及其在以太坊中作用的解释。 lang: zh --- -权益证明 (PoS) 是[合并](/upgrades/merge)之后以太坊将使用的[共识机制](/developers/docs/consensus-mechanisms/)。 以太坊正在从[工作量证明 (PoW) ](/developers/docs/consensus-mechanisms/pow/)过渡到权益证明,因为权益证明更安全、能耗更低并且更适合实现新扩容解决方案。 虽然以太坊一直计划着向权益证明过渡,但是权益证明比工作量证明更复杂,并且完善这一机制已经耗费多年的研发时间。 当前的挑战是在以太坊主网上实现权益证明。 该过程称为[“合并”](/upgrades/merge/)。 +权益证明 (PoS) 是支撑以太坊[共识机制](/developers/docs/consensus-mechanisms/)的基础。 以太坊于 2022 年启动了权益证明机制,这是因为和原先的[工作量证明](/developers/docs/consensus-mechanisms/pow)架构相比,以太坊更安全、能耗更低并且更利于实现新的扩容解决方案。 ## 前提条件 {#prerequisites} @@ -12,7 +12,7 @@ lang: zh ## 什么是权益证明? {#what-is-pos} -权益证明是区块链用来达成分步式共识的一种[共识机制](/developers/docs/consensus-mechanisms/)。 在工作量证明共识机制中,矿工通过消耗能源来证明他们拥有资本以应对风险。 而在权益证明共识机制中,验证者明确地通过以太币将资本质押到以太坊上的智能合约中。 质押的以太币随后将作为抵押品,如果验证者表现出不诚实或懒惰,就可以销毁这些以太币。 之后,验证者负责检查在网络上传播的新区块是否有效,并偶尔自己也创建和传播新区块。 +权益证明是构成[共识机制](/developers/docs/consensus-mechanisms/)的基础,区块链使用这些机制来实现分布式共识。 在工作量证明共识机制中,矿工通过消耗能源来证明他们拥有资本以应对风险。 以太坊采用权益证明机制,在该机制下,验证者明确地通过以太币将资本质押到以太坊上的智能合约中。 这些质押的以太币充当抵押品,如果验证者有失信行为或者消极怠工,那么可以销毁抵押品。 之后,验证者负责检查在网络上传播的新区块是否有效,并偶尔自己也创建和传播新区块。 与工作量证明体系相比,权益证明有许多改进: @@ -25,17 +25,17 @@ lang: zh ## 验证者 {#validators} -要想作为验证者参与,用户必须向存款合约存入 32 个以太币并运行三种独立的软件:执行客户端、共识客户端和验证者。 存入以太币时,用户会加入一个激活队列,对新验证者加入网络的速度进行限制。 激活后,验证者将从以太坊网络上的对等节点接收新区块。 区块中交付的交易会被重新执行,并且对区块签名进行检查以确保区块是有效的。 然后验证者在整个网络上发送支持该区块的投票(称为认证)。 +要想作为验证者参与,用户必须向存款合约存入 32 个以太币并运行三种独立的软件:执行客户端、共识客户端和验证者。 存入以太币时,用户会进入一个激活队列,限制新验证者加入网络的速度。 激活后,验证者将从以太坊网络上的对等节点接收新区块。 区块中交付的交易会被重新执行,并且对区块签名进行检查以确保区块是有效的。 然后验证者在整个网络上发送支持该区块的投票(称为认证)。 在工作量证明中,生成区块的时间是由挖矿难度决定的,而在权益证明中,节奏是固定的。 权益证明以太坊中的时间分为时隙(12 秒)和时段(32 个时隙)。 在每个时隙中随机选择一位验证者作为区块提议者。 该验证者负责创建新区块并发送给网络上的其他节点。 另外在每个时隙中,都会随机选择一个验证者委员会,通过他们的投票确定所提议区块的有效性。 ## 最终确定性 {#finality} -一个交易在分布式网络具有“最终确定性”是指,该交易是区块的一部分且无法改变,除非燃烧掉大量以太币。 在权益证明以太坊上,通过“检查点”区块来管理确定性。 每个时段中的第一个区块是检查点。 验证者为他们认为有效的“检查点对”投票。 如果一对检查点获得至少达到质押以太币总数三分之二的投票,那么这两个检查点会升级。 这两个检查点中较新的一个会变成“合理”状态。 较旧的一个检查点已经是合理状态,因为它是上一个时段中的“目标”。 现在,这个检查点会升级为“已确定”状态。 要回滚已确定区块,攻击者将承担至少相当于质押以太币总数(目前约价值 $10,000,000,000)三分之一的损失。 确切解释可参阅[这篇以太坊基金会博文](https://blog.ethereum.org/2016/05/09/on-settlement-finality/)。 因为最终确定性需要获得三分之二多数投票,攻击者可以用质押以太币总数的三分之一投票来阻止网络实现最终确定性。 有一种可以防御这种攻击行为的机制:[怠惰惩罚](https://arxiv.org/pdf/2003.03052.pdf)。 当链超过四个时段无法最终确定时,这项机制会触发。 怠惰惩罚逐渐消耗与大多数投票相反的验证者的质押以太币,使得大多数验证者重新获得三分之二多数投票并最终确定链。 +交易在分布式网络具有“最终确定性”是指,该交易是区块的一部分且无法改变,除非燃烧掉大量以太币。 在权益证明以太坊上,通过“检查点”区块来管理确定性。 每个时段中的第一个区块是检查点。 验证者为他们认为有效的“检查点对”投票。 如果一对检查点获得了质押以太币总数中三分之二以上的投票,那么这对检查点将被升级。 这两个检查点中较新的一个会变成“合理”状态。 较旧的一个检查点已经是合理状态,因为它是上一个时段中的“目标”。 现在,这个检查点会升级为“已确定”状态。 要回滚最终确定的区块,攻击者将承担至少相当于质押以太币总数三分之一的损失。 此[以太坊基金会博文](https://blog.ethereum.org/2016/05/09/on-settlement-finality/)解释了其确切原因。 因为最终确定性需要获得三分之二多数投票,攻击者可以用质押以太币总数的三分之一投票来阻止网络实现最终确定性。 有一种可以防御这种攻击行为的机制:[怠惰惩罚](https://arxiv.org/pdf/2003.03052.pdf)。 当链超过四个时段无法最终确定时,这项机制会触发。 怠惰惩罚逐渐消耗与大多数投票相反的验证者的质押以太币,使得大多数验证者重新获得三分之二多数投票并最终确定链。 ## 加密经济的安全性 {#crypto-economic-security} -运行验证者是一种承诺。 验证者应当保持足够的硬件和连接,来参与区块的验证和提出。 作为回报,验证者将获得以太币(他们的质押余额增加)。 另一方面,作为验证者参与,也为用户为了个人利益或破坏而攻击网络开辟了新的渠道。 为了防止这种情况,如果在要求参与时没有参与,验证者会错过以太币奖励,而且如果验证者有不诚实的行为,他们现有的质押以太币会被销毁。 主要有两种行为被视为不诚实:在一个时隙中提出多个区块(模棱两可)和提交相互矛盾的认证。 被罚没以太币的金额取决于大致同一时间受到罚没的验证者数量。 这称为[“相关惩罚”](https://arxiv.org/pdf/2003.03052.pdf),相关惩罚可以是轻微的(单个验证者被罚没质押以太币的 1%),也可以导致验证者质押的以太币全部被销毁(大额罚没事件)。 这种惩罚在强制退出期执行,首先是第 1 天的立即处罚(最多 0.5 个以太币),接着是第 18 天的相关惩罚,最后是第 36 天的逐出网络。 如果验证者在网络上但不提交投票,他们每天都会受到轻微的认证惩罚。 对于攻击者来说,这些措施都意味着协同攻击的代价将极其高昂。 +运行验证者是一种承诺。 验证者应当保持足够的硬件和连接,来参与区块的验证和提出。 作为回报,验证者将获得以太币(他们的质押余额增加)。 另一方面,作为验证者参与,也为用户为了个人利益或破坏而攻击网络开辟了新的渠道。 为了防止这种情况,如果验证者在被调用时未能参与,他们就会错过以太币奖励;如果他们有不诚实行为,他们现有的质押可能会被销毁。 主要有两种行为被视为不诚实:在一个时隙中提出多个区块(模棱两可)和提交相互矛盾的认证。 被罚没以太币的金额取决于大致同一时间受到罚没的验证者数量。 这称为[“相关惩罚”](https://arxiv.org/pdf/2003.03052.pdf),相关惩罚可以是轻微的(单个验证者被罚没质押以太币的 1%),也可以导致验证者质押的以太币全部被销毁(大额罚没事件)。 这种惩罚在强制退出期执行,首先是第 1 天的立即处罚(最多 0.5 个以太币),接着是第 18 天的相关惩罚,最后是第 36 天的逐出网络。 如果验证者在网络上但不提交投票,他们每天都会受到轻微的认证惩罚。 对于攻击者来说,这些措施都意味着协同攻击的代价将极其高昂。 ## 分叉选择 {#fork-choice} @@ -43,9 +43,9 @@ lang: zh ## 权益证明和安全性 {#pos-and-security} -### 验证是如何工作的? {#how-does-validation-work} +正如在工作量证明中一样,权益证明中仍然存在 [51% 攻击](https://www.investopedia.com/terms/1/51-attack.asp)的威胁,但对于攻击者来说风险却更大。 攻击者需要 51% 的质押以太币。 然后他们可以通过自己的认证确保他们首选的分叉拥有最多累积认证。 共识客户端使用累积认证的“权重”确定正确的链,所以攻击者能够使他们的分叉成为规范区块。 然而与工作量证明相比,权益证明的优势在于,社区能够灵活地发动反击。 例如,诚实的验证者可以决定继续在非主流链上构建并忽略攻击者的分叉,同时鼓励应用程序、交易所和池也这样做。 他们还可以决定强行将攻击者从网络中移除并销毁攻击者质押的以太币。 这些都是对 51% 攻击的强有力的经济防御措施。 -51% 攻击只是其中一种恶意行为。 不良行为者可能会尝试远程攻击(尽管最终确定性小工具抵消了这种攻击向量)、短程“重组”(尽管提议者权重提升和认证期限可以缓解这种情况)、弹跳攻击和平衡攻击(也可以通过提议者权重提升来缓解,并且这些攻击只能在理想化的网络条件下演示)或雪崩攻击(被只考虑最新消息的分叉选择算法规则抵消)。 +51% 攻击只是其中一种恶意行为。 不良行为者可能会尝试远程攻击(尽管最终确定性小工具抵消了这种攻击向量)、短程“重组”(尽管提议者权重提升和认证期限可以缓解这种情况)、弹跳攻击和平衡攻击(也可以通过提议者权重提升来缓解,并且这些攻击只能在理想化的网络条件下演示)或雪崩攻击(被只考虑最新消息的分叉选择算法规则抵消)。 总的来说,已经证实以太坊实施的权益证明在经济方面比工作量证明更安全。 @@ -66,7 +66,8 @@ lang: zh - [The Beacon Chain Ethereum 2.0 explainer you need to read first](https://ethos.dev/beacon-chain/) _Ethos.dev_ - [Why Proof of Stake (Nov 2020)](https://vitalik.ca/general/2020/11/06/pos2020.html) _Vitalik Buterin_ - [Proof of Stake: How I Learned to Love Weak Subjectivity](https://blog.ethereum.org/2014/11/25/proof-stake-learned-love-weak-subjectivity/) _Vitalik Buterin_ -- [A Proof of Stake Design Philosophy](https://medium.com/@VitalikButerin/a-proof-of-stake-design-philosophy-506585978d51) _Vitalik Buterin_ +- [权益证明以太坊的攻击和防御](https://mirror.xyz/jmcook.eth/YqHargbVWVNRQqQpVpzrqEQ8IqwNUJDIpwRP7SS5FXs) +- [权益证明设计理念](https://medium.com/@VitalikButerin/a-proof-of-stake-design-philosophy-506585978d51) _ Vitalik Buterin_ ## 相关主题 {#related-topics} diff --git a/src/content/translations/zh/developers/docs/consensus-mechanisms/pos/weak-subjectivity/index.md b/src/content/translations/zh/developers/docs/consensus-mechanisms/pos/weak-subjectivity/index.md index 0fc89789a06..fbc3b77473c 100644 --- a/src/content/translations/zh/developers/docs/consensus-mechanisms/pos/weak-subjectivity/index.md +++ b/src/content/translations/zh/developers/docs/consensus-mechanisms/pos/weak-subjectivity/index.md @@ -2,7 +2,6 @@ title: 弱主观性 description: 关于弱主观性及其在权益证明版以太坊中的作用。 lang: zh -sidebar: true --- 区块链的主观性是指对社会信息的依赖,以就当前状态达成一致。 根据从网络上其他对等点收集到的信息,会有多个有效分叉供选择。 与主观性相对的是客观性,后者指只有一个可能有效的链,必须应用编码规则才能使所有节点达成一致。 还有第三种状态,称为弱主观性, 是指检索完社会信息的一些初始来源后,可以取得客观进展的区块链。 diff --git a/src/content/translations/zh/developers/docs/consensus-mechanisms/pow/index.md b/src/content/translations/zh/developers/docs/consensus-mechanisms/pow/index.md index 9d22d8bec2a..e0724ccc36f 100644 --- a/src/content/translations/zh/developers/docs/consensus-mechanisms/pow/index.md +++ b/src/content/translations/zh/developers/docs/consensus-mechanisms/pow/index.md @@ -2,95 +2,92 @@ title: 工作量证明 (PoW) description: 工作量证明共识协议的解释及其在以太坊中的作用。 lang: zh -incomplete: true --- -类似于比特币,以太坊目前使用的共识协议被称为**[工作量证明 (PoW)](https://wikipedia.org/wiki/Proof_of_work)**。 这种机制允许以太坊网络的节点就以太坊区块链上记录的所有信息的状态达成共识,并防止某些产生经济影响的攻击。 +以太坊网络最初采用一种称为**[工作量证明 (PoW)](/developers/docs/consensus-mechanisms/pow)** 的共识机制。 这种机制允许以太坊网络的节点就以太坊区块链上记录的所有信息的状态达成共识,并防止某些产生经济影响的攻击。 然而,以太坊在 2022 年终结了工作量证明并开始采用[权益证明](/developers/docs/consensus-mechanisms/pos)。 -在接下来一年,工作量证明将被逐步淘汰,这有利于**[权益证明 (PoS)](/developers/docs/consensus-mechanisms/pos)** 的发展。 向权益证明 (PoS) 的过渡也将从以太坊逐步淘汰挖矿机制。 [关于合并的更多信息](/upgrades/merge/)。 + + 工作量证明现已弃用。 以太坊不再使用工作量证明作为其部分共识机制。 它改用权益证明。 阅读有关权益证明质押的更多信息。 + ## 前置要求 {#prerequisites} -为了更好地了解此页面,推荐先阅读[交易](/developers/docs/transactions/)、[区块](/developers/docs/blocks/)和[共识机制](/developers/docs/consensus-mechanisms/)。 +为了更好地理解此页面,建议提前阅读[交易](/developers/docs/transactions/)、[区块](/developers/docs/blocks/)和[共识机制](/developers/docs/consensus-mechanisms/)。 ## 什么是工作量证明 (POW) {#what-is-pow} -工作量证明是一种允许去中心化的以太坊网络达成共识或者一致认可帐户余额和交易顺序的机制。 这个机制防止用户“双花”他们的币,同时确保极难攻击或操作以太坊的链。 +中本聪共识采用工作量证明,一度允许去中心化的以太坊网络对帐户余额和交易顺序等达成共识(即所有节点都同意)。 这种机制防止用户“重复支付”他们的货币,同时确保极难攻击或操作以太坊区块链。 这些安全特性现在由权益证明提供,后者采用称为 [Gasper](/developers/docs/consensus-mechanisms/pos/gasper/) 的共识机制。 ## 工作量证明和挖矿 {#pow-and-mining} -工作量证明是一个为矿工设置挖矿难度和规则的基础性算法。 挖矿就是“工作”本身。 挖矿是向区块链中添加有效区块。 这个工作很重要,因为区块链的长度帮助网络识别出有效的以太坊链并且理解当前以太坊的状态。 完成的“工作”越多链越长,区块链的序号就越大,网络就能更加确定当前链和区块的状态。 +工作量证明是一种基础性算法,它为矿工在工作量证明区块链上进行的工作设置难度和规则。 挖矿就是“工作”本身。 挖矿是向区块链中添加有效区块。 这很重要,因为链的长度有助于网络跟随区块链的正确分叉。 “工作”完成得越多,链越长,区块编号就越大,就更能确定网络达到最新状态。 -[关于挖矿的更多信息](/developers/docs/consensus-mechanisms/pow/mining/) +[有关挖矿的更多信息](/developers/docs/consensus-mechanisms/pow/mining/) -## 以太坊的工作量证明机制是如何运作的? {#how-it-works} +## 以太坊的工作量证明机制如何运作? {#how-it-works} -以太坊的交易被处理为区块。 每个区块都具备以下内容: +以太坊交易处理到区块中。 在现已弃用的工作量证明以太坊中,每个区块包含: - 区块的难度,例如:3,324,092,183,262,715 - 混合哈希(mixHash),例如:`0x44bca881b07a6a09f83b130798072441705d9a665c5ac8bdf2f39a3cdf3bee29` - nonce--例如:`0xd3ee432b4fb3d26b` -区块数据与工作量证明直接关联。 +这些区块数据与工作量证明直接相关。 ### 工作量证明机制 {#the-work} -工作量证明协议 (Ethash),要求矿工经过激烈的试错竞赛,找到一个区块的随机数。 只有具备有效随机数的区块才能被加入区块链中。 +工作量证明协议 Ethash 要求矿工经过激烈的试错竞赛,找到一个区块的随机数。 只有具备有效随机数的区块才能加入区块链中。 -通过比赛创建区块时,矿工将反复放置一个数据集,只能通过数学函数从下载和运行完整链(像矿工那样)中获得数据集。 这是为了根据区块所声明的难度,生成一个低于目标随机数的混合哈希。 做到这些的最佳途径就是试错。 +当矿工们争相创建区块时,他们会反复通过一个数学函数放置一个数据集,此数据集只能通过下载和运行整条区块链获得(矿工们都是这样做的)。 该数据集用来产生一个低于目标随机数的混合哈希,而此目标随机数由区块难度决定。 做到这些最好的方式是试错。 -难度决定了该哈希的目标。 目标越小,有效的哈希值的集合就越小。 一旦生成哈希,其他矿工和客户就很容易校验哈希。 即使一个交易记录出现改变,整个哈希就会变得完全不同,表示出现欺诈。 +难度决定了哈希的目标值。 目标值越小,有效哈希的集合就越小。 一旦生成哈希,其他矿工和客户端就很容易验证哈希。 即使一条交易记录出现改变,整个哈希就会变得完全不同,表示出现欺诈。 -哈希使得交易欺诈性的交易更容易发现。 此外,工作量证明作为一个流程,同样有效威慑了对区块链的攻击。 +哈希使得欺诈更容易被发现。 此外,工作量证明作为一个流程,同样有效威慑了对区块链的攻击。 ### 工作量证明和安全性 {#security} -在以太坊主链上工作的矿工会因挖矿获得回报。 对于一部分矿工而言,他们几乎没有理由去开辟一条自己的新链 - 因为这破坏了系统。 区块链依赖于将单一状态来作为真实性来源。 同时,使用者要始终选择最长的或者“最重”的链。 +激励矿工在以太坊主链上挖矿。 对于一小部分矿工而言,没有任何激励措施让他们去开辟一条自己的新链 - 因为这破坏了体系。 区块链依赖于唯一状态来判断真实性。 -工作量证明机制是为了扩展链。 最长的链最可信,因为它完成的计算工作最多。 在以太坊的 PoW 系统中,几乎无法创建一个新区块以擦除交易信息、创建假区块或者维持第二个链。 这是因为恶意矿工需要比其他所有人更快地计算出区块随机数。 +工作量证明的目标是延长链。 最长的链是最可信的有效链,因为需要完成最多的计算工作来生成它。 在以太坊的工作量证明体系中,几乎不可能创建新的区块来清除交易、创建虚假交易或维护第二条链。 那是因为恶意矿工总是需要比其他人更快地解出区块随机数。 -要一直创建恶意但有效的区块,就需要有超过 51% 的全网采矿算力去打败其他人。 这项“工作”需要大量算力才能完成。 而能源支出可能甚至超出攻击所取得的收益。 +要持续创建恶意但有效的区块,恶意矿工将需要超过 51% 的网络挖矿算力才能击败其他人。 这种海量的“工作”需要大量昂贵的算力,而且消耗的能源甚至可能超过攻击所得的收益。 ### 工作量证明的经济模型 {#economics} -工作量证明还负责在系统中发行新币,并鼓励矿工参与这项工作。 +工作量证明还负责向系统中发行新货币并激励矿工完成工作。 -成功创建区块的矿工将获得两个新铸造的以太币奖励,但不再收到全部交易费,这是因为基础费已消耗掉,而小费和区块奖励则归矿工所有。 矿工通过计算叔块也可以获得 1.75 个 ETH。 叔块是矿工在另一个矿工出块的同时创建的有效块。 叔块通常由于网络延迟导致。 +自[君士坦丁堡升级](/history/#constantinople)以来,成功创建区块的矿工将获得两个新铸造的以太币及部分交易费作为奖励。 叔块也会获得 1.75 个以太币的补偿。 叔块是由一个矿工创建的有效区块,几乎与此同时另一个矿工创建了规范区块。要确定规范区块,最终取决于哪条链构建于第一个区块之上。 叔块通常是由于网络延迟而出现。 ## 终局性 {#finality} 如果交易属于一个无法更改的区块时,它就在以太坊上具有“最终确定性”。 -由于矿工分散工作,可以同时开采出两个有效区块。 这创建了临时分叉。 最后,在挖出并添加后续区块,使其中一条链更长时,这条链就会成为被接受的链。 +由于矿工以去中心化的方式工作,有可能同时开采出两个有效区块。 这就产生了一个临时分叉。 最后,在后续区块被开采出并添加到其中一条链使其更长时,这条链就会成为被接受的链。 -但更复杂的是,在临时分叉上被拒绝的交易将会记录在被接受的主链上。 这意味着区块可逆。 因此,最终确定性是指您在认为交易不可逆之前需要等待的一段时间。 以太坊推荐的时间是等待 6 个区块或者超过 1 分钟。 6 个区块后,您可以相对稳妥地说交易成功了。 当然,您也可以等待更长的时间,这样更有保障。 - -在设计去中心化应用时,应始终牢记最终确定性。 如果将交易信息误报给用户,特别当交易价值很高时,这将严重有损用户体验。 - -请记住,这个时间不包含等待矿工处理交易的时间。 +但更复杂的是,在临时分叉上被拒绝的交易可能没有包含在被接受的主链上。 这意味着区块是可逆的。 因此,最终确定性是指你在认为交易不可逆之前需要等待的一段时间。 在以前的工作量证明以太坊中,一个特定区块 `N` 之后开采出的区块越多,就更加确信区块 `N` 内的交易是成功的且不可回滚。 现在,基于权益证明机制,最终确定是区块的明确属性,而不再是概率性的。 ## 工作量证明能源消耗 {#energy} -对工作证明提出的一项主要批评是保持网络安全所需的能源消耗。 为了维持安全性和去中心化,以太坊工作量证明每年消耗 73.2 太瓦时的能源,这相当于奥地利这样的中等国家的能耗。 +对工作量证明提出的一项主要批评是保证网络安全所需的能源消耗。 为了维持安全和去中心化,采用工作量证明的以太坊每年消耗大量能源。 在以太坊过渡到权益证明前的一小段时间内,以太坊矿工的总能源消耗大约为 70 亿千瓦时/年(大约与捷克共和国相当 - 数据来自 2022 年 7 月 18 日 [digiconomist](digiconomist.net))。 ## 优点和缺点 {#pros-and-cons} -| 优点 | 缺点 | -| -------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------ | -| 工作量证明并无对错。 你不需要 ETH 来启动,区块允许你从 0ETH 获得正的收益。 在[权益证明](/developers/docs/consensus-mechanisms/pos/)中,您需要 ETH 去启动挖矿。 | 工作量证明消耗了大量能源,对环境不利。 | -| 工作量证明是一个经过考验和测试的共识机制,多年来一直保持了比特币和以太坊的安全性和去中心化。 | 如果你想要采矿,你需要花大量的资金去购买专业设备。 | -| 与权益证明方式相比,PoW 是比较容易实施的。 | 因为算力的不断增加,矿池可能会主导挖矿过程,导致中心化和安全风险。 | +| 优点 | 缺点 | +| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------ | +| 工作量证明并无对错。 你不需要以太币来启动,出块奖励允许你从 0 ETH 获得正的收益。 而在[权益证明](/developers/docs/consensus-mechanisms/pos/)中,你需要以太币来启动获取收益的过程。 | 工作量证明消耗了大量能源,对环境不利。 | +| 工作量证明是一个经过考验和测试的共识机制,多年来一直保持了比特币和以太坊的安全性和去中心化。 | 如果你想要挖矿,需要花大量的启动资金去购买专业设备。 | +| 与权益证明方式相比,工作量证明是比较容易实施的。 | 因为算力的不断增加,矿池可能会主导挖矿过程,导致中心化和安全风险。 | ## 与权益证明对比 {#compared-to-pos} -从更高层面上看,权益证明 (PoS) 和工作量证明 (PoW) 的最终目标相同,即帮助去中心化网络安全地达成共识。 但他们在实现方式和人员上有些不同: +从更高层面上看,权益证明和工作量证明的最终目标相同,即帮助去中心化网络安全地达成共识。 但它们在实现方式和人员上有些不同: - 权益证明 (PoS) 让质押 ETH 不再需要算力。 - 权益证明 (PoS) 将矿工替换为验证者。 验证者通过质押他们的 ETH 来创建新的区块。 - 验证者不会竞争创建区块,而是由算法随机选择。 - 终局性是很清晰的:在特定的检查节点,如果 2/3 验证者确定了区块,这个区块将被视为最终状态。 验证者必须在区块压上自己全部质押,因此如果他们试图串通更改区块链,他们就会失去他们的全部质押。 -[关于权益证明 (PoS) 的更多信息](/developers/docs/consensus-mechanisms/pos/) +[有关权益证明的更多信息](/developers/docs/consensus-mechanisms/pos/) ## 更偏向视频学习者? {#visual-learner} diff --git a/src/content/translations/zh/developers/docs/consensus-mechanisms/pow/mining-algorithms/dagger-hashamoto/index.md b/src/content/translations/zh/developers/docs/consensus-mechanisms/pow/mining-algorithms/dagger-hashamoto/index.md index 7b31f82c9af..b15c82e8bea 100644 --- a/src/content/translations/zh/developers/docs/consensus-mechanisms/pow/mining-algorithms/dagger-hashamoto/index.md +++ b/src/content/translations/zh/developers/docs/consensus-mechanisms/pow/mining-algorithms/dagger-hashamoto/index.md @@ -1,8 +1,7 @@ --- -title: Dagger-Hashamoto 算法 -description: 详细说明 Dagger-Hashamoto 算法。 +title: Dagger-Hashimoto +description: 详细了解 Dagger-Hashimoto 算法。 lang: zh -sidebar: true --- Dagger-Hashimoto 是以太坊挖矿算法的原始研究实现和规范。 但是,Dagger-Hashimoto 已被 [Ethash](#ethash) 取代。 在[合并](/updates/merge)之后,挖矿将完全关闭,届时以太坊将使用[权益证明](/developers/docs/consensus-mechanisms/pos)机制来提供保护。 diff --git a/src/content/translations/zh/developers/docs/consensus-mechanisms/pow/mining-algorithms/ethash/index.md b/src/content/translations/zh/developers/docs/consensus-mechanisms/pow/mining-algorithms/ethash/index.md index 9dad9f8eb49..54e7f6f85ae 100644 --- a/src/content/translations/zh/developers/docs/consensus-mechanisms/pow/mining-algorithms/ethash/index.md +++ b/src/content/translations/zh/developers/docs/consensus-mechanisms/pow/mining-algorithms/ethash/index.md @@ -2,12 +2,17 @@ title: Ethash description: Ethash 算法详细介绍。 lang: zh -sidebar: true --- -**请注意,Ethash 是以太坊的工作量证明挖矿算法。 工作量证明挖矿将在[合并](/upgrades/merge)时完全关闭。届时,以太坊将转而使用[质押证明](/developers/docs/consensus-mechanisms/pos)机制获得保护。** + + Ethash 是以太坊的工作量证明挖矿算法。 工作量证明现在已经被 **完全关闭**,取而代之,以太坊现在使用 [proof-of-stake](/developers/docs/consensus-mechanisms/pos) 来保证安全。 阅读更多关于合并权益证明质押的信息。 此页面是为了满足对历史的兴趣! + -[Ethash](https://github.com/ethereum/wiki/wiki/Ethash) 是 [Dagger-Hashimoto](/developers/docs/consensus-mechanisms/pow/mining-algorithms/dagger-hashamoto) 算法的修改版。 Ethash 工作量证明为[内存密集型](https://wikipedia.org/wiki/Memory-hard_function),被认为可使算法抵抗专用集成电路,但专用集成电路 Ethash 挖矿已被证明可行。 内存硬度通过工作量证明算法实现,需要根据随机数和区块头选择固定资源子集。 该资源(大小为几 GB)称为有向无环图。 有向无环图每隔 30000 个区块更改一次,这个 125 小时的窗口称为一个时段(大约 5.2 天),需要一段时间才能生成。 由于有向无环图只依赖于区块高度,因此可以预先生成,但如果不是,客户端需要等待此过程结束才能生成一个区块。 如果客户端没有提前预生成和缓存有向无环图,网络可能会在每个时段过渡时遇到严重的区块延迟。 请注意,不需要生成有向无环图即可验证,工作量证明本质上允许使用低端中央处理器和小内存进行验证。 +[Ethash](https://github.com/ethereum/wiki/wiki/Ethash) 是 [Dagger-Hashimoto](/developers/docs/consensus-mechanisms/pow/mining-algorithms/dagger-hashamoto) 算法的修改版。 Ethash 工作量证明是[内存密集型](https://wikipedia.org/wiki/Memory-hard_function)算法,这被认为使算法可抵御专用集成电路。 Ethash 专用集成电路最终被开发出来,但在工作量证明被关闭之前,图形处理单元挖矿仍然是一个可行的选择。 Ethash 仍然用于在其他非以太坊工作量证明网络上挖掘其他币。 + +## Ethash 是如何工作的? {#how-does-ethash-work} + +内存硬度通过工作量证明算法实现,需要根据随机数和区块头选择固定资源子集。 该资源(大小为几 GB)称为有向无环图。 有向无环图每 30000 个区块更改一次(大约 125 小时的窗口,称为一个时段(大约 5.2 天)),需要一段时间才能生成。 由于有向无环图仅依赖于区块高度,因此可以预先生成,但如果没有,则客户端需要等到此过程结束才能生成区块。 如果客户端没有提前预生成和缓存有向无环图,网络可能会在每个时段过渡时遇到严重的区块延迟。 请注意,不需要生成有向无环图即可验证,工作量证明本质上允许使用低端中央处理器和小内存进行验证。 该算法采取的一般路线如下: @@ -16,7 +21,7 @@ sidebar: true 3. 我们可以从缓存中生成一个 **1 GB 数据集**,数据集中每个项目仅依赖于一小部分缓存中的项目。 全客户端和矿工存储数据集。 数据集随着时间的流逝而呈线性增长。 4. 采矿会抢走数据集的随机片段并将它们散列在一起。 可以通过使用缓存来重新生成您需要的数据集中的特定区块,以较低的内存进行验证,以使您只需要存储缓存。 -每隔 3000 个区块更新一次大数据集,因此,矿工的绝大部分工作都是读取数据集,而不是对其进行修改。 +每隔 30000 个区块更新一次大数据集,因此,矿工的绝大部分工作都是读取数据集,而不是对其进行修改。 ## 定义 {#definitions} @@ -201,7 +206,7 @@ def mine(full_size, dataset, header, difficulty): ## 延伸阅读 {#further-reading} -_还有哪些社区资源对您有所帮助? 请编辑并添加到本页面!_ +_还有哪些社区资源对您有所帮助? 请编辑本页面并添加!_ ## 附录 {#appendix} diff --git a/src/content/translations/zh/developers/docs/consensus-mechanisms/pow/mining-algorithms/index.md b/src/content/translations/zh/developers/docs/consensus-mechanisms/pow/mining-algorithms/index.md index e3ecd64a47a..8ed2aba17d9 100644 --- a/src/content/translations/zh/developers/docs/consensus-mechanisms/pow/mining-algorithms/index.md +++ b/src/content/translations/zh/developers/docs/consensus-mechanisms/pow/mining-algorithms/index.md @@ -2,12 +2,15 @@ title: 挖矿算法 description: 以太坊挖矿所用的算法的详细介绍 lang: zh -sidebar: true --- -以太坊挖矿曾使用过两种算法:Dagger Hashimoto 和 Ethash。 但 Dagger Hashimoto 从未用于以太坊主网,它在主网启动之前便已被 Ethash 所取代。 Dagger Hashimoto 是一种研发性质的挖矿算法,它为 Ethash 打下了基础。 但是作为以太坊发展中的一项重要创新,Dagger Hashimoto 算法也有其历史意义。 在预计将于 2022 年第三至第四季度进行的[以太坊合并](/upgrades/merge/)的过程中,以工作量为证明的挖矿方式将被停用,并被权益证明所取代。 + -两种挖矿算法的基本思想都是矿工使用暴力计算法尝试找到一个使结果低于特定难度阈值的随机数。 这个难度阈值可以动态调整,从而使区块的产出间隔相对固定。 +工作量证明不再是以太坊共识机制的基础,这意味着挖矿已终结。 取而代之的是,以太坊将由质押了以太币的验证者保护。 你可以立即开始质押以太币。 阅读有关 [The Merge](/upgrades/merge/)、[proof-of-stake](/developers/docs/consensus-mechanisms/pos/) 和 [staking](/staking/) 的更多信息。 此页面仅为满足对历史的兴趣。 + + + +以太坊挖矿使用过一种称为 Ethash 的算法。 该算法的基本思想是,矿工尝试使用蛮力计算找到一个随机数输入,使得生成的哈希小于一个取决于计算难度的阈值。 此难度级别可以动态调整,从而允许定期进行区块生产。 ## 前提条件 {#prerequisites} @@ -15,7 +18,7 @@ sidebar: true ## Dagger Hashimoto {#dagger-hashimoto} -Dagger Hashimoto 是以太坊挖矿的先导研究算法,现已被 Ethash 取代。 它是两种不同算法:Dagger 和 Hashimoto 的融合。 +Dagger Hashimoto 是以太坊挖矿的先导研究算法,现已被 Ethash 取代。 它是两种不同算法:Dagger 和 Hashimoto 的融合。 它只是一个研究实现,并在以太坊主网启动时被 Ethash 取代。 [Dagger](http://www.hashcash.org/papers/dagger.html) 会生成一个[有向无环图](https://en.wikipedia.org/wiki/Directed_acyclic_graph),将共同取哈希值的内容随机划分。 其核心原理是,每个随机数只取总数据树的一小部分。 挖矿禁止为每个随机数重新计算子树,因此需要总存储树,但若为验证某个随机数的价值,则可以重新计算。 Dagger 的设计目的是替代诸如 Scrypt 的已有算法。后者是“内存困难算法”,但当它们的内存困难程度增加到可信的安全水平时将很难验证。 然而,Dagger 容易受到共享内存硬件加速的影响,因此我们放弃了这种算法,转而采用了其他研究途径。 @@ -27,10 +30,10 @@ Dagger-Hashimoto 是在 Dagger 和 Hashimoto 的基础上改进而来的以太 ## Ethash {#ethash} -Ethash 是以太坊目前使用的挖矿算法。 Ethash 实际上是为 Dagger Hashimoto 算法进行重要更新后的一个特殊版本命名的新名称,但它仍然继承了其前身的基本原理。 以太坊主网仅使用过 Ethash,而 Dagger Hashimoto 只是挖矿算法的一个研发版本,且在以太坊主网开始挖矿之前就已经被取代。 +Ethash 是在现已弃用的工作量证明架构下,实际用于真正的以太坊主网的挖矿算法。 Ethash 实际上是为 Dagger Hashimoto 算法进行重要更新后的一个特殊版本命名的新名称,但它仍然继承了其前身的基本原理。 以太坊主网只使用过 Ethash - Dagger Hashimoto 是挖矿算法的研发版本,在以太坊主网上开始挖矿之前被取代。 [详细了解 Ethash](/developers/docs/consensus-mechanisms/pow/mining-algorithms/ethash)。 ## 延伸阅读 {#further-reading} -_还有哪些社区资源曾为你提供帮助? 编辑并添加本页面!_ +_还有哪些社区资源对您有所帮助? 请编辑本页面并添加!_ diff --git a/src/content/translations/zh/developers/docs/consensus-mechanisms/pow/mining/index.md b/src/content/translations/zh/developers/docs/consensus-mechanisms/pow/mining/index.md index a7973add8cb..185beb139dc 100644 --- a/src/content/translations/zh/developers/docs/consensus-mechanisms/pow/mining/index.md +++ b/src/content/translations/zh/developers/docs/consensus-mechanisms/pow/mining/index.md @@ -1,11 +1,13 @@ --- title: 挖矿 -description: 关于挖矿在以太坊中如何工作以及如何帮助保持以太坊安全和去中心化的解释。 +description: 解释以太坊上挖矿的工作原理。 lang: zh --- - 权益证明将很快取代工作量证明成为以太坊的共识机制,这意味着挖矿将终止。 取而代之的是,以太坊将由质押了以太币的验证者保护。 你可以立即开始质押以太币。 详细了解合并权益证明质押。 + +工作量证明不再是以太坊共识机制的基础,这意味着挖矿已终结。 取而代之的是,以太坊将由质押了以太币的验证者保护。 你可以立即开始质押以太币。 阅读有关 [The Merge](/upgrades/merge/)、[proof-of-stake](/developers/docs/consensus-mechanisms/pos/) 和 [staking](/staking/) 的更多信息。 此页面展示与历史有关的内容。 + ## 前置要求 {#prerequisites} @@ -14,39 +16,37 @@ lang: zh ## 以太坊挖矿是什么? {#what-is-ethereum-mining} -挖矿是一个创造区块来添加转账到以太坊区块链上的过程。 +挖矿是指创建要添加到以太坊区块链的交易块的过程,在以太坊现已弃用的工作量证明架构中进行。 -挖矿一词源于将加密货币比作黄金的比喻。 同黄金或贵金属一样,数字代币也是稀缺的,增加总量的唯一方法是挖矿。 这在以太坊中也是恰当的,以太坊启动后唯一的发行模式就是挖矿。 然而,与以上示例不同的是,挖矿也是一种保护网络安全的方法,它创建、验证、发布区块并把区块传播到区块链中。 +挖矿一词源于将加密货币比作黄金的比喻。 黄金或贵金属很稀缺,数字代币也很稀缺,在工作量证明体系中,只能通过挖矿增加总量。 在工作量证明以太坊中,只能通过挖矿进行发行。 然而,与黄金或贵金属不同,以太坊挖矿也是一种通过在区块链中创建、验证、发布和传播区块来保护网络的方式。 以太币挖矿 = 保护网络安全 -与比特币一样,以太坊目前使用[工作量证明 (PoW)](/developers/docs/consensus-mechanisms/pow/) 共识机制。 挖矿是工作量证明的命脉。 以太坊矿工(即运行软件的计算机)消耗他们的时间和算力处理交易并产生区块。 +挖矿是任何工作量证明区块链的命脉。 在过渡到权益证明之前,以太坊矿工,即运行软件的计算机,利用它的时间和算力处理交易并产生区块。 ## 为什么存在矿工? {#why-do-miners-exist} -在以太坊这样的去中心化系统中,需要确保每个人都同意交易的顺序。 矿工可以保证这一点,他们通过解决计算难题产生区块,并保护网络免受攻击。 +在以太坊这样的去中心化系统中,需要确保每个人都同意交易的顺序。 矿工通过解决计算难题来产生区块并保护网络免受攻击,从而帮助实现这一目标。 [关于工作量证明的更多信息](/developers/docs/consensus-mechanisms/pow/) -## 谁可以成为以太坊上的矿工? {#who-can-become-a-miner} - -从技术上讲,任何人都可以使用自己电脑在以太坊网络上挖矿。 然而,并非每个人都能挖矿并实现以太币 (ETH) 获利。 大多数情况下,为了实现挖矿获利,矿工必须购买专用计算机硬件。 虽然确实任何人都可以在他们的电脑上运行挖矿软件,但普通电脑不太可能赚取足够的区块奖励来支付挖矿相关费用。 +以前任何人都能使用他们的计算机在以太坊网络上挖矿。 然而,并非每个人都可以通过挖矿实现以太币 (ETH) 获利。 在大多数情况下,矿工必须购买专用计算机硬件,并且能够获得廉价能源。 普通计算机不太可能获得足够的区块奖励来支付相关的挖矿成本。 ### 挖矿成本 {#cost-of-mining} - 建造和维护矿机所需硬件的潜在成本 - 矿机的电力成本 -- 如果您已加入矿池,矿池通常对其产生的每个区块收取固定比例的费用 +- 如果你在矿池中挖矿,这些矿池通常对矿池生成的每个区块收取固定百分比的费用 - 支持矿机的潜在成本(通风、能源监测、电线等) 要进一步探索挖矿收益,请使用挖矿收益计算器,例如 [Etherscan](https://etherscan.io/ether-mining-calculator) 提供的挖矿收益计算器。 -## 如何开采以太坊交易 {#how-ethereum-transactions-are-mined} +## 如何开采以太坊交易 {#how-ethereum-transactions-were-mined} 1. 用户编写和通过一些[帐户](/developers/docs/accounts/)私钥来签署[交易](/developers/docs/transactions/)请求。 2. 用户通过一些[节点](/developers/docs/nodes-and-clients/)将自己的交易请求广播到整个以太坊网络。 3. 在听到新的转账请求时,每个以太坊网络节点会添加这笔交易到本地的内存池,这些内存池包括他们收到的没有被添加到区块链以承认的所有转账请求。 -4. 在这个时候,一个挖矿节点将几十或上百个交易请求汇总到潜在[区块](/developers/docs/blocks/)中,从而尽量多收取[交易](/developers/docs/gas/)手续费,同时保证不超出区块 gas 限制。 采矿节点将: +4. 在这个时候,一个挖矿节点将几十或上百个交易请求汇总到潜在[区块](/developers/docs/blocks/)中,从而尽量多收取[交易](/developers/docs/gas/)手续费,同时保证不超出区块燃料限制。 采矿节点将: 1. 验证每个交易请求的有效性(例如没有人试图将以太币从他们没有签名的帐户中转移出来,请求是否有格式错误等),然后执行请求的本地代码,改变本地副本 EVM 的状态。 矿工获得每个交易请求的转账的手续费到他们的帐户。 2. 一旦在本地 EVM 副本上验证并执行了块中的所有转账请求,就开始为潜在块生成工作证明“合法性证书”。 5. 最终,矿工将完成为包含我们特定交易请求的区块生成的证书。 然后,矿工广播完成的区块,其中包括证书和校验新 EVM 状态。 @@ -56,7 +56,7 @@ lang: zh 每个交易都只会被挖矿(首次包含在新区块中并传播)一次,但在推进规范以太坊虚拟机状态的过程中,每个参与者都会执行和验证交易。 这凸显出区块链的核心准则之一:**不信任,就验证**。 -## 直观演示 {#a-visual-demo} +## 视频演示 {#a-visual-demo} 跟随 Austin 了解挖矿和工作量证明区块链。 @@ -64,9 +64,9 @@ lang: zh ## 挖矿算法 {#mining-algorithm} -以太坊挖矿算法自问世以来经历了数次升级。 最初的算法“Dagger Hashimoto”的本质是提出一个大型、瞬时、随机产生的数据集,形成[有向无环图](https://en.wikipedia.org/wiki/Directed_acyclic_graph)(即 Dagger 算法)。矿工们试图解决针对数据集的特定约束,这在一定程度上取决于区块头哈希值。 这种算法是新颖的,因为它有很高的内存访问带宽要求,但可以使用普通处理器来运行,这使得这种算法对 GPU 友好,且不欢迎以专用集成电路为目标的硬件装备竞赛(会导致中心化风险)(更多有关[专用集成电路相关问题的信息](https://www.investopedia.com/investing/why-centralized-crypto-mining-growing-problem/))。 在经过几次升级之后,该算法被重命名为"Etash"。 这次重命名发生在以太坊主网开始出现挖矿之前。 Dagger-Hashimoto 算法是一个雏形,这种研究性质的算法未在以太坊主网应用。 +以太坊主网只使用过一种挖矿算法 - [“Ethash”](/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/ethash)。 Ethhash 是称为[“Dagger-Hashamoto”](/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/dagger-hashamoto)的最初研发挖矿算法的继承者。 -想了解更多有关这些挖矿算法的信息,请参阅我们的[挖矿算法页面](/developers/docs/consensus-mechanisms/pow/mining-algorithms/)。 +[有关挖矿算法的更多信息](/developers/docs/consensus-mechanisms/pow/mining-algorithms/)。 ## 延伸阅读 {#further-reading} @@ -80,6 +80,6 @@ lang: zh ## 相关主题 {#related-topics} -- [Gas](/developers/docs/gas/) -- [EVM](/developers/docs/evm/) +- [燃料](/developers/docs/gas/) +- [以太坊虚拟机](/developers/docs/evm/) - [工作量证明](/developers/docs/consensus-mechanisms/pow/) diff --git a/src/content/translations/zh/developers/docs/dapps/index.md b/src/content/translations/zh/developers/docs/dapps/index.md index 118e1dffdb3..ec63a358b32 100644 --- a/src/content/translations/zh/developers/docs/dapps/index.md +++ b/src/content/translations/zh/developers/docs/dapps/index.md @@ -38,7 +38,7 @@ dapp 可以用任何语言编写(就像是一个 app)。它有前端代码 ## Dapp 开发的缺陷 {#drawbacks-of-dapp-development} - **维护** – dapp 可能更难维护,因为发布到区块链的代码和数据更难修改。 在部署后,开发人员很难对去中心化应用程序(或其存储的底层数据)进行更新,即使在旧版本中发现了漏洞或安全风险。 -- **性能开销** – 巨大的性能开销,而且难以扩展更多性能。 为了达到以太坊所追求的安全、完整、透明和可靠的水平,每个节点都会运行和存储每一笔交易。 除此之外,工作量证明也需要时间。 粗略计算,开销会达到目前标准计算的 1,000,000 倍左右。 +- **性能开销** – 巨大的性能开销,而且难以扩展更多性能。 为了达到以太坊所追求的安全、完整、透明和可靠的水平,每个节点都会运行和存储每一笔交易。 除此之外,达成权益证明共识也需要时间。 - **网络拥塞** – 至少在当前模型中,如果一个 dapp 使用了太多的计算资源,整个网络都会承担影响。 目前,该网络每秒只能处理约 10 笔交易;如果交易发送的速度超过这个速度,未确认的交易池会迅速膨胀。 - **用户体验** – 设计用户友好的体验可能更难。普通终端用户可能会发现,很难以真正安全的方式设置与区块链互动所需的工具堆栈。 - **集中化** — 无论如何,建立在以太坊基础层之上的用户友好型和开发人员友好型解决方案最终看起来都像集中式服务。 例如,这种服务可以在服务器端存储密钥或其他敏感信息,使用中心化服务器为前端服务,或在写到区块链之前在中心化服务器上运行重要的业务逻辑。 这消除了区块链与传统模式相比的许多(并不是全部)优势。 @@ -70,7 +70,7 @@ dapp 可以用任何语言编写(就像是一个 app)。它有前端代码 ## 延伸阅读 {#further-reading} -- [The Architecture of a Web 3.0 application](https://www.preethikasireddy.com/post/the-architecture-of-a-web-3-0-application) - _Preethi Kasireddy_ +- [Web 3.0 应用程序架构](https://www.preethikasireddy.com/post/the-architecture-of-a-web-3-0-application) - _Preethi Kasireddy_ - [A 2021 guide to decentralized applications](https://limechain.tech/blog/what-are-dapps-the-2021-guide/) - _LimeChain_ - [What Are Decentralized Apps?](https://www.gemini.com/cryptopedia/decentralized-applications-defi-dapps) - _Gemini_ diff --git a/src/content/translations/zh/developers/docs/data-and-analytics/block-explorers/index.md b/src/content/translations/zh/developers/docs/data-and-analytics/block-explorers/index.md index d4f6dcaf53c..5e8960d1a5d 100644 --- a/src/content/translations/zh/developers/docs/data-and-analytics/block-explorers/index.md +++ b/src/content/translations/zh/developers/docs/data-and-analytics/block-explorers/index.md @@ -7,268 +7,236 @@ sidebarDepth: 3 区块浏览器是您进入以太坊数据世界的大门。 您可以通过区块浏览器来查看实时的区块、交易、矿工、帐户以及其他的链上相关活动。 -## 先决条件 {#prerequisites} +## 前提条件 {#prerequisites} 您应该理解以太坊的基本概念,以便您能够理解区块浏览器向您展示的数据。 开始[介绍以太坊](/developers/docs/intro-to-ethereum/)。 ## 服务 {#services} -- [Etherscan](https://etherscan.io/) – _中文、韩文、俄文和日文_ +- [Etherscan](https://etherscan.io/) -_ 还支持中文、韩语、俄语和日语_ - [Etherchain](https://www.etherchain.org/) -- [Ethplorer](https://ethplorer.io/) -_ 支持中文、西班牙语、法语、土耳其语、俄语、韩语和越南语_ -- [Blockchair](https://blockchair.com/ethereum) --_也有西班牙文、法文、意大利文、荷兰文、葡萄牙文、俄文、中文和波斯文_ +- [Ethplorer](https://ethplorer.io/) -_ 还支持中文、西班牙语、法语、土耳其语、俄语、韩语和越南语_ +- [Blockchair](https://blockchair.com/ethereum) -_ 还支持西班牙语、法语、意大利语、荷兰语、葡萄牙语、俄语、中文和波斯语_ - [Blockscout](https://blockscout.com/) - [OKLink](https://www.oklink.com/eth) +- [Otterscan](https://otterscan.io/) ## 数据 {#data} -以太坊从设计上是透明的,所有信息都可以验证。 区块浏览器为获取这些信息提供了一个界面。 这适用于以太坊的主网络和测试网,如果您需要这些数据的话。 +以太坊从设计上是透明的,所有信息都可以验证。 区块浏览器为获取这些信息提供了一个界面。 这适用于以太坊的主网络和测试网,如果您需要这些数据的话。 数据被分为执行数据和共识数据。 执行数据指已在一个特定区块内执行的交易。 共识数据指区块本身以及提出它们的验证者们。 以下是您可以从区块浏览器获得的数据类型概要。 -### 区块 {#blocks} +### 执行数据 {#execution-data} -每隔 12 秒就会有新的区块添加到以太坊(这个时间可能会波动),因此有几乎恒定的数据流被添加到区块浏览器中。 区块里面包含着许多您可能会觉得有用的重要数据: +每隔 12 秒就会有新的区块被添加到以太坊(除非区块提议者错过了提议机会),因此有几近稳定的数据流被添加到区块浏览器中。 区块里面包含着许多您可能会觉得有用的重要数据: -**常规数据** +**标准数据** -- 区块高度 – 创建当前区块时区块链的区块数量和长度(以区块为单位)。 -- 时间戳 – 矿工开采该区块的时间。 -- 交易 – 一个区块包含的交易数量。 -- 矿工 – 挖掘出当前区块的矿工地址。 -- 奖励 – 为添加该区块授予矿工的 ETH 数量(标准 2ETH 奖励 + 区块中包含的交易的任何交易费用)。 -- 难度 – 与开采区块相关的难度。 -- 大小 – 区块中数据的大小(以字节为单位)。 -- 消耗的 Gas – 区块中交易消耗的 Gas 的总单位。 -- Gas 限制 – 区块中的交易设置的总 Gas 限制。 -- 额外数据 – 矿工已 ​​ 附加在区块中的任何额外数据。 +- 区块高度 – 区块编号以及创建当前区块时的区块链长度(以区块为单位) +- 时间戳 - 区块提议的时间 +- 交易 – 区块中包含的交易数量 +- 交易费接收人 - 从交易中获取燃料费小费的地址 +- 区块奖励 - 奖励给提议该区块的验证者的以太币数额 +- 大小 - 区块内的数据大小(以字节为单位) +- 消耗的燃料 – 区块中的交易消耗的燃料单位总数 +- 燃料限制 – 区块中的交易设置的总燃料限制 +- 燃料基础费 - 要将交易纳入区块所需的最小倍数 +- 燃烧的费用 - 在区块内被燃烧的以太币数量 +- 其它数据 – 任何由矿工加入区块的额外数据 **高级数据** -- 哈希值 – 代表区块头的加密哈希值(区块的唯一标识符)。 -- 父哈希 – 前一个区块的哈希值。 -- Sha3Uncles – 个给定的父节点所有叔块的散列组合。 -- StateRoot – Merkle trie 的根哈希,存储系统的整个状态。 -- Nonce – 一个用于显示矿工对区块的工作量证明的值。 - -**叔块** - -当两个矿工几乎同时创建区块时,就会创建叔块 – 在这些节点中只有一个区块有效。 叔块不会打包到区块链上,但是矿工仍然会因为其所做的工作量得到奖励。 - -区块浏览器提供关于叔块的信息,如: +- 哈希 - 表示区块头的加密哈希(区块的唯一标识符) +- 父哈希 - 当前区块的前一个区块的哈希 +- 状态根 – 存储整个系统状态的默克尔前缀树的根哈希。 -- 叔块数字。 -- 发生时间。 -- 它们被创建时的块高度。 -- 谁开采它。 -- ETH 奖励。 +### 燃料 {#gas} -### Gas {#gas} +区块浏览器不仅会为你提供有关交易和区块中的燃料使用量的数据,还会为您提供有关网络当前燃料价格的信息。 这将帮助你了解网络使用情况,提交安全的交易和避免燃料超支。 寻找可以帮助你将这些信息获取到你自己的产品界面的应用程序接口。 燃料特定的数据涵盖: -区块浏览器不仅会为您提供有关交易和区块中 Gas 使用量的数据,而且还会为您提供有关网络当前 Gas 价格的信息。 这将帮助您了解网络使用情况,提交安全的交易和不超支的 Gas。 寻找可以帮助您将这些信息获取到您自己的产品界面的 API。 Gas 特定数据涵盖: - -- 安全但缓慢的交易所需的估计 Gas 单位(+估计价格和持续时间)。 -- 平均交易所需的估计 Gas 单位(+估计价格和持续时间)。 -- 快速交易所需的估计 Gas 单位(+估计价格和持续时间)。 -- 基于 gas 价格的平均确认时间。 -- 消耗 gas 的合约 – 换句话说,在网络上有大量使用的流行应用。 -- 正在消费 Gas 的帐户 – 换句话说,就是频繁使用网络的用户。 +- 安全但缓慢的交易所需的估计燃料单位数(以及估计的价格和持续时间) +- 一般交易所需的估计燃料单位数(以及估计的价格和持续时间) +- 快速交易所需的估计燃料单位数(以及估计的价格和持续时间) +- 基于燃料价格的平均确认时间 +- 正在消耗燃料的合约 – 换句话说,正在网络上大量使用的流行产品 +- 正在消费燃料的帐户 – 换句话说,频繁使用网络的用户 ### 交易 {#transactions} -区块浏览器已成为人们跟踪交易进度的常见应用, 这是因为您可以获得的详细程度提供了更多的确定性。 交易数据包含: +区块浏览器已成为人们跟踪交易进度的常用位置, 这是因为你可以获得的详细程度提供了额外的确定性。 交易数据包含: **标准数据** -- 交易哈希 – 交易被提交时生成的哈希值。 -- 状态 – 指示交易是等待、失败还是成功。 -- 区块 – 包含交易的区块。 -- 时间戳 – 矿工开采交易的时间。 -- 发件人 – 提交交易的帐户的地址。 -- 收件人 – 与交易进行交互的收件人或智能合约的地址。 -- 被转移的代币 – 作为交易的一部分被转移的代币列表。 -- 价值 – 被转移的全部 ETH 的价值。 -- 交易费用 – 支付给矿工处理交易的金额(以 gas 价格\ \*消耗的 gas 计算)。 +- 交易哈希 – 交易被提交时生成的哈希 +- 状态 – 指示交易是待处理、失败还是成功 +- 区块 – 包含该交易的区块 +- 时间戳 – 矿工开采交易的时间 +- 发送者 – 提交交易的帐户的地址 +- 接收者 – 与交易交互的接收者或智能合约的地址 +- 转移的代币 – 作为交易的一部分被转移的代币列表 +- 价值 – 被转移的全部以太币价值 +- 交易费用 – 支付给矿工处理交易的金额(根据燃料价格\*使用的燃料计算) **高级数据** -- Gas 限制 – 此交易可以消耗的最大 gas 单位数。 -- 消耗的 Gas – 交易消耗的实际 gas 单位数量。 -- Gas 价格 – 每 gas 单位设定的价格。 -- Nonce – `发件人`地址的交易号(请记住,它从 0 开始,所以`100`的现时数实际上是该帐户提交的第 101 个交易。 -- 输入数据 – 交易所需的任何额外资料。 +- 燃料限制 – 此交易可以消耗的最大燃料单位数 +- 消耗的燃料 – 交易消耗的实际燃料单位数量 +- 燃料价格 – 每燃料单位设定的价格 +- 随机数 – `from` 地址的交易号(请记住,它从 0 开始,所以随机数 ` 100` 实际上是该帐户提交的第 101 个交易 +- 输入数据 – 交易所需的任何额外信息 ### 帐户 {#accounts} -您可以访问一个帐户的很多数据。 这就是为什么建议用多个帐户来操作,这样您的资产和价值传输才不会轻易地被追踪。 还有一些解决方案正在开发之中,以使交易和帐户活动更加具备隐私保护。 以下是帐户可用的数据: +你可以访问关于帐户的很多数据。 这就是为什么建议使用多个帐户,这样你的资产和价值传输才不会轻易地被追踪。 还有一些解决方案正在开发之中,以使交易和帐户活动更加隐秘。 以下是帐户的可用数据: **用户帐户** -- 帐户地址 – 您可以用来发送资金的公共地址。 -- ETH 余额 – 与该帐户相关联的 ETH 金额。 -- 总 ETH 值 – ETH 的值。 -- 代币 – 与帐户关联的代币及其价值。 -- 交易历史 – 该帐户发送和接受的交易历史列表。 +- 帐户地址 - 你可以用来向其发送资金的公共地址 +- 以太币余额 - 与该账户关联的以太币金额 +- 总以太币价值 - 以太币的价值 +- 代币 - 与帐户关联的代币及其价值 +- 交易历史 - 此帐户为发送者或接收者的所有交易的列表 **智能合约** -智能合约帐户拥有用户帐户将拥有的所有数据,但一些区块浏览器甚至还会显示一些代码信息。 比如如下实例: +智能合约帐户拥有用户帐户将拥有的所有数据,但一些区块浏览器甚至还会显示一些代码信息。 例如: -- 合约创建者 – 将合约部署到主网的外部帐户地址。 -- 合约创建交易 – 在主网包含此次合约部署的交易。 -- 源代码 – solidity 和 vyper 的智能合约源代码。 -- 合约 ABI – 合约的应用二进制接口 - 合约调用和接收的数据。 -- 合约创建代码 – 合约编译后的字节码 - 当您写完 solidity 和 vyper 并且编译后生成。 -- 合约事件 – 合约调用方法的历史记录, 基本上用于查看合约如何使用以及被调用的频率。 +- 合约创建者 - 将合约部署到主网的地址 +- 创建交易 - 包括部署到主网的交易 +- 源代码 - 智能合约的 solidity 或 vyper 代码 +- 合约 ABI - 合约的应用程序二进制接口 — 合约发出的调用和接收到的数据 +- 合约创建代码 - 智能合约的编译字节码 — 在你编译使用 Solidity 或 Vyper 等编写的智能合约时创建 +- 合约事件 - 智能合约中调用的方法的历史 — 基本上是一种查看合约如何使用以及使用频率的方法 ### 代币 {#tokens} -代币合约是合约的一种类型,所以他们会有类似于合约的数据。 但是因为它们有价值并且可以交易,所以它们还有其他数据点: +代币是一种合约,因此它们将具有与智能合约相似的数据。 但是因为它们有价值并且可以交易,所以它们还有其他数据点: -- 类型 – 它们是 ERC-20、ERC-721 或其他代币标准。 -- 价格 – 如果是 ERC-20,它们将具有当前的市场价值。 -- 市值 – 如果它们是 ERC-20,则将具有市值(由价格\ \*总供应量计算)。 -- 总供应量 – 流通的代币数量。 -- 持有人 – 持有代币的地址数。 -- 转账 – 代币在帐户之间转账的次数。 -- 交易历史记录 – 包括代币在内的所有交易的历史记录。 -- 合约地址 – 部署到主网的代币的地址。 -- 小数位 – ERC-20 代币是可分割的,并具有小数位。 +- 类型 - 遵循 ERC-20、ERC-721 还是其他代币标准 +- 价格 - 如果是 ERC-20 代币,则具有当前市场价值 +- 市值 - 如果是 ERC-20,则将有一个市值(根据价格\*总供应量计算) +- 总供应量 - 流通中的代币数量 +- 持有者 - 持有代币的地址数量 +- 转账 - 代币在帐户之间转移的次数 +- 交易历史 - 包括代币在内的所有交易的历史 +- 合约地址 - 部署到主网的代币的地址 +- 小数 - ERC-20 代币可分割并且有小数位 ### 网络 {#network} -当然,有些数据说明了网络的健康状况。 这些是专门针对以太坊的工作量证明共识机制的。 当以太坊过渡到权益证明阶段时,某些数据将冗余 +一些区块数据更全面地关注以太坊的健康状况。 -- 难度 – 当前的采矿难度。 -- 哈希率 – 对试图解决当前以太坊区块或任何给定区块的以太坊矿工正在生成多少哈希的估计。 -- 总交易数 – 自以太坊创建以来的交易数。 -- 每秒交易数 – 每秒钟内可处理的交易次数。 -- ETH 价格 – 1 ETH 的当前价值。 -- 以太坊总供应量 – 流通中的以太坊数量 – 请记住,以区块奖励的形式创建每个区块都会创建新的 ETH。 -- 市值 – 以价格\ \*供应量计算。 +- 总交易量 - 自以太坊创建以来的交易数量 +- 每秒交易数 - 每秒可处理的交易数 +- 以太币价格 - 1 个以太币的当前市场价 +- 以太币总供应量 - 流通中的以太币数量 — 请记住,新的以太币是随着每个区块的创建而以区块奖励的形式创建的 +- 市值 - 价格\*供应量的计算结果 ## 共识层数据 {#consensus-layer-data} -以太坊扩容升级仍在开发中,但区块浏览器为您提供的数据点值得一看。 事实上,所有这些数据现在都可用于测试网。 - -如果您不熟悉以太坊共识层路线图,请查看[以太坊升级概述](/upgrades/) 。 - -### Epoch {#epoch} - -信标链将创建多个验证委员会。出于安全考虑,在每个周期(每 6.4 分钟)结束时会随机分配验证者到委员会中。 Epoch 数据包含: - -- Epoch 号: -- 最终状态 – 周期是否完成(是/否)。 -- 时间 - epoch 结束的时间。 -- 区块认证 - epoch 中的区块认证次数(slot 内区块的投票)。 -- 存款 - 特定 epoch 包含的 ETH 存款的数量(验证者必须质押 ETH 才能成为验证者)。 -- 惩罚 - 对区块的提出者或证明人的惩罚数。 -- 投票参与 - 用于证明区块的抵押 ETH 数量。 -- 验证者 - 在特定 epoch 活跃的验证者数量。 -- 平均验证者余额 - 活动验证者的平均余额。 -- Slot - epoch 中包含的 slot 数(slot 包括一个有效区块)。 - -### Slot {#slot} - -Slot 是区块创建的机会,每个 slot 可用的数据包括: - -- Epoch - slot 有效的 epoch。 -- Slot 号。 -- 状态 - slot 的状态(提议/缺失)。 -- 时间 - slot 的时间戳。 -- 提议者 - 提议 slot 的验证者。 -- 区块根 - 信标块的哈希树根。 -- 父根 - 以前块的哈希。 -- 状态根 - 信标状态的哈希树根。 -- 签名。 -- Randao reveal。 -- Graffiti - 区块提议者可以在其区块提议中包含 32 个字节长的消息。 -- 执行数据。 - - 区块哈希。 - - 存款余额。 - - 存款根。 -- 区块认证 – 此 Slot 中该区块的认证数量。 -- 存款者 - 此 Slot 内的存款数量。 -- 自愿退出 - Slot 中退出的验证者数量。 -- 惩罚 - 对区块的提出者或证明人的惩罚数。 -- 投票 - 验证者在此 Slot 为该区块投票。 +### 时段 {#epoch} + +出于安全原因,在每个时段(每 6.4 分钟)结束时都会创建随机化验证者委员会。 时段数据包含: + +- 时段编号 +- 最终状态 - 时段是否已经完成(是/否) +- 时间 - 时段结束的时间 +- 认证 - 时段中的认证数量(针对时隙内区块的投票) +- 存款 - 时段内包含的以太币存款数量(验证者必须质押以太币才能成为验证者) +- 罚没 - 对区块提议者或证明者的惩罚数量 +- 投票参与 - 用于证明区块的质押以太币数量 +- 验证者 - 该时段活跃的验证者数量 +- 平均验证者余额 - 活跃验证者的平均余额 +- 时隙 - 时段内包含的时隙数量(时隙包含一个有效区块) + +### 时隙 {#slot} + +时隙是创建区块的机会,每个时隙的可用数据包括: + +- 时段 - 时隙有效的时段 +- 时隙编号 +- 状态 - 时隙的状态(提议/缺失) +- 时间 - 时隙的时间戳 +- 提议者 - 为该时隙提议区块的验证者 +- 区块根 - 信标区块的哈希树根 +- 父根 - 前一个区块的哈希 +- 状态根 - 信标状态的哈希树根 +- 签名 +- Randao 揭示 +- 涂鸦 - 区块提议者可以在其区块提议中包含 32 个字节长的消息 +- 执行数据 + - 区块哈希 + - 存款计数 + - 存款根 +- 认证 – 该区块在此时隙中的认证数量 +- 存款 - 此时隙内的存款数量 +- 自愿退出 - 此时隙中退出的验证者数量 +- 罚没 - 对区块提议者或证明者的惩罚数量 +- 投票 - 在此时隙中为区块投票的验证者 ### 区块 {#blocks-1} -在共识层中,区块的工作方式不同,因为矿工被验证者取代,而信标链将时隙和周期引入了以太坊。 这意味着新的数据! +权益证明将时间划分为时隙和时段。 这意味着新的数据! -- 提议者 - 在算法上选择提议新区块的验证者。 -- Epoch - 提出该区块的 Epoch。 -- Slot - 区块被提议的 Slot。 -- 区块认证 - Slot 中包含的区块认证数量, 区块认证就像投票一样,表明该区块已准备好进入信标链。 +- 提议者 - 经算法选择提议新区块的验证者。 +- 时段 - 提议区块的时段。 +- 时隙 - 提议区块的时隙。 +- 认证 - 时隙中包含的认证数量 — 认证同投票一样,表明区块已准备号进入信标链 ### 验证者 {#validators} -验证者负责提出区块并在 Slot 中对其进行证明。 - -- 验证者编号 - 代表验证者的唯一编号。 -- 当前余额 - 验证者包含奖励在内的余额。 -- 有效余额 - 验证者用于质押的余额。 -- 收入 - 验证者收到的奖励或惩罚。 -- 状态 - 验证者当前是否在线和活动。 -- 区块认证有效性 - 将验证者的区块认证纳入链中平均需要的时间。 -- 激活资格 - 验证者可用来验证的日期(和 epoch)。 -- 活动开始时间 - 验证者开始激活的日期(和 epoch)。 -- 已提交区块 - 验证者已经提交的区块数量。 -- 区块认证数量 - 验证者已经提供的区块认证数量。 -- 存款 - 来自地址、交易哈希、区块号码、时间戳、金额和由验证者进行的质押存款状态。 - -### 区块认证 {#attestations} - -区块认证就像是投票标记“是”将区块加入到链上, 这些数据关联到区块认证的历史以及哪个验证者已经证明。 - -- Slot - 区块认证发生的 Slot。 -- 委员会索引 - 给定 Slot 的委员会索引。 -- 聚合位 - 代表所有参与验证者在区块认证中的聚合证明。 -- 验证者 - 提供认证的验证者。 -- 信标链根 - 指向验证者正在证明的区块。 -- 来源 – 指向最新的更正后的 epoch。 -- 目标 - 指向最新 epoch 边界。 -- 签名。 +验证者负责提议区块并在时隙中对区块进行证明。 + +- 验证者编号 - 代表验证者的唯一编号 +- 当前余额 - 验证者包括奖励在内的余额 +- 有效余额 - 验证者用于质押的余额 +- 收入 - 验证者收到的奖励或惩罚 +- 状态 - 验证者当前是否在线和是否活跃 +- 认证有效性 - 将验证者的认证纳入链中的平均时间 +- 激活资格 - 验证者被激活用于验证的日期(和时段) +- 活跃开始时间 - 验证者激活的日期(和时段) +- 提议的区块 - 验证者提议的区块 +- 认证 - 验证者提供的认证 +- 存款 - 验证人质押存款的发送者地址、交易哈希、区块号、时间戳、金额和状态 + +### 认证 {#attestations} + +认证就像是投票“同意”将区块加入到链中。 它们的数据与认证记录和做证明的验证者有关。 + +- 时隙 - 进行认证的时隙 +- 委员会索引 - 给定时隙的委员会索引 +- 聚合位 - 表示认证中所有参与验证者的聚合认证 +- 验证者 - 提供认证的验证者 +- 信标区块根 - 指向验证者正在证明的区块 +- 来源 - 指向最新的合理化时段 +- 目标 - 指向最新的时段边界 +- 签名 ### 网络 {#network-1} -共识层顶级数据包括以下内容: +共识层最高层数据包括以下内容: -- 当前 epoch。 -- 当前 Slot。 -- 活跃的验证者 - 活跃的验证者数量。 -- 等待验证者 - 等待激活的验证者数量。 -- 已质押的 ETH - 质押到网络的 ETH 数量。 -- 平均余额 - 验证者的平均 ETH 余额。 +- 当前时段 +- 当前时隙 +- 活跃验证者 - 活跃验证者的数量 +- 待定验证者 - 等待激活的验证者数量 +- 质押的以太币 - 网络中质押的以太币金额 +- 平均余额 - 验证者的平均以太币余额 ## 区块浏览器 {#block-explorers} -- [Etherscan](https://etherscan.io/) - 一个您可以用来获取以太坊主网、Ropsten Testnet、Kovan Testnet、Rinkeby Testnet 和 Goerli Testnet 数据的区块浏览器。 -- [Blockscout](https://blockscout.com/) - 主要关注以下网络: - - xDai - MakerDAO 的 DAI 稳定币与 POA 的侧链和代币桥技术的巧妙结合。 - - POA - 由一组可信验证者保护的侧链和自治网络。 网络上的所有验证者均为可信公众人,其信息可公开获得。 - - POA Sokol 测试网。 - - ARTIS - 以太坊兼容的区块链。 - - [LUKSO L14](https://blockscout.com/lukso/l14) - L14 充当第一个测试网络,以允许 LUKSO 社区在通用基础结构上进行构建和测试。 - - qDai -- [Etherchain](https://www.etherchain.org/) - 以太坊主网的区块浏览器。 -- [Ethplorer](https://ethplorer.io/) - 一个专注于以太坊主网和 Kovan 测试网上代币信息的区块浏览器。 -- [Blockchair](https://blockchair.com/ethereum) - 最具隐私保护的以太坊浏览器。 也用于排序和过滤(内存池)数据。 - -## 信标链(共识层)区块浏览器 {#beacon-chain-block-explorers} - -- [https://beaconcha.in/](https://beaconcha.in/) -- [https://beaconscan.com/](https://beaconscan.com/) -- [https://ethscan.org/](https://ethscan.org/)(beaconcha.in 的分叉) +- [Etherscan](https://etherscan.io/) - 一个你可以用来获取以太坊主网、Ropsten 测试网、Kovan 测试网、Rinkeby 测试网和 Goerli 测试网数据的区块浏览器。 +- [Etherchain](https://www.etherchain.org/) - 以太坊主网的区块浏览器 +- [Ethplorer](https://ethplorer.io/) - 专注于以太坊主网和 Kovan 测试网代币的区块浏览器 +- [Blockchair](https://blockchair.com/ethereum) - 最具隐私保护的以太坊浏览器。 也用于排序和过滤(内存池)数据 ## 延伸阅读 {#further-reading} -_还有哪些社区资源对您有所帮助? 请编辑本页面并添加它!_ +_还有哪些社区资源对你有所帮助? 编辑本页面以添加!_ ## 相关主题 {#related-topics} -- [矿工](/developers/docs/consensus-mechanisms/pow/mining/) - [交易](/developers/docs/transactions/) - [帐户](/developers/docs/accounts/) - [网络](/developers/docs/networks/) diff --git a/src/content/translations/zh/developers/docs/data-and-analytics/index.md b/src/content/translations/zh/developers/docs/data-and-analytics/index.md index 3d62adf78a9..d74b450d65e 100644 --- a/src/content/translations/zh/developers/docs/data-and-analytics/index.md +++ b/src/content/translations/zh/developers/docs/data-and-analytics/index.md @@ -1,35 +1,45 @@ --- -title: 数据和分析 +title: 数据和分析学 description: 如何获取在链分析和数据以用于您的去中心化应用程序。 lang: zh --- -## 简介 {#Introduction} +## 介绍 {#Introduction} 随着网络利用率不断提高,链上数据中将有越来越多的宝贵信息。 随着数据量的迅速增加,计算和汇总此信息以报告或驱动一个去中心化应用程序可能变成很费时间和体力的过程。 利用现有数据提供商可以加快发展,产生更准确的结果,并减少正在进行的维护工作。 这将使一个团队能够集中精力处理试图在项目中提供的核心功能。 -## 前体条件 {#prerequisites} +## 前提条件 {#prerequisites} 您应该理解[区块浏览器](/developers/docs/data-and-analytics/block-explorers/) 的基本概念,以便更好地理解在数据分析环境中使用它们。 此外,熟悉[索引](/glossary/#index)概念,以了解它们给系统设计带来的好处。 就架构基础而言,也要从理论上了解[应用程序接口](https://www.wikipedia.org/wiki/API)和 [REST](https://www.wikipedia.org/wiki/Representational_state_transfer) 是什么。 -## 图表 {#the-graph} +## 区块浏览器 {#block-explorers} + +许多[区块浏览器](/developers/docs/data-and-analytics/block-explorers/)提供 [RESTful](https://www.wikipedia.org/wiki/Representational_state_transfer) [应用程序接口](https://www.wikipedia.org/wiki/API)网关,它将使开发者可以看见区块上的实时数据、交易、矿工、帐户和其他链上活动。 + +然后开发者可以处理和转换此数据,让他们的用户有独特的洞察力并与[区块链](/glossary/#blockchain)交互。 例如,[Etherscan](etherscan.io) 为每个 12 秒时隙提供了执行和共识数据。 + +## Graph {#the-graph} [Graph 网络](https://thegraph.com/)是用于组织区块链数据的去中心化索引协议。 通过 Graph 网络,开发者可以建立完全在公共基础设施上运行的无服务器应用程序,而不是建立和管理链外和集中的数据存储来聚合链上数据。 -使用 [GraphQL](https://graphql.org/),开发人员可以查询任何管理的开放应用程序接口(被称为子图表),以获得必要的信息来驱动他们的应用程序。 通过查询这些索引子图表,报告和去中心化应用程序不仅能够提高性能和可扩展性,而且能够通过网络共识准确地构建。 当网络中新增改进和/或子图表时,您的项目可以快速迭代,利用这些增强功能。 +使用 [GraphQL](https://graphql.org/),开发人员可以查询任何管理的开放应用程序接口(称为子图),以获取驱动去中心化应用程序所需的信息。 通过查询这些索引子图,报告和去中心化应用程序不仅可以获得性能和可扩展性优势,还可以获得网络共识提供的内置准确性。 当网络中新增改进和/或子图表时,你的项目可以快速迭代,以利用这些增强功能。 -## 区块浏览器 {#block-explorers} +## 客户端多样性 + +[客户端多样性](/developers/docs/nodes-and-clients/client-diversity/)对于以太坊网络的整体健康很重要,因为它提供了对错误和漏洞利用的弹性。 现在有多个客户端多样性仪表板,包括 [clientdiversity.org](https://clientdiversity.org/)、[rated.network](rated.network)、[pool.invis.cloud](pool.invis.cloud)、[slashed.info](slahed.info) 和 [Ethernodes](https://ethernodes.org/)。 -许多[区块浏览器](/developers/docs/data-and-analytics/block-explorers/)提供 [RESTfify](https://www.wikipedia.org/wiki/Representational_state_transfer) [应用程序接口](https://www.wikipedia.org/wiki/API)网关,它将使开发者可以看见区块上的实时数据、交易、矿工,帐户和其他链上活动。 +## Dune Analytics {#dune-analytics} -开发者然后可以处理和转换此数据,让他们的用户有独特的洞察力并与[区块链](/glossary/#blockchain)交互。 +[Dune Analytics](https://dune.com/) 对区块链数据进行预处理,并存入关系型数据库(PostgreSQL 和 DatabricksSQL)表中,以便用户可以使用结构化查询语言 (SQL) 查询区块链数据并基于查询结果构建仪表板。 链上数据被组织为 4 个原始表:`blocks`、`transactions`、(事件)`logs` 和(调用)`traces`。 常见的合约和协议都已解码,并且每个都有自己的事件集和调用表。 这些事件和调用表被进一步处理并按协议类型组织成抽象表,例如 DEX、借贷、稳定币等。 -## 了解更多 {#further-reading} +## 延伸阅读 {#further-reading} - [Graph 网络概览](https://thegraph.com/docs/en/about/network/) - [Graph 查询实战](https://thegraph.com/explorer/subgraph/graphprotocol/graph-network-mainnet?version=current) - [EtherScan 上的应用程序接口代码示例](https://etherscan.io/apis#contracts) +- [Beaconcha.in 信标链浏览器](https://beaconcha.in) +- [Dune 基础知识](https://docs.dune.com/#dune-basics) diff --git a/src/content/translations/zh/developers/docs/data-structures-and-encoding/index.md b/src/content/translations/zh/developers/docs/data-structures-and-encoding/index.md index 639fa654dac..0219b3eaf35 100644 --- a/src/content/translations/zh/developers/docs/data-structures-and-encoding/index.md +++ b/src/content/translations/zh/developers/docs/data-structures-and-encoding/index.md @@ -2,7 +2,6 @@ title: 数据结构与编码 description: 以太坊基础数据结构概览。 lang: zh -sidebar: true sidebarDepth: 2 --- diff --git a/src/content/translations/zh/developers/docs/data-structures-and-encoding/patricia-merkle-trie/index.md b/src/content/translations/zh/developers/docs/data-structures-and-encoding/patricia-merkle-trie/index.md index 9acd3c88f0d..1e24e8d14df 100644 --- a/src/content/translations/zh/developers/docs/data-structures-and-encoding/patricia-merkle-trie/index.md +++ b/src/content/translations/zh/developers/docs/data-structures-and-encoding/patricia-merkle-trie/index.md @@ -2,7 +2,6 @@ title: 帕特里夏默克尔树 description: 帕特里夏默克尔树简介。 lang: zh -sidebar: true sidebarDepth: 2 --- @@ -179,7 +178,7 @@ sidebarDepth: 2 hashE: [ <17>, [ <>, <>, <>, <>, <>, <>, [ <35>, 'coin' ], <>, <>, <>, <>, <>, <>, <>, <>, <>, 'puppy' ] ] ``` -当一个节点在另一个节点中被引用时,包含的是 `H(rlp.encode(x))`,其中 `H(x) = keccak256(x) if len(x) > > = 32 else x` 和 `rlp.encode` 是[递归长度前缀](/developers/docs/data-structures-and-encoding/rlp)编码函数。 +当一个节点在另一个节点中被引用时,包含的是 `H(rlp.encode(x))`,其中 `H(x) = keccak256(x) if len(x) > > = 32 else x` 和 `rlp.encode` 是[递归长度前缀](/fundamentals/rlp)编码函数。 请注意,更新前缀树时,*如果*新创建节点的长度 >= 32,则需要将键/值对 `(keccak256(x), x)` 存储在一个持久的查询表中。 然而,如果节点比这短,则不需要存储任何数据,因为函数 f(x) = x 是可逆的。 @@ -246,7 +245,7 @@ else: ### 收据树 {#receipts-trie} -每个区块都有自己的收据树。 此处的 `path` 是:`rlp(transactionIndex)`。 `transactionIndex` 是它在挖矿区块中的索引。 收据树不会更新。 与交易树类似,也有当前和遗留的收据。 要查询收据树中的特定收据,需要区块中的交易索引、收据有效载荷和交易类型。 返回的收据可以是 `Receipt` 类型,定义为 `transaction type` 和 `transaction payload` 的串接,也可以是 `LegacyReceipt` 类型,定义为 `rlp([status, cumularGasUsed, logsBloom, logs])`。 +每个区块都有自己的收据树。 此处的 `path` 是:`rlp(transactionIndex)`。 `transactionIndex` 是它在挖矿区块中的索引。 收据树不会更新。 与交易树类似,也有当前和遗留的收据。 要查询收据树中的特定收据,需要区块中的交易索引、收据有效载荷和交易类型。 返回的收据可以是 `Receipt` 类型,定义为 `transaction type` 和 `transaction payload` 的串接,也可以是 `LegacyReceipt` 类型,定义为 `rlp([status, cumulativeGasUsed, logsBloom, logs])`。 关于这个问题的更多信息可以在 [EIP 2718](https://eips.ethereum.org/EIPS/eip-2718) 文档中找到。 diff --git a/src/content/translations/zh/developers/docs/data-structures-and-encoding/rlp/index.md b/src/content/translations/zh/developers/docs/data-structures-and-encoding/rlp/index.md index cce076758ad..e322070fb1a 100644 --- a/src/content/translations/zh/developers/docs/data-structures-and-encoding/rlp/index.md +++ b/src/content/translations/zh/developers/docs/data-structures-and-encoding/rlp/index.md @@ -2,7 +2,6 @@ title: 递归长度前缀 (RLP) 序列化 description: 以太坊执行层中递归长度前缀 (RLP) 编码的定义。 lang: zh -sidebar: true sidebarDepth: 2 --- diff --git a/src/content/translations/zh/developers/docs/data-structures-and-encoding/ssz/index.md b/src/content/translations/zh/developers/docs/data-structures-and-encoding/ssz/index.md index 14cb26bce17..64750aff9b0 100644 --- a/src/content/translations/zh/developers/docs/data-structures-and-encoding/ssz/index.md +++ b/src/content/translations/zh/developers/docs/data-structures-and-encoding/ssz/index.md @@ -2,7 +2,6 @@ title: 简单序列化 description: 以太坊简单序列化 (SSZ) 格式的说明。 lang: zh -sidebar: true sidebarDepth: 2 --- diff --git a/src/content/translations/zh/developers/docs/development-networks/index.md b/src/content/translations/zh/developers/docs/development-networks/index.md index 7498e2c8e3d..c3fe91d1543 100644 --- a/src/content/translations/zh/developers/docs/development-networks/index.md +++ b/src/content/translations/zh/developers/docs/development-networks/index.md @@ -8,7 +8,7 @@ lang: zh 这和在本地运行一个本地网页服务器相似。为了测试您的去中心化应用程序,您可以使用开发网络创建一个本地的区块链。 这些以太坊开发网络提供了能够比公共测试网更快的迭代功能(例如您不需要从测试网获取以太币)。 -## 先决条件 {#prerequisites} +## 前置要求 {#prerequisites} 您应该先理解[以太坊堆栈](/developers/docs/ethereum-stack/)和[以太坊网络](/developers/docs/networks/)基础知识才能进入开发网络。 @@ -18,7 +18,7 @@ lang: zh **为什么不在本地运行一个标准的以太坊节点?** -您*可以* [运行一个节点](/developers/docs/nodes-and-clients/#running-your-own-node)(例如 Geth、Erigon 或 Nethermind),但由于开发网络是为开发目的而建立的,它们往往会打包一些快捷方便的功能,例如: +你*可以*[运行节点](/developers/docs/nodes-and-clients/#running-your-own-node),但由于开发网络是以开发为目的而建立的,它们往往会打包一些快捷方便的功能,例如: - 为本地区块链提供数据,这个功能很重要(例如使用以太币余额的帐户) - 在接受到每个交易时就立即按顺序和没有延迟地挖掘区块。 @@ -47,11 +47,26 @@ Hardhat 网络内置了安全帽,安全帽是专业人员的以太坊开发环 - [网站](https://hardhat.org/) - [GitHub](https://github.com/nomiclabs/hardhat) +### 本地信标链 {#local-beacon-chains} + +一些共识客户端具有内置工具,用于启动本地信标链以进行测试。 提供了 Lighthouse、Nimbus 和 Lodestar 的说明: + +- [使用 Lodestar 的本地测试网](https://chainsafe.github.io/lodestar/usage/local/) +- [使用 Lightthouse 的本地测试网](https://lighthouse-book.sigmaprime.io/setup.html#local-testnets) +- [使用 Nimbus 的本地测试网](https://github.com/status-im/nimbus-eth1/blob/master/fluffy/docs/local_testnet.md) + +### 公共以太坊测试链 {#public-beacon-testchains} + +当前有三个公共的、用于测试的以太坊实现。 建议使用长期受支持的 Goerli 测试网。 Sepolia 测试网在可预见的将来预期也会一直维护,但其验证者集合是经许可产生的,这意味着此测试网上的新验证者没有一般访问权限。 Ropsten 链预计将被弃用。 + +- [Goerli 质押启动板](https://goerli.launchpad.ethereum.org/) +- [Ropsten 质押启动板](https://ropsten.launchpad.ethereum.org/) + ## 延伸阅读 {#further-reading} -_还有哪些社区资源对您有所帮助? 请编辑本页面并添加!_ +_还有哪些社区资源对你有所帮助? 编辑本页面以添加!_ ## 相关主题 {#related-topics} - [开发框架](/developers/docs/frameworks/) -- [构建您的本地开发环境](/developers/local-environment/) +- [设置本地开发环境](/developers/local-environment/) diff --git a/src/content/translations/zh/developers/docs/ethereum-stack/index.md b/src/content/translations/zh/developers/docs/ethereum-stack/index.md index a10a05a3a95..f8b705104c0 100644 --- a/src/content/translations/zh/developers/docs/ethereum-stack/index.md +++ b/src/content/translations/zh/developers/docs/ethereum-stack/index.md @@ -1,5 +1,5 @@ --- -title: 以太坊技术栈简介 +title: 以太坊堆栈简介 description: 一次从不同层面对以太坊堆栈原理的浏览,并且了解如何让不同的以太坊堆栈融为一体。 lang: zh --- @@ -42,7 +42,7 @@ lang: zh 如果您的面向用户应用程序是一个 web 应用程序,您可以直接选择在您的前端使用 `npm 安装`一个 [JavaScript 应用程序接口](/developers/docs/apis/javascript/)。 或许您会选择使用 [Python](/developers/docs/programming-languages/python/) 或 [Java](/developers/docs/programming-languages/java/) 的应用程序接口在后端实现此功能。 -虽然这些应用程序接口不是栈必须的一部分,但它们抽象并消减了与以太坊节点直接互动的大部分复杂性。 它们还提供实用的函数(例如:将 ETH 转化为 Gwei),而作为开发者,您可以花费更少的时间来处理以太坊客户端的复杂问题,从而将更多的时间集中于处理您的应用程序的独特功能。 +虽然这些应用程序接口不是栈必须的一部分,但它们抽象并消减了与以太坊节点直接互动的大部分复杂性。 它们还提供好用的函数(例如:将 ETH 转化为 Gwei),而作为开发者,您可以花费更少的时间处理以太坊客户端的复杂问题,从而将更多的时间集中于处理您的应用程序的独特功能。 ## 级别 5:终端用户应用程序 {#end-user-applications} diff --git a/src/content/translations/zh/developers/docs/evm/index.md b/src/content/translations/zh/developers/docs/evm/index.md index 739ece3e7c4..8836a551da4 100644 --- a/src/content/translations/zh/developers/docs/evm/index.md +++ b/src/content/translations/zh/developers/docs/evm/index.md @@ -6,15 +6,15 @@ lang: zh EVM 的物理实例不能像人们指向云或海浪那样描述,它是真实*存在*并由数以千计运行以太坊客户端的计算机共同维护的一个实体。 -以太坊协议本身的存在仅仅是为了保持这种特殊状态机的连续、不间断和永久的运行。 这是所有以太坊帐户和智能合约赖以存在的环境。 在链中任何给定的区块上,以太坊只有一个“规范”状态,而 EVM 定义了从一个区块计算产生下一个区块新的有效状态的规则。 +以太坊协议本身的存在仅仅是为了让这个特殊状态机保持连续、不间断和不可变的运行。 以太坊虚拟机是所有以太坊帐户和智能合约依存的环境。 在链上任何给定的区块处,以太坊有且只有一个“规范”状态,而以太坊虚拟机定义从一个区块到另一个区块计算新的有效状态的规则。 ## 前置要求 {#prerequisites} -对计算机科学中常见术语的基本了解,如[字节](https://wikipedia.org/wiki/Byte)、[内存](https://wikipedia.org/wiki/Computer_memory)和[堆栈]()是理解 EVM 的前提。 熟悉诸如 [哈希函数](https://wikipedia.org/wiki/Cryptographic_hash_function)、[工作量证明](https://wikipedia.org/wiki/Proof_of_work)和 [Merkle 树](https://wikipedia.org/wiki/Merkle_tree)等密码学/区块链概念对理解也很有帮助。 +对计算机科学中常见术语的基本了解,如[字节](https://wikipedia.org/wiki/Byte)、[内存](https://wikipedia.org/wiki/Computer_memory)和[堆栈]()是理解 EVM 的前提。 熟悉[哈希函数](https://wikipedia.org/wiki/Cryptographic_hash_function)和[默克尔树](https://wikipedia.org/wiki/Merkle_tree)等密码学/区块链概念也会很有帮助。 ## 从账本到状态机 {#from-ledger-to-state-machine} -通常使用“分布式账簿”的类比来描述像比特币这样的区块链,它使用密码学的基本工具来实现去中心化的货币。 加密货币的行为类似于“正常”货币,这是因为有规则支配着人们可以做什么和不可以做什么来修改账簿。 例如,比特币地址不能花费比之前收到的更多的比特币。 这些规则是比特币和许多其他区块链上所有交易的基础。 +通常使用“分布式账簿”的类比来描述像比特币这样的区块链,它使用密码学的基本工具来实现去中心化的货币。 账本保存着活动记录,而活动必须遵守一套规则,这些规则限制用户在修改账本时可以做什么和不可以做什么。 例如,比特币地址不能花费比之前收到的更多的比特币。 这些规则是比特币和许多其他区块链上所有交易的基础。 虽然以太坊有自己的本机加密货币 (ETH),遵循几乎完全相同的直观规则,但它也支持更强大的功能:[智能合约](/developers/docs/smart-contracts/)。 对于此更复杂的功能,需要一个更复杂的类比。 以太坊不是分布式账本,而是分布式[状态机器](https://wikipedia.org/wiki/Finite-state_machine)。 以太坊的状态是一个大型数据结构,它不仅保存所有帐户和余额,而且还保存一个*机器状态*,它可以根据预定义的一组规则在不同的区块之间进行更改,并且可以执行任意的机器代码。 在区块中更改状态的具体规则由 EVM 定义。 @@ -50,7 +50,7 @@ EVM 作为一个[堆栈机](https://wikipedia.org/wiki/Stack_machine)运行, 已编译的智能合约字节码作为许多 EVM [opcodes](/developers/docs/evm/opcodes)执行,它们执行标准的堆栈操作,例如 `XOR`、`AND`、`ADD`、`SUB`等。 EVM 还实现了一些区块链特定的堆栈操作,如 `ADDRESS`、`BALANCE`、`BLOCKHASH` 等。 -![表明 EVM 操作需要 Gas 的图表](../gas/gas.png) _图表改编自[以太坊 EVM 说明](https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf)_ +![表明 EVM 操作需要 Gas 的图表](../gas/gas.png) _示意图节选自[以太坊虚拟机图解](https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf)_ ## EVM 实现 {#evm-implementations} @@ -64,7 +64,6 @@ EVM 的所有实现都必须遵守以太坊黄皮书中描述的规范。 - [evmone](https://github.com/ethereum/evmone) - _C++_ - [ethereumjs-vm](https://github.com/ethereumjs/ethereumjs-vm) - _JavaScript_ - [eEVM](https://github.com/microsoft/eevm) - _C++_ -- [Hyperledger Burrow](https://github.com/hyperledger/burrow) - _Go_ ## 延伸阅读 {#further-reading} diff --git a/src/content/translations/zh/developers/docs/frameworks/index.md b/src/content/translations/zh/developers/docs/frameworks/index.md index 1d1ac8ecc7e..d70293a3592 100644 --- a/src/content/translations/zh/developers/docs/frameworks/index.md +++ b/src/content/translations/zh/developers/docs/frameworks/index.md @@ -10,13 +10,13 @@ lang: zh 这些框架带有很多非常规的功能,比如: -- 编写一个本地区块链程序的功能。 -- 编译和测试智能合约的工具。 +- 编一个本地区块链的程序功能。 +- 编辑和测试您智能合约的实用工具。 - 客户开发附加功能,在同一个项目、仓库中来搭建您面向客户的应用程序。 - 无论是在本地运行的实例,还是在以太坊的公共网络之一,可以连接到以太网并且部署合约的配置。 - 去中心化的应用程序分布——与类似星际文件系统(一种用于存储和访问文件、网站、应用程序和数据的分布式系统)的存储选项一体化。 -## 前体条件 {#prerequisites} +## 前置要求 {#prerequisites} 在更深入介绍这个框架之前,我们推荐您先阅读下面对于[去中心化应用程序](/developers/docs/dapps/)的简介以及[以太坊堆栈](/developers/docs/ethereum-stack/)。 @@ -49,13 +49,13 @@ lang: zh **Web3j -** **_ 在 Java 虚拟机上开发区块链应用程序的平台。_ ** -- [主页](https://www.web3labs.com/web3j-sdk) +- [首页](https://www.web3labs.com/web3j-sdk) - [相关文档](https://docs.web3j.io) - [GitHub](https://github.com/web3j/web3j) **OpenZeppelin SDK -** **_ 终极智能合约工具包:一套帮助您开发、编译、升级、部署智能合约并与之交互的工具。_** -- [OpenZepelin SDK](https://openzeppelin.com/sdk/) +- [OpenZeppelin SDK](https://openzeppelin.com/sdk/) - [GitHub](https://github.com/OpenZeppelin/openzeppelin-sdk) - [社区论坛](https://forum.openzeppelin.com/c/support/17) diff --git a/src/content/translations/zh/developers/docs/gas/index.md b/src/content/translations/zh/developers/docs/gas/index.md index fa480101936..2a3544904ad 100644 --- a/src/content/translations/zh/developers/docs/gas/index.md +++ b/src/content/translations/zh/developers/docs/gas/index.md @@ -24,43 +24,31 @@ Gas 是指在以太坊网络上执行特定操作所需的计算工作量。 以太坊网络交易费的计算方式在 2021 年 8 月的[伦敦升级](/history/#london)后发生了改变。 以下回顾了过去的工作方式: -假设 Alice 需要支付 1 ETH 给 Bob。 在交易中,gas 限额为 21,000 单位,gas 的价格是 200 gwei。 +假设 Alice 需要支付 1 ETH 给 Bob。 在交易中,燃料限额为 21,000 单位,燃料的价格是 200 gwei。 -总费用为:`Gas 单位(限额) * Gas 单价` 例如 `21,000 * 200 = 4,200,000 gwei` 或者 0.0042 ETH +总费用为:`燃料单位(限额) * 燃料单价` 例如 `21,000 * 200 = 4,200,000 gwei` 或者 0.0042 ETH -当 Alice 汇款时,将从 Alice 账户中扣除 1.0042 ETH。 Bob 将获得 1.0000 ETH。 矿工将得到 0.0042 ETH。 - -这个视频简要概述了 Gas 及其存在原因: - - +假设 Jordan 需要向 Taylor 支付 1 个以太币。 在交易中,燃料限额为 21,000 单位,基础费是 10 gwei。 Jordan 支付了 2 gwei 作为小费。 ## 伦敦升级之后 {#post-london} -[伦敦升级](/history/#london) 于 2021 年 8 月 5 日 实施,目的是通过彻底改造以太坊的交易费用机制,使用户更容易预测以太坊的交易费用。 这一升级带来的更高一层的收益包括更好地估算交易费,通常会加快纳入交易,并通过燃烧一定比例的交易费来抵消 ETH 的发行。 - -从伦敦网络升级开始,每个区块都有基本费用,由网络根据区块空间需求来计算每单位 gas 最低价格。 由于交易费的基本费用会被燃烧掉,因此用户还要在其交易中设定一个小费(优先费)。 小费用于满足矿工执行和广播包含用户交易的区块,预计将由大多数钱包自动设置。 - -交易总费用的计算用如下所示:`Gas 单位(限额)*(基本费用 + 小费)` - -假设 Jordan 需要向 Taylor 支付 1 ETH。 在交易中,矿工报酬限额为 21,000 单位,基本费用的价格是 100 gwei。 Jordan 支付了 10 gwei 作为小费。 - -使用上面的公式,我们可以计算 `21,000 * (100 + 10) = 2,310,000 gwei` 或 0.00231 ETH。 +`21,000 * (10 + 2) = 252,000 gwei` 或 0.000252 个以太币。 -当 Jordan 发送钱时,将从 Jordan 账户中扣除 1.00231 ETH。 Taylor 将获得 1.0000 ETH。 矿工得到 0.00021 ETH。 0.0021 ETH 的基本费用被燃烧。 +当 Jordan 转账时,将从 Jordan 帐户中扣除 1.000252 个以太币。 Taylor 的帐户增加 1.0000 个以太币。 验证者收到 0.000042 个以太币的小费。 0.00021 个以太币的基础费被销毁。 -此外,Jordan 还可以为交易设定最高费用 (`maxFeePergas`)。 最高费用与实际收费之间的差额将归还给 Jordan。如:`退款 = 最高费用 -(基本费用 + 优先费)`。 Jordan 可以为执行交易费用设定一个最高金额,而不必担心在执行交易时“超额”支付基本费用。 +此外,Jordan 还可以为交易设定最高费用 (`maxFeePerGas`)。 最高费用与实际费用之间的差额将退还 Jordan。即 `refund = max fee - (base fee + priority fee)`。 Jordan 可以为执行交易费用设定一个最高金额,而不必担心在执行交易时“超额”支付基础费。 ### 区块大小 {#block-size} -在伦敦升级之前,以太坊有固定大小的区块。 在网络需求很高的时期,这些区块满负荷运行。 因此,用户常常不得不等待大量需求减少后才能被列入一个区块,这导致用户体验很差。 +在伦敦升级之前,以太坊有固定大小的区块。 在网络需求高峰期,这些区块满负荷运行。 因此,用户常常不得不等到大需求量降低后才能将交易列入区块,导致用户体验很差。 -伦敦升级在以太坊中引入了大小可变区块。 每个区块的目标大小为 1500 万 gas,但区块的大小将根据网络需求增减。因此区块限制最多不超过 3000 万 gas(目标区块大小的 2 倍)。 该协议通过 _tâtonnement_ 的过程使区块大小平均达到 1,500 万。 这意味着如果区块大小超出目标区块大小,协议将增加以下区块的基本费用。 同样,如果区块大小低于目标区块大小,协议将减少基本费用。 基本费用的调整金额与当前区块大小和目标区块大小的差距成比例。 [关于区块的更多信息](/developers/docs/blocks/)。 +伦敦升级在以太坊中引入了大小可变区块。 每个区块的目标大小为 1500 万单位燃料,但区块的大小将根据网络需求增减,但不得超过 3000 万单位燃料的区块大小限制(目标区块大小的 2 倍)。 协议通过 _tâtonnement_ 过程使均衡区块大小平均达到 1,500 万单位燃料。 这意味着如果区块大小超出目标区块大小,协议将增加下一个区块的基础费。 同样,如果区块大小小于目标区块大小,协议将减少基础费。 基础费的调整金额与当前区块大小和目标区块大小的差距成比例。 [有关区块的更多信息](/developers/docs/blocks/)。 -### 基本费用 {#base-fee} +### 基础费 {#base-fee} -每个区块都有作为储备价格的基本费用。 要想有资格被列入区块,gas 费用报价必须至少等于基本费用。 基本费用独立于当前区块计算,是由区块之前的区块决定的,这使得用户更容易预测交易费用。 当区块被开采时,此基本费用将被“燃烧掉”,从循环中移除。 +每个区块都有作为底价的基础费。 要想有资格被列入区块,燃料费用报价必须至少等于基础费。 基础费独立于当前区块计算,是由当前区块之前的区块决定的,这使得用户更容易预测交易费。 当区块被开采时,其基础费将被“销毁”并退出流通。 -基本费用的计算公式是将上一个区块的大小(所有交易中使用的 gas 数量)与目标大小进行比较。 如果超过目标区块大小,区块的基本费用将最多增加 12.5%。 这种指数级增长使得区块大小无限期保持高位在经济上不可行。 +基础费是用一个公式计算的,该公式将上一个区块的大小(所有交易中使用的燃料数量)与目标大小进行比较。 如果超过目标区块大小,每个区块的基础费将最多增加 12.5%。 这种指数级增长使得区块大小无限期保持高位在经济上不可行。 | 区块编号 | 已包含 Gas | 费用增加 | 当前基本费用 | | -------- | ---------: | -------: | -----------: | @@ -73,11 +61,11 @@ Gas 是指在以太坊网络上执行特定操作所需的计算工作量。 | 7 | 30M | 12.5% | 180.2 gwei | | 8 | 30M | 12.5% | 202.7 gwei | -相对于伦敦升级之前的 gas 拍卖市场,这种交易费机制的变化使费用更容易预测。 根据以上表格,在 9 号区块创建交易,钱包会让用户确切了解,要添加到下一个区块的**最大基本费用**等于`当前基本费用 * 112.5%`,即 `202.8 gwei * 112.5% = 228.1 gwei`。 +相对于伦敦升级之前的燃料拍卖市场,这种交易费机制的变化使费用更容易预测。 根据以上表格,在 9 号区块创建交易,钱包会让用户确切了解,要添加到下一个区块的**最大基础费**等于 `current base fee * 112.5%` 或 `202.8 gwei * 112.5% = 228.1 gwei`。 -还请注意,由于处理完整块的基本费用增加的速度,我们不太可能看到完整块的延长峰值。 +还请注意,由于在处理完整块时基础费增加的速度,我们不太可能看到长时间出现完整块高峰。 -| 区块编号 | 已包含 Gas | 费用增加 | 当前基本费用 | +| 区块编号 | 已包含燃料 | 费用增加 | 当前基本费用 | | -------- | ---------: | -------: | --------------: | | 30 | 30M | 12.5% | 2705.6 gwei | | ... | ... | 12.5% | ... | @@ -87,59 +75,59 @@ Gas 是指在以太坊网络上执行特定操作所需的计算工作量。 ### 优先费(小费) {#priority-fee} -在伦敦升级之前,矿工将获得区块中所含交易的总 gas 费用。 +在伦敦升级之前,矿工将获得区块中所含全部交易的总燃料费用。 -随着新的基本费被燃烧,伦敦升级引入了优先费(小费),以激励矿工将交易纳入区块。 如果没有小费,矿工会发现开采空区块在经济上可行,因为他们会获得相同的区块奖励。 在常规情况下,一笔金额不大的小费给矿工提供了包含该交易的最低激励。 对于需要在同一区块中优先执行的交易,需要更高的小费来试图出价高于竞争交易。 +由于新的基础费被销毁,伦敦升级引入了优先费(小费),激励矿工将交易列入区块。 如果没有小费,矿工会发现开采空区块在经济上可行,因为他们会获得相同的区块奖励。 在正常情况下,一笔金额不大的小费给矿工提供了将交易列入区块的最小激励。 对于需要在同一区块中优先执行的交易,需要提供更高的小费,力争使出价高于竞争交易。 ### 最高费用 {#maxfee} -要在网络上执行交易,用户可以为他们愿意支付的交易执行费指定最高限额。 此可选参数称为 `maxFeePergas`。 为了执行交易,最高费用必须超过基本费用和小费的总和。 会为交易发送人退还最高费用与基本费用和小费总和之间的差额。 +要在网络上执行交易,用户可以为他们愿意支付的交易执行费用指定最高限额。 此可选参数称为 `maxFeePerGas`。 为了执行交易,最高费用必须超过基础费和小费的总和。 会为交易发送人退还最高费用与基础费和小费总和之间的差额。 ### 计算费用 {#calculating-fees} -伦敦升级带来的主要好处之一是提高用户在确定交易费用时的体验。 对于支持升级的钱包,钱包提供商将自动设置推荐的交易费(基本费用 + 推荐优先费),而不是明确说明您愿意支付多少费用来完成交易,以便降低用户的复杂程度。 +伦敦升级带来的主要好处之一是提升了用户在设定交易费时的体验。 对于支持该升级的钱包,用户无需明确说明愿意支付多少费用来完成交易,钱包提供商将自动设置推荐的交易费(基础费 + 建议优先费),以便降低用户面临的复杂程度。 ## EIP-1559 {#eip-1559} -在伦敦升级中执行 [EIP-1559](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1559.md) 使得交易费机制比以前的 gas 竞价招标更加复杂,但优点是提高 gas 费用的可预测性,从而使交易费市场更加有效。 用户可以在提交交易时设定 `maxFeePergas`,表示他们愿意为执行交易支付多少费用,同时清楚该数额不会超过 gas 的市场价格 (`BaseFeePergas`),并且获得减去小费后的剩余退款。 +在伦敦升级中实现的 [EIP-1559](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1559.md) 使得交易费机制比以前的燃料价格竞拍更加复杂,但优点是提高燃料费用的可预测性,从而使交易费市场更加高效。 用户可以在提交交易时设定 `maxFeePerGas`(对应于他们愿意为执行交易支付多少费用),他们清楚支付金额将不会超过燃料的市场价格 (`baseFeePerGas`),并且将获得减去小费后的剩余退款。 -这个视频解释了 EIP-1559 及其带来的好处: +下面的视频解释了 EIP-1559 及其带来的好处: -如果感兴趣,您可以阅读 [EIP-1559 规范](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1559.md)。 +如果感兴趣,你可以阅读 [EIP-1559 规范](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1559.md)。 更深层次的见解请参见 [EIP-1559 资源](https://hackmd.io/@timbeiko/1559-resources)。 -## 为什么存在 Gas 费用? {#why-do-gas-fees-exist} +## 为什么存在燃料费用? {#why-do-gas-fees-exist} -简而言之,Gas 费用有助于确保以太坊网络的安全。 在网络上执行的每次计算都需要收费,这样可以防止参与者对网络造成垃圾信息。 为了防止代码中无意、恶意的无限循环或其他计算浪费,要求每个事务对代码可以执行的计算步骤设置一个限制。 基本计算单位是“gas”。 +简而言之,燃料费用有助于确保以太坊网络的安全。 在网络上执行的每次计算都需要收费,这样可以防止不良参与者对网络造成垃圾信息。 为了防止代码中出现无意或恶意的无限循环或其他计算浪费,要求每个交易对代码可以执行的计算步骤设置一个限制。 基本计算单位是“燃料”。 -尽管交易中包含费用限制,但交易中未使用的 gas 将退还给用户(如:返还`最高费用 -(基本费用 + 小费)`)。 +尽管交易中包含费用限制,但交易中未使用的燃料将退还给用户(即退还 `max fee - (base fee + tip)`)。 -![未使用 Gas 退款情况图](../transactions/gas-tx.png) _图表来自 [Ethereum EVM 插图](https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf)_ +![未使用燃料退款示意图](../transactions/gas-tx.png) _示意图节选自[以太坊虚拟机图解](https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf)_ -## 什么是 gas 限额? {#what-is-gas-limit} +## 什么是燃料限额? {#what-is-gas-limit} -Gas 限额是指您愿意在交易中消耗的最大 gas 数量。 涉及[智能合约](/developers/docs/smart-contracts/)的更复杂交易需要更多的计算工作,因此相比较简单的支付,它们需要更高的 gas 限额。 标准的 ETH 转账一般要求 gas 限额为 21,000 单位。 +燃料限额是指你愿意在交易中消耗的最大燃料数量。 涉及[智能合约](/developers/docs/smart-contracts/)的更复杂交易需要进行更多的计算工作,因此相比较简单的支付,它们需要更高的燃料限额。 标准以太币转账要求燃料限额为 21,000 单位燃料。 -例如,如果您对简单的 ETH 转账设置 50,000 gas 限额。EVM 将消耗 21,000,您将收到剩余的 29,000。 然而,如果您设置的 gas 太少,比如说,对于简单的 ETH 转账,gas 限额为 20,000。EVM 将消耗您 20,000 gas 试图实现交易,但不会完成。 然后,EVM 会恢复所有变化,但由于矿工已经完成了价值 20k gas 的工作,所以 gas 被消耗掉了。 +例如,如果你对简单的以太币转账设置 50,000 单位燃料限额,以太坊虚拟机将消耗 21,000 单位,你将收到剩余的 29,000 单位。 然而,如果你设置的燃料太少,比如说,对于简单的以太币转账,设置燃料限额为 20,000 单位,以太坊虚拟机将消耗 20,000 单位燃料并试图完成交易,但不会完成。 然后,以太坊虚拟机回滚所有变化,但由于矿工已经完成了价值 20k 单位燃料的工作,这些燃料就被消耗了。 -## 为什么 gas 费会变得如此高? {#why-can-gas-fees-get-so-high} +## 为什么燃料费会变得如此高? {#why-can-gas-fees-get-so-high} -Gas 费高是由于以太坊广受欢迎。 在以太坊进行任何操作都需要消耗 gas,每个区块的 gas 空间有限。 这包括计算、存储或操作数据,或转移代币,每种消耗不同数量的“gas”单位。 随着 dapp 功能变得更加复杂,智能合约执行的操作数量也会增加。即每个交易在有限大小区块内占用更多空间。 如果需求太大,用户必须提供更高的小费来尝试超越其他用户的出价。 小费更高即更有可能让你的交易进入下一区块。 +燃料费高是由于以太坊广受欢迎。 在以太坊进行任何操作都需要消耗燃料,并且每个区块的燃料空间有限。 费用括计算费用、存储或操作数据费用或转移代币费用,这些操作消耗不同数量的“燃料”单位。 随着去中心化应用程序的功能变得更加复杂,智能合约执行的操作数量也会增加,即每个交易在有限大小的区块内占用更多空间。 如果需求太大,用户必须提供更高的小费来尝试高出其他用户的出价。 小费更高便更有可能让你的交易进入下一区块。 -光靠 gas 价格并不能实际决定我们必须对特定交易支付的金额。 为了计算交易费,我们必须将交易费所使用的 gas 乘以 gwei。 +光靠燃料价格并不能实际决定我们必须对特定交易支付的金额。 为了计算交易费,我们必须将使用的燃料乘以交易费,后者以 gwei 为单位。 -## 减少 gas 成本的举措 {#initiatives-to-reduce-gas-costs} +## 减少燃料成本的举措 {#initiatives-to-reduce-gas-costs} -以太坊[性能扩展的升级](/upgrades/)将会最终解决一些燃料成本问题,也会为以太坊平台处理每秒上千次的交易和全面升级做好准备。 +以太坊[可扩展性升级](/upgrades/)应该最终解决部分燃料费用问题,并让以太坊平台能够每秒处理数千个交易并全面扩容。 -第二层扩容是一项主要举措,可大大优化 gas 成本、用户体验和可扩展性。 [关于第二层扩容的更多信息](/developers/docs/scaling/#layer-2-scaling)。 +二层网络扩容是一项主要举措,可大大优化燃料成本、用户体验和可扩展性。 [有关二层网络扩容的更多信息](/developers/docs/scaling/#layer-2-scaling)。 -## 降低 gas 成本的策略 {#strategies-for-you-to-reduce-gas-costs} +## 降低燃料成本的策略 {#strategies-for-you-to-reduce-gas-costs} -如果你希望降低以太币的燃料费用,可以设置小费来表明交易的优先级。 矿工将“处理”并执行每单位燃料小费更高的交易,因为他们可以保留你支付的小费;矿工不太愿意执行小费较低的交易。 +如果你希望降低以太币的燃料费用,可以设置小费来表明交易的优先级。 矿工将“处理”并执行每单位燃料小费更高的交易,因为他们可以保留你支付的小费,矿工不太愿意执行小费较低的交易。 如果想要监控燃料价格,从而以较少的费用发送以太币,你可以使用多种不同的工具,例如: @@ -151,8 +139,7 @@ Gas 费高是由于以太坊广受欢迎。 在以太坊进行任何操作都需 ## 相关工具 {#related-tools} -- [Bloxy Gas Analytics](https://stat.bloxy.info/superset/dashboard/gas/?standalone=true) _以太坊网络 gas 统计数据_ -- [Blocknative’s Gas Platform](https://www.blocknative.com/gas) _由 Blocknative 的全局内存池数据平台提供支持的 Gas 估算 API_ +- [Blocknative 的燃料平台](https://www.blocknative.com/gas) _由 Blocknative 的全局内存池数据平台提供支持的燃料估算应用程序接口_ ## 延伸阅读 {#further-reading} diff --git a/src/content/translations/zh/developers/docs/ides/index.md b/src/content/translations/zh/developers/docs/ides/index.md index 2e2a837012f..9f1f0ceeb35 100644 --- a/src/content/translations/zh/developers/docs/ides/index.md +++ b/src/content/translations/zh/developers/docs/ides/index.md @@ -1,5 +1,5 @@ --- -title: 集成开发环境 (IDE) +title: 集成开发环境 description: lang: zh --- @@ -10,11 +10,11 @@ lang: zh 如果您想在[设置本地开发环境](/developers/local-environment/)之前摆弄一下代码,这些网络应用是为以太坊智能合约开发定制的。 -**Remix -** **_基于网页的集成开发环境,内置静态分析和区块链测试虚拟机。_** +**Remix -** **_基于 Web 的集成开发环境,内置静态分析和测试区块链虚拟机_** - [remix.ethereum.org](https://remix.ethereum.org/) -**EthFiddle -** **_基于网页的集成开发环境,让您能编写、编译和调试智能合约。_** +**EthFiddle -** **_基于 Web 的集成开发环境,可让你编写、编译和调试智能合约_** - [ethfiddle.com](https://ethfiddle.com/) - [Gitter](https://gitter.im/loomnetwork/ethfiddle) @@ -23,7 +23,7 @@ lang: zh - [chainide.com](https://chainide.com/) -**Replit -** **_一个可定制的以太坊开发环境,具有热重载、错误检查和一流测试网支持等功能。_** +**Replit -** **_具有热重载、错误检查和一流测试网支持的可定制以太坊开发环境_** - [Solidity 新手教程](https://replit.com/@replit/Solidity-starter-beta) @@ -31,10 +31,10 @@ lang: zh 大多数成熟的集成开发环境都建立了插件来增强以太坊的开发体验。 至少,它们为[智能合约语言](/developers/docs/smart-contracts/languages/)提供语法高亮功能。 -**Visual Studio Code -** **_以太坊官方支持的专业跨平台集成开发环境。_** +**Visual Studio Code -** **_提供官方以太坊支持的专业跨平台集成开发环境_** - [Visual Studio Code](https://code.visualstudio.com/) -- [Azure 区块链工作台](https://azuremarketplace.microsoft.com/en-us/marketplace/apps/microsoft-azure-blockchain.azure-blockchain-workbench?tab=Overview) +- [Azure Blockchain Workbench](https://azuremarketplace.microsoft.com/en-us/marketplace/apps/microsoft-azure-blockchain.azure-blockchain-workbench?tab=Overview) - [代码示例](https://github.com/Azure-Samples/blockchain/blob/master/blockchain-workbench/application-and-smart-contract-samples/readme.md) - [GitHub](https://github.com/microsoft/vscode) @@ -57,7 +57,7 @@ lang: zh ## 插件与扩展 {#plugins-extensions} -- [solidity](https://marketplace.visualstudio.com/items?itemName=JuanBlanco.solidity) - 以太坊中的 Visual Studio Code Solidity 语言 +- [solidity](https://marketplace.visualstudio.com/items?itemName=JuanBlanco.solidity) - 以太坊 Visual Studio Code 中的 Solidity 语言 - [Prettier Solidity](https://github.com/prettier-solidity/prettier-plugin-solidity) - 使用 prettier 的代码格式化工具 ## 延伸阅读 {#further-reading} diff --git a/src/content/translations/zh/developers/docs/index.md b/src/content/translations/zh/developers/docs/index.md index 96e3e67bb5c..066a78904d4 100644 --- a/src/content/translations/zh/developers/docs/index.md +++ b/src/content/translations/zh/developers/docs/index.md @@ -1,62 +1,25 @@ --- -title: Web2 与 Web3 -description: +title: 以太坊开发文档 +description: ethereum.org 开发者相关文档简介。 lang: zh --- -Web2 指的是如今我们众所周知的互联网版本。 互联网由互联公司掌控,它们通过提供服务来换取个人数据。 就以太坊而言,Web3 指的是在区块链上运行的去中心化应用程序。 任何用户都可以参与这些应用程序,而无需出卖个人数据。 +本文档旨在帮助你构建以太坊。 它介绍了以太坊概念,解释了以太坊技术堆栈,并记录了以太坊更复杂的应用和使用案例的高级主题。 -在寻找更适合初学者的资源? 请参阅我们的 [Web3 简介](/web3/)。 +基于开源社区的努力,你可以随时提出新的主题,添加新内容,并在认为可能有用的地方提供示例。 所有文档都可以通过 GitHub 编辑 — 如果不确定如何操作,[请遵循这些说明](https://github.com/ethereum/ethereum-org-website/blob/dev/docs/editing-markdown.md)。 -## Web3 的优势 {#web3-benefits} +## 开发单元 {#development-modules} -许多 Web3 开发者由于以太坊与生俱来的去中心化而选择构建去中心化应用程序: +如果这是你首次尝试以太坊开发,我们建议从头开始,全始全终,有头有尾。 -- 网络上的任何人都有使用服务的权限 – 换言之,不需要授予权限。 -- 没有人可以阻止或拒绝你访问服务。 -- 付款是通过原生代币以太币 (ETH) 构建的。 -- 以太坊是图灵完备的,这意味着你几乎可以进行任何编程。 +### 基础主题 {#foundational-topics} -## 具体比较 {#practical-comparisons} + -| Web2 | Web3 | -| ------------------------------------------------------ | ---------------------------------------------------------------------------------- | -| Twitter 可以检查任何帐户或推文 | Web3 推文不可审查,因为控制已经去中心化 | -| 支付服务可以决定不允许对某些类型的工作进行支付 | Web3 付款应用程序不需要个人数据,也不能阻止付款 | -| 运行零工经济应用程序的服务器可能会停机,影响劳动者收入 | Web3 服务器不会停机 – 它们的后端是以太坊,一个由数以千计的计算机组成的去中心化网络 | +### 以太坊堆栈 {#ethereum-stack} -这并不意味着所有服务都需要转变成去中心化应用程序。 上面的示例说明了 Web2 和 Web3 服务之间的主要差异。 + -## Web3 的局限性 {#web3-limitations} +### 高级 {#advanced} -当前,Web3 存在一些局限性: - -- 可扩展性——交易在 web3 上进度较慢,因为它们是去中心化的。 状态变化(比如付款)需要由矿工处理并在整个网络中传播。 -- UX – 与 Web3 应用程序交互可能需要额外的步骤、软件和培训。 这可能是妨碍其应用的一块绊脚石。 -- 可访问性 – 由于在现代 Web 浏览器中的集成不够,致使大多数用户无法访问 Web3。 -- 成本 – 因为成本高昂,大多数成功的去中心化应用程序仅将其代码的很小一部分放到区块链上。 - -## 中心化与去中心化 {#centralization-vs-decentralization} - -在下表中,我们大致列举了中心化和去中心化数字网络的一些优缺点。 - -| 中心化系统 | 去中心化系统 | -| ----------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | -| 网络直径短(所有参与者都与中心化组织连接);信息传播快,因为传播由一个拥有大量计算资源的中心化组织处理。 | 网络上最远的参与者可能彼此相距甚远。 网络中一方的信息可能需要很长时间才能传播给另一方。 | -| 性能通常较高(吞吐量较高、总计算资源消耗较少)并且实现较为容易。 | 性能通常较低(吞吐量较低,总计算资源消耗较高),实现起来更为复杂。 | -| 在出现相互冲突的数据时,解决办法明确且简单:最终信任的数据来源是中心化组织。 | 如果其他参与者对参与者打算同步的数据状态提出相互冲突的主张,需要一项协议(通常是复杂的)来解决争议。 | -| 单点故障:恶意行为者或许能够以中心化组织为目标来破坏网络。 | 无单点故障:即使有很大一部分参与者受到攻击或下线,网络仍然可以运作。 | -| 网络参与者之间的协调要容易得多,由中心化组织负责。 中心化组织可以迫使网络参与者接受升级、更新协议等,阻力非常小。 | 协调往往很困难,因为没有任何单一角色在网络层面的决策、协议升级等方面拥有最终发言权。 在最糟糕的情况下,当对协议变更有分歧时,网络容易破裂。 | -| 中心化组织可以审查数据,可能会切断部分网络与网络其他部分的交互。 | 审查制度要困难得多,因为信息有多种途径在网络上传播。 | -| 网络参与由中心化组织控制。 | 任何人都可以参与网络;没有“守门人”。 理想情况是,参与费用非常低。 | - -请注意,这些都是一般概况,可能不适用于每一个网络。 此外,在现实情况下,网络中心化/去中心化程度取决于一系列因素;没有一个网络完全中心化或完全去中心化。 - -## 延伸阅读 {#further-reading} - -- [什么是 Web3?](/web3/) - _ethereum.org_ -- [Web 3.0 应用程序架构](https://www.preethikasireddy.com/post/the-architecture-of-a-web-3-0-application) - _Preethi Kasireddy_ -- [去中心化的含义](https://medium.com/@VitalikButerin/the-meaning-of-decentralization-a0c92b76a274) _2017 年 2 月 6 日 - Vitalik Buterin_ -- [去中心化缘何如此重要](https://medium.com/s/story/why-decentralization-matters-5e3f79f7638e) _2018 年 2 月 18 日 - Chris Dixon_ -- [什么是 Web 3.0 以及为何它很重要](https://medium.com/fabric-ventures/what-is-web-3-0-why-it-matters-934eb07f3d2b) _2019 年 12 月 31 日 - Max Mersch 与 Richard Muirhead_ -- [为什么我们需要 Web 3.0](https://medium.com/@gavofyork/why-we-need-web-3-0-5da4f2bf95ab) _2018 年 9 月 12 日 - Gavin Wood_ + diff --git a/src/content/translations/zh/developers/docs/intro-to-ether/index.md b/src/content/translations/zh/developers/docs/intro-to-ether/index.md index 868c5f3c914..9de96f4600b 100644 --- a/src/content/translations/zh/developers/docs/intro-to-ether/index.md +++ b/src/content/translations/zh/developers/docs/intro-to-ether/index.md @@ -26,13 +26,13 @@ ETH 加密货币支持以太坊算力的定价机制。 当用户想要完成一 因此,即使某恶意 dapp 无限循环提交,交易最终也会耗尽 ETH 并终止,从而使网络恢复正常。 -人们[经常](https://www.reuters.com/article/us-crypto-currencies-lending-insight-idUSKBN25M0GP#:~:text=price%20of%20ethereum) [混](https://abcnews.go.com/Business/bitcoin-slumps-week-low-amid-renewed-worries-chinese/story?id=78399845#:~:text=cryptocurrencies%20including%20ethereum) [淆](https://www.cnn.com/2021/03/14/tech/nft-art-buying/index.html#:~:text=price%20of%20ethereum)以太坊和以太币 (ETH) - 当他们谈及“以太坊价格”时,其实是指 ETH 价格。 +人们[经常](https://www.reuters.com/article/us-crypto-currencies-lending-insight-idUSKBN25M0GP#:~:text=price%20of%20ethereum) [会](https://abcnews.go.com/Business/bitcoin-slumps-week-low-amid-renewed-worries-chinese/story?id=78399845#:~:text=cryptocurrencies%20including%20ethereum) [混淆](https://www.cnn.com/2021/03/14/tech/nft-art-buying/index.html#:~:text=price%20of%20ethereum)以太坊和以太币 - 当他们谈及“以太坊价格”时,其实是指以太币价格。 ## 铸造 ETH {#minting-ether} 铸造是指在以太坊分类账上创造新以太币的过程。 底层以太坊协议创造出新以太币,单一用户不可能创造。 -当新区块在以太坊区块链上创建时,会铸造以太币。 作为创建区块的激励措施,该协议在每个区块中都设置了奖励,增加区块生产者所设置地址的余额。 区块奖励随时间而变化,目前奖励为每区块 2 个以太币。 合并后,授予每个验证者的奖励取决于他们质押的以太币数量和他们的表现。 +以太币铸造出来,用来奖励提议的每个区块,以及在每个时段的检查点奖励验证者执行的和达成共识有关的其他活动。 总发行量取决于验证者的数量和它们质押的以太币数量。 在所有验证者都诚实且在线的理想情况下,以太币总发行量会在所有验证者中等分,但现实中分配情况会因验证者的表现而异。 总发行量的大约 1/8 会奖励给区块提议者,剩余部分在其它验证者中分配。 区块提议者还会获得交易费小费和矿工可提取价值,但这些都来自流通中的以太币,而非新发行的以太币。 ## 燃烧 ETH {#burning-ether} @@ -75,4 +75,4 @@ Gwei(giga-wei 的缩写),常用于描述以太坊上的燃料费用。 - [以太坊白皮书](/whitepaper/):以太坊原始提案 这份资料包括了对 ETH 及其创建动机的整体描述。 - [Gwei 计算器](https://www.alchemy.com/gwei-calculator):使用这个 Gwei 计算器可以轻松地换算 wei、Gwei 和 ETH。 只需输入任何数量的 wei、Gwei 或 ETH,就能够自动换算。 -_还知道哪些社区资源对您有所帮助? 编辑本页面并添加它!_ +_还有哪些社区资源对您有所帮助? 请编辑本页面并添加!_ diff --git a/src/content/translations/zh/developers/docs/intro-to-ethereum/index.md b/src/content/translations/zh/developers/docs/intro-to-ethereum/index.md index d70e929edd7..426f7fa66ff 100644 --- a/src/content/translations/zh/developers/docs/intro-to-ethereum/index.md +++ b/src/content/translations/zh/developers/docs/intro-to-ethereum/index.md @@ -14,17 +14,9 @@ lang: zh 网络中的每台计算机都必须就每个新区块和链达成一致。 这些计算机被称为“节点”。 节点保证所有与区块链交互的人都有相同的数据。 要完成此分布式协议,区块链需要一个共识机制。 -与比特币一样,以太坊目前使用[工作量证明 (PoW)](/developers/docs/consensus-mechanisms/pow/) 作为共识机制。 这意味着,任何人想要在链上添加新的区块,都必须解决一个困难的难题,该难题需要大量的算力来解决。 解决了这个难题,就 "证明"你已经花费了算力资源。 这种操作被称为[挖矿](/developers/docs/consensus-mechanisms/pow/mining/)。 挖矿通常充满了粗暴的尝试和错误,但是成功添加区块会得到 ETH 奖励。 +以太坊采用[权益证明共识机制](/developers/docs/consensus-mechanisms/pos/)。 任何想在链上添加新区块的人都需要往存款合约里至少质押 32 个以太币并运行验证者软件。 然后,他们会被随机选择去提议区块,其他验证者检查区块并将其添加入区块链。 在这种模型中,通常只有一条链,但由于网络延迟和不诚实的行为,可能导致多个区块存在于链头部附近的同一位置。 为解决此问题,一种分叉选择算法会选择一组规范区块。 选择的区块是构成权重可能最大的链的区块,“权重”是指认可区块的验证者数量(并以验证者质押的以太币加权)。 还有一种奖罚制度,大力鼓励参与者尽可能诚实并在线。 -新的区块会被广播到网络中的节点,经过检查和验证,同步更新状态。 - -综上所述,当你向某人发送以太币时,该交易必须要添加到将被开采的区块中。 然后将更新后的状态与整个网络共享。 - -观看 Austin 带你了解区块链: - - - -如果想查看区块链如何压缩数据,以及以前的区块如何引用所有过去的区块,请务必查看 Anders Brownworth 的[演示](https://andersbrownworth.com/blockchain/blockchain)并观看以下随附视频。 +如果想查看区块链如何哈希数据以及上一个区块如何引用所有过去的区块,请务必查看 Anders Brownworth 的[本次演示](https://andersbrownworth.com/blockchain/blockchain)并观看以下随附视频。 观看 Anders 介绍区块链中的哈希: @@ -32,88 +24,92 @@ lang: zh ## 以太坊简介 {#what-is-ethereum} -在以太坊网络中,有一台规范化计算机(称为以太坊虚拟机,或 EVM),其状态得到以太坊网络中所有人的一致同意。 每个参与以太坊网络的人(每个以太坊节点)都会保存一份这台计算机的状态。 此外,任何参与者都可以广播请求这台计算机进行任意计算。 每当广播这样的请求网络时,网络上的其他参与者就会验证、确认并进行(“执行”)计算。 这个命令会导致 EVM 的状态变化,并且在整个网络中传播。 +以太坊是一条区块链,其中嵌入了计算机。 它是以去中心化、无需许可、抗审查的方式构建应用程序和组织的基础。 + +在以太坊宇宙中,有一台规范化计算机(称为以太坊虚拟机,或 EVM),其状态得到以太坊网络中所有人的一致同意。 每个参与以太坊网络的人(每个以太坊节点)都会保存一份该计算机的状态。 此外,任何参与者都可以广播请求这台计算机进行任意计算。 每当广播这样的请求时,网络上的其他参与者就会检查、验证并进行(“执行”)该计算。 该执行会导致以太坊虚拟机的状态变化,并且在整个网络中传播。 + +计算请求被称为交易请求;所有交易的记录以及以太坊虚拟机的当前状态存储在区块链中,而区块链又由所有节点存储并达成一致。 -计算请求被称为交易请求;所有交易的记录以及 EVM 的当前状态都存储在区块链中,而区块链又由所有节点存储并达成一致。 +加密机制确保一旦交易被验证为有效并添加到区块链中后,之后就无法被篡改。 同样的机制还确保所有交易都以适当的“权限”签名和执行(除了 Alice 本人,任何人都不能从 Alice 的帐户发送数字资产)。 -加密机制确保了一旦交易被验证为有效并添加到区块链中后,之后就不会被篡改。 同样的机制还确保所有交易都以适当的“权限”签名和执行(除了 Alice 本人,任何人都不能从 Alice 的账户发送数字资产)。 +## 什么是以太币 (ETH)? {#what-is-ether} -## 什么是以太币(ether)? {#what-is-ether} +**以太币 (ETH)** 是以太坊上的原生加密货币。 以太币的目的是允许计算市场化。 这种市场为参与者提供了一种经济激励,以验证并执行交易请求,为网络提供计算资源。 -**以太币 (ETH)** 是以太坊上的的原生加密货币。 为什么要有以太币的存在?目的是为了允许算力市场的存在。 这种市场为参与者提供了一种经济激励,以验证并执行交易请求,为网络提供计算资源。 +任何广播交易请求的参与者还必须向网络提供一定数量的以太币作为奖金。 网络将把这种奖金奖励给最终验证交易、执行交易、将其提交到区块链并广播到网络的任何人。 -任何广播交易请求的参与者也必须向网络提供一定数量的以太币作为奖励。 这笔奖金将颁发给最终验证交易、执行交易并将其提交到区块链,并在网络中广播的任何人。 +支付的以太币数量对应于进行计算所需的时间。 这类奖励也可以防止恶意参与者通过请求执行无穷计算或资源密集型脚本来故意堵塞网络,因为这些参与者必须为自己的计算时间付费。 -支付的 ETH 数量对应于进行计算所需的时间。 这类奖励也可以防止恶意参与者通过请求执行无限循环或资源密集型脚本来故意堵塞网络,因为这些参与者将为自己的计算时间付费。 +以太币还用于通过以下三种主要方式为网络提供加密经济安全性:1) 作为一种奖励方式,奖励提议区块或指出其他验证者不诚实行为的验证者;2) 由验证者抵押,作为遏制不诚实行为的抵押品 — 如果验证者试图行为不端,它们的以太币可能会被销毁;3) 用于对新提议的区块的“投票”进行加权,并影响共识机制的分叉选择部分。 ## 什么是智能合约? {#what-are-smart-contracts} -实际上,参与者不会每当在 EVM 上请求计算时都编写新代码。 相反,应用程序开发者将程序(可重用的代码片段)上传到以太坊虚拟机状态,用户发出请求以使用不同参数执行这些代码片段。 我们将这些上传至网络并由网络执行的程序称为智能合约。 +实际上,参与者不会每次在以太坊虚拟机上请求计算时都编写新代码。 相反,应用程序开发者将程序(可重用的代码片段)上传到以太坊虚拟机状态,用户发出请求以使用不同参数执行这些代码片段。 我们将这些上传至网络并由网络执行的程序称为智能合约。 简单来说,你可以把智能合约想象成一种自动售货机:通过特定参数调用脚本后,如果满足某些特定条件,就会执行一些操作或计算。 例如,如果调用者将以太币发送给特定的接收者,简单的卖方智能合约就可以创建和分配数字资产所有权。 -任何开发者都可以创建智能合约并在网络上公开,并使用区块链作为其数据层,向网络支付费用。 然后,任何用户都可以调用智能合约来执行其代码,并再次向网络支付费用。 +任何开发者都可以创建智能合约,并使用区块链作为其数据层,将其公开给网络,但要向网络支付以太币。 然后,任何用户都可以调用智能合约来执行其代码,并再次向网络支付费用。 因此,通过智能合约,开发者可以任意构建和部署面向用户的复杂应用程序和服务,例如市场、金融工具、游戏等。 ## 术语 {#terminology} -### Blockchain 区块链 {#blockchain} +### 区块链 {#blockchain} -所有已在网络历史上提交给以太坊网络的区块的序列。 如此命名,是因为每个区块都包含对前一个区块的引用,这有助于保持所有区块的顺序,因而维持了精确历史记录的顺序。 +所有在以太坊网络历史上提交给以太坊网络的区块的序列。 如此命名,是因为每个区块都包含对前一个区块的引用,这有助于保持所有区块的顺序,因而维持了精确历史记录的顺序。 ### ETH 以太币 {#eth} **以太币 (ETH)** 是以太坊上的原生加密货币。 用户向其他用户支付以太币,让他们完成自己的代码执行请求。 -[ETH 的更多信息](/developers/docs/intro-to-ether/) +[有关以太币的更多信息](/developers/docs/intro-to-ether/) ### EVM 以太坊虚拟机 {#evm} -以太坊虚拟机是一个全局虚拟计算机,以太坊网络每个参与者都会存储并同意其状态。 任何参与者都可以请求执行 EVM 上的任意代码;代码执行会改变 EVM 的状态。 +以太坊虚拟机是一个全局虚拟计算机,以太坊网络中的每个参与者都会存储并一致同意其状态。 任何参与者都可以请求在以太坊虚拟机上执行任意代码;代码执行会改变以太坊虚拟机的状态。 -[关于 EVM 的更多信息](/developers/docs/evm/) +[有关以太坊虚拟机的更多信息](/developers/docs/evm/) ### Nodes 节点 {#nodes} -存储 EVM 状态的实体机器。 节点间相互通讯传播关于 EVM 状态变化和新状态更改的信息。 任何用户还可以通过广播来自节点的代码执行请求来请求代码执行。 以太坊网络本身就是所有以太坊节点及其通信的集合。 +存储以太坊虚拟机状态的实体计算机。 节点间相互通信,传播关于以太坊状态的信息及其新的状态变化。 任何用户还可以通过广播来自节点的代码执行请求来请求代码执行。 以太坊网络本身就是所有以太坊节点及其通信的集合。 -[关于节点的更多信息](/developers/docs/nodes-and-clients/) +[有关节点的更多信息](/developers/docs/nodes-and-clients/) ### 帐户 {#accounts} -帐户是存储以太币之处。 用户可以初始化帐户,将以太币存入帐户,并将自己帐户中的以太币转账给其他用户。 帐户和帐户余额储存在 EVM 中的一个大表格中,是 EVM 总体状态的一部分。 +帐户是存储以太币之处。 用户可以初始化帐户,将以太币存入帐户,并将自己帐户中的以太币转账给其他用户。 帐户和帐户余额存储在以太坊虚拟机中的一个大表格中,是以太坊虚拟机总体状态的一部分。 -[关于账户的更多信息](/developers/docs/accounts/) +[有关帐户的更多信息](/developers/docs/accounts/) ### 交易 {#transactions} -“交易请求”是在 EVM 上执行代码请求的正式术语。“交易”是指已完成的交易请求和相关的 EVM 状态变化。 任何用户都可以从节点向网络广播交易请求。 为了使交易请求影响 EVM 的一致状态,就必须由其他节点对其进行验证、执行和“提交到网络”。 执行任何代码都会导致 EVM 的状态更改;一旦提交后,该状态更改将广播到网络中的所有节点。 以下为一些交易示例: +“交易请求”是表示以太坊虚拟机上的代码执行请求的正式术语。“交易”是指已完成的交易请求和相关的以太坊虚拟机状态变化。 任何用户都可以从节点向网络广播交易请求。 为了使交易请求影响一致同意的以太坊虚拟机状态,就必须由其他节点对其进行验证、执行并“提交到网络”。 执行任何代码都会导致以太坊虚拟机状态变化;一旦提交后,该状态变化将广播到网络中的所有节点。 以下为一些交易示例: - 从我的帐户发送 X 个以太币到 Alice 的帐户。 - 将一些智能合约代码发布到以太坊虚拟机状态中。 - 使用 Y 参数执行 EVM 中 X 地址的智能合约代码。 -[关于交易的更多信息](/developers/docs/transactions/) +[有关交易的更多信息](/developers/docs/transactions/) ### 区块 {#blocks} 交易量巨大,因此交易分批或分区块“提交”。 区块通常包含数十至数百笔交易。 -[关于区块的更多信息](/developers/docs/blocks/) +[有关区块的更多信息](/developers/docs/blocks/) ### 智能合约 {#smart-contracts} -是指开发者发布到以太坊虚拟机状态中的可重用代码片段(程序)。 任何人都可以通过提出“交易请求”来请求执行智能合约代码。 因为开发人员可以通过发布智能合约将任意可执行应用程序写入 EVM(游戏,市场,金融工具等),所以这些通常也称为 [dapp 或去中心化应用](/developers/docs/dapps/)。 +是指开发者发布到以太坊虚拟机状态中的可重用代码片段(程序)。 任何人都可以通过提出交易请求来请求执行智能合约代码。 因为开发者可以通过发布智能合约将任意可执行应用程序(游戏,市场,金融工具等)写入以太坊虚拟机,所以这些通常也称为 [dapp 或去中心化应用程序](/developers/docs/dapps/)。 -[了解关于智能合约的更多信息](/developers/docs/smart-contracts/) +[有关智能合约的更多信息](/developers/docs/smart-contracts/) ## 延伸阅读 {#further-reading} - [以太坊白皮书](/whitepaper/) - [所以以太坊到底如何工作?](https://www.preethikasireddy.com/post/how-does-ethereum-work-anyway)- _Preethi Kasireddy_ -_还有哪些社区资源对您有所帮助? 请编辑本页面并添加!_ +_还有哪些社区资源对你有所帮助? 请编辑本页面以添加!_ ## 相关教程 {#related-tutorials} diff --git a/src/content/translations/zh/developers/docs/networking-layer/index.md b/src/content/translations/zh/developers/docs/networking-layer/index.md index 866ce3b9e8c..78d7553eea6 100644 --- a/src/content/translations/zh/developers/docs/networking-layer/index.md +++ b/src/content/translations/zh/developers/docs/networking-layer/index.md @@ -2,15 +2,14 @@ title: 网络层 description: 以太坊网络层简介。 lang: zh -sidebar: true sidebarDepth: 2 --- 以太坊是一个由数千个节点组成的点对点网络,节点之间必须能够使用标准化协议相互通信。 “网络层”是使节点能够找到彼此并交换信息的协议栈。 可交换信息包括网络上的“广播”信息(一对多通信),以及特定节点之间的交换请求和答复(一对一通信)。 每个节点必须遵守特定的网络规则,以确保发送和接收正确的信息。 -[合并](/upgrades/merge/)后,客户端软件将有两个部分(执行客户端和共识客户端),每个部分都有自己独有的网络堆栈。 除了与其他以太坊节点进行通信外,执行客户端和共识客户端还必须互相通信。 本页介绍了用以实现这种通信的协议。 +客户端软件由两部分组成(执行客户端和共识客户端),它们都具有各自的网络堆栈。 除了与其他以太坊节点进行通信外,执行客户端和共识客户端还必须互相通信。 本页介绍了用以实现这种通信的协议。 -**请注意,在[合并](/upgrades/merge)之后,执行客户端将不再负责广播区块,但仍会通过执行层对等网络广播交易。 交易将通过本地远程过程调用连接传递给共识客户端,然后被共识客户端打包为信标块。 之后,共识客户端将在他们的对等网络中广播信标块。** +执行客户端通过执行层的点对点网络广播交易信息。 这需要经验证的对等点之间进行加密通信。 当一个验证者被选中来提议区块时,该节点本地交易池中的交易将会通过一个本地远程过程调用连接传递至共识客户端,然后再将其打包进信标区块。 之后,共识客户端将在它们的对等网络中广播信标区块。 广播过程需要两个独立的对等网络:一个连接执行客户端,负责交易的广播;另一个连接共识客户端,负责区块的广播。 ## 前提条件 {#prerequisites} @@ -46,9 +45,9 @@ sidebarDepth: 2 [以太坊节点记录 (ENR)](/developers/docs/networking-layer/network-addresses/) 是一个包含三个基本元素的对象:签名(根据某种商定的身份识别方案创建的记录内容的散列)、跟踪记录更改的序号和键:值对的任意列表。 这种格式不会过时,使新对等点之间身份识别信息的交换更加容易,并且是以太坊节点的首选[网络地址](/developers/docs/networking-layer/network-addresses)格式。 -#### 发现为什么建立在用户数据报协议上? {#why-udp} +#### 发现为什么建立在 UDP 协议上? {#why-udp} -用户数据报协议不支持任何错误检查、重新发送失败的数据包,或者动态地打开和关闭连接;相反,它只是将连续的信息流发送至目标,无论目标是否成功接收。 这种极小的功能也会产生极少的营运开支,从而使这种连接非常迅速。 对于发现而言,如果某个节点只想让人知道它的存在,以便与某个对等点建立正式的连接,用户数据报协议已经足够。 然而,对其余的网络堆栈来说,用户数据报协议并不适用。 节点之间的信息交流相当复杂,因此需要一个功能更完善的协议来支持重新发送、错误检查等。 与传输控制协议相关的额外运营开支可以负担额外的功能。 因此,对等网络堆栈大多通过传输控制协议运行。 +UDP 协议不支持任何错误检查、重新发送失败的数据包,或者动态地打开和关闭连接;相反,它只是将连续的信息流发送至目标,无论它们是否被对方成功接收。 这种最简化的功能会产生最少的连接开销,从而使这种连接非常迅速。 对于发现而言,如果某个节点只想让其它节点知道它的存在以便它与某个对等点建立正式的连接,UDP 协议就已经足够了。 然而,对网络协议栈的其余部分来说,UDP 协议就不那么合适了。 节点之间的信息交流相当复杂,因此需要一个功能更完善的协议来支持重新发送、错误检查等。 TCP 协议带来更多功能所产生的额外连接开销是值得的。 因此,对等网络协议栈中的大多数协议在 TCP 协议之上运行。 ### DevP2P {#devp2p} @@ -72,15 +71,15 @@ Hello 消息包含: #### 线路协议 {#wire-protocol} -对等点连接并开始 RLPx 会话后,线路协议将定义对等点如何通信。 线路协议会确定三个主要任务:链同步、区块传播和交易交换。 链同步是验证链头附近区块、检查它们的工作量证明数据并重新执行它们的交易,以确保正确的根哈希值。然后通过这些区块的父块、祖父块等回溯历史,直到整个链都已被下载和验证。 状态同步是仅验证区块头的一种替代方法,这种方法更加快速。 区块传播是发送和接收新挖矿区块的过程。 交易交换所指的是节点之间互相交换待处理的交易,以便矿工能够选择其中一些交易放到下一区块中。 有关这些任务的详细信息可从[这里](https://github.com/ethereum/devp2p/blob/master/caps/eth.md)获取。 支持这些子协议的客户端通过 [JSON-RPC](/developers/docs/apis/json-rpc) 曝光自己。 +连接对等点并启动 RLPx 会话后,线路协议定义了对等点间的通信方式。 起初,线路协议定义了三项主要任务:链同步、区块传播和交易交换。 但是当以太坊切换至权益证明之后,区块传播和链同步变为共识层的一部分。 交易交换仍由执行客户端负责。 交易交换所指的是节点之间互相交换待处理的交易,以便矿工能够选择其中一些交易放到下一区块中。 有关这些任务的详细信息可从[这里](https://github.com/ethereum/devp2p/blob/master/caps/eth.md)获取。 支持这些子协议的客户端通过 [JSON-RPC](/developers/docs/apis/json-rpc/) 将自己公开给网络中的其它部分。 #### les(以太坊轻客户端子协议) {#les} -这是用于同步轻量级客户端的最小协议。 一般来说,这个协议很少使用,因为需要全节点在没有受到推动的情况下向轻量级客户端提供数据。 执行客户端的默认行为不是通过以太坊轻客户端子协议为轻量级客户端数据提供服务。 更多信息请见以太坊轻客户端子协议[规范](https://github.com/ethereum/devp2p/blob/master/caps/les.md)。 +这是用于同步轻量级客户端的最小协议。 传统上很少使用这一协议,因为全部节点都要求在没有任何奖励的情况下向轻量级客户端提供数据。 执行客户端的默认行为不是通过以太坊轻客户端子协议为轻量级客户端数据提供服务。 更多信息请见以太坊轻客户端子协议[规范](https://github.com/ethereum/devp2p/blob/master/caps/les.md)。 #### 快照 {#snap} -[快照协议](https://github.com/ethereum/devp2p/blob/master/caps/snap.md#ethereum-snapshot-protocol-snap)是一种可选扩展,使对等点能够交换最近状态的快照,以便它们无需下载中间默克尔树节点就能验证帐户和存储数据。 +[快照协议](https://github.com/ethereum/devp2p/blob/master/caps/snap.md#ethereum-snapshot-protocol-snap)是一种可选扩展,该扩展使对等点能够交换最近状态的快照,从而无需下载默克尔前缀树的内部节点就能验证帐户信息和存储的数据。 #### Wit(见证协议) {#wit} @@ -90,10 +89,6 @@ Hello 消息包含: 耳语协议旨在实现对等节点之间的安全消息传输,无需向区块链写入任何信息。 它曾是 DevP2P 线路协议的一部分,但现在已经弃用。 其他[相关项目](https://wakunetwork.com/)也存在类似目标。 -## 合并后的执行层网络 {#execution-after-merge} - -合并后,一个以太坊节点将运行一个执行客户端和一个共识客户端。 执行客户端的运行将与现在类似,但删除了工作量证明共识和区块广播功能。 以太坊虚拟机、验证者存款合约和从内存池中选择/执行交易仍将是执行客户端的工作范围。 这意味着执行客户端仍然需要参与交易广播,以便它们可以管理交易内存池。 这需要经过身份验证的对等点之间进行加密通信,意味着共识客户端的网络层仍然是关键组件,包括发现协议和 DevP2P 层。 而编码将继续主导执行层上的递归长度前缀。 - ## 共识层 {#consensus-layer} 共识客户端参与具有不同规范的单独对等网络。 共识客户端需要参与区块广播,以便它们可以从对等点接收新区块,并在轮到它们成为区块提议者时进行广播。 与执行层类似,这首先需要一个发现协议,以便节点可以找到对等点并建立安全会话,以交换区块、证明等。 @@ -124,7 +119,7 @@ SSZ 代表简单序列化。 它使用固定偏移量,可以轻松解码编码 ## 连接执行客户端和共识客户端 {#connecting-clients} -合并后,共识客户端和执行客户端将并行运行。 它们需要连接在一起,以便共识客户端可以向执行客户端提供指令,并且执行客户端可以将交易包传递给共识客户端,以包含在信标块中。 两个客户端之间的这种通信可以使用本地远程过程调用连接来实现。 名为[“引擎应用程序接口”](https://github.com/ethereum/execution-apis/blob/main/src/engine/specification.md)的应用程序接口定义了两个客户端之间发送的指令。 由于两个客户端采用一个网络身份,因此它们共享一个 ENR(以太坊节点记录),其中包含每个客户端的单独密钥(以太坊 1 密钥和以太坊 2 密钥)。 +共识客户端和执行客户端同时运行。 它们需要彼此连接,这样共识客户端才能向执行客户端提供指令,后者也才能向前者传送需要纳入信标区块的交易捆绑包。 两个客户端之间的通信可通过本地远程过程调用连接实现。 名为[“引擎-API”](https://github.com/ethereum/execution-apis/blob/main/src/engine/specification.md)的应用程序接口(Application Program Interface, API) 定义了两个客户端之间发送的指令。 由于两个客户端共用同一个网络身份,因此它们也共享同一个以太坊节点记录 (ENR),其中包含了每个客户端单独的密钥(eth1 密钥和 eth2 密钥)。 下面显示了控制流摘要,括号中是相关的网络堆栈。 @@ -139,11 +134,11 @@ SSZ 代表简单序列化。 它使用固定偏移量,可以轻松解码编码 ##### 当共识客户端是区块生产者时: -- 共识客户端收到通知,它是下一个区块生产者(共识对等网络) +- 共识客户端收到通知,指出它将成为下一个区块的生产者(共识对等网络) - 共识层在执行客户端调用 `create block` 方法(本地远程过程调用) - 执行层访问由交易广播协议填充的交易内存池(执行对等网络) - 执行客户端将交易打包为一个区块、执行交易并生成一个区块哈希 -- 共识客户端从共识客户端获取交易和区块哈希,并将它们添加到信标块(本地远程过程调用) +- 共识客户端从执行客户端获取交易和区块哈希,并将它们加入信标区块(本地远程过程调用) - 共识客户端通过区块广播协议广播区块(共识对等网络) - 其他客户端通过区块广播协议接收提议的区块,并如上所述进行验证(共识对等网络) @@ -151,7 +146,7 @@ SSZ 代表简单序列化。 它使用固定偏移量,可以轻松解码编码 ![](cons_client_net_layer.png) ![](exe_client_net_layer.png) -合并后共识客户端和执行客户端的网络层示意图,来自 [ethresear.ch](https://ethresear.ch/t/eth1-eth2-client-relationship/7248) +共识客户端和执行客户端的网络层示意图,取自 [ethresear.ch](https://ethresear.ch/t/eth1-eth2-client-relationship/7248) ## 延伸阅读 {#further-reading} diff --git a/src/content/translations/zh/developers/docs/networking-layer/network-addresses/index.md b/src/content/translations/zh/developers/docs/networking-layer/network-addresses/index.md index cec0fdd9922..6f651ca1e09 100644 --- a/src/content/translations/zh/developers/docs/networking-layer/network-addresses/index.md +++ b/src/content/translations/zh/developers/docs/networking-layer/network-addresses/index.md @@ -2,7 +2,6 @@ title: 网络地址 description: 网络地址简介 lang: zh -sidebar: true sidebarDepth: 2 --- @@ -14,7 +13,7 @@ sidebarDepth: 2 ## Multiaddr {#multiaddr} -原始以太坊节点地址格式为“multiaddr”(“多地址”的缩写)。 Multiaddr 是一种通用格式,用于对等网络。 地址以键值对表示,键与值之间用正斜杠隔开。 例如,使用 IPv4 地址 `192.168.2.27` 监听 TCP 端口 `33000` 的节点可能具有以下类似的 multiaddr: +原始以太坊节点地址格式为“multiaddr”(“多地址”的缩写)。 Multiaddr 是一种通用格式,用于对等网络。 地址以键值对表示,键与值之间用正斜杠隔开。 例如,使用 IPv4 地址 `192.168.22.27` 监听 TCP 端口 `33000` 的节点可能具有以下类似的 multiaddr: `/ip4/192.168.22.27/tcp/33000` @@ -34,6 +33,6 @@ Enode 使用 URL 地址格式来识别以太坊节点。 十六进制节点 ID 以太坊节点记录 (ENR) 是以太坊网络地址的标准格式。 这种地址取代了 multiaddr 和 enode。 由于它们使节点之间能够进行更多的信息交流,因而尤其实用。 以太坊节点记录包含一个签名、序列号和字段,详细说明了用于生成和验证签名的身份识别方案。 以太坊节点记录还可以填充为采用键值对格式的任意数据。 这些键值对包含节点的 IP 地址和节点能够使用的子协议的信息。 共识客户端使用[特定的以太坊节点记录结构](https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#enr-structure)来识别引导节点,并包括一个 `eth2` 字段,其中包含有关当前以太坊分叉和认证信息传播子网的信息。上述子网将节点连接至证明被整合在一起的特定对等点集。 -## 了解更多 {#further-reading} +## 延伸阅读 {#further-reading} [EIP-778:以太坊节点记录](https://eips.ethereum.org/EIPS/eip-778) [以太坊中的网络地址](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/src/content/translations/zh/developers/docs/networks/index.md b/src/content/translations/zh/developers/docs/networks/index.md index 414b7a819df..5e4d6899c96 100644 --- a/src/content/translations/zh/developers/docs/networks/index.md +++ b/src/content/translations/zh/developers/docs/networks/index.md @@ -8,7 +8,7 @@ lang: zh 以太坊帐户可在不同的网络上使用,但是帐户余额和交易历史记录不会结转到以太坊主网以外。 进行测试时,了解哪些网络可用以及如何获取可以试用的测试网以太币是很有用的。 -## 前置要求 {#prerequisites} +## 前提条件 {#prerequisites} 你应该先了解[以太坊基础知识](/developers/docs/intro-to-ethereum/),然后再深入研究不同的网络,因为测试网络将提供一种低廉、安全的以太坊供你试用。 @@ -28,15 +28,27 @@ lang: zh 在部署到主网之前,你应该在测试网测试编写的任何合约代码。 在与现有智能合约集成的去中心化应用程序中,大多数项目将副本部署到测试网。 -大多数测试网使用权威证明的共识机制。 这意味着会选择少量节点来验证交易并创建新区块——在此过程中将他们的身份进行抵押。 测试网不鼓励工作量证明挖矿,这种挖矿可能会使它们容易受到攻击。 +大多数测试网最初都是使用权威证明共识机制。 这意味着会选择少量节点来验证交易并创建新区块——在此过程中将他们的身份进行抵押。 然而,一些测试网在启动时采用工作量证明共识机制,网络内只有少数获得许可的矿工。 然而,为了准备[合并](/upgrades/merge),这些测试网各自都经历了向权益证明的过渡,在开发者合并以太坊主网之前提供了多次“彩排”机会。 目前,以太坊测试网在权益证明机制下运行,和以太坊主网相同。 -随着[合并](/upgrades/merge)临近,更多工作量证明和权威证明公共测试网正在向权益证明转变。 转换它们的共识机制可作为以太坊主网合并的预演。 Ropsten、Sepolia 和 Goerli 测试网预计将在 2022 年夏末成为权益证明网络,而 Goerli 测试网将得到长期维护。 +测试网上的以太币没有实际价值;因此测试网以太币没有市场。 由于实际中与以太坊进行交互时需要以太币,所以大多数人从水龙头获取测试网以太币。 大多数水龙头是网络应用程序,你可以给它输入一个请求发送以太币的地址。 -测试网上的以太币没有实际价值;因此没有测试网以太币市场。 由于与以太坊进行实际交互需要使用以太币,因此大多数人从水龙头获取测试网以太币。 大多数水龙头是网络应用程序,你可以向其中输入一个地址并要求向该地址发送以太币。 +#### Goerli {#goerli} + +Goerli 是一个权益证明测试网。 它有望得到长期维护,作为面向应用程序开发者的稳定测试网。 在其测试网合并之前,Goerli 是一个权威证明测试网。 + +- [网站](https://goerli.net/) +- [GitHub](https://github.com/goerli/testnet) +- [Etherscan](https://goerli.etherscan.io) + +##### Goerli 水龙头 + +- [Goerli 水龙头](https://faucet.goerli.mudit.blog/) +- [Chainlink 水龙头](https://faucets.chain.link/) +- [Alchemy Goerli 水龙头](https://goerlifaucet.com/) #### Sepolia {#sepolia} -一个工作量证明测试网;这意味着它是以太坊最好的相似代表。 预计 Sepolia 将在 2022 年夏天进行合并,并转变为权益证明测试网。 目前还不能确定该测试网是否会得到长期维护。 +Sepolia 是一个权益证明测试网。 尽管 Sepolia 仍在运行,但目前不打算长期维护。 在 2022 年 6 月进行合并之前,Sepolia 是一个工作量证明测试网。 - [网站](https://sepolia.dev/) - [GitHub](https://github.com/goerli/sepolia) @@ -48,25 +60,11 @@ lang: zh - [Sepolia 水龙头](https://faucet.sepolia.dev/) - [FaucETH](https://fauceth.komputing.org) -#### Goerli {#goerli} - -一个可以跨客户端使用的权威证明测试网,是应用程序开发者的理想测试网。 Goerli 将是以太坊主网合并前最后一个合并且过渡到权益证明共识机制的测试网。 预计 Goerli 合并将在 2022 年夏天进行。 Goerli 有望作为权益证明测试网得到长期维护。 - -- [网站](https://goerli.net/) -- [GitHub](https://github.com/goerli/testnet) -- [Etherscan](https://goerli.etherscan.io) - -##### Goerli 水龙头 - -- [Goerli 水龙头](https://faucet.goerli.mudit.blog/) -- [Chainlink 水龙头](https://faucets.chain.link/) -- [Alchemy Goerli 水龙头](https://goerlifaucet.com/) - #### Ropsten*(已弃用)* {#ropsten} _注意,[Ropsten 测试网已弃用](https://github.com/ethereum/pm/issues/460)并且将不再获得协议升级。 请考虑将你的应用程序迁移到 Sepolia 或 Goerli。_ -Ropsten 是一个工作量证明测试网,它在 2022 年 5 月经历了合并,过渡到权益证明共识机制。 可通过 Ropsten 在合并后网络上测试应用程序,但预计它不会得到长期维护并且可能在 2023 年夏季之前弃用。 +Ropsten 是一个权益证明测试网。 Ropsten 将于 2022 年晚些时候弃用。 在 2022 年 5 月进行合并之前,Ropsten 是一个工作量证明测试网。 ##### Ropsten 水龙头 @@ -105,7 +103,7 @@ _注意:[Kovan 测试网已弃用](https://github.com/ethereum/pm/issues/460) #### Arbitrum Rinkeby {#arbitrum-rinkeby} -[Arbitrum ](https://arbitrum.io/)测试网。 +[Arbitrum](https://arbitrum.io/) 测试网。 Arbitrum Rinkeby 水龙头: @@ -124,7 +122,7 @@ Optimistic Kovan 水龙头: ## 私有网络 {#private-networks} -如果以太坊网络的节点未连接到公共网络(即 主网或测试网),则以太坊网络就是私有网络。 在这种情况下,私有仅指保留或隔离,而不是保护或安全。 +如果以太坊网络的节点未连接到公共网络(即, 主网或测试网),则以太坊网络就是私有网络。 在这种情况下,私有仅指保留或隔离,而不是保护或安全。 ### 开发网络 {#development-networks} @@ -145,4 +143,4 @@ Optimistic Kovan 水龙头: ## 延伸阅读 {#further-reading} -_还有哪些社区资源对你有所帮助? 请编辑本页面并添加!_ +- [以太坊测试网的演变](https://etherworld.co/2022/08/19/the-evolution-of-ethereum-testnet/) diff --git a/src/content/translations/zh/developers/docs/nodes-and-clients/client-diversity/index.md b/src/content/translations/zh/developers/docs/nodes-and-clients/client-diversity/index.md index 733d46eba7c..a8e3ad2d436 100644 --- a/src/content/translations/zh/developers/docs/nodes-and-clients/client-diversity/index.md +++ b/src/content/translations/zh/developers/docs/nodes-and-clients/client-diversity/index.md @@ -2,7 +2,6 @@ title: 客户端多样性 description: 对以太坊客户端多样性的重要性进行概括解释。 lang: zh -sidebar: true sidebarDepth: 2 --- @@ -10,7 +9,7 @@ sidebarDepth: 2 ## 前提条件 {#prerequisites} -如果你还不清楚什么是节点和客户端,请参阅[节点和客户端](/developers/docs/nodes-and-clients/)。 [点击此处](/upgrades/beacon-chain/)了解信标链。 [执行层](/glossary/#execution-layer)和[共识层](/glossary/#consensus-layer)的定义见词汇表。 +如果你还不了解什么是节点和客户端,请查看[节点和客户端](/developers/docs/nodes-and-clients/)。 [执行层](/glossary/#execution-layer)和[共识层](/glossary/#consensus-layer)的定义见词汇表。 ## 为什么会有多种客户端? {#why-multiple-clients} @@ -30,11 +29,11 @@ sidebarDepth: 2 ### 权益证明的最终确定性 {#finality} -自建立伊始,以太坊一直保持正常运行。 合并之后,客户端多样性差带来的风险更令人担忧。 当一种拥有 33% 以上以太坊节点的共识客户端出现严重漏洞时,就可能会阻止信标链最终确定,导致以太坊离线。 +占据超过 33% 的以太坊节点的共识客户端中有一个漏洞,它可能会阻止信标链最终确定,这意味着用户可能无法相信交易在某些时候不会被回滚或更改。 对于许多建立在以太坊之上的应用程序,尤其是去中心化金融,这将是一个很大的问题。 更糟糕的是,当拥有三分之二多数节点的客户端出现严重漏洞,可能会导致链错误地分叉并最终确定,让大量验证者困陷在无效链上。 如果这些验证者想重新加入正确的链,他们将面临罚没或缓慢而昂贵的自愿退出和重新激活过程。 罚没的轻重随过错节点数量而异,三分之二多数将受到最严重的惩罚(32 个以太币)。 -尽管这些情况不太可能发生,但为了降低这类风险,以太坊生态系统可以使客户端均衡分布在活跃节点上。 理想情况下,任何共识客户端任何时候都不会拥有超过 33% 的总节点数。 +尽管这些情况不太可能发生,但为了降低这类风险,以太坊生态系统可以使客户端均衡分布在活跃节点上。 理想情况下,任何共识客户端任何时候都不会达到总节点数的 33%。 ### 共担责任 {#responsibility} diff --git a/src/content/translations/zh/developers/docs/nodes-and-clients/index.md b/src/content/translations/zh/developers/docs/nodes-and-clients/index.md index c245c89aad1..9f3b2a6f6d5 100644 --- a/src/content/translations/zh/developers/docs/nodes-and-clients/index.md +++ b/src/content/translations/zh/developers/docs/nodes-and-clients/index.md @@ -17,24 +17,55 @@ sidebarDepth: 2 ## 什么是节点和客户端? {#what-are-nodes-and-clients} -“节点”是运行以太坊客户端软件的计算机。 客户端是一种以太坊实现,它验证每个区块中的所有交易,从而确保网络安全和数据准确。 在合并前,运行一个全节点需要一种软件(或者运行一个挖矿节点需要两种软件)。 在合并后,运行一个全节点需要两种客户端软件(运行一个验证者节点需要三种),一种客户端处理和传播交易(执行客户端),一种处理区块传播和分叉选择(共识客户端),而可选的验证者客户端处理区块生成以及对从其他对等节点收到的区块进行“投票”。 +“节点”是指任何以太坊客户端软件的实例,它连接到也运行以太坊软件的其他计算机,形成一个网络。 客户端是以太坊的实现,它根据协议规则验证数据并保持网络安全。 -通过查看此[节点图](https://etherscan.io/nodetracker),可以查看以太坊网络的实时视图。 +合并后的以太坊由两部分组成:执行层和共识层。 这两层网络是由不同的客户端软件运行。 在本页面,我们分别称他们为“执行客户端”和“共识客户端”。 -有许多使用多种不同编程语言编写的[以太坊执行客户端](/developers/docs/nodes-and-clients/#execution-clients)和[共识客户端](/developers/docs/nodes-and-clients/#consensus-clients),如 Go、Rust、JavaScript、Typescript、Python、C# .NET、Nim 和 Java。 这些客户端实现的共同之处是它们都遵循形式化规范。 这些规范规定了以太坊网络和区块链如何运作。 +- 执行客户端(也称为执行引擎、EL 客户端或旧称“以太坊 1”客户端)侦听网络中广播的新交易,在以太坊虚拟机中执行它们,并保存所有当前以太坊数据的最新状态和数据库。 +- 共识客户端(也称为信标节点、CL 客户端或旧称“以太坊 2”客户端)实现了权益证明共识算法,使网络能够根据来自执行客户端的经过验证的数据达成一致。 + +在[合并](/upgrades/merge/)之前,共识层和执行层是独立的网络,以太坊上的所有交易和用户活动都发生在现在的执行层。 一个客户端软件为矿工生产的区块提供执行环境和共识验证。 2020 年 12 月后,共识层即[信标链](/upgrades/beacon-chain/)一直单独运行。 它引入了权益证明,并根据来自以太坊网络的数据协调验证者网络。 + +通过合并,以太坊连接这些网络并过渡到权益证明。 执行客户端和共识客户端共同验证以太坊的状态。 + +各种软件协同工作的模块化设计称为[封装复杂性](https://vitalik.ca/general/2022/02/28/complexity.html)。 这种方法更轻松地实现了顺利合并,并支持各客户端的重用,例如在[二层网络生态系统](/layer-2/)中的重用。 ![已连接的执行客户端和共识客户端](./eth1eth2client.png) 已连接执行客户端和共识客户端的简化图。 +### 客户端多样性 {#client-diversity} + +[执行客户端](/developers/docs/nodes-and-clients/#execution-clients)和[共识客户端](/developers/docs/nodes-and-clients/#consensus-clients)采用各种不同编程语言编写,并由不同团队开发。 + +多种客户端实现减少了对于单一代码库的依赖,使网络更强大。 理想的目标是实现多样性,即没有任何客户端在网络中占据主导地位,从而排除潜在的单点故障。 语言多样化令开发者社区更加广泛,并允许他们用自己喜欢的语言创建集成。 + +了解有关[客户端多样性](/developers/docs/nodes-and-clients/client-diversity/)的更多信息。 + +这些实现的共同点是它们都遵循一种规范。 这些规范规定了以太坊网络和区块链如何运作。 规范定义了每个技术细节,并有以下几种形式: + +- 最初为[以太坊黄皮书](https://ethereum.github.io/yellowpaper/paper.pdf) +- [执行规范](https://github.com/ethereum/execution-specs/) +- [共识规范](https://github.com/ethereum/consensus-specs) +- 在各种[网络升级](/history/)中实现的[以太坊改进提案](https://eips.ethereum.org/) + +### 跟踪网络中的节点 {#network-overview} + +多种跟踪器提供以太坊网络中节点的实时概览。 请注意,由于去中心化网络的性质,这些爬虫只能提供有限的网络视图,并且可能会报告不同的结果。 + +- [节点地图](https://etherscan.io/nodetracker),由 Etherscan 提供 +- [以太坊节点](https://ethernodes.org/),由 Bitfly 提供 +- [以太坊节点爬虫](https://crawler.ethereum.org/) +- [Nodewatch](https://www.nodewatch.io/) 由 Chainsafe 提供,爬取共识节点 + ## 节点类型 {#node-types} -如果你想[运行自己的节点](/developers/docs/nodes-and-clients/run-a-node/),就应该明白节点有几种不同类型并且使用数据的方式亦不同。 事实上,客户端可以运行三种不同类型的节点 - 轻节点、全节点和归档节点。 也有不同的同步策略可供选择,可加快同步时间。 同步是指节点能以多快的速度获取最新以太坊状态信息。 +如果你想[运行自己的节点](/developers/docs/nodes-and-clients/run-a-node/),就应该明白节点有几种不同类型并且使用数据的方式亦不同。 事实上,客户端可以运行三种不同类型的节点:轻节点、全节点和归档节点。 还有不同同步策略的选项,可以实现更快的同步时间。 同步是指节点能以多快的速度获取最新以太坊状态信息。 ### 全节点 {#full-node} -- 存储完整的区块链数据(会进行定期精减,所以全节点并不存储包含创世块在内的所有状态数据) +- 存储全部区块链数据(会定期修剪,所以全节点并不存储包含创世块在内的所有状态数据) - 参与区块验证,验证所有区块和状态。 - 所有状态都可以从全节点中获取(尽管非常久远的状态是通过向归档节点发出请求重建的)。 -- 提供网络服务,并应要求提供数据。 +- 为网络提供服务,并应要求提供数据。 ### 轻节点 {#light-node} @@ -48,24 +79,25 @@ sidebarDepth: 2 ### 归档节点 {#archive-node} -- 存储全节点中保存的所有内容,并建立历史状态存档。 如果想查询区块 #4,000,000 中的帐户余额等内容,或者想简单可靠地[测试自己的一组交易而不使用 OpenEthereum 挖矿](https://openethereum.github.io/JSONRPC-trace-module#trace_callmany),则需要归档节点。 -- 这些数据用太字节作为单位,这使存档节点对普通用户的吸引力降低,但对于诸如区块浏览器、钱包供应商和链分析之类的服务而言却很方便。 +- 存储全节点中保存的所有内容,并建立历史状态存档。 如果你想查询区块 #4,000,000 的帐户余额,或者想简单可靠地测试自己的一组交易而不使用跟踪挖掘它们,则需要归档节点。 +- 这些数据以太字节为单位,这使得归档节点对普通用户的吸引力较低,但对于区块浏览器、钱包供应商和链分析等服务来说却很方便。 -以归档以外的任何方式同步客户端将导致区块链数据被精剪。 这意味着,没有所有历史状态的存档,但全节点能够在需要时构建它们。 +以归档以外的任何方式同步客户端将导致区块链数据被修剪。 这意味着,没有所有历史状态的存档,但全节点能够在需要时构建它们。 ## 为什么我要运行一个以太坊节点? {#why-should-i-run-an-ethereum-node} -运行节点可以让您在支持生态系统的同时,无需信任地私下使用以太坊。 +运行一个节点可以让你直接、无需信任和私密地使用以太坊,同时通过保持网络更加健壮和去中心化来支持网络。 ### 对您的好处 {#benefits-to-you} -运行自己的节点,你就能够以完全私密、独立且无需信任的方式使用以太坊。 你无需信任网络,因为你可以使用自己的客户端验证数据。 “不要信任,就验证”是流行的区块链口头禅。 +运行你自己的节点使你能够以私有、自给自足和无需信任的方式使用以太坊。 你无需信任网络,因为你可以使用自己的客户端验证数据。 “不要信任,就验证”是流行的区块链口头禅。 - 你的节点根据共识规则独自验证所有交易和区块。 这意味着你不必依赖网络中的任何其他节点或完全信任它们。 -- 你不必将地址和余额泄露到随机节点。 你可以用自己的客户端检查所有内容。 -- 如果使用自己的节点,去中心化应用程序可以更安全、更私密。 [MetaMask](https://metamask.io)、[MyEtherWallet](https://myetherwallet.com) 和其他一些钱包可以很容易地指向你的本地节点。 -- 你可以编写自己的自定义远程过程调用端点。 -- 你可以使用**进程间通信 (IPC)** 连接到节点,或者重写节点将你的程序作为插件加载。 这样做会实现低延迟,在需要尽快替换你的交易(例如抢跑交易)时低延迟至关重要。 +- 你可以将以太坊钱包与你自己的节点一起使用。 你可以更安全、更私密地使用去中心化应用程序,因为你不必将地址和余额泄露给随机节点。 你可以用自己的客户端检查所有内容。 [MetaMask](https://metamask.io)、[Frame](https://frame.sh/) 和[许多其他钱包](/wallets/find-wallet/)提供远程过程调用导入,这让它们可以使用你的节点。 +- 你可以运行和自我托管其他依赖于以太坊数据的服务。 例如,可以是信标链验证者、二层网络等软件、基础设施、区块浏览器、支付机构等。 +- 你可以提供自己的自定义[远程过程调用端点](https://ethereum.org/en/developers/docs/apis/json-rpc/)。 公开供社区使用,甚至私有托管的以太坊端点可以让用户使用你的节点,并避免大型中心化提供商。 +- 你可以使用**进程间通信 (IPC)** 连接到节点,或者重写节点将你的程序作为插件加载。 这样可以减少网络延迟,例如在使用 web3 库处理大量数据时或者当你需要尽快替换交易时(即抢先交易)会带来很大帮助。 +- 你可以直接质押以太币以保护网络并获得奖励。 请参见[单独质押](https://ethereum.org/en/staking/solo/)开始操作。 ![如何通过你的应用程序和节点访问以太坊](./nodes.png) @@ -73,88 +105,66 @@ sidebarDepth: 2 多种节点对以太坊的健康、安全和运行恢复能力非常重要。 -- 这些节点让依赖它们的轻量级客户端能够访问区块链数据。 在使用高峰期,需要有足够多的全节点帮助轻节点同步。 轻节点不存储整个区块链,而是通过[区块头中的状态根](/developers/docs/blocks/#block-anatomy)验证数据。 如果有需要,他们可以要求区块提供更多信息。 -- 全节点强制执行工作量证明共识规则,因此无法欺骗它们接受不遵循规则的区块。 这为网络提供了额外的安全性,因为如果所有节点都是轻节点,不进行完整验证,区块生产者可能会攻击网络,例如,创建具有更高奖励的区块。 +- 全节点强制执行共识规则,因此无法欺骗它们接受不遵循规则的区块。 这在网络中提供了额外的安全性,因为如果所有节点都是轻节点,不进行完整验证,验证者可能会攻击网络。 +- 如果遇到攻击并且攻破了[权益证明](/developers/docs/consensus-mechanisms/pos/#what-is-pos)加密经济防御,全节点可以执行社交恢复以选择跟随最诚实的链。 +- 网络中的节点越多,网络就更加多样化和更加健壮,这是去中心化的最终目标,可实现一个抗审查的可靠系统。 +- 这些节点让依赖它们的轻量级客户端能够访问区块链数据。 在使用高峰期,需要有足够多的全节点帮助轻节点同步。 轻节点不存储整条区块链,而是通过[区块头中的状态根](/developers/docs/blocks/#block-anatomy)验证数据。 如果需要,它们可以请求区块提供更多信息。 如果你运行一个全节点,整个以太坊网络将从中受益。 ## 运行您自己的节点 {#running-your-own-node} -是否有兴趣运行自己的以太坊客户端? +是否有兴趣运行你自己的以太坊客户端? 如需适合初学者的简介,请访问我们的[运行节点](/run-a-node)页面以了解更多信息。 -如果你是技术用户,可以学习如何使用命令行[启动您自己的节点](/developers/docs/nodes-and-clients/run-a-node/)! - -### 项目 {#projects} - -**选择客户端并遵它们的说明** - -**ethnode -** **_运行一个以太坊节点(Geth 或 Parity)用于本地开发。_** - -- [GitHub](https://github.com/vrde/ethnode) - -** DAppNode - \*\***_操作系统图形用户界面,用于在专用机器上运行 Web3 节点(包括以太坊和信标链)。_\*\* - -- [dappnode.io](https://dappnode.io) - -### 资源 {#resources} - -- [运行以太坊全节点:完整指南](https://www.coindesk.com/learn/ethereum-nodes-and-clients-a-complete-guide/) -- [运行您自己的以太坊节点](/developers/docs/nodes-and-clients/run-a-node) -- [Geth 相关文档](https://geth.ethereum.org/) -- [如何安装并运行 Lighthouse 节点](https://hackernoon.com/how-to-run-an-eth-20-beacon-node-using-the-lighthouse-macos-client-7t2u3wtv) -- [Nimbus 节点快速入门指南](https://nimbus.guide/quick-start.html) +如果你是一名技术用户,请深入了解有关如何[启动你自己的节点](/developers/docs/nodes-and-clients/run-a-node/)的更多详细信息和选项。 ## 替代方法 {#alternatives} -运行自己的节点可能很困难,而且你并非总是需要运行自己的实例。 在这种情况下,可以使用第三方应用程序接口提供商,如 [Infura](https://infura.io)、[Alchemy](https://alchemyapi.io) 或 [QuikNode](https://www.quiknode.io)。 另外,[ArchiveNode](https://archivenode.io/) 是一个社区资助的归档节点,旨在将以太坊区块链上的存档数据提供给无法负担它的独立开发者。 有关使用这些服务的概述,请查看[节点即服务](/developers/docs/nodes-and-clients/nodes-as-a-service/)。 +设置自己的节点会耗费你的时间和资源,而且你并非总是需要运行自己的实例。 在这种情况下,可以使用第三方应用程序接口提供商,如 [Infura](https://infura.io)、[Alchemy](https://alchemyapi.io) 或 [QuikNode](https://www.quiknode.io)。 另外,[ArchiveNode](https://archivenode.io/) 是一个社区资助的归档节点,旨在将以太坊区块链上的存档数据提供给无法负担它的独立开发者。 有关使用这些服务的概述,请查看[节点即服务](/developers/docs/nodes-and-clients/nodes-as-a-service/)。 -如果有人在社区里运行一个具有公共应用程序接口的以太坊节点,你可以[通过自定义远程过程调用](https://metamask.zendesk.com/hc/en-us/articles/360015290012-Using-a-Local-Node)将轻量级钱包(如 Metamask)指向社区节点,并且比随机信任的第三方隐私性更强。 +如果有人在社区运行一个具有公共应用程序接口的以太坊节点,你可以[通过自定义远程过程调用](https://metamask.zendesk.com/hc/en-us/articles/360015290012-Using-a-Local-Node)将轻量级钱包(如 Metamask)指向社区节点,并获得比一些随机受信任的第三方更强的隐私性。 另一方面,如果你运行一个客户端,可以与可能需要它的朋友共享。 ## 执行客户端(原“Eth1 客户端”) {#execution-clients} -以太坊社区维护着多种开放源代码的执行客户端(以前称为“以太坊 1 客户端”,或仅称为“以太坊客户端”),它们由不同的团队使用不同的编程语言开发。 这使得网络更加强大并且更加多样性。 最理想的目标是实现多样性,即没有任何客户端占据主导地位,从而减少任何单点故障。 - -下表汇总了不同的客户端。 它们均已通过[客户端测试](https://github.com/ethereum/tests),并得到积极维护以保持与网络升级同步。 +以太坊社区维护着多种开放源代码的执行客户端(以前称为“以太坊 1 客户端”,或仅称为“以太坊客户端”),它们由不同的团队使用不同的编程语言开发。 这使得网络更加强大并且更加多样性。 理想的目标是实现多样性,即没有任何客户端占据主导地位,从而减少任何单点故障。 -| 客户端 | 语言 | 操作系统: | 网络 | 同步策略 | 状态缓冲 | -| ----------------------------------------------- | -------- | --------------------- | ----------------------------------- | ---------------------------- | --------------- | -| [Geth](https://geth.ethereum.org/) | Go | Linux, Windows, macOS | Mainnet、Görli、Rinkeby、Ropsten | Snap、Full 同步式模式 | Archive,Pruned | -| [Nethermind](http://nethermind.io/) | C#、.NET | Linux,Windows,macOS | Mainnet、Görli、Ropsten、Rinkeby 等 | Fast、Beam、Archive 同步模式 | Archive, Pruned | -| [Besu](https://besu.hyperledger.org/en/stable/) | Java | Linux,Windows,macOS | Mainnet、Rinkeby、Ropsten、Görli 等 | 快速,完整 | Archive, Pruned | -| [Erigon](https://github.com/ledgerwatch/erigon) | Go | Linux,Windows,macOS | Mainnet、Görli、Rinkeby、Ropsten | Full 同步模式 | Archive, Pruned | -| [Akula](https://akula.app) | Rust | Linux | 主网、Görli、Rinkeby、Ropsten 等 | Full 同步模式 | Archive、Pruned | +下表按字母顺序汇总了不同的客户端。 所有这些客户端都得到积极维护,以便与网络升级保持同步、遵循当前规范并通过[客户端测试](https://github.com/ethereum/tests)。 -**注意,OpenEthereum [已废弃](https://medium.com/openethereum/gnosis-joins-erigon-formerly-turbo-geth-to-release-next-gen-ethereum-client-c6708dd06dd)并已停止维护。**请谨慎使用,最好改用其他客户端实现。 +| 客户端 | 语言 | 操作系统: | 网络 | 同步策略 | 状态缓冲 | +| -------------------------------------------------------- | -------- | --------------------- | ----------------------------------- | ------------------------ | --------------- | +| [Akula](https://akula.app) | Rust | Linux | 主网、Görli、Rinkeby、Ropsten 等 | 完全 | Archive、Pruned | +| [Besu](https://pegasys.tech/solutions/hyperledger-besu/) | Java | Linux、Windows、macOS | Mainnet、Rinkeby、Ropsten、Görli 等 | 快速、完整、快照、检查点 | Archive、Pruned | +| [Erigon](https://github.com/ledgerwatch/erigon) | Go | Linux、Windows、macOS | Mainnet、Görli、Rinkeby、Ropsten | 完全、快照 | Archive、Pruned | +| [Geth](https://geth.ethereum.org/) | Go | Linux、Windows、macOS | Mainnet、Görli、Rinkeby、Ropsten | 快照、完全 | Archive、Pruned | +| [Nethermind](http://nethermind.io/) | C#、.NET | Linux、Windows、macOS | Mainnet、Görli、Ropsten、Rinkeby 等 | 快照,快速 | Archive、Pruned | 有关支持网络的更多信息,请阅读[以太坊网络](/developers/docs/networks/)。 -### 不同实现方式的优势 {#advantages-of-different-implementations} +每种客户端都有独特的用例和优势,所以你应该根据自己的偏好来选择。 多样性使得实现方式能够侧重于不同的功能和用户群。 你可能想根据功能、支持、编程语言或许可证选择一种客户端。 -每种客户端都有独特的用例和优势,所以您应该根据自己的偏好来选择。 多样性使得实现方式能够侧重于不同的功能和用户群。 你可能想根据功能、支持、编程语言或许可证选择一种客户端。 +### Besu {#besu} -#### Go Ethereum {#geth} +Hyperledger Besu 是一种企业级以太坊客户端,面向公共和许可网络。 它运行包括追踪到 GraphQL 在内的所有以太坊主网功能,可进行广泛的监控,并通过开放的社区渠道以及面向企业的商业服务等级协议获得 ConsenSys 支持。 Besu 用 Java 语言编写,并依照 Apache 2.0 获得许可。 -Go Ethereum(简称 Geth)是最早实现的以太坊协议之一。 目前,它是使用最为广泛的客户端,拥有最大的用户群,为用户和开发者提供各种工具。 它用 Go 语言编写,完全开源,并依照 GNU LGPL v3 获得许可。 +Besu 广泛的[文档](https://besu.hyperledger.org/en/stable/)将指导你了解有关其功能和设置的所有详细信息。 -#### OpenEthereum {#openethereum} +### Erigon {#erigon} -OpenEthereum 是一种快捷、功能丰富、基于命令行界面的高级以太坊客户端。 它的诞生是为了给那些快捷、可靠的服务提供必要的基础设施,这些服务需要快速同步和最长运行时间。 OpenEthereum 的目标是成为最快、最轻量、最安全的以太坊客户端。 其整洁的模块化代码库可以: +Erigon 以前称为 Turbo‐Geth,最初是 Go Ethereum 的一个分叉,注重速度和磁盘空间效率。 Erigon 是以太坊的一个完全重新架构的实现,目前用 Go 编写,但正在开发其他语言的实现,例如 [Akula](https://medium.com/@vorot93/meet-akula-the-fastest-ethereum-implementation-ever-built-58eaca244c39)。 Erigon 的目标是成为更快、模块化程度更高和更优化的以太坊实现。 它可以在 3 天内使用大约 2TB 的磁盘空间执行完整的存档节点同步。 -- 便于自定义。 -- 轻度集成到服务或产品中。 -- 实现最少的内存和存储使用。 +### Go Ethereum {#geth} -OpenEthereum 使用最先进的 Rust 编程语言开发,并依照 GPLv3 获得许可。 +Go Ethereum(简称 Geth)是最早实现的以太坊协议之一。 目前,它是使用最为广泛的客户端,拥有最大的用户群,为用户和开发者提供各种工具。 它用 Go 语言编写,完全开源,并依照 GNU LGPL v3 获得许可。 -**注意,OpenEthereum [已废弃](https://medium.com/openethereum/gnosis-joins-erigon-formerly-turbo-geth-to-release-next-gen-ethereum-client-c6708dd06dd)并已停止维护。**请谨慎使用,最好改用其他客户端实现。 +在其[相差文档](https://geth.ethereum.org/docs/)中了解有关 Geth 的更多信息。 -#### Nethermind {#nethermind} +### Nethermind {#nethermind} -Nethermind 是用 C# .NET 技术栈创建的以太坊协议,在包括 ARM 在内的所有主要平台上运行。 它在以下方面表现出了优越性能: +Nethermind 是使用 C# .NET 技术栈创建的以太坊实现,获得 LGPL-3.0 许可,可在包括 ARM 在内的所有主要平台上运行。 它在以下方面表现出了优越性能: - 优化虚拟机 - 状态访问 @@ -162,152 +172,107 @@ Nethermind 是用 C# .NET 技术栈创建的以太坊协议,在包括 ARM 在 Nethermind 也有[详细的相关文档](https://docs.nethermind.io)、强大的开发支持、在线社区,并为高级用户提供全天候支持。 -#### Besu {#besu} - -Hyperledger Besu 是一种企业级以太坊客户端,面向公共和许可网络。 它运行包括追踪到 GraphQL 在内的所有以太坊主网功能,可进行广泛的监控,并通过开放的社区渠道以及面向企业的商业 SLA 获得 ConsenSys 支持。 Besu 用 Java 语言编写,并依照 Apache 2.0 获得许可。 - -#### Erigon {#erigon} - -Erigon 以前称为 Turbo‐Geth,是 Go Ethereum 的一个分叉,注重速度和磁盘空间效率。 Erigon 是一种完全重新设计的以太坊实现,目前用 Go 语言编写,但以其他语言编写的实现也在计划中。 Erigon 的目标是成为更快、模块化程度更高和更优化的以太坊实现。 它可以在 3 天内使用少于 2 Tb 磁盘空间,执行归档节点完全同步。 - -### 同步模式 {#sync-modes} - -为了关注和验证网络中的最新数据,以太坊客户端需要与最新的网络状态同步。 同步方法如下:从对等节点下载数据,用加密方法验证其完整性,并构建一个本地区块链数据库。 - -同步模式代表了这个过程的不同方法,并进行了不同的折衷。 客户端在实现同步算法方面也各不相同。 有关部署的具体细节,请参考您所选客户端的官方文档。 - -#### 战略概览 {#overview-of-strategies} - -主网就绪客户端使用的同步方法概览: - -##### 完全同步 - -完全同步下载所有区块(包括区块头、交易和收据),并通过执行从创世块开始的每个区块逐步生成区块链的状态。 - -- 通过验证每笔交易,最大限度地减少信任并实现最高安全性。 -- 随着交易数量的增加,处理所有交易可能需要几天到几周时间。 - -##### 快速同步 - -快速同步下载所有区块(包括区块头、交易和收据),验证所有区块头,下载区块状态并对照区块头进行验证。 - -- 依赖共识机制的安全性。 -- 同步只需要几个小时。 - -##### 轻量同步 - -轻客户端同步模式下载所有区块头、区块数据并对其中一些进行随机验证。 仅从信任的检查点开始同步区块链信息。 +## 共识客户端(原“Eth2”客户端) {#consensus-clients} -- 仅获取最新状态,同时依赖于对开发者和共识机制的信任。 -- 客户端在几分钟内便可以使用当前网络状态。 +有多种共识客户端(以前称为“以太坊 2”客户端)支持[共识升级](/upgrades/beacon-chain/)。 在[合并](/upgrades/merge/)之后,它们运行信标链并向执行客户端提供权益证明共识机制。 -[更多关于轻客户端的信息](https://www.parity.io/blog/what-is-a-light-client/) +[查看共识客户端](/upgrades/get-involved/#clients)。 -##### 快照同步 +| 客户端 | 语言 | 操作系统: | 网络 | +| ------------------------------------------------------------- | ---------- | --------------------- | ------------------------------------- | +| [Lighthouse](https://lighthouse.sigmaprime.io/) | Rust | Linux、Windows、macOS | Beacon Chain、Goerli、Pyrmont | +| [Lodestar](https://lodestar.chainsafe.io/) | TypeScript | Linux、Windows、macOS | Beacon Chain、Goerli | +| [Nimbus](https://nimbus.team/) | Nim | Linux、Windows、macOS | Beacon Chain、Goerli | +| [Prysm](https://docs.prylabs.network/docs/getting-started/) | Go | Linux、Windows、macOS | Beacon Chain、Gnosis、Goerli、Pyrmont | +| [Teku](https://consensys.net/knowledge-base/ethereum-2/teku/) | Java | Linux、Windows、macOS | Beacon Chain、Gnosis、Goerli、Sepolia | -由 Geth 执行。 使用对等节点提供的动态快照,检索所有帐户和存储数据但不下载中间字典树节点,然后在本地重建默克尔树。 +### Lighthouse {#lighthouse} -- Geth 开发的最快同步策略,当前为其默认同步模式 -- 节省大量磁盘使用和网络带宽,同时不影响安全。 +Lighthouse 是依据 Apache-2.0 许可协议用 Rust 语言编写的共识客户端实现。 它由 Sigma Prime 维护,自信标链创世以来一直保持稳定且可投入生产。 各种企业、质押池和个人都依赖它。 从台式电脑到复杂的自动化部署,它的目标是在各种环境中实现安全、高性能和互操作性。 -[更多关于快照同步的信息](https://github.com/ethereum/devp2p/blob/master/caps/snap.md) +相关文档可以在 [Lighthouse Book](https://lighthouse-book.sigmaprime.io/) 中找到。 -##### 压缩同步 +### Lodestar {#lodestar} -由 OpenEthereum 执行。 节点定期生成一个共识关键状态快照,任何对等节点都可以通过网络提取这些快照,从而能够从这个节点快速同步。 +Lodestar 是依据 LGPL-3.0 许可协议用 Typescript 语言编写的生产就绪共识客户端实现。 它由 ChainSafe Systems 维护,是面向独立质押人、开发者和研究人员的最新共识客户端。 Lodestar 由信标节点和验证者客户端组成,由以太坊协议的 JavaScript 实现提供支持。 Lodestar 旨在通过轻量级客户端提高以太坊的可用性,让更多开发者获得可访问性,并进一步促进生态系统多样性。 -- OpenEthereum 的最快和默认同步模式依赖于对等节点提供的静态快照。 -- 和快照同步的策略类似,但不具备某些安全优点。 +更多信息可以在我们的 [Lodestar 网站](https://lodestar.chainsafe.io/)上找到。 -[更对关于压缩同步的信息](https://openethereum.github.io/Beginner-Introduction#warping---no-warp) +### Nimbus {#nimbus} -##### Beam 同步 +Nimbus 是依据 Apache-2.0 许可协议用 Nim 语言编写的共识客户端实现。 它是一种可供独立质押人和质押池使用的生产就绪客户端。 Nimbus 专为提高资源效率而设计,可同样轻松地在资源有限的设备和企业级基础设施上运行,而不会影响稳定性或奖励性能。 更少的资源占用意味着客户端在网络处于压力下时具有更大的安全边际。 -由 Nethermind 和 Trinity 执行。 原理类似于快速同步,但是还会下载执行最新区块所需的数据,这允许用户在开始后的最初几分钟内查询链上信息。 +相关文档可以在 [Nimbus 指南](https://nimbus.guide/)中找到。 -- 首先同步状态,并允许你在几分钟内查询远程过程调用。 -- 后台同步速度放慢,远程过程调用响应可能失败,仍处于开发阶段,而且并非完全可靠。 +### Prysm {#prysm} -[更多关于 Beam 同步的信息](https://medium.com/@jason.carver/intro-to-beam-sync-a0fd168be14a) +Prysm 是一种功能齐全的开源共识客户端,它依据 GPL-3.0 许可协议用 Go 语言编写。 它具有可选的 Web 应用程序用户界面,并将家庭用户和机构用户的用户体验、相关文档和可配置性放在首位。 -#### 设置客户端 {#client-setup} +访问 [Prysm 相关文档](https://docs.prylabs.network/docs/getting-started/)了解更多信息。 -客户端提供丰富的配置选项,以满足你的需要。 根据安全程度、可用数据和成本选择最适合你的客户端。 除了同步算法之外,你还可以设置精剪不同类型的旧数据。 精简可以删除过时的数据,例如删除无法从最近区块上访问的状态树节点。 +### Teku {#teku} -关注客户端的文档或帮助页面,确定默认同步模式。 你可以在设置时定义首选同步类型,如下所示: +Teku 是最初的信标链初始客户端之一。 除了常规目标(安全性、稳健性、稳定性、可用性、性能)外,Teku 还特别致力于恪守全部各类共识客户端标准。 -**在 [GETH](https://geth.ethereum.org/) 或 [ERIGON](https://github.com/ledgerwatch/erigon) 设置轻量同步** +Teku 提供了非常灵活的部署选项。 信标节点和验证者客户端可以作为单个进程一起运行,这对于独立质押人来说非常方便,或者可以单独运行节点以进行复杂的质押操作。 此外,Teku 与 [Web3Signer](https://github.com/ConsenSys/web3signer/) 完全可互操作,用于为密钥安全性签名并提供罚没防范措施。 -`geth --syncmode "light"` +Teku 是用 Java 语言编写的,并获得 Apache 2.0 许可。 它由 ConsenSys 的 Protocols 团队开发,该团队还负责 Besu 和 Web3Signer。 在 [Teku 相关文档](https://docs.teku.consensys.net/en/latest/)中了解更多信息。 -想要了解更多详情,请查看[运行 Geth 轻节点](/developers/tutorials/run-light-node-geth/)上的教程。 +## 同步模式 {#sync-modes} -**在 [Besu](https://besu.hyperledger.org/) 中设置归档节点的完全同步** +为了关注和验证网络中的最新数据,以太坊客户端需要与最新的网络状态同步。 同步方法如下:从对等节点下载数据,用加密方法验证其完整性,并构建一个本地区块链数据库。 -`besu --sync-mode=FULL` +同步模式代表了这个过程的不同方法,并进行了不同的折衷。 客户端在实现同步算法方面也各不相同。 有关部署的具体细节,请参考你所选客户端的官方文档。 -像任何其他配置一样,同步模式可以通过启动标志或配置文件来定义。 另一个例子是 [Nethermind](https://docs.nethermind.io/nethermind/),该客户端在首次初始化期间提示你选择一种配置并创建一个配置文件。 +### 执行层同步模式 {#execution-layer-sync-modes} -## 共识客户端(原“Eth2”客户端) {#consensus-clients} +#### 完全同步 {#full-sync} -有多种共识客户端(以前称为“以太坊 2”客户端)支持[共识升级](/upgrades/beacon-chain/)。 在[合并](/upgrades/merge/)之后,它们运行信标链并向执行客户端提供权益证明共识机制。 +完全同步下载所有区块(包括区块头、交易和收据),并通过执行从创世块开始的每个区块逐步生成区块链的状态。 -[查看共识客户端](/upgrades/get-involved/#clients)。 +- 通过验证每笔交易,最大限度地减少信任并实现最高安全性。 +- 随着交易数量的增加,处理所有交易可能需要几天到几周时间。 -| 客户端 | 语言 | 操作系统: | 网络 | -| ----------------------------------------------------------- | ---------- | --------------------- | ------------------------------- | -| [Teku](https://pegasys.tech/teku) | Java | Linux, Windows, macOS | 信标链,Prater | -| [Nimbus](https://nimbus.team/) | Nim | Linux,Windows,macOS | 信标链,Prater | -| [Lighthouse](https://lighthouse-book.sigmaprime.io/) | Rust | Linux,Windows,macOS | 信标链,Prater,Pyrmont | -| [Lodestar](https://lodestar.chainsafe.io/) | TypeScript | Linux,Windows,macOS | 信标链,Prater | -| [Prysm](https://docs.prylabs.network/docs/getting-started/) | Go | Linux,Windows,macOS | 信标链,Gnosis,Prater,Pyrmont | +#### 快速同步 {#fast-sync} -## 硬件 {#hardware} +快速同步下载所有区块(包括区块头、交易和收据),验证所有区块头,下载区块状态并对照区块头进行验证。 -硬件要求因客户端不同而异,但通常不是很高,因为节点只需保持同步即可。 不要把它与需要更多算力的挖矿混为一谈。 然而,功能更强大的硬件的确可以提升同步时间和性能。 根据你的需求和需要,以太坊可以在你的计算机、家庭服务器、单板计算机或云端虚拟私有服务器上运行。 +- 依赖共识机制的安全性。 +- 同步只需要几个小时。 -运行自己的节点有一种简单方法:使用“即插即用”盒,如 [DAppNode](https://dappnode.io/)。 它提供了运行客户端及依赖客户端的应用程序所需的硬件,具有一个简洁的用户界面。 +#### 轻量同步 {#light-sync} -### 要求 {#requirements} +轻客户端同步模式下载所有区块头、区块数据并对其中一些进行随机验证。 仅从信任的检查点开始同步区块链信息。 -在安装任何客户端之前,请确保计算机有足够的资源运行它。 最低和建议要求见下文,然而关键之处在于磁盘空间。 同步以太坊区块链是一种高强度的输入/输出密集型操作。 最好使用固态硬盘。 要在机械硬盘上运行以太坊客户端,至少需要 8GB 内存作为缓存。 +- 仅获取最新状态,同时依赖于对开发者和共识机制的信任。 +- 客户端在几分钟内便可以使用当前网络状态。 -#### 最低要求 {#recommended-specifications} +[有关轻客户端的更多信息](https://www.parity.io/blog/what-is-a-light-client/) -- 2 核以上 CPU -- 如果是固态硬盘,则内存需 4GB 以上。如果是机械硬盘,则内存需 8GB 以上 -- 8 MB/秒带宽 +#### 快照同步 {#snap-sync} -#### 推荐的规格要求 {#recommended-specifications} +快照同步是同步客户端的最新方法,由 Geth 团队首创。 使用对等节点提供的动态快照,检索所有帐户和存储数据但不下载中间字典树节点,然后在本地重建默克尔树。 -- 4 核以上快速 CPU -- 16GB 以上内存 -- 快速固态硬盘,拥有至少 500 GB 可用空间 -- 25 MB/秒以上带宽 +- 最快同步策略,目前是以太坊主网默认设置 +- 节省大量磁盘使用和网络带宽,同时不影响安全 -你选择的同步模式将影响磁盘空间要求,但我们估计了下面每种客户端需要的磁盘空间。 +[有关快照同步的更多信息](https://github.com/ethereum/devp2p/blob/master/caps/snap.md) -| 客户端 | 磁盘大小(快速同步) | 磁盘大小(完整存档) | -| ------------ | -------------------- | -------------------- | -| Geth | 400GB 以上 | 6TB 以上 | -| OpenEthereum | 280GB 以上 | 6TB 以上 | -| Nethermind | 200GB 以上 | 5TB 以上 | -| Besu | 750GB 以上 | 5TB 以上 | -| Erigon | 不适用 | 1TB 以上 | +### 共识层同步模式 {#consensus-layer-sync-modes} -- 注意:Erigon 不进行快速同步,但可以完全精剪 (~500 GB) +#### 乐观同步 {#optimistic-sync} -![图表表明,完全同步所需的 GB 数正呈上升趋势](./full-sync.png) +乐观同步是一种合并后同步策略,旨在选择加入和向后兼容,允许执行节点通过已建立的方法进行同步。 执行引擎可以在不进行完全验证的情况下*乐观地*导入信标区块,找到最新的区块头,然后使用上述方法开始同步链。 然后,在执行客户端更新之后,它将通知共识客户端信标链中交易的有效性。 -![图表表明,存档同步所需的 GB 数正呈上升趋势](./archive-sync.png) +[有关乐观同步的更多信息](https://github.com/ethereum/consensus-specs/blob/dev/sync/optimistic.md) -上面的图表显示存储要求的持续变化趋势。 关于 Geth 和 OpenEthereum 的最新数据,请参阅[完全同步数据](https://etherscan.io/chartsync/chaindefault)和[归档同步数据](https://etherscan.io/chartsync/chainarchive)。 +#### 检查点同步 {#checkpoint-sync} -### 在单板计算机上运行以太坊 {#ethereum-on-a-single-board-computer} +检查点同步也称为弱主观性同步,可提供卓越的信标节点同步用户体验。 它基于[弱主观性](/developers/docs/consensus-mechanisms/pos/weak-subjectivity/)假设,这使得信标链能够从最近的弱主观性检查点而不是创世块同步。 检查点同步使初始同步时间明显更快,其信任假设与从[创世块](/glossary/#genesis-block)同步类似。 -运行以太坊节点最方便、最实惠的方法是使用具有 ARM 架构的单板计算机,如 Raspberry Pi。 [Ethereum on ARM](https://twitter.com/EthereumOnARM) 提供了 Geth、OpenEthereum、Nethermind 和 Besu 客户端的映像。 请学习关于[如何构建和设置 ARM 客户端](/developers/tutorials/run-node-raspberry-pi/)的简单教程。 +实际上,这意味着你的节点连接到远程服务,以下载最近的最终确定状态并从该点继续验证数据。 提供数据的第三方要受到信任,应谨慎选择。 -诸如此类小型、实惠、高效的设备是在家里运行节点的理想选择。 +有关[检查点同步](https://notes.ethereum.org/@djrtwo/ws-sync-in-practice)的更多信息 ## 延伸阅读 {#further-reading} @@ -316,8 +281,6 @@ Erigon 以前称为 Turbo‐Geth,是 Go Ethereum 的一个分叉,注重速 - [以太坊 101 - 第二部分 - 了解节点](https://kauri.io/ethereum-101-part-2-understanding-nodes/48d5098292fd4f11b251d1b1814f0bba/a) _- Wil Barnes,2019 年 2 月 13 日_ - [运行以太坊全节点:勉励者指南](https://medium.com/@JustinMLeroux/running-ethereum-full-nodes-a-guide-for-the-barely-motivated-a8a13e7a0d31) _- Justin Leroux,2019 年 11 月 7 日_ - [运行以太坊节点](https://docs.ethhub.io/using-ethereum/running-an-ethereum-node/) _- ETHHub,经常更新_ -- [分析成为已验证以太坊全节点的硬件要求](https://medium.com/coinmonks/analyzing-the-hardware-requirements-to-be-an-ethereum-full-validated-node-dc064f167902) _- Albert Palau,2018 年 9 月 24 日_ -- [在以太坊主网上运行 Hyperledger Besu 节点:优点、要求和设置](https://pegasys.tech/running-a-hyperledger-besu-node-on-the-ethereum-mainnet-benefits-requirements-and-setup/) _– Felipe Faraggi,2020 年 5 月 7 日_ ## 相关主题 {#related-topics} @@ -326,5 +289,5 @@ Erigon 以前称为 Turbo‐Geth,是 Go Ethereum 的一个分叉,注重速 ## 相关教程 {#related-tutorials} -- [运行 Geth 节点](/developers/tutorials/run-light-node-geth/) _ – 如何下载、安装和运行 Geth。 涵盖同步模式、JavaScript 控制台等等。_ +- [运行 Geth 节点](/developers/tutorials/run-light-node-geth/) _– 如何下载、安装和运行 Geth。 涵盖同步模式、JavaScript 控制台等等。_ - [通过写入 MicroSD 卡将 Raspberry Pi 4 变成验证者节点 - 安装指南](/developers/tutorials/run-node-raspberry-pi/) _- 写入你的 Raspberry Pi 4,插入网线,连接固态磁盘并给设备供电,将 Raspberry Pi 4 变成运行执行层(主网)和/或共识层(信标链/验证者)的以太坊全节点。_ diff --git a/src/content/translations/zh/developers/docs/nodes-and-clients/nodes-as-a-service/index.md b/src/content/translations/zh/developers/docs/nodes-and-clients/nodes-as-a-service/index.md index 02f7f36876a..90b73028ac7 100644 --- a/src/content/translations/zh/developers/docs/nodes-and-clients/nodes-as-a-service/index.md +++ b/src/content/translations/zh/developers/docs/nodes-and-clients/nodes-as-a-service/index.md @@ -9,11 +9,17 @@ sidebarDepth: 2 运行自己的以太坊节点可能会比较困难,特别是在刚开始时或在快速扩展时。 许多服务都可以为你运行优化的节点基础设施,藉此,你可以专注于开发你的应用程序或产品。 我们将解释节点服务运行的原理以及它们的优缺点,如果有兴趣着手开始,我们将为你列出供应商。 -**注:通常,用户在本地运行共识客户端,并使用节点即服务提供者而非运行本地执行客户端。 这在合并时是不可能的 — 用户需要在本地运行两种客户端。 依赖节点即服务提供商运行其共识客户端的用户将无法正确合并,也无法识别以太坊链。 现在是安装本地执行客户端的时候了!** - ## 前置要求 {#prerequisites} -如果你还不了解什么是节点和客户端,请参阅[节点和客户端](/developers/docs/nodes-and-clients/)。 +如果你还不了解什么是节点和客户端,请查看[节点和客户端](/developers/docs/nodes-and-clients/)。 + +## 质押人 {#stakoooooooooooooors} + +单独的质押人必须运行自己的基础设施,而不是依赖第三方提供商。 这意味着运行一个执行客户端和一个共识客户端。 在[合并](/upgrades/merge)之前,可以只运行一个共识客户端并通过中心化的提供商来获取执行数据;这种状况再也不可能了 - 单独的质押人必须运行两种客户端。 但是,有一些服务可以简化这个过程。 + +[阅读有关运行节点的更多信息](/developers/docs/nodes-and-clients/run-a-node/)。 + +本页描述的服务适用于非质押节点。 ## 节点服务运作原理 {#how-do-node-services-work} @@ -25,7 +31,7 @@ sidebarDepth: 2 几乎所有的节点服务都非常容易集成,只需要在你的代码中修改一行,就可以替换你自己的托管节点,甚至可以在服务本身之间切换。 -通常节点服务会运行各种[节点客户端](/developers/docs/nodes-and-clients/#execution-clients)和[各种节点](/developers/docs/nodes-and-clients/#node-types),使得用户可以通过一个应用程序接口访问全节点和归档节点以及客户端特定方法。 +通常节点服务会运行各种[节点客户端](/developers/docs/nodes-and-clients/#execution-clients)和[节点](/developers/docs/nodes-and-clients/#node-types),使得用户可以通过一个应用程序接口访问全节点和归档节点以及客户端特定方法。 值得注意的是,节点服务不存储也不应该存储你的私钥或信息。 @@ -33,7 +39,7 @@ sidebarDepth: 2 使用节点服务的主要好处是不需要耗费工程时间来自己维护和管理节点。 这样,你就能够专注于构建自己的产品,而不必担心基础设施维护。 -无论是存储或带宽方面,还是宝贵的工程时间,运行自己的节点代价非常高昂。 在扩容时运行更多节点、将节点升级到最新版本以及确保状态一致性等等,这些事情让您无法集中精力构建并将资源应用于自己喜爱的 Web3 产品上。 +无论是存储或带宽方面,还是宝贵的工程时间,运行自己的节点代价非常高昂。 在扩容时运行更多节点、将节点升级到最新版本以及确保状态一致性等等,这些事情让用户无法集中精力构建并将资源应用于自己喜爱的 Web3 产品上。 ## 使用节点服务的缺点是什么? {#cons-of-using-a-node-service} @@ -59,7 +65,7 @@ sidebarDepth: 2 - 拥有 1.8 万用户的活跃 Discord 构建者社区 - [**Ankr**](https://www.ankr.com/) - [相关文档](https://docs.ankr.com/) - - 特性 + - 功能 - Ankr 协议 - 为超过 8 条链提供公共 RPC API 端点 - 负载平衡和节点健康监测,为最近的可用节点提供快速可靠的网关。 - 支持 WSS 端点和无上限速率限制的高级层 @@ -67,29 +73,29 @@ sidebarDepth: 2 - 随时扩展 - 分析工具 - 仪表板 - - RPC、HTTP 和 WSS 端点 + - 远程过程调用、安全套接字层超文本传输协议和网络套接字安全端点 - 点对点支持 - [**BlockDaemon**](https://blockdaemon.com/) - [相关文档](https://ubiquity.docs.blockdaemon.com/) - 优势 - 仪表板 - 基于每个节点 - - 数据分析 + - 分析 - [**ChainStack**](https://chainstack.com/) - [相关文档](https://docs.chainstack.com/) - 特性 - 免费共享节点 - 共享归档节点 - GraphQL 支持 - - RPC 和 WSS 端点 - - 专用完整归档节点 - - 专用部署快速同步 - - 用自己的云服务 + - 远程过程调用和网络套接字安全端点 + - 专用全节点和归档节点 + - 专用部署实现快速同步时间 + - 使用自己的云端服务 - 按小时计费定价 - 全天候点对点支持 - [**DataHub**](https://datahub.figment.io) - [相关文档](https://docs.figment.io/) - - 特性 + - 功能 - 每月 3,000,000 个请求的免费层级选项 - 远程过程调用和网络套接字安全端点 - 专用全节点和归档节点 @@ -101,7 +107,7 @@ sidebarDepth: 2 - 加密货币支付(企业) - [**GetBlock**](https://getblock.io/) - [相关文档](https://getblock.io/docs/get-started/authentication-with-api-key/) - - 特性 + - 功能 - 访问超过 40 个区块链节点 - 4 万个每日免费请求 - 无限数量应用程序接口秘钥 @@ -111,7 +117,7 @@ sidebarDepth: 2 - 自动更新 - 技术支持 - [**InfStones**](https://infstones.com/) - - 特性 + - 功能 - 免费层级选项 - 随时扩展 - 分析 @@ -151,7 +157,7 @@ sidebarDepth: 2 - 服务等级协议和全天候支持 - [**Moralis**](https://moralis.io/) - [相关文档](https://docs.moralis.io/) - - 特性 + - 功能 - 免费共享节点 - 免费共享归档节点 - 注重隐私(无日志政策) @@ -163,7 +169,7 @@ sidebarDepth: 2 - 点对点技术支持 - [**NOWNodes**](https://nownodes.io/) - [相关文档](https://documenter.getpostman.com/view/13630829/TVmFkLwy) - - 特性 + - 功能 - 访问超过 50 个区块链节点 - 免费应用程序接口密钥 - 区块浏览器 @@ -173,7 +179,7 @@ sidebarDepth: 2 - 共享、归档、备份和专用节点 - [**Pocket Network**](https://www.pokt.network/) - [相关文档](https://docs.pokt.network/home/) - - 特性 + - 功能 - 去中心化的远程过程调用协议和市场 - 每天 100 万个请求的免费层级(每个端点最多 2 个) - [公共端点](https://docs.pokt.network/home/resources/public-rpc-endpoints) @@ -193,7 +199,7 @@ sidebarDepth: 2 - [Pocket Portal](https://bit.ly/ETHorg_POKTportal) 仪表板和分析 - [**QuickNode**](https://www.quicknode.com) - [相关文档](https://www.quicknode.com/docs/) - - 特性 + - 功能 - 行业领先的性能和可靠性 - 全天候技术支持和 Discord 开发社区 - 区域负载均衡、多云端/元模型、低延迟网络 @@ -201,27 +207,27 @@ sidebarDepth: 2 - 快速且稳定的中间层(调用路由、缓存、索引) - 通过网络钩子进行智能合约监控 - 直观的仪表板、分析套件、远程过程调用编写器 - - 高级安全功能(JWT、屏蔽、白名单) + - 高级安全功能(JWT、屏蔽、白名单) - 非同质化代币数据和分析应用程序接口 - [已获 SOC2 认证](https://www.quicknode.com/security) - 适用于企业开发者 - [**Rivet**](https://rivet.cloud/) - [相关文档](https://rivet.readthedocs.io/en/latest/) - - 特性 + - 功能 - 免费层级选项 - 随时扩展 - [**SenseiNode**](https://senseinode.com) - [相关文档](https://docs.senseinode.com/) - - 特性 + - 功能 - 专用和共享节点 - 仪表板 - 在拉丁美洲不同地区的多个托管服务提供商上托管 AWS - Prysm 和 Lighthouse 客户端 - [**SettleMint**](https://console.settlemint.com/) - [相关文档](https://docs.settlemint.com/) - - 特性 + - 功能 - 免费试用 - - 随时扩容 + - 随时扩展 - GraphQL 支持 - 远程过程调用和网络套接字安全端点 - 专用全节点 @@ -231,7 +237,7 @@ sidebarDepth: 2 - 按小时计费定价 - 点对点支持 - [**Watchdata**](https://watchdata.io/) - - [文档](https://docs.watchdata.io/) + - [相关文档](https://docs.watchdata.io/) - 功能 - 数据可靠性 - 不间断连接,不会出现停机 @@ -242,8 +248,8 @@ sidebarDepth: 2 - 资源扩容 - 处理速度快 - [**ZMOK**](https://zmok.io/) - - [文档](https://docs.zmok.io/) - - 特性 + - [相关文档](https://docs.zmok.io/) + - 功能 - 前台运行即服务 - 带有搜索/过滤方法的全局交易内存池 - 发送交易时,交易费用和燃料均不受限制 diff --git a/src/content/translations/zh/developers/docs/nodes-and-clients/run-a-node/index.md b/src/content/translations/zh/developers/docs/nodes-and-clients/run-a-node/index.md index d4a49f55c40..6651f0a05c9 100644 --- a/src/content/translations/zh/developers/docs/nodes-and-clients/run-a-node/index.md +++ b/src/content/translations/zh/developers/docs/nodes-and-clients/run-a-node/index.md @@ -7,7 +7,7 @@ sidebarDepth: 2 运行您自己的节点为您提供各种好处,打开新的可能性,并为支持生态系统提供帮助。 这个页面将引导您启动您自己的节点,并参与验证以太坊交易。 -请注意,在[合并](/upgrades/merge)之后,至少需要两种客户端才能运行以太坊节点。 一种是执行客户端,另一种是共识客户端。 本页面将展示如何安装、配置和连接这两种客户端,从而搭建以太坊节点。 +注意[合并](/upgrades/merge)之后,需要两种客户端来运行一个以太坊节点,即**执行层 (EL) **客户端和**共识层 (CL) **客户端。 本页面将展示如何安装、配置和连接这两种客户端以运行以太坊节点。 ## 前提条件 {#prerequisites} @@ -17,145 +17,403 @@ sidebarDepth: 2 ## 选择一种方式 {#choosing-approach} -要启动自己的以太坊节点,第一步是选择你的运行方式。 你需要选择客户端(软件)、环境以及初始参数。 其中包括硬件(NUC 迷你电脑、笔记本电脑、虚拟机等)、操作系统(Linux、Windows、macOS 等)、客户端实现和配置。 用户可以根据自己的偏好选择每种选项。 +要启动自己的以太坊节点,第一步是选择你的运行方式。 根据要求和各种可能性,你必须选择客户端实现(执行客户端和共识客户端)、环境(硬件、系统)和客户端设置参数。 -#### 客户端设置 {#client-settings} +本页面将指导你做出这些决定,并帮助你找到运行以太坊实例的最合适方式。 -客户端实现支持不同的同步模式和各种其他选项。 [同步模式](/developers/docs/nodes-and-clients/#sync-modes)是指不同的区块链数据下载和验证方式。 在启动节点前,你应该决定使用哪种网络和同步模式。 做决定时最重要的考虑因素是,客户端需要的磁盘空间和同步时间。 请注意,在[合并](/upgrades/merge)之后,轻执行客户端将不再运行,需要的是全节点。 +要选择客户端实现,请查看所有可用的主网就绪[执行客户端](/developers/docs/nodes-and-clients/#execution-clients)和[共识客户端](/developers/docs/nodes-and-clients/#consensus-clients),并了解[客户端多样性](/developers/docs/client-diversity)。 -所有功能和选项都可以在客户端的文档中找到。 通过执行有相应标记的客户端,就可以设置各种客户端配置。 可以从客户端相关文档获取更多关于标记的信息。 +决定是在自己的[硬件还是云端](#local-vs-cloud)运行软件,同时考虑客户端的[要求](#requirements)。 -进行测试时,你可能更愿意在其中一个测试网上运行客户端。 [参阅受支持网络概览](/developers/docs/nodes-and-clients/#execution-clients)。 +准备好环境后,使用带有高级选项的终端,通过[初学者友好界面](#automatized-setup)或[手动](#manual-setup)安装所选客户端。 + +在节点运行和同步后,你就可以[使用它了](#using-the-node),但请务必留意节点的[维护](#operating-the-node)。 + +![客户端设置](./diagram.png) ### 运行环境和硬件设施 {#environment-and-hardware} #### 本地或云端 {#local-vs-cloud} -以太坊客户端可以在消费级电脑上运行,不需要专用硬件,比如矿机。 因此,可以根据你的需要选择各种部署方案。 简而言之,我们考虑在本地物理计算机和云端服务器上运行节点: +以太坊客户端能够在消费级电脑上运行,并且不需要任何专用硬件,例如矿机。 因此,你可以根据需要选择多种节点部署方案。 简而言之,我们考虑在本地物理计算机和云端服务器上运行节点: - 云端 - - 云服务商提供了高可用的服务器以及静态公共 IP 地址 + - 服务商提供了高可用的服务器以及静态公共 IP 地址 - 获得专用或虚拟服务器比自己搭建更加方便 - 取舍是:是否需要信赖云服务商三方 - - 由于全节点需要的内存很大,租用一个服务器的价格可能很贵 + - 由于全节点所需的存储大小,租用服务器的价格可能会很高 - 自有硬件 - 更可信并且更有主动权 - 只需一次性投入 - 可以购买预先配置好的机器 - - 您必须亲自准备、维护和解决潜在的机器故障 + - 你必须亲自准备并维护机器和网络,并有可能亲自对机器和网络进行故障排除 -上面两种方案各有优点。 如果你正在寻找云端解决方案,除了许多传统云计算服务商外,还有一些专注于部署以太坊节点的服务商, 例如: +上面两种方案各有优点,总结如上。 如果你正在寻找云端解决方案,除了许多传统云计算服务商外,还有一些专注于部署以太坊节点的服务商, 例如: -- [QuickNode](https://www.quicknode.com/) +- [QuikNode](https://www.quiknode.io/) - [BlockDaemon](https://blockdaemon.com) -- [LunaNode](https://www.lunanode.com/) - [Alchemy](https://www.alchemy.com/) +另请查看[节点即服务](/developers/docs/nodes-and-clients/nodes-as-a-service/),了解有关托管节点的更多方案。 + #### 硬件 {#hardware} -然而,一个抗审查的去中心化网络不应该依赖于云服务商。 如果在自己的硬件设备上运行节点,对整个生态系统来说更健康。 最简单的做法就是购买预先配置好的机器,比如: +然而,一个抗审查的去中心化网络不应该依赖于云提供商。 而且,在自己的本地硬件上运行节点对该生态系统来说更健康。 [Estimations](https://www.ethernodes.org/networkType/Hosting) 显示很大一部分节点运行在云端,这可能带来单点故障。 + +以太坊客户端可以在你的计算机、笔记本电脑、服务器甚至单板计算机上运行。 虽然可以在你的个人计算机上运行客户端,但为你的节点配备一台专用机器可以显著提高其性能和安全性,同时最大限度地减少对你的主计算机的影响。 + +使用自己的硬件非常容易。 有许多简单的方案,也有面向技术水平更高人士的高级设置。 因此,我们来看看在你的机器上运行以太坊客户端的要求和方法。 + +#### 要求 {#requirements} + +硬件要求因客户端不同而异,但通常不是很高,因为节点只需保持同步即可。 不要将其与需要更多算力的挖矿混淆。 然而,功能更强大的硬件的确可以提升同步时间和性能。 + +在安装任何客户端之前,请确保计算机有足够的资源运行它。 你可以在下面找到最低要求和推荐要求。 + +硬件的瓶颈通常是磁盘空间。 同步以太坊区块链是一种高强度的输入/输出密集型操作,并且需要大量空间。 最好使用在同步完成后还有数百 GB 可用空间的**固态硬盘 (SSD)**。 + +数据库的大小和初始同步速度取决于所选客户端、其配置和[同步策略](/developers/docs/nodes-and-clients/#sync-modes)。 + +也请确保你的网络连接没有[带宽限制](https://wikipedia.org/wiki/Data_cap)。 推荐使用不计流量的网络连接,因为首次同步和广播到网络的数据可能超过你的限额。 + +##### 操作系统 {#operating-system} + +所有客户端都支持主流操作系统 — Linux、MacOS、Windows。 这意味着你可以在安装有最适合你的操作系统的普通台式机或服务器上运行节点。 为了避免出现潜在的问题和安全漏洞,请确保你的操作系统是最新的。 + +##### 最低要求 {#minimum-requirements} + +- 2 核以上 CPU +- 8 GB 内存 +- 700GB 可用硬盘空间 +- 10 MB/秒以上带宽 + +##### 推荐的规格要求 {#recommended-hardware} + +- 4 核以上快速 CPU +- 16GB 以上内存 +- 1TB 以上高速固态硬盘 +- 25 MB/秒以上带宽 + +你选择的同步模式和客户端将影响磁盘空间要求,但我们估计了下面每种客户端需要的磁盘空间。 + +| 客户端 | 磁盘大小(快照同步) | 磁盘大小(完整存档) | +| ---------- | -------------------- | -------------------- | +| Geth | 400GB 以上 | 12TB 以上 | +| Nethermind | 400GB 以上 | 12TB 以上 | +| Besu | 800GB 以上 | 12TB 以上 | +| Erigon | 未提供 | 2.5TB 以上 | + +- 注意:Erigon 未提供快速同步,但可以进行完全修剪 (~500GB) + +对于共识客户端,空间要求也取决于客户端实现和启用的功能(例如验证者罚没者),但通常需要另外 200GB 磁盘空间存储信标数据。 由于验证者数量巨大,带宽负载也会增加。 你可以到[在此分析中找共识客户端要求的详细信息](https://medium.com/@migalabs/analysis-of-ethereum-2-consensus-clients-dfede8e0145e)。 + +#### 即插即用解决方案 {#plug-and-play} + +使用自己的硬件运行节点的最简单方案是使用即插即用盒。 供应商提供的预配置机器提供最简洁的体验:订购、连接、运行。 一切都已预配置好并自动运行,并配备直观的指南和仪表板,用于监测和控制软件。 - [DappNode](https://dappnode.io/) - [Avado](https://ava.do/) -查看[每种客户端和同步模式所需的最小和推荐磁盘空间要求](/developers/docs/nodes-and-clients/#requirements)。 一般来说,普通的算力应该足够了。 问题通常在于驱动器速度。 首次同步期间,以太坊客户端会执行大量读/写操作。 因此强烈推荐使用固态硬盘。 客户端甚至可能[无法在机械硬盘上同步到最新状态](https://github.com/ethereum/go-ethereum/issues/16796#issuecomment-391649278),会卡在主网后的几个区块上。 可以使用 [ARM 架构单板机](/developers/docs/nodes-and-clients/#ethereum-on-a-single-board-computer/)运行大多数客户端。 也可以使用带有 [Ethbian](https://ethbian.org/index.html) 操作系统的 Raspberry Pi 4。 这使你可以[通过刷新安全数码卡来运行客户端](/developers/tutorials/run-node-raspberry-pi/)。 根据你的软硬件选择,首次同步时间和存储要求可能不同。 请务必[查看同步时间和存储要求](/developers/docs/nodes-and-clients/#recommended-specifications), 也请确保你的网络连接没有[带宽限制](https://wikipedia.org/wiki/Data_cap)。 推荐使用不计流量的网络连接,因为首次同步和广播到网络的数据可能超过您的限额。 +#### 在单板计算机上运行以太坊 {#ethereum-on-a-single-board-computer} -#### 操作系统 {#operating-system} +运行以太坊节点的一种经济简便的方法是使用单板计算机,甚至可以使用 ARM 架构的单板机,如树莓派。 [Ethereum on ARM](https://ethereum-on-arm-documentation.readthedocs.io/en/latest/) 为树莓派和其他 ARM 单板机提供便于运行的多种执行客户端和共识客户端映像。 -所有客户端都支持主流操作系统 — Linux、MacOS、Windows。 这意味着你可以在操作系统最适合你的普通台式机或服务器上运行节点。 为了避免出现潜在的问题和安全漏洞,请确保你的操作系统是最新的。 +这类小型、实惠且高效的设备非常适合在家中运行节点,但请记住它们的性能有限。 ## 启动节点 {#spinning-up-node} -### 获取执行客户端软件 {#getting-the-execution-client} +实际的客户端设置可以使用自动启动器完成,或者手动完成,直接设置客户端软件。 + +对于初级用户,推荐的方法是使用启动器,这种软件可以指导你完成安装并自动执行客户端设置过程。 但是,如果你有一些终端使用经验,手动设置步骤应该很容易完成。 -首先,下载你的首选[执行客户端软件](/developers/docs/nodes-and-clients/#execution-clients) +### 引导式设置 {#automatized-setup} -可以仅下载适合你的操作系统和架构的可执行应用程序或安装包。 始终验证所下载软件包的签名和校验和。 为了简化安装和更新,有些客户端将软件发布在存储库中。 如果你喜欢的话,可以从源代码开始构建客户端。 所有客户端都是开源的,因此你可以用合适的编译器从源代码开始构建客户端。 +一些用户友好的项目旨在改善客户端设置体验。 这些启动器提供自动客户端安装和配置,有些甚至提供图形界面用于引导式设置和监测客户端。 -可以从发布页面下载二进制可执行文件,以帮助实现稳定的主网客户端: +以下是一些可以帮助你安装和控制客户端的项目,只需单击几下即可: +- [DappNode](https://docs.dappnode.io/get-started/installation/custom-hardware/installation/overview/) - DappNode 不仅仅可以在供应商提供的机器上安装。 该软件、实际的节点启动器和具有许多功能的控制中心可以在任意硬件上使用。 +- [eth-docker](https://eth-docker.net/docs/About/Overview/) - 使用 Docker 进行的自动化设置,专注于简便和安全的质押,需要基本的终端和 Docker 知识,向更高级的用户推荐。 +- [Stereum](https://stereum.net/ethereum-node-setup/) - 通过 SSH 连接在远程服务器上安装客户端的启动器,配备 GUI 设置指南、控制中心和许多其他特征。 +- [NiceNode](https://www.nicenode.xyz/) - 提供简便用户体验的启动器,可在你的计算机上运行节点。 只需选择客户端并单击几下即可启动它们。 仍在开发中。 + +### 手动客户端设置 {#manual-setup} + +另一种选择是手动下载、验证和配置客户端软件。 即使一些客户端提供图形界面,手动设置仍然需要基本终端使用技能,但功能性方面丰富了许多。 + +如上所述,设置自己的以太坊节点需要运行一对共识客户端和执行客户端。 一些客户端可能包括另一类型的轻客户端,并且无需任何其他软件即可同步。 但是,完全免信任验证需要这两种实现。 + +#### 获取客户端软件 {#getting-the-client} + +首先,你需要获取你喜欢的[执行客户端](/developers/docs/nodes-and-clients/#execution-clients)和[共识客户端](developers/docs/nodes-and-clients/#consensus-clients)软件。 + +可以只下载适合你的操作系统和架构的可执行应用程序或安装包。 始终验证下载安装包的签名和校验和。 一些客户端还提供存储库或 Docker 镜像,以便于安装和更新。 所有客户端都是开源的,因此你也可以从源代码构建它们。 这是一种更高级的方法,但在某些情况下,它可能是必需的。 + +上面客户端列表中链接的文档中提供了安装每种客户端的说明。 + +以下是客户端的发布页面,你可以在其中找到它们的预构建二进制文件或安装说明: + +##### 执行客户端 {#execution-clients} + +- [Besu](https://github.com/hyperledger/besu/releases) +- [Erigon](https://github.com/ledgerwatch/erigon#usage)(不提供预构建的二进制文件,必须编译) - [Geth](https://geth.ethereum.org/downloads/) -- [OpenEthereum](https://github.com/openethereum/openethereum/releases) - [Nethermind](https://downloads.nethermind.io/) -- [Besu](https://besu.hyperledger.org/en/stable/) -- [Erigon](https://github.com/ledgerwatch/erigon) -另外值得注意的是,客户端多样性是一个[执行层上的问题](https://clientdiversity.org/)。 Geth 在所有以太坊节点中占绝对主导地位 (>66%)。 建议阅读本页面的读者考虑运行非大多数人运行的执行客户端。 +还值得注意的是,客户端多样性是[执行层的问题](/developers/docs/client-diversity/#execution-layer)。 建议读者考虑运行非主流执行客户端。 + +##### 共识客户端 {#consensus-clients} + +- [Lighthouse](https://github.com/sigp/lighthouse/releases/latest) +- [Lodestar](https://chainsafe.github.io/lodestar/install/source/)(不提供预构建的二进制文件,仅提供 Docker 镜像或从源代码构建) +- [Nimbus](https://github.com/status-im/nimbus-eth2/releases/latest) +- [Prysm](https://github.com/prysmaticlabs/prysm/releases/latest) +- [Teku](https://github.com/ConsenSys/teku/releases) -**注意,OpenEthereum [已废用](https://medium.com/openethereum/gnosis-joins-erigon-formerly-turbo-geth-to-release-next-gen-ethereum-client-c6708dd06dd)并已停止维护。**请谨慎使用,最好改用其他客户端实现。 +[客户端多样性](/developers/docs/nodes-and-clients/client-diversity/)对于运行验证者的共识节点至关重要。 如果大多数验证者都在运行单一客户端实现,那么网络安全就会面临风险。 因此,建议考虑选择非主流客户端。 -### 启动执行客户端 {#starting-the-execution-client} +[查看最新的网络客户端使用情况](https://clientdiversity.org/)并了解有关[客户端多样性](/developers/docs/client-diversity)的更多信息。 + +##### 验证软件 {#verifying-the-software} + +从互联网下载软件时,建议验证其完整性。 此步骤是可选的,但特别是对于像以太坊客户端这样的关键基础设施,重要的是要了解潜在的攻击途径并避免它们。 如果下载了预构建的二进制文件,则需要信任它,并冒着攻击者将可执行文件替换为恶意文件的风险。 + +开发者使用他们的 PGP 密钥签署已发布的二进制文件,这样您就可以通过加密方式验证您正在运行他们创建的软件。 你只需要获取开发者使用的公钥,公钥可以在客户端发布页面或文档中找到。 下载客户端版本及其签名后,你可以使用 PGP 实现(例如 [GnuPG](https://gnupg.org/download/index.html))轻松验证它们。 查看有关在 [linux](https://www.tecmint.com/verify-pgp-signature-downloaded-software/) 或 [Windows/MacOS](https://freedom.press/training/verifying-open-source-software/) 上使用 `gpg` 验证开源软件的教程。 + +另一种验证形式是确保下载软件的哈希值(一种唯一的加密指纹)与开发者提供的哈希值相符。 这种方式甚至比使用 PGP 更容易,并且一些客户端仅提供此选项。 只需在下载的软件上运行哈希函数并将哈希值与发布页面中的进行比较即可。 例如: + +``` +sha256sum teku-22.6.1.tar.gz + +9b2f8c1f8d4dab0404ce70ea314ff4b3c77e9d27aff9d1e4c1933a5439767dde +``` + +#### 客户端设置 {#client-setup} + +安装、下载或编译客户端软件后,你就可以运行它了。 这仅意味着必须使用正确的配置执行客户端。 客户端提供丰富的配置选项,可以启用各种功能。 + +我们从可以显著影响客户端性能和数据使用的选项开始介绍。 [同步模式](/developers/docs/nodes-and-clients/#sync-modes)是指不同的区块链数据下载和验证方式。 在启动节点前,你应该决定使用哪种网络和同步模式。 最重要的考虑因素是客户端需要的磁盘空间和同步时间。 关注客户端相关文档确定默认同步模式。 如果默认同步模式不适合你,请根据安全级别、可用数据和成本选择另一种同步模式。 除了同步算法之外,还可以设置对不同类型的旧数据的进行修剪。 修剪可以删除过时的数据,例如删除无法从最近区块上访问的状态树节点。 + +其他基本配置选项包括:选择网络(主网或测试网)、为远程过程调用或 WebSocket 启用 HTTP 端点等。 你可以在客户端相关文档中找到所有功能和选项。 通过直接在命令行界面中使用相应的标记或者通过配置文件来执行客户端,就可以设置各种客户端配置。 每种客户端都有一点差异;有关配置选项的详细信息,请始终参阅其官方文档或帮助页面。 + +进行测试时,你可能更愿意在其中一个测试网上运行客户端。 [参阅受支持网络概览](/developers/docs/nodes-and-clients/#execution-clients)。 -在启动以太坊客户端软件之前,请最后检查环境是否已就绪。 例如,请确保: +运行具有基本配置的执行客户端的示例见下一节。 -- 选定的网络和同步模式下有足够的磁盘空间 +#### 启动执行客户端 {#starting-the-execution-client} + +启动以太坊客户端软件之前,请最后检查环境是否已就绪。 例如,请确保: + +- 考虑到选择的网络和同步模式,磁盘空间足够。 - 内存和 CPU 未被其他程序停止。 -- 操作系统更新到最新版本。 +- 操作系统已更新至最新版本。 - 系统有正确的时间和日期。 -- 您的路由器和防火墙接受监听端口上的连接。 默认情况下,以太坊客户端使用监听 (TCP) 端口和探测端口 (UDP),两者均默认为 30303。 +- 路由器和防火墙接受监听端口上的连接。 默认情况下,以太坊客户端使用监听 (TCP) 端口和探测端口 (UDP),两者均默认为 30303。 + +首先在测试网上运行客户端,这有助于确保一切正常工作。 [运行 Geth 轻节点](/developers/tutorials/run-light-node-geth/)应该会有所帮助。 + +你需要在一开始就声明所有非默认的客户端配置。 可以使用标记或配置文件声明你的首选配置。 每种客户端的功能集和配置语法都不同。 请查看你的客户端相关文档,了解具体细节。 + +执行客户端和共识客户端通过[引擎应用程序接口](https://github.com/ethereum/execution-apis/tree/main/src/engine)中指定的经过身份验证的端点进行通信。 为了连接到共识客户端,执行客户端必须在已知路径上生成 [`jwtsecret`](https://jwt.io/)。 出于安全和稳定性的原因,客户端应该在同一台机器上运行,并且两种客户端都必须知道该路径,因为该路径用于验证它们之间的本地远程过程调用连接。 执行客户端还必须为经过身份验证的应用程序接口定义一个监听端口。 + +此令牌由客户端软件自动生成,但在某些情况下,例如在合并前测试期间,你可能需要自己生成该令牌。 你可以通过运行以下命令生成它: + +``` +openssl rand -hex 32 > jwtsecret +``` + +**请注意,建议目前仅在测试网(例如 Kiln、Ropsten、Sepolia、Goerli)上连接执行客户端和共识客户端,并等待合并就绪的客户端版本,然后在主网上重复进行此过程。** + +#### 运行执行客户端 {#running-an-execution-client} + +本节将指导你启动执行客户端。 它仅提供基本配置的示例,该配置将使用以下设置启动客户端: + +- 指定要连接的网络,在我们的示例中为主网 + - 然而,你可以选择[一种测试网](/developers/docs/networks/),对你的设置进行初步测试 +- 定义数据目录,包括区块链在内的所有数据都将存储在其中 + - 确保用真实路径替换该路径,例如指向你的外部驱动器的路径 +- 启用用来和客户端通信的接口 + - 包括用于与共识客户端通信的 JSON RPC 和引擎应用程序接口 +- 为经过身份验证的应用程序接口定义 `jwtsecret` 的路径 + - 确保将示例路径替换为客户端可以访问的真实路径,例如 `/tmp/jwtsecret` + +请记住,这只是一个基本示例,所有其他设置都将设置为默认值。 请关注每种客户端的相关文档以了解默认值、设置和功能。 有关更多功能的信息,例如运行验证者、监测等,请参考具体客户端的相关文档。 + +> 请注意,示例中的反斜杠 `\` 仅用于设置格式;配置标记可以在一行中定义。 + +##### 运行 Besu + +此示例在主网上启动 Besu,将区块链数据以默认格式存储在 `/data/ethereum` 下,启用 JSON RPC 和引擎应用程序接口以连接共识客户端。 使用令牌 `jwtsecret` 对引擎应用程序接口进行身份验证,并且只允许来自 `localhost` 的调用。 + +``` +besu --network=mainnet \ + --data-path=/data/ethereum \ + --rpc-http-enabled=true \ + --engine-rpc-enabled=true \ + --engine-host-allowlist="*" \ + --engine-jwt-enabled=true \ + --engine-jwt-secret=/path/to/jwtsecret +``` + +Besu 还带有一个启动器选项,它会询问一系列问题并生成配置文件。 使用以下命令运行交互式启动器: + +``` +besu --Xlauncher +``` + +Besu [相关文档](https://besu.hyperledger.org/en/latest/HowTo/Get-Started/Starting-node/)包含其他选项和配置详细信息。 + +##### 运行 Erigon + +此示例在主网上启动 Erigon,将区块链数据存储在 `/data/ethereum`,启用 JSON RPC,定义允许的命名空间,并启用身份验证以连接由 `jwtsecret` 路径定义的共识客户端。 + +``` +erigon --chain mainnet \ + --datadir /data/ethereum \ + --http --http.api=engine,eth,web3,net \ + --authrpc.jwtsecret=/path/to/jwtsecret +``` + +默认情况下,Erigon 使用 8GB 硬盘执行完全同步,这将产生超过 2TB 的存档数据。 确保 `datadir` 指向有足够可用空间的磁盘,或者查看可以修剪不同类型数据的 `--prune` 标记。 查看 Erigon 的 `--help` 了解更多信息。 + +##### 运行 Geth -首先在测试网上运行客户端,这有助于确保一切正常工作。 你需要在一开始就进行非默认的所有客户端配置。 为了连接到共识客户端,执行客户端必须在已知路径上生成一个 `jwtsecret`。 这个路径必须为两个客户端所知,因为它被用来 对客户端之间的本地远程过程调用连接进行身份验证。 执行客户端还必须为经过身份验证的应用程序接口定义一个监听端口。 +此示例在主网上启动 Geth,将区块链数据存储在 `/data/ethereum`,启用 JSON RPC 并定义允许的命名空间。 它还启用了身份验证,以便连接需要使用 `jwtsecret` 路径的共识客户端,并启用了定义允许哪些连接的选项,在我们的示例中仅允许来自 `localhost` 的连接。 -**请注意,建议目前只在测试网(如 Kiln)上连接执行客户端和共识客户端,并等待可直接适用于合并的客户端发行版本,然后再在主网上重复该过程。** +``` +geth --mainnet \ + --datadir "/data/ethereum" \ + --http --http.api="eth,web3,net" \ + --authrpc.vhosts="localhost" \ + --authrpc.jwtsecret=/path/to/jwtsecret +``` -执行客户端有多种配置方法。 可以使用标记或配置文件设置你的首选配置。 请查看你的客户端相关文档,了解具体细节。 +查看[相关文档了解所有配置选项](https://geth.ethereum.org/docs/interface/command-line-options)并了解有关[运行 Geth 和共识客户端](https://geth.ethereum.org/docs/interface/consensus-clients)的更多信息。 -客户端执行将启动其核心功能及所选端点,并开始寻找对等节点。 在成功发现对等节点后,客户端开始同步。 当客户端成功同步到最新状态时,最新的区块链数据将可用。 +##### 运行 Nethermind -### 获取共识客户端 {#getting-the-consensus-client} +Nethermind 提供各种[安装选项](https://docs.nethermind.io/nethermind/first-steps-with-nethermind/getting-started)。 该软件包附带各种二进制文件,包括一个带有引导式设置的启动器,它将帮助您以交互方式创建配置。 或者,你会找到可执行文件 Runner,可以使用配置标记运行它。 默认情况下启用 JSON RPC。 -目前有五种共识客户端可供选择。 它们是: +``` +Nethermind.Runner --config mainnet \ + --datadir /data/ethereum \ + --JsonRpc.JwtSecretFile=/path/to/jwtsecret +``` -- [Lighthouse](https://lighthouse-book.sigmaprime.io/):用 Rust 编写 -- [Nimbus](https://nimbus.team/):用 Nim 编写 -- [Prysm](https://docs.prylabs.network/docs/getting-started/):用 Go 编写 -- [Teku](https://pegasys.tech/teku):用 Java 编写 +Nethermind 相关文档提供了有关运行 Nethermind 和共识客户端的[完整指南](https://docs.nethermind.io/nethermind/first-steps-with-nethermind/running-nethermind-post-merge)。 -现在,出现了一个[客户端多样性](/developers/docs/nodes-and-clients/client-diversity/)问题,即占据绝对主导地位的 Prysm 客户端对 整个网络的健康带来了风险。 为了响应最初的平衡客户端多样性行动,许多 Prysm 节点改用 Lighthouse,以至于现在 Lighthouse 的市场占比也出现了问题。 因此,建议考虑选择非主流 客户端。 [查看最新的网络客户端使用情况](https://clientdiversity.org/) +执行客户端将启动其核心功能及所选端点,并开始寻找对等节点。 在成功发现对等节点后,客户端开始同步。 合并后,执行客户端等待来自共识客户端的连接。 当客户端成功同步到最新状态时,最新的区块链数据将可用。 -有几种下载和安装共识客户端的方法,包括预构建的二进制文件、docker 容器 或从源代码构建。 上述客户端的相关文档提供有各个客户端的说明。 用户可以选择适合他们的方法。 +#### 启动共识客户端 {#starting-the-consensus-client} -### 启动共识客户端 {#starting-the-consensus-client} +共识客户端必须以正确的端口配置启动,才能与执行客户端建立本地远程过程调用连接。 共识客户端必须使用公开的执行客户端端口作为配置参数运行。 -共识客户端必须以正确的端口配置启动,以便与执行客户端建立本地 远程过程调用连接。 共识客户端都有一个类似于 `--http-webprovider` 的命令,该命令将公开的执行客户端 端口作为参数。 +共识客户端也需要执行客户端的 `jwt-secret` 的路径,以便对它们之间的远程过程调用连接进行身份验证。 与上面的执行示例类似,每种共识客户端都有一个配置标记,它将 jwt 令牌文件路径作为参数。 此路径必须与提供给执行客户端的 `jwtsecret` 路径一致。 -共识客户端还需要执行客户端的 `jwt-secret` 的路径,以便对它们之间 的远程过程调用连接进行身份验证。 每个共识客户端都有一个类似于 `--jwt-secret` 的命令,该命令将此文件路径 作为参数。 此路径必须与提供给执行客户端的 `jwtsecret` 路径一致。 +如果你打算运行验证者,确保添加一个配置标记,指定费用接收者的以太坊地址。 这是积攒你的验证者以太币奖励的地址。 每种共识客户端都有一个选项,例如 `--suggested-fee-recipient=0xabcd1` 将以太坊地址作为参数。 -**请注意,我们建议在以太坊主网上执行此操作之前,等待可直接适用于合并的客户端发行版本 - 现在只需在 Kiln 等测试网上练习** +**请注意,我们建议先等待合并就绪的客户端版本,再在以太坊主网上执行此操作 - 目前只需在 Kiln、Ropsten、Sepolia 或 Goerli 等测试网上练习** + +在测试网上启动信标节点时,你可以使用公共端点进行[检查点同步](https://notes.ethereum.org/@launchpad/checkpoint-sync),大大节省同步时间。 + +#### 运行共识客户端 + +##### 运行 Lighthouse + +在运行 Lighthouse 之前,请在 [Lighthouse 手册](https://lighthouse-book.sigmaprime.io/installation.html)中详细了解如何安装和配置它。 + +``` +lighthouse beacon_node + --network mainnet \ + --datadir /data/ethereum \ + --http \ + --execution.urls http://127.0.0.1:8551 \ + --jwt-secret="/path/to/jwtsecret" \ +``` + +##### 运行 Lodestar + +通过编译或下载 Docker 镜像来安装 Lodestar 软件。 在[相关文档](https://chainsafe.github.io/lodestar/)和更全面的[设置指南](https://hackmd.io/@philknows/rk5cDvKmK)中了解更多信息。 + +``` +lodestar beacon \ + --rootDir="/data/ethereum" \ + --network=mainnet \ + --eth1.enabled=true \ + --execution.urls="http://127.0.0.1:8551" \ + --jwt-secret="/path/to/jwtsecret" +``` + +##### 运行 Nimbus + +Nimbus 带有共识客户端和执行客户端。 它也可以在各种设备上运行,甚至可以在算力很一般的设备上运行。 [安装依赖项和 Nimbus](https://nimbus.guide/quick-start.html) 之后,你可以运行它的共识客户端: + +``` +nimbus_beacon_node \ + --network=mainnet \ + --web3-url=http://127.0.0.1:8551 \ + --rest \ + --jwt-secret="/path/to/jwtsecret" +``` + +##### 运行 Prysm + +Prysm 带有脚本,可实现轻松自动安装。 详细信息可以在 [Prysm 相关文档](https://docs.prylabs.network/docs/install/install-with-script)中找到。 + +``` +./prysm.sh beacon-chain \ + --mainnet + --datadir /data/ethereum \ + --http-web3provider=http://localhost:8551 \ + --jwt-secret=/path/to/jwtsecret +``` + +##### 运行 Teku + +``` +teku --network mainnet \ + --data-path "/data/ethereum" \ + --ee-endpoint http://localhost:8551 \ + --ee-jwt-secret-file "/path/to/jwtsecret" \ +``` + +在 Teku [相关文档](https://docs.teku.consensys.net/en/22.8.0/HowTo/Prepare-for-The-Merge/)中了解有关运行合并就绪 Teku 设置的更多信息。 + +共识客户端连接到执行客户端以读取存款合约并识别验证者。 它还连接到其他对等信标节点,并从创世块开始同步共识时隙。 当它到达当前时段时,信标应用程序接口将可供你的验证者使用。 详细了解[信标节点应用程序接口](https://eth2docs.vercel.app/)。 ### 添加验证者 {#adding-validators} -每种共识客户端都有自己的验证者软件,后者在各自的文档中都有详细描述。 最简便的开始 质押和验证者密钥生成的方法是使用 [Goerli 测试网质押启动板](https://goerli.launchpad.ethereum.org/),让你可以测试你的设置。 当准备好使用主网时,你可以使用[主网质押启动板](https://launchpad.ethereum.org/)重复这些步骤。 +共识客户端充当验证者客户端连接的信标节点。 每种共识客户端都有自己的验证者软件,后者在各客户端文档中都有详细描述。 + +运行你自己的验证者便可以进行[单独质押](https://ethereum.org/en/staking/solo/),这是最有影响力和免信任的方式。 单独质押需要存入 32 个以太币。 为了在自己的节点上运行验证者并质押较少数量的以太币,由无需许可的节点运营商组成的去中心化池可能会你引起你的兴趣,例如 [Rocket Pool](https://rocketpool.net/node-operators)。 + +开始质押和验证者密钥生成的最简单方法是使用 [Prater 测试网质押启动板](https://prater.launchpad.ethereum.org/),它允许你通过 [在 Goerli 上运行节点](https://notes.ethereum.org/@launchpad/goerli)来测试你的设置。 当准备好使用主网时,你可以使用[主网质押启动板](https://launchpad.ethereum.org/)重复这些步骤。 确保核查[主网准备情况检查清单](https://launchpad.ethereum.org/en/merge-readiness),以便在合并期间顺利运行你的验证者。 ### 使用节点 {#using-the-node} -执行客户端提供远程过程调用应用程序接口端点,在以太坊网络上,可以用这些端点以各种方式提交交易、与智能合约互动或部署智能合约。 +执行客户端提供[远程过程调用应用程序接口端点](/developers/docs/apis/json-rpc/),在以太坊网络上,可以使用这些端点以各种方式提交交易、与智能合约交互或部署智能合约: -- 使用合适的协议(例如,使用 `curl`)手动调用端点 +- 使用合适的协议(例如,`curl`)手动调用端点 - 附加提供的控制台(例如 `geth attache`) -- 在应用程序中实现端点 +- 使用 web3 库在应用程序中实现端点,例如 [web3.py](https://web3py.readthedocs.io/en/stable/overview.html#overview) 和 [ethers](https://github.com/ethers-io/ethers.js/) -不同的客户端对远程过程调用端点有不同的实现方式。 但是有一个标准 JSON-RPC,每种客户端都可以使用。 想要了解概况,[请阅读 JSON-RPC 文档](https://eth.wiki/json-rpc/API)。 需要从以太坊网络中获取信息的应用程序,可以使用此远程过程调用。 例如,通过受欢迎的钱包 MetaMask,你可以[运行一个本地区块链实例并连接到该钱包](https://metamask.zendesk.com/hc/en-us/articles/360015290012-Using-a-Local-Node)。 +不同的客户端对远程过程调用端点有不同的实现方式。 但是有一个标准 JSON-RPC,每种客户端都可以使用。 想要了解概况,[请阅读 JSON-RPC 文档](/developers/docs/apis/json-rpc/)。 需要从以太坊网络中获取信息的应用程序,可以使用此远程过程调用。 例如,受欢迎的钱包 MetaMask 可让你[连接到你自己的远程过程调用端点](https://metamask.zendesk.com/hc/en-us/articles/360015290012-Using-a-Local-Node),该端点具有卓越的隐私和安全优势。 共识客户端都公开了一个[信标应用程序接口](https://ethereum.github.io/beacon-APIs),可用于检查共识客户端的状态或通过使用 [Curl](https://curl.se) 等工具发送请求来下载区块和共识数据。 更多相关信息可以在每种共识客户端的相关文档中找到。 -#### 访问 RPC {#reaching-rpc} - -执行客户端的 JSON-RPC 默认端口是 `8545`,不过可以在配置文件中修改本地端点的端口。 默认情况下,远程过程调用接口只能在计算机的本地主机上访问。 为了让该端口可以被远程访问,可以通过将地址改为 `0.0.0.0` 公开它。 这样就可以通过本地或公共 IP 地址访问该端口。 大多数情况下,还需要在路由器上设置端口转发。 +#### 访问远程过程调用 {#reaching-rpc} -设置远程访问时应该保持谨慎,因为这会让互联网上的任何人都有可能控制你的节点。 不怀好意者可以访问你的节点让你的系统下线,或者如果你将客户端作为钱包,他们会窃取你的资金。 +执行客户端 JSON-RPC 的默认端口是 `8545`,但你可以在配置中修改本地端点的端口。 默认情况下,远程过程调用接口只能在计算机的本地主机上访问。 为了让该端口可以被远程访问,可以通过将地址改为 `0.0.0.0` 公开它。 这样就可以通过本地网络或公共 IP 地址访问该端口。 大多数情况下,还需要在路由器上设置端口转发。 -解决该问题的办法是,防止可能有危害的远程过程调用访问方法可以被修改。 例如,使用 Geth 时,可使用标记 `—http.api web3,eth,txpool` 设置可以被修改的方法。 +设置远程访问时应该保持谨慎,因为这会让互联网上的任何人都可以控制你的节点。 不怀好意者可以访问你的节点让你的系统下线,或者如果你将客户端作为钱包,他们会窃取你的资金。 -还可以将你的远程过程调用接口访问托管,即将网络服务器的服务(比如 Nginx)指向你的客户端的本地地址和端口。 +解决该问题的办法是,防止可能有危害的远程过程调用访问方法可以被修改。 例如,使用 Geth 时,可使用标记 `—http.api web3,eth,txpool` 设置修改方法。 -设置可公开访问端点的最保护隐私、最简单的方法,是将其托管在自己的 [Tor](https://www.torproject.org/) 洋葱服务上。 这将让你在本地网络外部无需静态公共 IP 地址或开放的端口也能访问此远程过程调用端口。 操作如下: +你还可以通过将 Web 服务器(如 Nginx)的服务指向客户端的本地地址和端口,以此托管对远程过程调用接口的访问。 这也使你能够设置证书,以便安全地连接到你自己的远程过程调用的 `https`。 -- 安装 `tor` -- 编辑 `torrc` 配置文件以启用隐藏客户端远程过程调用地址和端口的服务 -- 重启 `tor` 服务 +设置公共可访问端点的最隐私保护也是非常简单的方法,你可以将其托管在你自己的 [Tor](https://www.torproject.org/) onion 服务上。 这将让你在本地网络外部无需静态公共 IP 地址或开放的端口也能访问此远程过程调用端口。 但是,请记住,远程过程调用只能通过 Tor 网络访问,并非所有应用程序都支持该网络,并且可能会导致连接问题。 -重启 Tor 后,你将在自己设置的目录中获得隐藏服务的密钥和主机名。 之后,你的远程过程调用端口就可以通过以 `.onion` 结尾的主机名进行访问。 +为此,你必须创建自己的 [onion 服务](https://community.torproject.org/onion-services/)。 查看有关 onion 服务设置的[相关文档](https://community.torproject.org/onion-services/setup/)以托管你自己的服务。 你可以将其指向具有远程过程调用端口代理的 Web 服务器,或者直接指向远程过程调用。 ### 运行节点 {#operating-the-node} @@ -163,38 +421,48 @@ sidebarDepth: 2 #### 保持节点在线 {#keeping-node-online} -节点不需要一直在线,但是为了保持和网络同步,应该尽可能多地让节点在线。 可以关闭节点并重启,但牢记: +你的节点不必不间断地在线,但你应该尽可能保持其在线以使其与网络保持同步。 你可以将其关闭以重新启动它,但请记住: - 如果正在向磁盘写入最近的网络状态,关闭节点可能需要花费几分钟。 - 强制关闭会导致数据库损坏。 -- 客户端将无法与网络同步,重启后,客户端需要重新同步。 +- 客户端将无法与网络同步,重启后,客户端需要重新同步。 这取决于它离线的时间长短。 *但是,共识层的验证者节点就需要一直在线。*验证者节点离线将影响所有依赖它的服务。 如果你是为了*质押*而运行节点,应该尽可能地减少停机时间。 #### 创建客户端服务 {#creating-client-services} -如果需要在启动时自动运行客户端,可以考虑创建客户端服务。 例如,在 Linux 服务器上,最佳做法是创建一种服务,为有限权限的用户执行配置正确的客户端并自动重启。 +如果需要在启动时自动运行客户端,可以考虑创建客户端服务。 例如,在 Linux 服务器上,最佳做法是创建一种服务,例如使用 `systemd`,为有限权限的用户执行配置正确的客户端并自动重启。 #### 更新客户端 {#updating-clients} -必须通过安装最新的安全补丁、功能和[以太坊改进提案](/eips/),让客户端软件更新到最新版本。 特别是在[硬分叉](/history/)之前,确保运行正确的客户端版本。 更新客户端非常简单。 每种客户端在其相关文档中都有具体说明,但通常更新过程包括关闭客户端,下载最新版本并重启。 客户端应该从上次版本开始更新,并且需要应用所有更新。 +必须通过安装最新的安全补丁、功能和[以太坊改进提案](/eips/),让客户端软件更新到最新版本。 特别是在[硬分叉](/history/)之前,确保运行正确的客户端版本。 -每种客户端实现都有一个人类可读的版本字符串,该字符串在点对点协议中使用但也可以从命令行访问。 该版本字符串允许用户检查他们运行的客户端版本是否正确,并允许区块浏览器和其他分析工具得以量化网络上特定客户端的分布。 关于版本字符串的更多信息,请参阅各客户端相关文档。 +> 在重要的网络更新之前,以太坊基金会在其[博客](blog.ethereum.org)上发布相关文章。 你可以[订阅这些公告](https://groups.google.com/a/ethereum.org/g/announcements),以便在你的节点需要更新时收到邮件通知。 + +更新客户端非常简单。 每种客户端在其相关文档中都有具体说明,但通常更新过程仅包括下载最新版本并使用正确的可执行文件重启。 客户端应该从上次版本开始更新,并且需要应用所有更新。 + +每种客户端实现都有一个人类可读的版本字符串,该字符串在点对点协议中使用但也可以从命令行访问。 该版本字符串允许用户检查他们运行的客户端版本是否正确,并允许区块浏览器和用来量化网络上特定客户端的分布的其他分析工具。 有关版本字符串的更多信息,请参阅各客户端相关文档。 #### 运行额外服务 {#running-additional-services} -运行自己的节点,可以让你使用需要直接访问以太坊客户端远程过程调用的服务。 这些服务都构建于以太坊之上,比如[二层网络解决方案](/developers/docs/scaling/#layer-2-scaling)以及其他以太坊基础设施。 +运行自己的节点,可以让你使用需要直接访问以太坊客户端远程过程调用的服务。 这些服务构建在以太坊上,如[二层网络解决方案](/developers/docs/scaling/#layer-2-scaling)、钱包后端、区块浏览器、开发者工具和其他以太坊基础设施。 #### 监测节点 {#monitoring-the-node} -为了正确监测节点,请考虑收集指标。 客户端提供了指标端点,因此你可以获得有关节点的全面数据。 使用 [InfluxDB](https://www.influxdata.com/get-influxdb/) 或 [Prometheus](https://prometheus.io/) 等工具创建数据库,并且可以在 [Grafana](https://grafana.com/) 等软件中将其可视化并转换成图表。 在可视化节点和整个网络时,Grafana 有许多设置和各种仪表版可供使用。 在监测过程中,请务必密切关注机器的性能。 在节点初始同步期间,客户端软件可能会占用大量 CPU 和 RAM。 除了 Grafana,也可以使用操作系统自带的 `htop` 或 `uptime` 等工具来监测节点。 +为了正确监测节点,请考虑收集指标。 客户端提供了指标端点,因此你可以获得有关节点的全面数据。 使用 [InfluxDB](https://www.influxdata.com/get-influxdb/) 或 [Prometheus](https://prometheus.io/) 等工具创建数据库,并且可以在 [Grafana](https://grafana.com/) 等软件中将其可视化并转换成图表。 在可视化节点和整个网络时,Grafana 有许多设置和各种仪表版可供使用。 例如,查看[有关监测 Geth 的教程](/developers/tutorials/monitoring-geth-with-influxdb-and-grafana/)。 + +在监测过程中,请务必密切关注机器的性能。 在节点初始同步期间,客户端软件可能会占用大量 CPU 和 RAM 资源。 除了 Grafana,也可以使用操作系统自带的 `htop` 或 `uptime` 等工具来监测节点。 ## 延伸阅读 {#further-reading} -- [分析成为已验证以太坊全节点的硬件要求](https://medium.com/coinmonks/analyzing-the-hardware-requirements-to-be-an-ethereum-full-validated-node-dc064f167902) _- Albert Palau,2018 年 9 月 24 日_ +- [指南 | 如何设置以太坊质押者以便在主网上质押](https://www.coincashew.com/coins/overview-eth/guide-or-how-to-setup-a-validator-on-eth2-mainnet) _– CoinCashew,定期更新_ +- [有关在测试网上运行验证者的 ETHStaker 指南](https://github.com/remyroy/ethstaker#guides) – _ETHStaker,定期更新_ +- [以太坊质押指南](https://github.com/SomerEsat/ethereum-staking-guides) _ – Somer Esat,定期更新_ +- [针对节点运营商的合并常见问题解答](https://notes.ethereum.org/@launchpad/node-faq-merge) - _2022 年 7 月_ +- [分析成为已验证以太坊全节点的硬件要求](https://medium.com/coinmonks/analyzing-the-hardware-requirements-to-be-an-ethereum-full-validated-node-dc064f167902)_ - Albert Palau,2018 年 9 月 24 日_ - [运行以太坊全节点:勉励者指南](https://medium.com/@JustinMLeroux/running-ethereum-full-nodes-a-guide-for-the-barely-motivated-a8a13e7a0d31) _- Justin Leroux,2019 年 11 月 7 日_ - [运行以太坊节点](https://docs.ethhub.io/using-ethereum/running-an-ethereum-node/) _- ETHHub,经常更新_ -- [在以太坊主网上运行 Hyperledger Besu 节点:优点、要求和设置](https://pegasys.tech/running-a-hyperledger-besu-node-on-the-ethereum-mainnet-benefits-requirements-and-setup/) _- Felipe Faraggi,2020 年 5 月 7 日_ +- [在以太坊主网上运行 Hyperledger Besu 节点:优点、要求和设置](https://pegasys.tech/running-a-hyperledger-besu-node-on-the-ethereum-mainnet-benefits-requirements-and-setup/) _– Felipe Faraggi,2020 年 5 月 7 日_ - [部署具有监测堆栈的 Nethermind 以太坊客户端](https://medium.com/nethermind-eth/deploying-nethermind-ethereum-client-with-monitoring-stack-55ce1622edbd) _– Nethermind.eth,2020 年 7 月 8 日_ ## 相关主题 {#related-topics} diff --git a/src/content/translations/zh/developers/docs/programming-languages/dart/index.md b/src/content/translations/zh/developers/docs/programming-languages/dart/index.md index a305848bb5b..83359b6a91c 100644 --- a/src/content/translations/zh/developers/docs/programming-languages/dart/index.md +++ b/src/content/translations/zh/developers/docs/programming-languages/dart/index.md @@ -13,10 +13,10 @@ incomplete: true 1. 安装 [Truffle 开发套件](https://www.trufflesuite.com/) 2. 使用 [Solidity](https://soliditylang.org/) 编写一个智能合约 3. 使用 Dart 编写一个用户界面 -- [使用 Flutter 创建移动端去中心化应用](https://medium.com/dash-community/building-a-mobile-dapp-with-flutter-be945c80315a)这篇文章要简短得多,如果您了解基础知识,这篇文章可能更为合适。 +- 如果你已经了解基础知识,[使用 Flutter 构建移动去中心化应用程序](https://medium.com/dash-community/building-a-mobile-dapp-with-flutter-be945c80315a)的篇幅要短得多,效果可能更好 - 如果您喜欢通过观看视频来学习,可以观看 [创建您的第一个区块链 Flutter 应用](https://www.youtube.com/watch?v=3Eeh3pJ6PeA),时长大概一个小时 - 如果您不想花这么多时间,您可能喜欢[在以太坊上使用 Flutter 和 Dart 创建去中心化的区块链应用](https://www.youtube.com/watch?v=jaMFEOCq_1s),时长仅约 20 分钟 -- [将 MetaMask 集成到 Flutter 应用中](https://youtu.be/8qzVDje3IWk) — 这个短片会带您了解如何一步步将 MetaMask 集成到您的 Flutter 应用中。 +- [将 MetaMask 集成到 Flutter 应用程序中](https://youtu.be/8qzVDje3IWk) — 这个短片会带你了解如何一步步将 MetaMask 集成到你的 Flutter 应用程序中。 ## 使用以太坊客户端 {#working-with-ethereum-clients} diff --git a/src/content/translations/zh/developers/docs/programming-languages/delphi/index.md b/src/content/translations/zh/developers/docs/programming-languages/delphi/index.md index 92a1c7cf6d5..cc9154555b0 100644 --- a/src/content/translations/zh/developers/docs/programming-languages/delphi/index.md +++ b/src/content/translations/zh/developers/docs/programming-languages/delphi/index.md @@ -1,5 +1,5 @@ --- -title: 面向 Delphi 开发者的以太坊资源 +title: 面向 Delphi 开发者的以太坊 description: 学习如何使用 Delphi 编程语言为以太坊开发 lang: zh incomplete: true @@ -11,7 +11,7 @@ incomplete: true -使用以太坊来创建去中心化应用程序 (或称“dapp”),发挥加密货币和区块链技术的优势。 这些 dapp 可以是值得信赖的,也即一旦被部署到以太坊上,它们将总是按程序运行。 这些应用程序可以控制数字资产,以便创造新的金融应用; 它们可以是去中心化的,也即没有任何单一实体或个人能够控制它们,而且它们几乎是不可能被审查的。 +使用以太坊来创建去中心化应用程序,发挥加密货币和区块链技术的优势。 这些去中心化应用程序可以是值得信赖的,也即一旦被部署到以太坊上,它们将总是按程序运行。 这些应用程序可以控制数字资产,以便创造新的金融应用; 它们可以是去中心化的,也即没有任何单一实体或个人能够控制它们,而且它们几乎是不可能被审查的。 在以太坊顶部构建去中心化应用,并使用 Delphi 编程语言与智能合约交互! @@ -51,5 +51,6 @@ incomplete: true - [Delphi 和以太坊域名服务](https://medium.com/@svanas/delphi-and-ethereum-name-service-ens-4443cd278af7) - [QuikNode、以太坊和 Delphi](https://medium.com/@svanas/quiknode-ethereum-and-delphi-f7bfc9671c23) - [Delphi 和以太坊黑暗森林](https://svanas.medium.com/delphi-and-the-ethereum-dark-forest-5b430da3ad93) +- [在 Delphi 中用一个代币交换另一个代币](https://svanas.medium.com/swap-one-token-for-another-in-delphi-bcb999c47f7) 想要获取更多的资源? 请查看 [ethereum.org/developers](/developers/)。 diff --git a/src/content/translations/zh/developers/docs/programming-languages/dot-net/index.md b/src/content/translations/zh/developers/docs/programming-languages/dot-net/index.md index f335fbb22e7..7a7c4555196 100644 --- a/src/content/translations/zh/developers/docs/programming-languages/dot-net/index.md +++ b/src/content/translations/zh/developers/docs/programming-languages/dot-net/index.md @@ -1,5 +1,5 @@ --- -title: 面向 .NET 开发者的以太坊资源 +title: 面向 .NET 开发者的以太坊 description: 学习如何使用并通过基于 .NET 的项目及工具参与以太坊的开发 lang: zh incomplete: true @@ -7,7 +7,7 @@ incomplete: true -使用以太坊来创建去中心化应用程序 (或称“dapp”),发挥加密货币和区块链技术的优势。 这些 dapp 可以是值得信赖的,也即一旦被部署到以太坊上,它们将总是按程序运行。 这些应用程序可以控制数字资产,以便创造新的金融应用; 它们可以是去中心化的,也即没有任何单一实体或个人能够控制它们,而且它们几乎是不可能被审查的。 +使用以太坊来创建去中心化应用程序(或称“dapp”),发挥加密货币和区块链技术的优势。 这些去中心化应用程序可以是值得信赖的,也即一旦被部署到以太坊上,它们将总是按程序运行。 这些应用程序可以控制数字资产,以便创造新的金融应用; 它们可以是去中心化的,也即没有任何单一实体或个人能够控制它们,而且它们几乎是不可能被审查的。 使用 Microsoft 技术堆栈中的工具和语言在以太坊上搭建去中心化应用程序和与智能合约交互 —— .NET Framework/.NET Core/.NET Standard 支持 VSCode 和 Visual Studio 等工具上的 C#、# Visual Basic .NET、F#。 使用 Microsoft Azure 区块链在 Azure 上部署一条以太坊区块链,几分钟即可完成。 将人们对 .NET 的喜爱带到以太坊上! @@ -78,7 +78,7 @@ incomplete: true 在 Nethereum,我们主要活跃于 [Gitter](https://gitter.im/Nethereum/Nethereum) 上,任何人都可以前来提问/回答问题,获得帮助或者前来逛逛。 您可以自由地在 [Nethereum GitHub 库](https://github.com/Nethereum)上提交拉取请求或者开启问题,或者只是前来浏览我们已有的许多小项目/样本项目。 您可以在 [Discord](https://discord.gg/jQPrR58FxX) 上找到我们! -在 Nethermind,让我们通过 [Gitter](https://gitter.im/nethermindeth/nethermind) 取得联系。 关于拉取请求或者问题,请查看 [Nethermind GitHub 库](https://github.com/NethermindEth/nethermind)。 +如果你是 Nethermind 的新手并且需要入门帮助,请加入我们的 [Discord](http://discord.gg/PaCMRFdvWT)。 我们的开发人员随时准备回答你的问题。 不要犹豫,在 [Nethermind GitHub 存储库](https://github.com/NethermindEth/nethermind)上打开一个拉取请求或提出任何问题。 ## 其他汇总列表 {#other-aggregated-lists} diff --git a/src/content/translations/zh/developers/docs/programming-languages/golang/index.md b/src/content/translations/zh/developers/docs/programming-languages/golang/index.md index d3bbec7832d..dc1e8d324cf 100644 --- a/src/content/translations/zh/developers/docs/programming-languages/golang/index.md +++ b/src/content/translations/zh/developers/docs/programming-languages/golang/index.md @@ -7,13 +7,13 @@ incomplete: true -使用以太坊创建去中心化应用(即"dapps")。 这些 dapp 可以是值得信赖的,也即一旦被部署到以太坊上,它们将总是按程序运行。 它们是去中心化的,意味着它们运行在一个点对点网络中并且不存在单点故障。 不存在单一实体或者个人可以控制它们,它们也几乎不可能被审查。 它们可以通过控制数字资产来创建新的应用。 +使用以太坊创建去中心化应用(即"dapps")。 这些去中心化应用程序可被信任,意味着一旦被部署到以太坊上,它们将总是按既定程序运行。 它们是去中心化的,意味着它们运行在一个点对点网络中并且不存在单点故障。 不存在单一实体或者个人可以控制它们,它们也几乎不可能被审查。 它们可以通过控制数字资产来创建新的应用。 ## 智能合约和 Solidity 语言入门 {#getting-started-with-smart-contracts-and-solidity} **迈出集成 Go 与以太坊的第一步** -需要更基础的入门知识? 请查看 [ethereum.org/learn](/learn/) 或 [ethereum.org/developers](/developers/)。 +需要更基础的入门知识? 请查看 [ethereum.org/learn](/learn/) 或者 [ethereum.org/developers](/developers/)。 - [区块链详解](https://kauri.io/article/d55684513211466da7f8cc03987607d5/blockchain-explained) - [理解智能合约](https://kauri.io/article/e4f66c6079e74a4a9b532148d3158188/ethereum-101-part-5-the-smart-contract) @@ -33,11 +33,11 @@ incomplete: true ## 面向中等程度用户的文章和文档 {#intermediate-articles-and-docs} - [Go 以太坊相关文档](https://geth.ethereum.org/docs/) - _官方以太坊 Golang 相关文档_ -- [Erigon 编程者指南](https://github.com/ledgerwatch/erigon/blob/devel/docs/programmers_guide/guide.md) - _图文指南,内容涵盖状态树、多重认证和交易处理_ -- [Erigon 和无状态以太坊](https://youtu.be/3-Mn7OckSus?t=394) - _2020 Ethereum Community Conference (EthCC 3)_ -- [Erigon:优化以太坊客户端](https://www.youtube.com/watch?v=CSpc1vZQW2Q) - _2018 Devcon 4_ +- [Erigon 程序员指南](https://github.com/ledgerwatch/erigon/blob/devel/docs/programmers_guide/guide.md) - _图文指南,包括状态树、多重证明和交易处理_ +- [Erigon 和无状态以太坊](https://youtu.be/3-Mn7OckSus?t=394) - _2020 年以太坊社区会议 (EthCC 3)_ +- [Erigon:优化以太坊客户端](https://www.youtube.com/watch?v=CSpc1vZQW2Q) - _2018 年开发者大会 4_ - [Go 以太坊 GoDoc](https://godoc.org/github.com/ethereum/go-ethereum) -- [在 Go 上使用 Geth 创建一个去中心化应用程序](https://kauri.io/#collections/A%20Hackathon%20Survival%20Guide/creating-a-dapp-in-go-with-geth/) +- [在 Go 上使用 Geth 创建去中心化应用程序](https://kauri.io/#collections/A%20Hackathon%20Survival%20Guide/creating-a-dapp-in-go-with-geth/) - [用 Golang 和 Geth 使用以太坊专用网络](https://myhsts.org/tutorial-learn-how-to-work-with-ethereum-private-network-with-golang-with-geth.php) - [使用 Go 对以太坊上的 Solidity 合约进行单元测试](https://medium.com/coinmonks/unit-testing-solidity-contracts-on-ethereum-with-go-3cc924091281) - [使用 Geth 作为库的快速参考](https://medium.com/coinmonks/web3-go-part-1-31c68c68e20e) @@ -48,13 +48,13 @@ incomplete: true - [基于以太坊和 Quorum 的区块链即服务应用程序](https://blockchain.dcwebmakers.com/blockchain-as-a-service-apps-using-ethereum-and-quorum.html) - [以太坊区块链应用程序中的分布式存储星际文件系统和 Swarm](https://blockchain.dcwebmakers.com/work-with-distributed-storage-ipfs-and-swarm-in-ethereum.html) - [移动客户端:各种库和 Inproc 以太坊节点](https://github.com/ethereum/go-ethereum/wiki/Mobile-Clients:-Libraries-and-Inproc-Ethereum-Nodes) -- [本地去中心化应用程序:绑定以太坊合约](https://github.com/ethereum/go-ethereum/wiki/Native-DApps:-Go-bindings-to-Ethereum-contracts) +- [原生去中心化应用程序:到以太坊合约的 Go 绑定](https://github.com/ethereum/go-ethereum/wiki/Native-DApps:-Go-bindings-to-Ethereum-contracts) ## Go 项目和工具 {#go-projects-and-tools} - [Geth / Go Ethereum](https://github.com/ethereum/go-ethereum) - _以太坊协议的官方 Go 实现_ - [Go Ethereum Code Analysis](https://github.com/ZtesoftCS/go-ethereum-code-analysis) - _审查和分析 Go 以太坊源代码_ -- [Erigon](https://github.com/ledgerwatch/erigon) - _基于 Go Ethereum 的更快的实现_ +- [Erigon](https://github.com/ledgerwatch/erigon) - _Go 以太坊的更快衍生品,专注于归档节点_ - [Golem](https://github.com/golemfactory/golem) - _Golem 正在创建一个算力全球市场_ - [Quorum](https://github.com/jpmorganchase/quorum) - _支持数据隐私的许可型以太坊实现_ - [Prysm](https://github.com/prysmaticlabs/prysm) - _以太坊 ‘Serenity’2.0 Go 实现_ @@ -64,8 +64,9 @@ incomplete: true - [Ethereum HD Wallet](https://github.com/miguelmota/go-ethereum-hdwallet) - _使用 Go 的以太坊硬件钱包衍生品_ - [Multi Geth](https://github.com/multi-geth/multi-geth) - _支持多种以太坊网络_ - [Geth Light Client](https://github.com/zsfelfoldi/go-ethereum/wiki/Geth-Light-Client) - _轻量级以太坊子协议的 Geth 实现_ +- [以太坊 Golang 软件开发工具包](https://github.com/everFinance/goether) - _Golang 中的简单以太坊钱包实现和实用程序_ -正在寻找更多资源? 请浏览 [ethereum.org/developers](/developers/)。 +想要获取更多的资源? 请浏览 [ethereum.org/developers](/developers/)。 ## Go 社区贡献者 {#go-community-contributors} diff --git a/src/content/translations/zh/developers/docs/programming-languages/java/index.md b/src/content/translations/zh/developers/docs/programming-languages/java/index.md index c8025c20af4..1999ee9fafe 100644 --- a/src/content/translations/zh/developers/docs/programming-languages/java/index.md +++ b/src/content/translations/zh/developers/docs/programming-languages/java/index.md @@ -7,7 +7,7 @@ incomplete: true -使用以太坊来创建去中心化应用程序 (或称“dapp”),发挥加密货币和区块链技术的优势。 这些 dapp 可以是值得信赖的,也即一旦被部署到以太坊上,它们将总是按程序运行。 这些应用程序可以控制数字资产,以便创造新的金融应用; 它们可以是去中心化的,也即没有任何单一实体或个人能够控制它们,而且它们几乎是不可能被审查的。 +使用以太坊来创建去中心化应用程序 (或称“dapp”),发挥加密货币和区块链技术的优势。 这些去中心化应用程序可以是值得信赖的,也即一旦被部署到以太坊上,它们将总是按程序运行。 这些应用程序可以控制数字资产,以便创造新的金融应用; 它们可以是去中心化的,也即没有任何单一实体或个人能够控制它们,而且它们几乎是不可能被审查的。 ## 智能合约和 Solidity 语言入门 {#getting-started-with-smart-contracts-and-solidity} diff --git a/src/content/translations/zh/developers/docs/programming-languages/javascript/index.md b/src/content/translations/zh/developers/docs/programming-languages/javascript/index.md index 1d94cf6f9c5..89e057575e9 100644 --- a/src/content/translations/zh/developers/docs/programming-languages/javascript/index.md +++ b/src/content/translations/zh/developers/docs/programming-languages/javascript/index.md @@ -8,9 +8,9 @@ JavaScript 是以太坊生态中最受欢迎的语言之一。 事实上,有 有机会在[堆栈的所有级别](/developers/docs/ethereum-stack/)使用 JavaScript(或接近)。 -## JavaScript 和以太坊的交互 {#interact-with-ethereum} +## Javascript 和以太坊的交互 {#interact-with-ethereum} -### JavaScript 应用编程接口库 {#javascript-api-libraries} +### JavaScript API 库 {#javascript-api-libraries} 如果您想要写入 JavaScript 来查询区块链、发送交易等,则最方便的方法是使用 [JavaScript API 库](/developers/docs/apis/javascript/)。 这些 API 允许开发者轻松与[以太坊网络节点](/developers/docs/nodes-and-clients/)交互。 diff --git a/src/content/translations/zh/developers/docs/programming-languages/python/index.md b/src/content/translations/zh/developers/docs/programming-languages/python/index.md index aebade0628e..e4e6ea9c84c 100644 --- a/src/content/translations/zh/developers/docs/programming-languages/python/index.md +++ b/src/content/translations/zh/developers/docs/programming-languages/python/index.md @@ -13,7 +13,7 @@ incomplete: true **迈出第一步,将 Python 与以太坊集成** -需要更基础的入门知识? 请查看 [ethereum.org/learn](/learn/) 或 [ethereum.org/developers](/developers/)。 +需要更基础的入门知识? 请查看 [ethereum.org/learn](/learn/) 或者 [ethereum.org/developers](/developers/)。 - [区块链详解](https://kauri.io/article/d55684513211466da7f8cc03987607d5/blockchain-explained) - [理解智能合约](https://kauri.io/article/e4f66c6079e74a4a9b532148d3158188/ethereum-101-part-5-the-smart-contract) @@ -48,9 +48,9 @@ incomplete: true ### 活跃: {#active} - [Web3.py](https://github.com/ethereum/web3.py) - _用于与以太坊交互的 Python 库_ +- [Vyper](https://github.com/ethereum/vyper/) - _一种适用于以太坊虚拟机的 Python 智能合约语言_ - [Ape](https://github.com/ApeWorX/ape) - _面向 Pythonista、数据科学家和安全专业人员的智能合约开发工具_ - [Brownie](https://github.com/eth-brownie/brownie) - _一个用于部署、测试以太坊智能合约并与之交互的 Python 框架_ -- [Vyper](https://github.com/ethereum/vyper/) - _一种具有 Python 风格的以太坊虚拟机智能合约编程语言_ - [py-evm](https://github.com/ethereum/py-evm) - _以太坊虚拟机的实现_ - [eth-tester](https://github.com/ethereum/eth-tester) - _用于测试以太坊应用程序的工具_ - [eth-utils](https://github.com/ethereum/eth-utils/) - _使用以太坊相关代码库的实用程序函数_ @@ -59,14 +59,14 @@ incomplete: true - [pydevp2p](https://github.com/ethereum/pydevp2p) - _使用 Python 实现 P2P 协议栈_ - [pymaker](https://github.com/makerdao/pymaker) - _面向 Maker 合约的 Python 应用程序接口_ - [siwe](https://github.com/spruceid/siwe-py) - _面向 Python 的以太坊登录服务 (siwe)_ -- [用于测试的智能合约](https://github.com/tradingstrategy-ai/smart-contracts-for-testing) - _ERC-20、Uniswap 和其他常见合约随附的一个 Python 包,供使用 Web3.py 编写测试_ +- [用于以太坊集成的 Web3 去中心化金融](https://github.com/tradingstrategy-ai/web3-ethereum-defi) - _一个 Python 包,具有适用于 ERC-20、Uniswap 和其他流行项目的现成集成_ ### 已归档/不再维护: {#archived--no-longer-maintained} - [Trinity](https://github.com/ethereum/trinity) - _以太坊的 Python 客户端_ - [Mamba](https://mamba.black) - _一个用 Vyper 语言编写、编译和部署智能合约的框架_ -正在寻找更多资源? 请查看 [ethereum.org/developers](/developers/)。 +想要获取更多的资源? 请查看 [ethereum.org/developers](/developers/)。 ## 使用 Python 工具的项目 {#projects-using-python-tooling} @@ -78,10 +78,11 @@ incomplete: true - [Sushiswap](https://sushi.com/) 使用 [Python 来管理和部署他们的归属合约](https://github.com/sushiswap/sushi-vesting-protocols) - 因 Alpha Homora 而知名的 [Alpha Finance](https://alphafinance.io/) 使用 [Brownie 来测试和部署他们的智能合约](https://github.com/AlphaFinanceLab/alpha-staking-contract) -## Python 社区贡献者 {#python-community-contributors} +## Python 社区讨论 {#python-community-contributors} -[以太坊 Python Discord 社区](https://discord.gg/9zk7snTfWe)是一个迅速发展壮大的社区,专门用于讨论上述任何项目和相关主题的资源。 +- [以太坊 Python 社区 Discord](https://discord.gg/9zk7snTfWe),适合讨论 Web3.py 和其他 Python 框架 +- [Vyper Discord](<[https://discord.gg/9zk7snTfWe](https://discord.gg/SdvKC79cJk)>),适合讨论 Vyper 智能合约编程 ## 其他汇总列表 {#other-aggregated-lists} -维基百科中关于 Vyper 的[可靠资源列表](https://github.com/ethereum/vyper/wiki/Vyper-tools-and-resources) +Vyper 维基百科包含[丰富的 Vyper 资源列表](https://github.com/ethereum/vyper/wiki/Vyper-tools-and-resources) diff --git a/src/content/translations/zh/developers/docs/programming-languages/ruby/index.md b/src/content/translations/zh/developers/docs/programming-languages/ruby/index.md index 18a04fa18f9..2fc92b70338 100644 --- a/src/content/translations/zh/developers/docs/programming-languages/ruby/index.md +++ b/src/content/translations/zh/developers/docs/programming-languages/ruby/index.md @@ -7,7 +7,7 @@ incomplete: false -使用以太坊来创建去中心化应用程序 (或称“dapp”),发挥加密货币和区块链技术的优势。 这些去中心化应用程序可以无需信任,这意味着在部署到以太坊后,它们将始终按程序设定运行。 去中心化应用程序可以控制数字资产,从而创建新类型的金融应用程序。 它们可以是去中心化的,也即没有任何单一实体或个人能够控制它们,而且它们几乎是不可能被审查的。 +使用以太坊来创建去中心化应用程序,发挥加密货币和区块链技术的优势。 这些去中心化应用程序可以无需信任,这意味着在部署到以太坊后,它们将始终按程序设定运行。 去中心化应用程序可以控制数字资产,从而创建新类型的金融应用程序。 它们可以是去中心化的,即没有任何单一实体或个人控制它们,而且它们几乎不可能被审查。 ## 智能合约和 Solidity 语言入门 {#getting-started-with-smart-contracts-and-solidity} diff --git a/src/content/translations/zh/developers/docs/programming-languages/rust/index.md b/src/content/translations/zh/developers/docs/programming-languages/rust/index.md index b5cc1a95673..686d17eb16d 100644 --- a/src/content/translations/zh/developers/docs/programming-languages/rust/index.md +++ b/src/content/translations/zh/developers/docs/programming-languages/rust/index.md @@ -7,13 +7,13 @@ incomplete: true -使用以太坊来创建去中心化应用程序 (或称“dapp”),发挥加密货币和区块链技术的优势。 这些 dapp 可以是值得信赖的,也即一旦被部署到以太坊上,它们将总是按程序运行。 这些应用程序可以控制数字资产,以便创造新的金融应用; 它们可以是去中心化的,也即没有任何单一实体或个人能够控制它们,而且它们几乎是不可能被审查的。 +使用以太坊来创建去中心化应用程序(或称“dapp”),发挥加密货币和区块链技术的优势。 这些 dapp 可以是值得信赖的,也即一旦被部署到以太坊上,它们将总是按程序运行。 这些应用程序可以控制数字资产,以便创造新的金融应用; 它们可以是去中心化的,也即没有任何单一实体或个人能够控制它们,而且它们几乎是不可能被审查的。 ## 智能合约和 Solidity 语言入门 {#getting-started-with-smart-contracts-and-solidity} **迈出第一步,将 Rust 与以太坊进行集成** -需要更基础的入门知识? 请查看 [ethereum.org/learn](/learn/) 或 [ethereum.org/developers](/developers/)。 +需要更基础的入门知识? 请查看 [ethereum.org/learn](/learn/) 或者 [ethereum.org/developers](/developers/)。 - [区块链详解](https://kauri.io/article/d55684513211466da7f8cc03987607d5/blockchain-explained) - [理解智能合约](https://kauri.io/article/e4f66c6079e74a4a9b532148d3158188/ethereum-101-part-5-the-smart-contract) @@ -42,6 +42,7 @@ incomplete: true - [从 Enigma 开始 - 用 Rust 编程语言](https://blog.enigma.co/getting-started-with-discovery-the-rust-programming-language-4d1e0b06de15) - [Secret Contracts 介绍](https://blog.enigma.co/getting-started-with-enigma-an-intro-to-secret-contracts-cdba4fe501c2) - [在 Oasis (Compound) 上部署 Solidity 合约](https://docs.oasis.dev/tutorials/deploy-solidity.html#deploy-using-truffle) +- [用 Rust 构建区块链。](https://blog.logrocket.com/how-to-build-a-blockchain-in-rust/) ## Rust 项目和工具 {#rust-projects-and-tools} @@ -51,14 +52,14 @@ incomplete: true - [oasis_std](https://docs.rs/oasis-std/0.2.7/oasis_std/) - _OASIS 应用程序界面参考_ - [Solaris](https://github.com/paritytech/sol-rs) - [SputnikVM](https://github.com/sorpaas/rust-evm) - _采用 Rust 实现以太坊虚拟机_ -- [rust-web3](https://github.com/tomusdrw/rust-web3) - _Web3.js 库 Rust 语言实现_ +- [rust-web3](https://github.com/tomusdrw/rust-web3) - _ Web3.js 库 Rust 语言实现_ - [Wavelet](https://wavelet.perlin.net/docs/smart-contracts) - _Rust 语言的 Wavelet 智能合约_ - [Foundry](https://github.com/gakonst/foundry) - _以太坊应用开发工具包_ - [Ethers_rs](https://github.com/gakonst/ethers-rs)- _可实现以太坊库和钱包功能_ - [evm_rs](https://github.com/rust-blockchain/evm)- _采用 Rust 实现以太坊虚拟机_ - [SewUp](https://github.com/second-state/SewUp) - _一个帮助您以 Rust 语言构建以太坊 Webassembly 合约的库,正如在一个共同后端开发一样_ -正在寻找更多资源? 请浏览 [ethereum.org/developers](/developers/)。 +想要获取更多的资源? 请浏览 [ethereum.org/developers](/developers/)。 ## Rust 社区贡献者 {#rust-community-contributors} diff --git a/src/content/translations/zh/developers/docs/smart-contracts/anatomy/index.md b/src/content/translations/zh/developers/docs/smart-contracts/anatomy/index.md index 7ea3560f0d7..b5a67f90e33 100644 --- a/src/content/translations/zh/developers/docs/smart-contracts/anatomy/index.md +++ b/src/content/translations/zh/developers/docs/smart-contracts/anatomy/index.md @@ -6,7 +6,7 @@ lang: zh 智能合约是一种在以太坊某个地址上运行的程序。 它们是由数据和函数组成的,可以在收到交易时执行。 以下概述一个智能合约的组成。 -### 前提条件 {#prerequisites} +### 前置要求 {#prerequisites} 确保您已经先阅读了[智能合约](/developers/docs/smart-contracts/)。 本文档假设您已经熟悉某种编程语言,例如 JavaScript 或 Python。 diff --git a/src/content/translations/zh/developers/docs/smart-contracts/compiling/index.md b/src/content/translations/zh/developers/docs/smart-contracts/compiling/index.md index f7303365b37..b8818b5e87c 100644 --- a/src/content/translations/zh/developers/docs/smart-contracts/compiling/index.md +++ b/src/content/translations/zh/developers/docs/smart-contracts/compiling/index.md @@ -7,7 +7,7 @@ incomplete: true 您需要编译您的合约,以便您的 web 应用程序和以太坊虚拟机能够理解它。 -## 先决条件 {#prerequisites} +## 前提条件 {#prerequisites} 在阅读关于编译的文档之前,请阅读我们的[智能合约](/developers/docs/smart-contracts/)和[以太坊虚拟机](/developers/docs/evm/)可能会有帮助。 @@ -39,7 +39,7 @@ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x ABI 是一份 JSON 文件,描述了部署的合约及这个智能合约的函数。 这在 web2 和 web3 之间的鸿沟上架起交流的桥梁 -[JavaScript 客户端库](/developers/docs/apis/javascript/)将读取**应用程序二进制接口 (ABI)**,以便您在 Web 应用程序接口中调用您的智能合约。 +[Javascript 客户端库](/developers/docs/apis/javascript/)将读取**应用程序二进制接口 (ABI)**,以便您在 Web 应用程序接口中调用您的智能合约。 以下是 ERC-20 代币合约的应用程序二进制接口。 ERC-20 是您可以在以太坊交易的代币。 @@ -275,4 +275,4 @@ ABI 是一份 JSON 文件,描述了部署的合约及这个智能合约的函 ## 相关主题 {#related-topics} - [JavaScript 客户端库](/developers/docs/apis/javascript/) -- [以太坊虚拟机](/developers/docs/ethereum-virtual-machine/) +- [以太坊虚拟机](/developers/docs/evm/) diff --git a/src/content/translations/zh/developers/docs/smart-contracts/composability/index.md b/src/content/translations/zh/developers/docs/smart-contracts/composability/index.md index 8d8733eada1..b8f3b1a5004 100644 --- a/src/content/translations/zh/developers/docs/smart-contracts/composability/index.md +++ b/src/content/translations/zh/developers/docs/smart-contracts/composability/index.md @@ -9,13 +9,69 @@ incomplete: true 智能合约在以太坊上是公开的,可视为开放式应用程序接口。 您不需要写自己的智能合约才能成为一个去中心化应用程序开发者,您只需要知道如何与它们交互。 例如,您可以使用现有的智能合约 [Uniswap](https://uniswap.exchange/swap),一个去中心化的交易所,在您的应用中处理代币交易逻辑 – 您并不需要一切从零开始。 看看他们的一些 [v2](https://github.com/Uniswap/uniswap-v2-core/tree/master/contracts) 和 [v3](https://github.com/Uniswap/uniswap-v3-core/tree/main/contracts) 合约。 +## 什么是可组合性? {#what-is-composability} + +可组合性是将独立的组件结合起来,以建立新的系统或输出。 在软件开发中,可组合性意味着开发者可以复用现有的软件组件来构建新的应用程序。 有个理解可组合性的好办法,就是将可组合的元素们视为乐高积木。 每个乐高积木都可以与另一个积木合并,这让你可以通过合并不同的积木来构建复杂的结构。 + +在以太坊,每个智能合约都是某种乐高积木 — 你可以使用其他项目的智能合约作为你项目的构造块。 这意味着你不需要花时间来重复造轮子或从零开始搭建项目。 + +## 可组合性是如何工作的? {#how-does-composability-work} + +以太坊智能合约就像是公共应用程序接口,任何人都可以与合约交互或将其整合到去中心化应用程序中以获得更多功能。 智能合约的可组合性一般有三个原则:模块化、自主性和可发现性。 + +**1. 模块化**:这是独立组件执行具体任务的能力。 在以太坊,每个智能合约都有一个特定的用例(如 Uniswap 示例所示)。 + +**2. 自主性**:可组合的组件必须能够独立运行。 以太坊中每个智能合约都可以在不依赖系统其他部分的情况下自动执行。 + +**3. 可发现性**:开发者无法在外部合约或软件库未公开时调用合约或将库整合到应用程序中。 按照设计,智能合约是开源的;任何人都可以调用合约或派生代码库。 + +## 可组合性带来的好处 {#benefits-of-composability} + +### 缩短开发周期 {#shorter-development-cycle} + +减少了开发者在创建[去中心化应用程序](/dapps/#what-are-dapps)时的必要工作。 [正如 Naval Ravikant 所说的那样:](https://twitter.com/naval/status/1444366754650656770)“开放源码意味着每个问题只需要解决一次。” + +如果有智能合约解决了某个问题,那么其他开发者可以重用这个合约,所以他们无需解决同样的问题。 这种方法让开发者可以使用现有软件库并添加一些额外功能来创建新的去中心化应用程序。 + +### 增加创新 {#greater-innovation} + +可组合性鼓励创新和实验,因为开发者们可以自由地重用、修改、复制或整合开源代码以达到预期结果。 这样,开发小组在基础功能上将花费较少的时间,并可以将更多的时间分配到新功能的实验上。 + +### 改善用户体验 {#better-user-experience} + +以太坊生态系统中各组成部分之间的互操作性可改善用户体验。 相较于应用程序无法互通的碎片化生态系统,去中心化应用程序在集成外部智能合约后,用户可以获取更多功能。 + +我们将使用一个仲裁交易的示例来说明互操作性的好处: + +如果某个代币在`交易所 A` 的交易价格高于`交易所 B`,你可以利用价格差赚取利润。 然而,只有当你有足够的资本来为交易提供资金的情况下,你才能做到这一点(即,从`交易所 B` 购买代币并在`交易所 A` 出售)。 + +在你没有足够资金来支付交易的情况下,闪电贷可能是个理想的办法。 [闪电贷](/defi/#flash-loans)的技术含量较高,但最基本的逻辑是,你可以借入资产(无抵押品),并在*一笔*交易中返还相同的资产。 + +回到我们最初的示例,仲裁交易者可以拿出大笔闪电贷,从`交易所 B` 购买代币,在`交易所 A` 出售它们,退还资本+利息,并将利润保留在同一笔交易中。 这种复杂的逻辑需要将多个合约的调用结合起来,如果智能合约缺乏互操作性,这种调用是不可能做到的。 + +## 以太坊中的可组合性示例 {#composability-in-ethereum} + +### 代币交换 {#token-swaps} + +如果你创建了一个需要用以太币支付交易费用的去中心化应用程序,你可以通过整合代币交换逻辑,允许用户使用其他 ERC-20 代币付款。 在合约执行调用的函数之前,代码会自动把用户的代币转换为以太币。 + +### 治理 {#governance} + +为[去中心化自治组织](/dao/)构建定制的治理系统可能会耗费大量时间和金钱。 或者,你可以使用开放源代码治理工具包,例如 [Aragon 客户端](https://client.aragon.org/),来引导去中心化自治组织,以快速创建治理框架。 + +### 身份管理 {#identity-management} + +你可以集成去中心化身份 (DID) 工具来管理用户的身份验证,而不是建立一个自定义身份验证系统或依靠中心化的身份提供商。 一个例子是 [SpruceID](https://www.spruceid.com/),它是一个开源工具包,提供了“使用以太坊登录”的功能,让用户能够通过以太坊钱包验证身份。 + ## 相关教程 {#related-tutorials} - [合约的可组合性:以太坊智能合约开发的基石](https://www.decentlabs.io/blog/contract-composability-the-building-blocks-of-ethereum-smart-contract-development) -- [使用“创建以太坊应用程序”启动去中心化应用程序前端开发](/developers/tutorials/kickstart-your-dapp-frontend-development-wth-create-eth-app/) _– 概述如何使用“创建以太坊应用程序”创建带有热门智能合约的应用程序。_ +- [使用 create-eth-app 启动你的去中心化应用程序前端开发](/developers/tutorials/kickstart-your-dapp-frontend-development-wth-create-eth-app/) _– 概述如何使用 create-eth-app,借助开箱即用的流行智能合约创建应用程序。_ ## 延伸阅读 {#further-reading} -_还有哪些社区资源对您有所帮助? 编辑并添加本页面!_ +_还有哪些社区资源对你有所帮助? 编辑本页面以添加!_ - [可组合性是创新](https://future.a16z.com/how-composability-unlocks-crypto-and-everything-else/) +- [为什么可组合性对 Web3 很重要](https://hackernoon.com/why-composability-matters-for-web3) +- [什么是可组合性?](https://blog.aragon.org/what-is-composability/#:~:text=Aragon,connect%20to%20every%20other%20piece.) diff --git a/src/content/translations/zh/developers/docs/smart-contracts/deploying/index.md b/src/content/translations/zh/developers/docs/smart-contracts/deploying/index.md index 7633fd92b38..b18cc7a9877 100644 --- a/src/content/translations/zh/developers/docs/smart-contracts/deploying/index.md +++ b/src/content/translations/zh/developers/docs/smart-contracts/deploying/index.md @@ -8,7 +8,7 @@ lang: zh 要部署一个智能合约,只需发送一个包含编译后的智能合约代码的以太坊交易,而不需要指定任何收件人。 -## 先决条件 {#prerequisites} +## 前置要求 {#prerequisites} 在部署智能合约之前,您需要理解[以太坊网络](/developers/docs/networks/), [交易](/developers/docs/transactions/)和[详解智能合约](/developers/docs/smart-contracts/anatomy/)。 diff --git a/src/content/translations/zh/developers/docs/smart-contracts/index.md b/src/content/translations/zh/developers/docs/smart-contracts/index.md index 697e76a6e94..7bca42ca641 100644 --- a/src/content/translations/zh/developers/docs/smart-contracts/index.md +++ b/src/content/translations/zh/developers/docs/smart-contracts/index.md @@ -8,9 +8,9 @@ lang: zh 智能合约只是一个运行在以太坊链上的一个程序。 它是位于以太坊区块链上一个特定地址的一系列代码(函数)和数据(状态)。 -智能合约也是一个[以太坊帐户](/developers/docs/accounts/),我们称之为合约帐户。 这意味着他们有余额,他们可以通过网络进行交易。 但是,他们无法被人操控,他们是被部署在网络上作为程序运行着。 个人用户可以通过提交交易执行智能合约的某一个函数来与智能合约进行交互。 智能合约能像常规合约一样定义规则,并通过代码自动强制执行。 默认情况下,您无法删除智能合约,与它们的交互是不可逆的。 +智能合约也是一个[以太坊帐户](/developers/docs/accounts/),我们称之为合约帐户。 这意味着它们有余额,可以成为交易的对象。 但是,他们无法被人操控,他们是被部署在网络上作为程序运行着。 个人用户可以通过提交交易执行智能合约的某一个函数来与智能合约进行交互。 智能合约能像常规合约一样定义规则,并通过代码自动强制执行。 默认情况下,您无法删除智能合约,与它们的交互是不可逆的。 -## 前提条件 {#prerequisites} +## 前置要求 {#prerequisites} 如果您刚刚入门或寻找技术含量较低的介绍,我们推荐我们的[智能合约简介](/smart-contracts/)。 @@ -28,7 +28,7 @@ money + snack selection = snack dispensed 这种逻辑以程序的形式写入自动售货机。 -像自动售货机一样,智能合约也有逻辑编程到其中。 下面的简单示例展示了自动售货机如何看上去如同智能合约一样: +像自动售货机一样,智能合约也有逻辑编程到其中。 这里有一个简单的例子,说明了如果售货机是一个用 Solidity 编写的智能合约将会是什么样子: ```solidity pragma solidity 0.8.7; @@ -67,7 +67,7 @@ contract VendingMachine { ## 无需准入性 {#permissionless} -任何人都可以编写智能合约并将其部署到区块链网络上。 您只需要学习如何用[智能合约语言编码](/developers/docs/smart-contracts/languages/),并有足够的以太币来部署您的合约。 在技术层面上,部署智能合约是一项交易,所以您需要支付[燃料](/developers/docs/gas/)费用,就像您需要为简单的以太坊转账支付燃料一样。 然而,部署合约需要支付的燃料费用更高。 +任何人都可以编写智能合约并将其部署到区块链网络上。 您只需要学习如何用[智能合约语言编码](/developers/docs/smart-contracts/languages/),并有足够的以太币来部署您的合约。 部署智能合约在技术上是一笔交易,因此就像你需要为简单的以太币转账支付燃料费一样,你也需要为部署智能合约支付[燃料费](/developers/docs/gas/)。 但是,合约部署的燃料成本要高得多。 以太坊提供了对开发者友好的智能合约编程语言: @@ -80,27 +80,31 @@ contract VendingMachine { ## 可组合性 {#composability} -智能合约在以太坊上公开,并且可以看成开放应用程序接口。 这意味着您可以在自己的智能合约中调用其他智能合约,以便显著扩展可能性。 合约甚至可以部署其他合约。 +智能合约在以太坊上公开,并且可以看成开放应用程序接口。 这意味着你可以在自己的智能合约中调用其他智能合约,以大幅扩展可能的功能。 合约甚至可以部署其他合约。 了解关于[智能合约可组合性](/developers/docs/smart-contracts/composability/)的更多信息。 ## 局限性 {#limitations} -智能合约本身无法获取关于”真实世界“事件的信息,因为它们无法发送 HTTP 请求。 这是设计使然。 因为依赖外部信息可能会影响共识,而共识对安全性和去中心化而言十分重要。 +智能合约本身无法获取关于“真实世界”事件的信息,因为它们无法发送 HTTP 请求。 这是设计使然。 因为依赖外部信息可能会影响共识,而共识对安全性和去中心化而言十分重要。 这可以通过[预言机](/developers/docs/oracles/)来规避。 智能合约的另一个限制是最大合约大小。 智能合约最大可达 24 KB,否则会消耗完燃料。 可以使用[钻石模式](https://eips.ethereum.org/EIPS/eip-2535)来规避它。 +## 多重签名合约 {#multisig} + +多重签名合约是需要多个有效签名才能执行交易的智能合约帐户。 这对于避免持有大量以太币或其他代币的合约出现单点故障非常有用。 多重签名还可以在多方之间划分合同执行和密钥管理的责任,并防止丢失单个私钥导致不可逆转的资金损失。 由于这些原因,多重签名合约可用于简单的去中心化自治组织治理。 多重签名需要 M 个可能的可接受签名中的 N 个签名才能执行(其中 N ≤ M,并且 M > 1)。 普遍使用 `N = 3, M = 5` 和 `N = 4, M = 7`。 4/7 多重签名需要七个可能的有效签名中的四个。 这意味着即使失去了三个签名,资金仍然可以收回。 在这种情况下,这也意味着必须得到大多数密钥持有人的同意和签名才能执行合约。 + ## 智能合约资源 {#smart-contract-resources} -**OpenZeppelin 合约 - _安全智能合约开发库。_** +**OpenZeppelin 合约\*\*** - _安全智能合约开发库。_\*\* - [openzeppelin.com/contracts/](https://openzeppelin.com/contracts/) - [GitHub](https://github.com/OpenZeppelin/openzeppelin-contracts) - [社区论坛](https://forum.openzeppelin.com/c/general/16) -**DappSys - _安全、简单、灵活的智能合约基石。_** +**DappSys - \*\***_安全、简单、灵活的智能合约构造块。_\*\* - [DappSys](https://dappsys.readthedocs.io/) - [GitHub](https://github.com/dapphub/dappsys) diff --git a/src/content/translations/zh/developers/docs/smart-contracts/languages/index.md b/src/content/translations/zh/developers/docs/smart-contracts/languages/index.md index 6e9cd65a0db..10ed753bf0c 100644 --- a/src/content/translations/zh/developers/docs/smart-contracts/languages/index.md +++ b/src/content/translations/zh/developers/docs/smart-contracts/languages/index.md @@ -15,7 +15,7 @@ lang: zh 如果您很好奇,喜欢帮助测试仍在大力发展的新语言,则可以尝试使用 Fe,这是一种新兴的智能合约语言,目前仍处于起步阶段。 -## 先决条件 {#prerequisites} +## 前提条件 {#prerequisites} 如果已经有编程语言(特别是关于 JavaScript 或 Python)知识,可以帮助您体验到智能合约语言的差异。 同时,我们建议您在深入理解语言差异之前,先理解作为概念的智能合约。 [智能合约简介](/developers/docs/smart-contracts/)。 @@ -88,12 +88,13 @@ contract Coin { - 类 Python 编程语言 - 强类型 - 小而且易懂的编译器代码 -- 为了更安全和易于审阅,特意提供比 Solidity 少的功能。 Vyper 不支持: +- 高效的字节码生成 +- 为了让合约更安全和易于审核,特意提供比 Solidity 少的功能。 Vyper 不支持: - 修饰符 - 继承 - - 内联装配 + - 内联汇编 - 函数重载 - - 操作重载 + - 操作符重载 - 递归调用 - 无限长度循环 - 二进制定长浮点 @@ -104,10 +105,16 @@ contract Coin { - [相关文档](https://vyper.readthedocs.io) - [Vyper 示例](https://vyper.readthedocs.io/en/latest/vyper-by-example.html) +- [更多 Vyper 示例](https://vyper-by-example.org/) - [GitHub](https://github.com/vyperlang/vyper) -- [Vyper Gitter 聊天室](https://gitter.im/vyperlang/community) +- [Vyper 社区 Discord 聊天](https://discord.gg/SdvKC79cJk) - [备忘单](https://reference.auditless.com/cheatsheet) -- [更新日期:2020 年 1 月 8 日](https://blog.ethereum.org/2020/01/08/update-on-the-vyper-compiler) +- [Vyper 的智能合约开发框架和工具](/developers/docs/programming-languages/python/) +- [VyperPunk - 学习保护和破解 Vyper 智能合约](https://github.com/SupremacyTeam/VyperPunk) +- [VyperExamples - Vyper 漏洞示例](https://www.vyperexamples.com/reentrancy) +- [Vyper 开发中心](https://github.com/zcor/vyper-dev) +- [Vyper 最热门的智能合约示例](https://github.com/pynchmeister/vyper-greatest-hits/tree/main/contracts) +- [出色的 Vyper 精选资源](https://github.com/spadebuilders/awesome-vyper) ### 示例 {#example} diff --git a/src/content/translations/zh/developers/docs/smart-contracts/libraries/index.md b/src/content/translations/zh/developers/docs/smart-contracts/libraries/index.md index 9839f610ce6..95c1fd2891b 100644 --- a/src/content/translations/zh/developers/docs/smart-contracts/libraries/index.md +++ b/src/content/translations/zh/developers/docs/smart-contracts/libraries/index.md @@ -6,7 +6,7 @@ lang: zh 您无需从头开始编写项目中的每一个智能合约 我们有许多开源代码的智能合约库可为您的项目提供可重复利用的构建块,从而使您不必重新开始。 -## 先决条件 {#prerequisites} +## 前置要求 {#prerequisites} 在我们跳转到智能合约库之前,清楚地了解一个智能合约的构成是一个不错的主意。 如果尚未进行智能合约的了解,请直接点击[智能合约](/developers/docs/smart-contracts/anatomy/)。 @@ -20,7 +20,7 @@ lang: zh 智能合约库通常提供这些行为的可复用实现方式为[标准库](https://solidity.readthedocs.io/en/v0.7.2/contracts.html#libraries)或在 solidity 中通过[继承](https://solidity.readthedocs.io/en/v0.7.2/contracts.html#inheritance)的方式实现。 -例如,以下是[`不可拥有的`合约的简化版本](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v3.2.0/contracts/access/Ownable.sol)来自 [OpenZepelin 合约库](https://github.com/OpenZeppelin/openzeppelin-contracts),它设计了一个作为合约所有者的地址,并且提供了一个修饰者来限制该所有者获得一种方法。 +例如,以下是[`不可拥有的`合约的简化版本](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v3.2.0/contracts/access/Ownable.sol)来自 [OpenZeppelin 合约库](https://github.com/OpenZeppelin/openzeppelin-contracts),它设计了一个作为合约所有者的地址,并且提供了一个修饰者来限制该所有者获得一种方法。 ```solidity contract Ownable { @@ -56,7 +56,7 @@ contract MyContract is Ownable { 为了促进[可组合性和互操作性](/developers/docs/smart-contracts/composability/),以太坊社区已经以**以太坊意见征求**的形式定义了几个标准。 您可以在[标准](/developers/docs/standards/)部分阅读更多关于他们的信息。 -当将以太坊意见征求作为您的合约的一部分时,更好的做法是寻找已有的标准去实现而不是试图推出您自己的方式。 许多智能合约库包含了最流行的以太坊意见征求标准的实现。 例如,普遍存在的 [ERC20 同质化通证标准](/developers/tutorials/understand-the-erc-20-token-smart-contract/)可在 [HQ20](https://github.com/HQ20/contracts/blob/master/contracts/token/README.md) [DappSys](https://github.com/dapphub/ds-token/) 和 [OpenZepelin](https://docs.openzeppelin.com/contracts/3.x/erc20) 中找到。 此外,一些以太坊意见征求还提供规范实现作为以太坊意见征求本身的一部分。 +当将以太坊意见征求作为您的合约的一部分时,更好的做法是寻找已有的标准去实现而不是试图推出您自己的方式。 许多智能合约库包含了最流行的以太坊意见征求标准的实现。 例如,普遍存在的 [ERC20 同质化通证标准](/developers/tutorials/understand-the-erc-20-token-smart-contract/)可在 [HQ20](https://github.com/HQ20/contracts/blob/master/contracts/token/README.md) [DappSys](https://github.com/dapphub/ds-token/) 和 [OpenZeppelin](https://docs.openzeppelin.com/contracts/3.x/erc20) 中找到。 此外,一些以太坊意见征求还提供规范实现作为以太坊意见征求本身的一部分。 值得一提的是,一些以太坊意见征求不是独立的,而是对其他以太坊意见征求的补充。 例如, [ERC2612](https://eips.ethereum.org/EIPS/eip-2612) 为 ERC20 添加了一个扩展,以提高其可用性。 @@ -93,7 +93,7 @@ contract MyNFT is ERC721 { - [GitHub](https://github.com/OpenZeppelin/openzeppelin-contracts) - [社区论坛](https://forum.openzeppelin.com/c/general/16) -**DappSys -** **_安全、简单、灵活的智能合约构建块。_** +**DappSys -** **_安全、简单、灵活的智能合约构建模块。_** - [相关文档](https://dappsys.readthedocs.io/) - [GitHub](https://github.com/dapphub/dappsys) @@ -102,11 +102,11 @@ contract MyNFT is ERC721 { - [GitHub](https://github.com/HQ20/contracts) -## 相关参考 {#related-tutorials} +## 相关教程 {#related-tutorials} -- [以太坊开发者的安全考虑](/developers/docs/smart-contracts/security/) _- 构建智能合约时的安全考虑教程,包括库的使用。_ +- [以太坊开发者的安全考虑](/developers/docs/smart-contracts/security/) _- 构建智能合约时的安全考虑教程,包括库的使用_。 - [了解 ERC-20 代币智能合约](/developers/tutorials/understand-the-erc-20-token-smart-contract/) _-关于 ERC20 标准的教程,由多个库提供。_ ## 延伸阅读 {#further-reading} -_还有哪些社区资源对您有所帮助? 请编辑并添加到本页面!_ +_还有哪些社区资源对您有所帮助? 编辑并添加本页面!_ diff --git a/src/content/translations/zh/developers/docs/smart-contracts/security/index.md b/src/content/translations/zh/developers/docs/smart-contracts/security/index.md index 34b2e4fa721..16ee6387933 100644 --- a/src/content/translations/zh/developers/docs/smart-contracts/security/index.md +++ b/src/content/translations/zh/developers/docs/smart-contracts/security/index.md @@ -10,7 +10,7 @@ lang: zh - [钱包问题 #2 - 3 亿美金锁定](https://www.theguardian.com/technology/2017/nov/08/cryptocurrency-300m-dollars-stolen-bug-ether) - [去中心化自治组织被黑,360 万以太币被盗! 目前价值超过 10 亿美元](https://hackingdistributed.com/2016/06/18/analysis-of-the-dao-exploit/) -## 先决条件 {#prerequisites} +## 前置要求 {#prerequisites} 这个章节将介绍智能合约安全问题,以确保您在处理安全问题之前熟悉[智能合约](/developers/docs/smart-contracts/)。 @@ -34,7 +34,7 @@ lang: zh - Solidity 代码编辑器不会发出任何警告 - 您的代码有据可查 -上面的这些条目是编写智能合约的一个良好的开始,但是在编写代码过程中还有很多要值得注意。 关于更多条目及其详细解释,请参阅[DeFiSafety 提供的过程质量检查清单](https://docs.defisafety.com/review-process-documentation/process-quality-audit-process)。 [DefiSafety](https://defisafety.com/) 是一个对各种大型的公开以太坊去中心化应用程序进行评论的非官方公共服务提供者。 DeFiSafete 对项目的安全评级等级的一部分包括该项目是否遵守了质量检查表。 遵循这些审核过程: +上面的这些条目是编写智能合约的一个良好的开始,但是在编写代码过程中还有很多要值得注意。 关于更多条目及其详细解释,请参阅[DeFiSafety 提供的过程质量检查清单](https://docs.defisafety.com/review-process-documentation/process-quality-audit-process)。 [DefiSafety](https://defisafety.com/) 是一个非官方的公共服务,发布对各种大型公共以太坊去中心化应用程序的评论。 DeFiSafete 对项目的安全评级等级的一部分包括该项目是否遵守了质量检查表。 遵循这些审核过程: - 通过可复现的自动化测试,产生更安全的代码 - 审查员将能够更有效地审查您的项目 @@ -258,14 +258,14 @@ contract NoLongerAVictim { **有关形式验证的信息** -- [智能合约的形式验证如何工作](https://runtimeverification.com/blog/how-formal-verification-of-smart-contracts-works/) _July 20, 2018 - Brian Marick_ +- [智能合约的形式验证如何工作](https://runtimeverification.com/blog/how-formal-verification-of-smart-contracts-works/) _2018 年 7 月 20 日 - Brian Marick_ - [形式验证如何确保智能合约无懈可击](https://media.consensys.net/how-formal-verification-can-ensure-flawless-smart-contracts-cbda8ad99bd1) _2018 年 1 月 29 日 - Bernard Mueller_ ### 使用工具 {#using-tools} 智能合约安全分析最受欢迎的两个工具是: -- [Slither](https://github.com/crytic/slither) by [Trail of Bits](https://www.trailofbits.com/)(托管版本:[Crytic](https://crytic.io/)) +- [Slither](https://github.com/crytic/slither) 来自 [Trail of Bits](https://www.trailofbits.com/)(托管版本:[Crytic](https://crytic.io/)) - [Mythril](https://github.com/ConsenSys/mythril) 来自 [ConsenSys](https://consensys.net/)(托管版本:[MythX](https://mythx.io/)) 两者都是分析代码和报告问题的实用工具。 每个人都有一个 [commercial] 托管版本,但也可以免费在本地运行。 下面是如何运行 Slither 的一个快速示例,这个示例是在方便的 Docker 映像 `trailofbits/eth-security-toolbox` 中提供的。 如果您还没有安装 ,您将需要 [安装 Docker](https://docs.docker.com/get-docker/)。 @@ -302,7 +302,7 @@ Slither 已经在这里确定了重新进入的可能性。确定问题可能出 > 参考:https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities -允许您快速了解代码的潜在问题。 像所有自动化测试工具一样,Slither 并不完美,它在报告一侧出现了太多错误。 即使在不存在可开发的脆弱性的情况下,它也可以就潜在的重返提出警告。 在代码更改之间在 Slither 输出中查看 DIFERENER 常常非常有启发性,可以帮助发现比等待您的项目代码完成早得多的漏洞。 +允许您快速了解代码的潜在问题。 像所有自动化测试工具一样,Slither 并不完美,它在报告一侧出现了太多错误。 即使在不存在可开发的脆弱性的情况下,它也可以就潜在的重返提出警告。 在代码更改之间在 Slither 输出中查看 DIFFERENCE 常常非常有启发性,可以帮助发现比等待您的项目代码完成早得多的漏洞。 ## 延伸阅读 {#further-reading} diff --git a/src/content/translations/zh/developers/docs/smart-contracts/testing/index.md b/src/content/translations/zh/developers/docs/smart-contracts/testing/index.md index 38ff9fe9f57..6a0bac47357 100644 --- a/src/content/translations/zh/developers/docs/smart-contracts/testing/index.md +++ b/src/content/translations/zh/developers/docs/smart-contracts/testing/index.md @@ -1,48 +1,256 @@ --- -title: 测试用智能合约 -description: +title: 测试智能合约 +description: 测试以太坊智能合约的技术和注意事项概述 lang: zh -incomplete: true --- -## 测试工具和库 {#testing-tools-and-libraries} +测试[智能合约](/developers/docs/smart-contracts/)是改善[智能合约安全](/developers/docs/smart-contracts/security/)的最重要措施之一。 与传统软件不同,智能合约通常在启动后便无法更新,因此在以太坊网络上部署合约之前必须进行严格测试。 + +## 什么是智能合约测试? {#what-is-smart-contract-testing} + +智能合约测试是指对智能合约进行详细的分析和评估,以在开发周期内评估其源代码的质量。 测试智能合约可以更容易地识别错误和漏洞,并降低出现软件错误的可能性,有利于避免代价高昂的漏洞利用。 + +智能合约测试有多种形式,不同的方法各有好处。 测试以太坊智能合约的策略可以分为两大类:**自动化测试**和**手动测试**。 + +### 自动化测试 {#automated-testing} + +自动化测试涉及使用自动化工具对智能合约进行脚本测试。 该技术依赖于可以执行重复测试以发现智能合约缺陷的自动化软件。 + +与手动分析相比,自动化测试效率高,使用的资源更少,并且覆盖率更高。 自动化测试工具也可以配置测试数据,允许它们将预测的行为与实际结果进行比较。 + +### 手动测试 {#manual-testing} + +手动测试是人工辅助的,涉及手动执行测试步骤的个人。 代码审计需要开发人员和/或审计人员检查每一行合约代码,是智能合约手动测试的一个例子。 + +智能合约的手动测试需要相当高的技能和大量的时间、金钱和精力投入。 此外,手动测试有时容易受到人为错误问题的影响。 + +然而,对智能合约应用手动测试也是有益的。 代码审计利用人类智能来发现合约代码中可能在自动化测试期间未被发现的缺陷。 + +手动测试你的智能合约也可以揭示代码之外存在,但仍然会影响代码的漏洞。 例如,智能合约审计可以发现因与链下组件进行有缺陷的交互而产生的漏洞。 + +## 为什么测试智能合约很重要? {#benefits-of-smart-contract-testing} + +测试智能合约很重要,原因如下: + +### 1. 智能合约是高价值应用 {#smart-contracts-are-high-value-applications} + +智能合约通常处理高价值金融资产,尤其是在[去中心化金融](/defi/)等行业,以及诸如[非同质化代币](/nft/)等有价值的项目。 因此,智能合约中的小漏洞可能而且通常会给用户带来巨大的、不可挽回的损失。 然而,综合测试可以暴露智能合约代码中的错误并降低部署前的安全风险。 + +### 2. 智能合约是不可变的 {#smart-contracts-are-immutable} + +[以太坊虚拟机 (EVM)](/developers/docs/evm/) 中部署的智能合约默认是不可变的。 虽然传统开发者可能习惯于在发布后修复软件错误,但智能合约一旦在区块链上运行,以太坊开发就几乎没有修补安全漏洞的空间。 + +虽然智能合约存在可升级性机制,例如代理模式,但这些可能难以实施。 除了降低不可变性和引入复杂性之外,升级通常还需要复杂的治理流程。 + +在大多数情况下,升级应被视为最后的手段,除非必要,否则应避免。 在预发布阶段检测智能合约中的潜在漏洞和缺陷可减少对逻辑升级的需求。 + +## 智能合约的自动化测试 {#automated-testing-for-smart-contracts} + +### 1. 功能测试 {#functional-testing} + +功能测试验证智能合约的功能,并确保代码中的每个功能都按预期工作。 功能测试需要了解你的智能合约在特定条件下的行为方式。 然后,你可以通过使用选定值运行计算并将返回的输出与预期输出进行比较来测试每个函数。 + +功能测试涵盖三种方法:**单元测试**、**集成测试**和**系统测试**。 + +#### 单元测试 + +单元测试需要单独测试智能合约各个组件,确保其正确性。 单元测试简单、快速运行,并且可以清楚地了解测试失败时出了什么问题。 + +单元测试对于智能合约开发至关重要,尤其是当您需要向代码添加新逻辑时。 你可以验证每个函数的行为并确认它按预期执行。 + +运行单元测试通常需要创建*断言* — 简单、非正式的声明,指定智能合约的要求。 然后可以使用单元测试来测试每个断言,看看它在执行时是否成立。 + +与合约有关的断言的例子包括: + +i. “只有管理员才能暂停合约” + +ii. “非管理员无权铸造新的代币” + +iii. “合约在出错时将会还原” + +#### 集成测试 + +在测试层级中,集成测试的层级高于单元测试。 在集成测试中,会一起测试智能合约的独立组件们。 + +这种方法检测由合约的不同组件之间或跨多个合约的交互引起的错误。 如果你有一个具有多个功能的复杂合约或一个与其他合约交互的合约,你应该使用此方法。 + +集成测试有助于确保[继承](https://docs.soliditylang.org/en/v0.8.12/contracts.html#inheritance)和依赖注入之类的功能能够正确工作。 + +#### 系统测试 + +系统测试是智能合约功能测试的最后阶段。 系统将智能合约作为一个完全集成的产品进行评估,以查看其是否按照技术要求中的规定执行。 + +你可以将此阶段视为从用户的角度检查智能合约的端到端流程。 对智能合约执行系统测试的一个好方法是将其部署在类似生产的环境中,例如[测试网](/developers/docs/networks/#ethereum-testnets)或[开发网络](/developers/docs/development-networks/)。 + +在这里,最终用户可以进行试运行并报告合约业务逻辑和整体功能的任何问题。 系统测试很重要,因为一旦合约部署到主以太网虚拟机环境中,你就无法更改代码。 + +### 2. 静态分析和动态分析 {#static-dynamic-analysis} + +静态分析和动态分析是评估智能合约安全质量的两种自动化测试方法。 然而,这两种技术都使用不同的方法来查找合约代码中的缺陷。 + +#### 静态分析 + +静态分析在执行前检查智能合约的源代码或字节码。 这意味着你可以在不实际运行程序的情况下调试合约代码。 静态分析器可以检测以太坊智能合约中的常见漏洞并帮助遵守最佳做法。 + +#### 动态分析 + +动态分析技术需要在运行时环境中执行智能合约以识别代码中的问题。 动态代码分析器在执行期间观察合约行为,并生成已识别漏洞和属性违规的详细报告。 + +模糊测试是用于测试合约的动态分析技术的一个例子。 在模糊测试期间,模糊器向您的智能合约提供格式错误和无效的数据,并监控合约如何响应这些输入。 + +与任何程序一样,智能合约依赖于用户提供的输入来执行功能。 而且,虽然我们假设用户会提供正确的输入,但情况并非总是如此。 + +在某些情况下,向智能合约发送不正确的输入值可能会导致资源泄漏、崩溃,或者更糟糕的是,导致意外的代码执行。 模糊测试活动预先识别出此类问题,从而使你能够消除漏洞。 + +## 智能合约的手动测试 {#manual-testing-for-smart-contracts} + +### 1. 代码审计 {#code-audits} + +代码审计是对智能合约源代码的详细评估,以发现可能的故障点、安全漏洞和不良的开发实践。 虽然代码审计可以是自动化的,但我们在这里指的是人工辅助代码分析。 -**Waffle -** **_高级智能合约开发和测试的框架(基于 ethers.js)。_** +代码审计需要用攻击者的思维方式来绘制智能合约中可能的攻击向量。 即使你运行自动审计,分析每一行源代码也是编写安全智能合约的最低要求。 -- [getwaffle.io](https://getwaffle.io/) -- [GitHub](https://github.com/EthWorks/Waffle) +你还可以委托进行安全审计,为用户提供更高的智能合约安全保证。 审计受益于网络安全专业人员执行的广泛分析,并检测可能破坏智能合约功能的潜在漏洞或错误。 -**Solidity-Coverage -** **_替代性 Solidity 代码覆盖工具。_** +### 2. 漏洞奖金 {#bug-bounties} + +漏洞奖金是给予个人在程序代码中发现漏洞或错误并向开发者报告的经济奖励。 漏洞奖金类似于审计,因为它涉及要求其他人帮助发现智能合约中的缺陷。 主要区别在于漏洞赏金计划对更广泛的开发人员/黑客社区开放。 + +漏洞赏金计划通常会吸引一大批具有独特技能和经验的道德黑客和独立安全专业人士。 与主要依赖可能拥有有限或狭窄专业知识的团队的智能合约审计相比,这可能是一个优势。 + +## 测试与形式化验证 {#testing-vs-formal-verification} + +虽然测试有助于确认合约返回某些数据输入的预期结果,但它不能最终证明测试期间未使用的输入也是如此。 测试智能合约不能保证“功能正确性”,这意味着它不能表明程序的行为符合*所有*输入值和条件集的要求。 + +因此,我们鼓励开发者将**形式化验证**纳入他们评估智能合约正确性的方法中。 形式化验证使用[形式化方法](https://www.brookings.edu/techstream/formal-methods-as-a-path-toward-better-cybersecurity/) — 用于指定和验证软件的严格数学方法。 + +形式化验证被认为对智能合约很重要,因为它可以帮助开发者从形式上测试与智能合约相关的假设。 方法是创建描述智能合约属性的形式化规范并验证智能合约的形式化模型是否与规范匹配。 这种方法增加了对智能合约将仅执行其业务逻辑中定义的功能而不执行其他任何功能的信心。 + +[更多关于智能合约的形式化验证的信息](/developers/docs/smart-contracts/formal-verification) + +## 测试工具和库 {#testing-tools-and-libraries} + +### 单元测试工具 {#unit-testing-tools} + +**Solid-coverage** - _适用于测试智能合约的 Solity 代码覆盖工具。_ - [GitHub](https://github.com/sc-forks/solidity-coverage) -**Whiteblock Genesis -** **_ 面向区块链的端到端开发沙盒和测试平台。_** +**Waffle** - _高级智能合约开发和测试框架(基于 ethers.js)_。 -- [Whiteblock.io](https://whiteblock.io) -- [相关文档](https://docs.whiteblock.io) -- [GitHub](https://github.com/whiteblock/genesis) +- [相关文档](https://ethereum-waffle.readthedocs.io/en/latest/) +- [GitHub](https://github.com/TrueFiEng/Waffle) +- [网站](https://getwaffle.io/) -**OpenZepelin 测试环境 -** **_ 快速智能合约测试。 带来卓越测试体验的单行设置。_** +**Remix 测试** - _用于测试 Solidity 智能合约的工具。 在 Remix IDE 的“Solidity Unit Testing”插件下工作,该插件用于编写和运行合约的测试用例。_ -- [GitHub](https://github.com/OpenZeppelin/openzeppelin-test-environment) -- [相关文档](https://docs.openzeppelin.com/test-environment/) +- [相关文档](https://remix-ide.readthedocs.io/en/latest/unittesting.html) +- [GitHub](https://github.com/ethereum/remix-project/tree/master/libs/remix-tests) -**OpenZeppelin 测试助手 - ** **_用于以太坊智能合约测试的断言库。 请确保您的合约按预期执行!_** +**OpenZeppelin Test Helpers** - _用于以太坊智能合约测试的断言库。 确保你的合约按预期运行!_ - [GitHub](https://github.com/OpenZeppelin/openzeppelin-test-helpers) - [相关文档](https://docs.openzeppelin.com/test-helpers) +**Truffle 智能合约测试框架** - _自动化测试框架让你的合约测试变得轻而易举。_ + +- [相关文档](https://trufflesuite.com/docs/truffle/testing/testing-your-contracts/) +- [网站](https://trufflesuite.com/) + +**Brownie 单元测试框架** - _Brownie 利用 Pytest,一个功能丰富的测试框架,让你可以编写具有最少代码的小型测试,有效地扩展以用于大型项目,并保持高度可扩展性。_ + +- [相关文档](https://eth-brownie.readthedocs.io/en/v1.0.0_a/tests.html) +- [GitHub](https://github.com/eth-brownie/brownie) + +**Foundry 测试** - _Foundry 提供了 Forge,这是一个快速灵活的以太坊测试框架,能够执行简单的单元测试、燃料优化检查和合约模糊测试。_ + +- [GitHub](https://github.com/foundry-rs/foundry/tree/master/forge) +- [相关文档](https://book.getfoundry.sh/forge/) + +**Etheno** - _全栈式以太坊测试工具,包括 JSON 远程过程调用多路复用器、分析工具包装器和测试集成工具。 Etheno 消除了在大型多合约项目中设置 Manticore 和 Echidna 等分析工具的复杂性。_ + +- [GitHub](https://github.com/crytic/etheno) + +### 静态分析工具 {#static-analysis-tools} + +**Mythril** - _以太坊虚拟机字节码评估工具,用于使用污染分析、concolic 分析和控制流检查来检测合约漏洞。_ + +- [GitHub](https://github.com/ConsenSys/mythril-classic) +- [相关文档](https://mythril-classic.readthedocs.io/en/master/about.html) + +**Slither** - _基于 Python 的 Solidity 静态分析框架,用于查找漏洞、增强代码理解以及为智能合约编写自定义分析。_ + +- [GitHub](https://github.com/crytic/slither) + +**Rattle** - _以太坊虚拟机字节码静态分析框架,旨在处理已部署的智能合约。_ + +- [GitHub](https://github.com/crytic/rattle) + +### 动态分析工具 {#dynamic-analysis-tools} + +**Echidna** - _快速合约模糊器,用于通过基于属性的测试来检测智能合约中的漏洞。_ + +- [GitHub](https://github.com/crytic/echidna/) + +**Harvey** - _自动化模糊测试工具,用于检测智能合约代码中的属性违规行为。_ + +- [网站](https://consensys.net/diligence/fuzzing/) + +**Manticore** - _用于分析以太坊虚拟机字节码的动态符号执行框架。_ + +- [GitHub](https://github.com/trailofbits/manticore) +- [相关文档](https://github.com/trailofbits/manticore/wiki) + +### 智能合约审计服务 {#smart-contract-auditing-services} + +**ConsenSys Diligence** - _智能合约审计服务可帮助整个区块链生态系统中的项目,确保其协议已准备好启动并为保护用户而构建。_ + +- [网站](https://consensys.net/diligence/) + +**CertiK** - _区块链安全公司率先在智能合约和区块链网络上使用尖端的形式化验证技术。_ + +- [网站](https://www.certik.com/) + +**Trail of Bits** - _网络安全公司,将安全研究与攻击者心态相结合,以降低风险并强化代码。_ + +- [网站](https://www.trailofbits.com/) + +**PeckShield** - _区块链安全公司,为整个区块链生态系统的安全性、隐私性和可用性提供产品和服务。_ + +- [网站](https://peckshield.com/) + +**QuantStamp** - _通过安全和风险评估服务促进区块链技术主流采用的审计服务。_ + +- [网站](https://quantstamp.com/) + +**OpenZeppelin** - _为分布式系统提供安全审计的智能合约安全公司。_ + +- [网站](https://www.openzeppelin.com/security-audits) + +### 漏洞奖金平台 {#bug-bounty-platforms} + +**Immunefi** - _用于智能合约和去中心化金融项目的漏洞赏金平台,安全研究人员在此审查代码、披露漏洞、获得报酬并制作更安全的加密。_ + +- [网站](https://immunefi.com/) + +**HackerOne** - _漏洞协调和漏洞赏金平台,将企业与渗透测试人员和网络安全研究人员联系起来。_ + +- [网站](https://www.hackerone.com/) + ## 相关教程 {#related-tutorials} -- [Solidity 和 Truffle 持续集成设置](/developers/tutorials/solidity-and-truffle-continuous-integration-setup/)_——如何为 Truffle 测试搭配有用的插件,并设置 Travis 或 Circle CI。_ +- [Solidity 和 Truffle 持续集成设置](/developers/tutorials/solidity-and-truffle-continuous-integration-setup/)_ – 如何为 Truffle 测试设置 Travis 或 Circle CI 并搭配有用的插件。_ - [测试产品概述](/developers/tutorials/guide-to-smart-contract-security-tools/)_ — 不同测试产品的概述和比较。_ - [如何使用 Echidna 测试智能合约](/developers/tutorials/how-to-use-echidna-to-test-smart-contracts/) - [如何使用 Manticore 查找智能合约漏洞](/developers/tutorials/how-to-use-manticor-to-find-smart-contract-bugs/) - [如何使用 Slither 来查找智能合约漏洞](/developers/tutorials/how-to-use-slither-to-find-smart-contract-bugs/) - [如何模拟 Solidity 合约以进行测试](/developers/tutorials/how-to-mock-solidity-contracts-for-testing/) -- [如何将 Truffle 测试迁移至 OpenZeppelin 测试环境](https://docs.openzeppelin.com/test-environment/0.1/migrating-from-truffle) -- [如何在部署到网络后测试智能合约](https://fulldecent.blogspot.com/2019/04/testing-deployed-ethereum-contracts.html) +- [如何从 Truffle 测试迁移至 OpenZeppelin 测试环境](https://docs.openzeppelin.com/test-environment/0.1/migrating-from-truffle) +- [如何在部署到网络后测试合约](https://fulldecent.blogspot.com/2019/04/testing-deployed-ethereum-contracts.html) +- [学习使用 JavaScript 的区块链、Solidity 和全栈 Web3 开发 (YouTube)](https://www.youtube.com/watch?v=gyMwXuJrbJQ) +- [Solidity、区块链和智能合约课程 (YouTube)](https://www.youtube.com/watch?v=M576WGiDBdQ) ## 延伸阅读 {#further-reading} -_还有哪些社区资源对您有所帮助? 请编辑本页面并添加它!_ +- [以太坊智能合约测试深度指南](https://iamdefinitelyahuman.medium.com/an-in-depth-guide-to-testing-ethereum-smart-contracts-2e41b2770297) - _Ben Hauser_ +- [如何测试以太坊智能合约](https://betterprogramming.pub/how-to-test-ethereum-smart-contracts-35abc8fa199d) - _Alex Roan_ diff --git a/src/content/translations/zh/developers/docs/storage/index.md b/src/content/translations/zh/developers/docs/storage/index.md index 8effbb69d77..b76a95cc86a 100644 --- a/src/content/translations/zh/developers/docs/storage/index.md +++ b/src/content/translations/zh/developers/docs/storage/index.md @@ -27,7 +27,7 @@ lang: zh 区块链的持久性存储机制会出现区块链过大,维护和存储所有数据十分困难的问题(比如[许多机构](https://healthit.com.au/how-big-is-the-internet-and-how-do-we-measure-it/)预测整个区块链网络需要 40ZB 的存储容量)。 -区块链还必须有某种类型的激励结构。 出于基于区块链的持久性原因,需要为矿工支付报酬。 当数据被添加到链中时,会为添加数据的节点付费。 +区块链还必须有某种类型的激励结构。 为获得基于区块链的持久性,需要向验证者付款。 数据被添加到链上后,向验证者付款以继续添加数据。 基于区块链持久性的平台: @@ -88,15 +88,14 @@ lang: zh 这些工具大多有自己的 [共识机制](/developers/docs/consensus-mechanisms/) 版本,但一般都是基于[**工作量证明(PoW)**](/developers/docs/consensus-mechanisms/pow/) 或者[**权益证明(PoS)**](/developers/docs/consensus-mechanisms/pos/)。 -基于 PoW: +基于工作量证明: - Skynet - Arweave -- 以太坊 -基于 PoS: +基于权益证明: -- [信标链](/upgrades/beacon-chain/) +- 以太坊 - Filecoin - 0Chain @@ -169,7 +168,7 @@ lang: zh ## 延伸阅读 {#further-reading} -- [什么是去中心化存储?](https://coinmarketcap.com/alexandria/article/what-is-decentralized-storage-a-deep-dive-by-filecoin)- _CoinMarketCAp_ +- [什么是去中心化存储?](https://coinmarketcap.com/alexandria/article/what-is-decentralized-storage-a-deep-dive-by-filecoin) - _CoinMarketCap_ - [击破关于去中心化存储的五种谣传](https://www.storj.io/blog/busting-five-common-myths-about-decentralized-storage) - _Storj_ _还有哪些社区资源对您有所帮助? 请编辑本页面并添加它!_ diff --git a/src/content/translations/zh/developers/docs/transactions/index.md b/src/content/translations/zh/developers/docs/transactions/index.md index 53868c4e142..5e938a4ec43 100644 --- a/src/content/translations/zh/developers/docs/transactions/index.md +++ b/src/content/translations/zh/developers/docs/transactions/index.md @@ -12,25 +12,26 @@ lang: zh ## 什么是交易? {#whats-a-transaction} -以太坊交易是指由外部持有账户发起的行动,换句话说,是指由人管理而不是智能合约管理的账户。 例如,如果 Bob 向 Alice 发送 1 ETH,则 Bob 的帐户必须减少 1 ETH,而 Alice 的账户必须增加 1 ETH。 交易会造成状态的改变。 +以太坊交易是指由外部持有账户发起的行动,换句话说,是指由人管理而不是智能合约管理的账户。 例如,如果 Bob 发送 Alice 1 ETH,则 Bob 的帐户必须减少 1 ETH,而 Alice 的账户必须增加 1 ETH。 此项操作发生在交易中,会变更状态。 -![显示交易导致状态更改的图表](./tx.png) _图表来自 [Ethereum EVM 插图](https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf)_ +![显示交易导致状态更改的图表](./tx.png) _示意图节选自[以太坊虚拟机图解](https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf)_ -改变 EVM 状态的交易需要广播到整个网络。 任何节点都可以在 EVM 上广播交易请求;此后,矿工将执行交易并将由此产生的状态变化传播到网络的其他部分。 +改变 EVM 状态的交易需要广播到整个网络。 任何节点都可以广播在以太坊虚拟机上执行交易的请求;此后,验证者将执行交易并将由此产生的状态变化传播到网络的其他部分。 -交易需要收费并且必须开采才能有效。 为了使这种概述更加简单,我们将其称为 Gas 费和挖矿。 +交易需要付费并且必须包含在一个有效区块中。 为了使本概述更加简洁,我们将另行介绍燃料费和验证。 所提交的交易包括下列信息: - `recipient` – 接收地址(如果为一个外部持有的帐户,交易将传输值。 如果为合约帐户,交易将执行合约代码) - `signature` – 发送者的标识符。 当通过发送者的私钥签名交易来确保发送者已授权此交易时,生成此签名。 -- `value` – 从发件人向收件人转移 ETH 的金额 (以 WEI 为单位,ETH 的一种面值单位) +- `nonce` - 一个连续的递增计数器,表示帐户中的交易编号。 +- `value` – 发送人向接收人转移的以太币金额(以以太币的一种面值 WEI 为单位) - `data` – 可包括任意数据的可选字段 -- `gasLimit` – 交易可以消耗的 Gas 的最大数量。 Gas 单位代表了计算步骤 -- `maxPriorityFeePerGas` - 作为矿工小费包含的最大 gas 数量 -- `maxFeePerGas` - 愿意为交易支付的最大 gas 数量(包括 `baseFeePerGas` 和 `maxPriorityFeePerGas`) +- `gasLimit` – 交易可以消耗的最大数量的燃料单位。 燃料单位代表计算步骤 +- `maxPriorityFeePerGas` - 作为验证者小费包含的最大燃料数量 +- `maxFeePerGas` - 愿意为交易支付的最大燃料数量(包括 `baseFeePerGas` 和 `maxPriorityFeePerGas`) -Gas 是指矿工处理交易所需的算力。 用户必须为此计算支付费用。 `gasLimit` 和 `gasPrice` 决定支付给矿工的最高交易费用。 [关于 Gas 的更多信息](/developers/docs/gas/)。 +燃料是指验证者处理交易所需的计算。 用户必须为此计算支付费用。 `gasLimit` 和 `maxPriorityFeePerGas` 决定支付给验证者的最高交易费。 [关于燃料的更多信息](/developers/docs/gas/)。 交易对象看起来像这样: @@ -149,11 +150,11 @@ Alice 的帐户将会增加 **+1.0 ETH** 基础费将会燃烧 **-0.00399 ETH** -矿工获得 **+0.000210 ETH** 的小费 +验证者获得 **0.000210 个以太币**的小费 任何智能合约交互也需要燃料。 -![未使用燃料退还示意图](./gas-tx.png) _示意图节选自[以太坊虚拟机图解](https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf)_ +![未使用燃料退款情况图](./gas-tx.png) _示意图节选自[以太坊虚拟机图解](https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf)_ 任何未用于交易的燃料都会退还给用户帐户。 @@ -163,11 +164,8 @@ Alice 的帐户将会增加 **+1.0 ETH** 1. 一旦您发送交易,加密法生成交易哈希: `0x97d99bc7729211111a21b12c933c949d4f31684f1d6954ff477d0477538ff017` 2. 然后将该交易转播到网络,并且与大量其他交易一起包含在一个集合中。 -3. 矿工必须选择您的交易并将它包含在一个区块中,以便验证交易并认为它“成功”。 - - 如果网络繁忙,矿工无法跟上,您可能会在这个阶段等候。 -4. 您的交易将收到"确认"。 确认的数量是自包含您交易的区块以来创建的区块数。 这个数字越大,交易被网络处理和承认的确定性就越强。 - - 最近的区块可能会被重组,给人留下交易失败的印象;但交易可能仍然有效,但包含在另一个区块中。 - - 重组的概率随着其后每一次挖掘的区块而降低,即确认次数越多,交易就越不可改变。 +3. 验证者必须选择你的交易并将它包含在一个区块中,以便验证交易并认为它“成功”。 +4. 随着时间的流逝,包含你的交易的区块将升级成“合理”状态,然后变成“最后确定”状态。 通过这些升级,可以进一步确定 你的交易已经成功并将无法更改。 区块一旦“最终确定”,只能通过耗费数十亿美元 的攻击来更改。 ## 直观演示 {#a-visual-demo} @@ -183,7 +181,7 @@ Alice 的帐户将会增加 **+1.0 ETH** 以太坊经过演变,已经支持多种类型的交易,从而能够在不影响传统交易形式的情况下实现访问列表和 [EIP-1559](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1559.md) 等新功能。 -[EIP-2718:类型化交易封套](https://eips.ethereum.org/EIPS/eip-2718)定义了交易类型,是未来交易类型的”封套“。 +[EIP-2718:类型化交易封套](https://eips.ethereum.org/EIPS/eip-2718)定义了交易类型,是未来交易类型的“封套”。 EIP-2718 是用于类型化交易的新通用封套。 在新标准中,交易被解释为: @@ -198,11 +196,10 @@ EIP-2718 是用于类型化交易的新通用封套。 在新标准中,交易 - [EIP-2718:Typed Transaction Envelope](https://eips.ethereum.org/EIPS/eip-2718) -_还有哪些社区资源对您有所帮助? 请编辑本页面并添加它!_ +_还有哪些社区资源对您有所帮助? 请编辑本页面并添加!_ ## 相关主题 {#related-topics} - [帐户](/developers/docs/accounts/) - [以太坊虚拟机 (EVM)](/developers/docs/evm/) - [燃料](/developers/docs/gas/) -- [矿工](/developers/docs/consensus-mechanisms/pow/mining/) diff --git a/src/content/translations/zh/developers/docs/web2-vs-web3/index.md b/src/content/translations/zh/developers/docs/web2-vs-web3/index.md index 3a98dd73b77..869ecd62ddb 100644 --- a/src/content/translations/zh/developers/docs/web2-vs-web3/index.md +++ b/src/content/translations/zh/developers/docs/web2-vs-web3/index.md @@ -4,7 +4,7 @@ description: lang: zh --- -Web2 指的是我们如今众所周知的互联网版本。 一个在互联网公司掌控下提供服务来交换个人数据的互联网。 就以太坊而言,Web3 指的是在区块链上运行的去中心化应用。 任何用户都可以参与以太坊上的这些应用,个人数据却不会被出卖。 +Web2 指的是如今我们众所周知的互联网版本。 互联网由互联公司掌控,它们通过提供服务来换取个人数据。 就以太坊而言,Web3 指的是在区块链上运行的去中心化应用程序。 任何用户都可以参与这些应用程序,而无需出卖个人数据。 在寻找更适合初学者的资源? 请参阅我们的 [Web3 简介](/web3/)。 @@ -12,29 +12,29 @@ Web2 指的是我们如今众所周知的互联网版本。 一个在互联网 许多 Web3 开发者由于以太坊与生俱来的去中心化而选择构建去中心化应用程序: -- 网络上的任何人都有使用服务的权限 — — 换言之,不需要许可。 -- 没有人可以屏蔽您或拒绝您访问该服务。 -- 付款是通过本地令牌即 ether (ETH) 构建的。 -- 以太坊是图灵完备的,这意味着你可以有很多程序部署在上面。 +- 网络上的任何人都有使用服务的权限 – 换言之,不需要授予权限。 +- 没有人可以阻止或拒绝你访问服务。 +- 付款是通过原生代币以太币 (ETH) 构建的。 +- 以太坊是图灵完备的,这意味着你几乎可以进行任何编程。 ## 具体比较 {#practical-comparisons} -| Web2 | Web3 | -| ---------------------------------------------- | ------------------------------------------------------------------------------------------- | -| Twitter 可以检查任何帐户或推文 | Web3 推文不可审查,因为控制已经被分散了 | -| 支付服务可能决定不允许对某些类型的工作进行支付 | Web3 付款应用程序不需要个人数据,也不能阻止付款 | -| 零工经济应用的服务器可能会停用并影响劳动者收入 | Web3 服务器不会下线——他们使用以太坊,一个由数以千计的计算机组成的去中心化网络作为他们的后端 | +| Web2 | Web3 | +| ------------------------------------------------------ | ---------------------------------------------------------------------------------- | +| Twitter 可以检查任何帐户或推文 | Web3 推文不可审查,因为控制已经去中心化 | +| 支付服务可以决定不允许对某些类型的工作进行支付 | Web3 付款应用程序不需要个人数据,也不能阻止付款 | +| 运行零工经济应用程序的服务器可能会停机,影响劳动者收入 | Web3 服务器不会停机 – 它们的后端是以太坊,一个由数以千计的计算机组成的去中心化网络 | -这并不意味着所有服务都需要转变成去中心化应用程序。 这些示例说明了 Web2 和 Web3 服务之间的主要差异。 +这并不意味着所有服务都需要转变成去中心化应用程序。 上面的示例说明了 Web2 和 Web3 服务之间的主要差异。 -## Web3 局限性 {#web3-limitations} +## Web3 的局限性 {#web3-limitations} -Web3 现在有一些局限性: +当前,Web3 存在一些局限性: -- 可扩展性——交易在 web3 上进度较慢,因为它们是去中心化的。 更改状态像付款一样,需要由矿工处理并在整个网络中传播。 -- UX — 与 web3 应用程序互动可能需要额外的步骤、软件和学习。 这可能是应用的一个障碍。 -- 可访问性 - 大多数用户因为缺少现代化的网页浏览器而无法访问 web3。 -- 成本 — 因为太过昂贵,大多数成功的去中心化应用程序仅将其代码的很小一部分放入区块链。 +- 可扩展性——交易在 web3 上进度较慢,因为它们是去中心化的。 状态变化(例如支付)需要由节点处理并在整个网络中传播。 +- UX – 与 Web3 应用程序交互可能需要额外的步骤、软件和培训。 这可能是应用的一个障碍。 +- 可访问性 – 由于在现代 Web 浏览器中的集成不够,致使大多数用户无法访问 Web3。 +- 成本 – 因为成本高昂,大多数成功的去中心化应用程序仅将其代码的很小一部分放到区块链上。 ## 中心化与去中心化 {#centralization-vs-decentralization} @@ -50,13 +50,13 @@ Web3 现在有一些局限性: | 中心化组织可以审查数据,可能会切断网络的某些部分与网络其他部分的交互。 | 审查制度要困难得多,因为信息有多种途径在网络上传播。 | | 网络准入由中心化组织控制。 | 任何人都可以加入网络;没有“守门人”。 理想的情况是,参与费用非常低。 | -请注意,这些是一般概况,可能不适用于每一个网络。 此外,在现实情况下,网络中心化/去中心化程度取决于一系列因素;没有一个网络完全中心化或完全去中心化。 +请注意,这些都是一般概况,可能不适用于每一个网络。 此外,在现实情况下,网络中心化/去中心化程度取决于一系列因素;没有一个网络完全中心化或完全去中心化。 ## 延伸阅读 {#further-reading} - [什么是 Web3?](/web3/) - _ethereum.org_ - [Web 3.0 应用程序架构](https://www.preethikasireddy.com/post/the-architecture-of-a-web-3-0-application) - _Preethi Kasireddy_ - [去中心化的含义](https://medium.com/@VitalikButerin/the-meaning-of-decentralization-a0c92b76a274) _2017 年 2 月 6 日 - Vitalik Buterin_ -- [去中心化缘何如此重要](https://medium.com/s/story/why-decentralization-matters-5e3f79f7638e) _2018 年 2 月 18 日- Chris Dixon_ +- [去中心化缘何如此重要](https://medium.com/s/story/why-decentralization-matters-5e3f79f7638e) _2018 年 2 月 18 日 - Chris Dixon_ - [什么是 Web 3.0 以及为何它很重要](https://medium.com/fabric-ventures/what-is-web-3-0-why-it-matters-934eb07f3d2b) _2019 年 12 月 31 日 - Max Mersch 与 Richard Muirhead_ - [我们为什么需要 Web 3.0](https://medium.com/@gavofyork/why-we-need-web-3-0-5da4f2bf95ab)_ 2018 年 9 月 12 日 - Gavin Wood_ diff --git a/src/content/translations/zh/developers/tutorials/uniswap-v2-annotated-code/index.md b/src/content/translations/zh/developers/tutorials/uniswap-v2-annotated-code/index.md index c9254b665a1..be6877cb76a 100644 --- a/src/content/translations/zh/developers/tutorials/uniswap-v2-annotated-code/index.md +++ b/src/content/translations/zh/developers/tutorials/uniswap-v2-annotated-code/index.md @@ -2,7 +2,6 @@ title: "Uniswap-v2 合约概览" description: Uniswap-v2 合约是如何工作的? 为什么要如此编写? author: Ori Pomerantz -sidebar: true tags: - "solidity" - "uniswap" diff --git a/src/content/translations/zh/enterprise/index.md b/src/content/translations/zh/enterprise/index.md index edfc055cd0a..f4805b4add0 100644 --- a/src/content/translations/zh/enterprise/index.md +++ b/src/content/translations/zh/enterprise/index.md @@ -33,7 +33,7 @@ lang: zh 企业从 2016 年左右开始使用区块链技术,当时已经有了 Hyperledger、Quorum 和 Corda 项目。 最初的重点主要放在私有企业级区块链上。但从 2019 年开始,人们对商业应用程序在公共与私有区块链上的思考发生了转变。 福雷斯特进行的[调查](https://assets.ey.com/content/dam/ey-sites/ey-com/en_gl/topics/blockchain/ey-public-blockchain-opportunity-snapshot.pdf)显示,“调查答卷人... 看看这个潜力,75% 的人说他们可能会在未来使用公链,将近三分之一的人说他们很可能”。 EY’s Paul Brody 曾经[谈到](https://www.youtube.com/watch?v=-ycu5vGDdZw&feature=youtu.be&t=3668)有关在以太坊主链上进行构建的优点。其中(根据不同的应用)包括了更强的安全性/不可更改性、透明、低成本及方便与其他主链上的应用交互(网络效应)。 企业之间分享一个共同的参照基准,可以避免不必要地产生无数孤立的节点,它们不能相互沟通、分享或同步信息。 -公链另一个引人注意的发展是[第二层](/developers/docs/scaling/layer-2)。 第二层主要是一种可伸缩性技术类别,它提高了公共链上的吞吐量。 但第二层解决方案也可以[解决一些其他问题。这些问题正是当初企业开发者在过去选择私有链的原因](https://entethalliance.org/how-ethereum-layer-2-scaling-solutions-address-barriers-to-enterprises-building-on-mainnet/)。 +公共区块链另一个引人注意的发展是[二层网络](/developers/docs/scaling/layer-2)。 第二层主要是一种可伸缩性技术类别,它提高了公共链上的吞吐量。 但第二层解决方案也可以[解决一些其他问题。这些问题正是当初企业开发者在过去选择私有链的原因](https://entethalliance.org/how-ethereum-layer-2-scaling-solutions-address-barriers-to-enterprises-building-on-mainnet/)。 “Baseline 协议”是一个关键项目,它定义了一项协议,使企业之间能够进行保密和复杂的合作而不会在链上留下任何敏感数据。 它在 2020 年取得了重大的[进展](https://www.oasis-open.org/2020/08/26/baseline-protocol-achieves-key-milestone-with-release-of-v0-1-implementation-for-enterprise/)。 diff --git a/src/content/translations/zh/foundation/index.md b/src/content/translations/zh/foundation/index.md index d6514ebd651..952bd2945db 100644 --- a/src/content/translations/zh/foundation/index.md +++ b/src/content/translations/zh/foundation/index.md @@ -23,7 +23,7 @@ EF 不是一家公司,甚至不是传统的非营利组织。 他们的作用 ### 测试版 {#devcon} -从 2014 年开始,以太坊基金会开始组织“测试版“——所有以太坊开发人员、研究人员、思想家和开发人员的年度会议。 +从 2014 年开始,以太坊基金会开始组织“测试版”——所有以太坊开发人员、研究人员、思想家和开发人员的年度会议。 从会议开始以来,您每年都可以在 [archive.devcon.org](https://archive.devcon.org/) 访问会议的视频内容。 @@ -33,9 +33,7 @@ EF 不是一家公司,甚至不是传统的非营利组织。 他们的作用 [以太坊基金会团体计划](https://fellowship.ethereum.foundation/)是一项旨在帮助解决不同文化、国籍和经济阶层之间代表力差距的倡议。 团体计划旨在通过识别和支持独特和有才华的个人来弥补这些差距,帮助实现以太坊的相关性,并为那些将成为 Web3 未来但未被充分代表的人和社区打破进入壁垒。 -Fellowship 计划为以太坊基金提供了与改变世界的人合作的机会。 其项目很有可能通过使用以太坊对新兴经济体产生影响。 该方案具有独特的经验,包括辅导、专门知识和接触以太坊生态系统领袖。 - -在 [fellowship.ethereum.foundation](https://fellowship.ethereum.foundation/) 或查看 [最近在 Fellowship 发表的博客](https://blog.ethereum.org/2021/05/07/ethereum-for-the-next-billion/) +[从“团体.以太坊.基金会”了解更多](https://fellowship.ethereum.foundation/)。
diff --git a/src/content/translations/zh/glossary/index.md b/src/content/translations/zh/glossary/index.md index df47189bc2c..22d82489b08 100644 --- a/src/content/translations/zh/glossary/index.md +++ b/src/content/translations/zh/glossary/index.md @@ -55,7 +55,11 @@ sidebarDepth: 2 ### 认证 {#attestation} -验证者对[信标链](#beacon-chain)或[分片](#shard)[区块](#block)投票。 验证者必须为区块做证明,示意他们认同区块提议的状态。 +验证者为[区块](#block)投票。 验证者必须证明区块,表明他们同意区块提出的状态。 + + + 认证 + @@ -71,7 +75,7 @@ sidebarDepth: 2 ### 信标链 {#beacon-chain} -引入新共识层的网络升级,将成为整个以太坊网络的协调者。 信标链为以太坊引入[权益证明](#pos)和[验证者](#validator), 最终将并入[主网](#mainnet)。 +信标链是为以太坊引入[权益证明](#pos)和[验证者](#validator)的区块链。 从 2020 年 11 月起,它和工作量证明模式下的以太坊主网并行运行,直到 2022 年 9 月两条链合并,形成现如今的以太坊。 信标链 @@ -83,7 +87,7 @@ sidebarDepth: 2 ### 区块 {#block} -一组关于所包含[交易](#transaction)的必要信息(区块头),以及一组称为[叔块](#ommer)的其他区块头。 区块由[矿工](#miner)添加到以太坊网络。 +区块是一个由[区块提议者](#block-proposer)创建并通过点对点网络发送至其它节点的信息单元。 区块包含了要执行的交易列表和供[验证者](#validator)检查区块内数据是否有效的共识相关信息。 这使得节点可以更新它们对于以太坊状态的态势感知。 区块 @@ -95,27 +99,40 @@ sidebarDepth: 2 ### 区块头 {#block-header} -区块中的数据。如果其内容不同,或者创建的环境不同,区块头也会不同。 区块头包含前一个区块头的哈希值、开采该区块所用软件的版本号、时间戳和该区块中内容的默克尔树根哈希值。 +区块头是一个包含区块本身以及区块内包含的交易摘要的元数据集合。 ### 区块传播 {#block-propagation} 将经确认的区块传递到网络中所有其他节点的过程。 +### 区块提议者 {#block-proposer} + +被选中在特定[时隙](#slot)内创建一个区块的特定验证者。 + ### 区块奖励 {#block-reward} 奖励给新有效区块生产者的一定量以太币。 +### 区块状态 {#block-status} + +区块可以处于的状态。 可能的状态包括: + +- 被提议:区块被一个验证者提议 +- 被提上日程:验证者正在提交数据 +- 被错过/跳过:提议者没有在有效的时间范围内提议一个区块 +- 被抛弃:区块被分叉选择机制移出 + ### 区块时间 {#block-time} -将区块加到区块链所用的平均时间。 +相邻两个区块被添加进区块链的时间间隔。 ### 区块验证 {#block-validation} -检查区块加密签名与整个区块链中存储的历史记录之间的一致性。 +检查一个新区块包含的交易是否合法以及区块是否处于最长合法链上的过程。 ### 区块链 {#blockchain} -以太坊中由[工作量证明](#pow)系统验证的[区块](#block)序列,每个区块与其父块相连,可一直追溯到[创世区块](#genesis-block)。 区块链没有区块大小限制,而是使用不同的[燃料限制](#gas-limit)。 +一个由许多[区块](#block)组成的序列,每个区块都链接至它的前一个区块,直至[创世区块](#genesis-block)。 区块链的完整性由基于权益证明共识机制通过经济的加密方式提供保证。 什么是区块链? @@ -123,15 +140,15 @@ sidebarDepth: 2 ### 引导节点 {#bootnode} -在运行节点时可以用来启动发现过程的节点。 这些节点的端点记录在以太坊源代码中。 +可以在运行节点时用来启动发现过程的节点。 这些节点的端点记录在以太坊源代码中。 ### 字节码 {#bytecode} -为软件解释程序或虚拟机的高效执行而设计的抽象指令集。 与人类可读的源代码不同,字节码以数字格式表示。 +由软件解释程序或虚拟机为实现高效执行而设计的抽象指令集。 与人类可读源代码不同,字节码以数字格式表示。 ### 拜占庭分叉 {#byzantium-fork} -指[大都市](#hard-fork)开发阶段的头两次[硬分叉](#metropolis)。 拜占庭分叉包含了 EIP-649 大都会[难度炸弹](#difficulty-bomb)延迟和区块奖励减额,其中,[冰河世纪](#ice-age)被延迟 1 年,区块奖励从 5 个以太币减少为 3 个。 +[大都市](#hard-fork)开发阶段的头两次[硬分叉](#metropolis)。 拜占庭分叉包含了 EIP-649 大都市[难度炸弹](#difficulty-bomb)延迟和区块奖励减额,其中,[冰河世纪](#ice-age)被延迟了 1 年,区块奖励从 5 个以太币减少为 3 个。 @@ -147,7 +164,7 @@ Casper-FFG 是一种权益证明共识协议,与 [LMD-GHOST](#lmd-ghost) 分 ### 编译 {#compiling} -把用高级编程语言(例如,[Solidity](#solidity))写的代码转换为低级语言(例如,以太坊虚拟机[字节码](#bytecode))。 +将用高级编程语言(例如,[Solidity](#solidity))编写的代码转换为低级语言(例如,以太坊虚拟机[字节码](#bytecode))。 编译智能合约 @@ -155,7 +172,7 @@ Casper-FFG 是一种权益证明共识协议,与 [LMD-GHOST](#lmd-ghost) 分 ### 委员会 {#committee} -至少 128 个[验证者](#validator)组成的集合,由[信标链](#beacon-chain)随机分配到信标区块和分片区块。 +在每个时隙中被分配用于验证区块的一组[验证者](#validator)(至少 128 个)。 委员会中的验证者之一是聚合者,负责聚合委员会中所有其他同意某项认证的验证者的签名。 ### 计算不可行性 {#computational-infeasibility} @@ -163,7 +180,7 @@ Casper-FFG 是一种权益证明共识协议,与 [LMD-GHOST](#lmd-ghost) 分 ### 共识 {#consensus} -当网络中的许多节点,通常是大部分节点,在其本地验证的最佳区块链中拥有相同的区块时,称为共识。 请勿与[共识机制](#consensus-rules)混淆。 +当网络中绝大多数节点经本地验证的最长区块链都具有相同的区块时,称为共识。 请勿与[共识机制](#consensus-rules)混淆。 ### 共识客户端 {#consensus-client} @@ -175,7 +192,7 @@ Casper-FFG 是一种权益证明共识协议,与 [LMD-GHOST](#lmd-ghost) 分 ### 共识机制 {#consensus-rules} -全节点与其他节点保持共识的区块验证机制。 请勿与[共识](#consensus)混淆。 +全节点遵循的与其他节点保持共识的区块验证规则。 请勿与[共识](#consensus)混淆。 ### 君士坦丁堡分叉 {#constantinople-fork} @@ -189,16 +206,6 @@ Casper-FFG 是一种权益证明共识协议,与 [LMD-GHOST](#lmd-ghost) 分 一种特殊的[交易](#transaction),用于注册[合约](#contract-account)并将其记录在以太坊区块链上,而交易的接收者为[零地址](#zero-address)。 -### 交叉链接 {#crosslink} - -交叉链接提供分片的状态汇总。 这是在实现分片的[权益证明系统](#proof-of-stake)里,[分片](#shard)链通过[信标链](#beacon-chain)互相通信的方式。 - - - 权益证明 - - - - ### 加密经济学 {#cryptoeconomics} 加密货币经济学。 @@ -209,11 +216,11 @@ Casper-FFG 是一种权益证明共识协议,与 [LMD-GHOST](#lmd-ghost) 分 Đ(D 加一笔)在古英语、中世纪英语、冰岛语和法罗语中代表大写字母“Eth”。 Đ 用于 ĐEV 或 Đapp(去中心化应用程序)等词,其中 Đ 是古挪威语字母“eth”。 大写的 eth (Ð) 也用于表示加密货币 Dogecoin(狗狗币)。 这种用法在较早的以太坊文献中很常见,但如今很少使用。 -### DAG(有向无环图) {#DAG} +### 有向无环图 {#DAG} DAG 代表有向无环图。 它是由节点和节点之间的链接组成的数据结构。 以太坊在其[工作量证明](#proof-of-work)算法 [Ethash](#ethash) 中使用了有向无环图。 -### Dapp(去中心化应用程序) {#dapp} +### 去中心化应用程序 {#dapp} Dapp 是去中心化应用程序。 从狭义上来说,去中心化应用程序是一个[智能合约](#smart-contract)和一个网页用户界面。 从广义上来讲,它是建立在开放、去中心化、点对点基础设施服务之上的网页应用程序。 此外,许多去中心化应用程序包括去中心化存储和/或报文协议及平台。 @@ -249,9 +256,13 @@ Dapp 是去中心化应用程序。 从狭义上来说,去中心化应用程 请参见[非同质化代币 (NFT)](#nft) -### 去中心化金融 (DeFi) {#defi} +### 存款合约 {#deposit-contract} + +在以太坊上的质押门户。 存款合约是以太坊上的智能合约,它接受以太币存款并管理验证者余额。 验证者如果不将以太币存入该合约,便无法激活。 合约需要提供以太币和输入数据。 该输入数据包括由验证者私钥签名的验证者公钥和提款公钥。 [权益证明](#pos)网络需要这些数据来识别和批准验证者。 -DeFi 是“decentralized finance”(去中心化金融)的缩写,是一种广义的[去中心化应用程序](#dapp),旨在提供由区块链提供支持的金融服务,无需中介,任何人只需要联网就可以参与。 +### 去中心化金融 {#defi} + +DeFi 是“去中心化金融”的缩写,是一种广义的[去中心化应用程序](#dapp),旨在提供由区块链提供支持的金融服务,无需中介,任何人只需要互联网连接就可以参与。 去中心化金融 (DeFi) @@ -259,15 +270,15 @@ DeFi 是“decentralized finance”(去中心化金融)的缩写,是一种 ### 难度 {#difficulty} -一种涉及全网的设置,控制产生一个[工作量证明](#pow)所需的计算量。 +一项涉及全网的设置,用来控制在[工作量证明](#pow)网络中产生一个有效随机数所需的计算量。 ### 难度炸弹 {#difficulty-bomb} -在[工作量证明](#pow)[难度](#difficulty)环境中所计划的指数增长,旨在推动向[权益证明](#pos)的转变,减少[分叉](#hard-fork)的几率。 +计划的使[工作量证明](#pow)[难度](#difficulty)呈指数级别增长的设置,旨在促进向[权益证明](#pos)的过渡,并减少发生[分叉](#hard-fork)的几率。 难度炸弹在[合并](/upgrades/merge/)时被移除。 ### 数字签名 {#digital-signatures} -用户使用[私钥](#private-key)为文件生成的一串短数据,这样任何有对应[公钥](#public-key)、签名和文档的人都能验证 (1) 文档由该特定私钥的所有者“签名”,以及 (2) 文档签名后未作修改。 +用户使用[私钥](#private-key)为文档生成的一串短数据,这样任何有对应[公钥](#public-key)、签名和文档的人都能验证 (1) 文档由该特定私钥的所有者“签名”,以及 (2) 文档在签名后未作修改。 @@ -295,11 +306,11 @@ DeFi 是“decentralized finance”(去中心化金融)的缩写,是一种 ### 熵 {#entropy} -在加密学里,缺乏可预测性或随机性。 在生成密钥信息时,例如[私钥](#private-key),算法经常需要依赖于提供高熵的信源,以确保其输出具有不可预测性。 +在加密学里,是指缺乏可预测性或随机性水平。 在生成密钥信息,例如[私钥](#private-key)时,算法经常需要依赖于提供高熵的信源,以确保其输出具有不可预测性。 ### 时段 {#epoch} -在[信标链](#beacon-chain)坐标系中,每 32 个[时隙](#slot)(6.4 分钟)称为一个时段。 为了确保安全,每个时段会将[验证者](#validator)[委员会](#committee)打乱重组。 每个时段里都有一次[最终确定](#finality)区块链的机会。 该术语也用于[执行层](#execution-layer),表示每次重新生成数据库(被工作量证明算法 [Ethash](#Ethash) 用作种子)之间的时间间隔。 时段指定为 30000 个区块。 +32 个[时隙](#slot)(6.4 分钟)的周期。 为了确保安全,每个时段会将[验证者](#validator)[委员会](#committee)打乱重组。 每个时段都有机会让链[最终确定](#finality)。 权益证明 @@ -307,7 +318,7 @@ DeFi 是“decentralized finance”(去中心化金融)的缩写,是一种 ### 模棱两可 {#equivocation} -验证者发送两条相互矛盾的消息。 一个简单的例子是交易发送者发送两笔具有相同随机数的交易。 另一个示例是区块提议者在相同的区块高度(或为相同的时隙)提出两个区块。 +验证者发送两条相互矛盾的消息。 一个简单的例子是交易发送者发送两笔具有相同随机数的交易。 另一个示例是区块提议者在相同的区块高度(或为相同的时隙)提议两个区块。 ### 以太坊 1 {#eth1} @@ -319,16 +330,12 @@ DeFi 是“decentralized finance”(去中心化金融)的缩写,是一种 ### 以太坊 2 {#eth2} -“以太坊 2”指以太坊协议的一系列升级,包括以太坊过渡至权益证明。 该术语已弃用,取而代之的是“共识层”。 [详细了解此名称更改](https://blog.ethereum.org/2022/01/24/the-great-eth2-renaming/)。 +“以太坊 2”是指以太坊协议的一系列升级,包括以太坊到权益证明的过渡。 该术语已弃用,取而代之的是“共识层”。 [详细了解此名称更改](https://blog.ethereum.org/2022/01/24/the-great-eth2-renaming/)。 有关以太坊升级的更多信息 -### 以太基 {#etherbase} - -以太坊客户端上主帐户的默认名称。 挖矿奖励会记入此帐户。 它是“比特币基地”的以太坊版本,适用于其他加密货币。 - ### 以太坊改进提案 (EIP) {#eip} 为以太坊社区提供信息的一种设计文档,描述提议的新功能,或者其流程或环境(请参见[以太坊意见征求](#erc))。 @@ -345,7 +352,7 @@ DeFi 是“decentralized finance”(去中心化金融)的缩写,是一种 ### 执行客户端 {#execution-client} -执行客户端(又称 “以太坊 1 客户端”),如 Besu、Erigon、go-ethereum、Nethermind,负责处理和广播交易,以及管理以太坊的状态。 执行客户端为[以太坊虚拟机](#evm)中的每笔交易运行计算,以确保遵守协议规则。 如今,它们还要处理[工作量证明](#pow)共识。 过渡到[权益证明](#pos)之后,执行客户端会将此委托给共识客户端。 +执行客户端(以前称为“以太坊 1 客户端”),例如 Besu、Erigon、go-ethereum、Nethermind,负责处理和广播交易以及管理以太坊的状态。 执行客户端为[以太坊虚拟机](#evm)中的每笔交易运行计算,以确保遵守协议规则。 ### 执行层 {#execution-layer} @@ -357,7 +364,7 @@ DeFi 是“decentralized finance”(去中心化金融)的缩写,是一种 ### 以太坊征求意见 (ERC) {#erc} -以太坊征求意见是一种标签,应用于一些试图定义以太坊具体使用标准的[以太坊改进提案](#eip)。 +一种标签,应用于一些试图定义以太坊具体使用标准的[以太坊改进提案](#eip)。 以太坊改进提案介绍 @@ -365,9 +372,9 @@ DeFi 是“decentralized finance”(去中心化金融)的缩写,是一种 ### Ethash {#ethash} -以太坊 1.0 的[工作量证明](#pow)算法。 +一个在以太坊转换为[权益证明](#pos)之前应用于以太坊的[工作量证明](#pow)算法。 -[详情请见 eth.wiki](https://eth.wiki/en/concepts/ethash/ethash) +[了解更多](/developers/docs/consensus-mechanisms/pow/mining-algorithms/ethash) ### 以太币 {#ether} @@ -417,28 +424,25 @@ DeFi 是“decentralized finance”(去中心化金融)的缩写,是一种 最终确定性是在给定时间之前,一组交易不会变更且无法回滚的保证。 - - 工作量证明的最终确定性 - - 权益证明的最终确定性 + 权益证明最终确定性 -### finney {#finney} +### Finney {#finney} [以太币](#ether)的一种计量单位。 1 finney = 1015 [wei](#wei)。 103 finney = 1 个以太币。 ### 分叉 {#fork} -协议层面的一次变动,会产生一条竞争链,或在挖矿中造成两条潜在区块路径的暂时性分叉。 +由于协议更改而引发另一条链的生成,或由于时间差异而产生两条潜在的区块路径。 ### 分叉选择算法 {#fork-choice-algorithm} -用于识别区块链头的算法。 在执行层,链头为其后总难度最大的一条。 这意味着真正的链头需要最多工作才能开采。 在共识层,该算法观察来自验证者的累积认证 ([LMD_GHOST](#lmd-ghost))。 +用于识别区块链头的算法。 在执行层,链头为其后总难度最大的一条。 这意味着真正的链头需要最多工作才能开采。 在共识层,该算法会观察来自验证者的累积认证 ([LMD_GHOST](#lmd-ghost))。 ### 欺诈证明 {#fraud-proof} -特定[二层网络](#layer-2)解决方案的安全模型。为了加快交易速度,交易成批[卷叠](#rollups),在单笔交易中提交给以太坊。 交易默认有效,但如果怀疑有欺诈行为,可以对它们提出质疑。 之后,欺诈证明会运行交易,以确定是否发生欺诈。 这种方法可增加交易量,同时保证安全性。 部分[卷叠](#rollups)采用的是[有效性证明](#validity-proof)。 +特定[二层网络](#layer-2)解决方案的安全模型。在此模型中,为了加快交易速度,交易成批[卷叠](#rollups),并在单笔交易中提交给以太坊。 交易默认有效,但如果怀疑有欺诈行为,可以对它们提出质疑。 之后,欺诈证明会运行交易,以确定是否发生欺诈。 这种方法在保证安全性的同时可能增加交易量。 部分[卷叠](#rollups)采用的是[有效性证明](#validity-proof)。 乐观卷叠 @@ -454,7 +458,7 @@ DeFi 是“decentralized finance”(去中心化金融)的缩写,是一种 ### 燃料 {#gas} -以太坊中为执行智能合约所消耗的虚拟“燃料”。 [以太坊虚拟机](#evm)使用一种记账方法来衡量燃料用量,以限制算力资源的消耗(参见[图灵完备](#turing-complete))。 +以太坊中为执行智能合约所消耗的虚拟“燃料”。 [以太坊虚拟机](#evm)使用一种记账机制来衡量燃料用量,以限制算力资源的消耗(参见[图灵完备](#turing-complete))。 燃料和费用 @@ -472,11 +476,11 @@ DeFi 是“decentralized finance”(去中心化金融)的缩写,是一种 [区块链](#blockchain)上第一个区块,用于初始化特定的网络及其加密货币。 -### geth {#geth} +### Geth {#geth} -Go Ethereum, 以太坊协议最好的实现之一,使用 Go 语言编写。 +Go Ethereum, 以太坊协议最重要的实现之一,使用 Go 语言编写。 -[更多信息请参考 geth.ethereum.org](https://geth.ethereum.org/) +[更多信息请访问 geth.ethereum.org](https://geth.ethereum.org/) ### gwei {#gwei} @@ -488,11 +492,11 @@ Gigawei 的缩写,[以太币](#ether)的一种计量单位,通常用于[燃 ### 硬分叉 {#hard-fork} -[区块链](#blockchain)中的永久性分叉;硬分叉也叫硬分叉变化。 在未升级节点无法验证由遵循更新[共识机制](#consensus-rules)的已升级节点所创建的区块时,通常会发生硬分叉。 请勿与分叉、软分叉、软件分叉或 Git 分叉相混淆。 +[区块链](#blockchain)中的永久性分歧;也称为硬分叉变化。 当未升级节点无法验证由遵循更新[共识机制](#consensus-rules)的已升级节点所创建的区块时,通常会发生硬分叉。 请勿与分叉、软分叉、软件分叉或 Git 分叉相混淆。 ### 哈希 {#hash} -可变长度输入的固定长度数字指纹,由哈希函数生成。 (参见 [keccak-256](#keccak-256))。 +可变长度输入的固定长度数字指纹,由哈希函数生成。 (参见 [keccak-256](#keccak-256))。 ### 哈希率 {#hash-rate} @@ -500,17 +504,17 @@ Gigawei 的缩写,[以太币](#ether)的一种计量单位,通常用于[燃 ### 身份钱包 {#hd-wallet} -使用分层确定性密钥创建方式和转账协议的[钱包](#wallet)。 +使用分层确定性 (HD) 密钥创建和转账协议的[钱包](#wallet)。 [更多信息请访问 github.com](https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki) ### 身份钱包种子 {#hd-wallet-seed} -用来生成身份[钱包](#wallet)中主[私钥](#private-key)与主链码的值。 可以用助记词表示,以便大家复制、备份及恢复私钥。 +用来生成身份[钱包](#wallet)的主[私钥](#private-key)与主链代码的值。 钱包种子可以用助记词表示,方便大家复制、备份及恢复私钥。 ### 家园 {#homestead} -以太坊的第二个开发阶段,于 2016 年 3 月在第 1,150,000 个区块上启动。 +以太坊的第二个开发阶段,于 2016 年 3 月在区块 1,150,000 上启动。 @@ -518,19 +522,19 @@ Gigawei 的缩写,[以太币](#ether)的一种计量单位,通常用于[燃 ### 索引 {#index} -一种网络结构,旨在通过提供其存储资源的有效路径来优化跨[区块链](#blockchain)信息的查询。 +一种网络结构,旨在通过提供其存储源的高效路径来优化跨[区块链](#blockchain)的信息查询。 ### 可交换客户端地址协议 (ICAP) {#icap} -以太坊地址编码,与国际银行账号 (IBAN) 编码部分兼容,为以太坊地址提供经过校验、可互操作的多用途编码。 ICAP 地址使用一个新的 IBAN 伪国家代码-XE,全称是“eXended Ethereum”,如非管辖货币中的 X(如 XBT、XRP、XCP)。 +一种以太坊地址编码方式,与国际银行账号 (IBAN) 编码部分兼容,为以太坊地址提供经过校验和校验、可互操作的多用途编码。 ICAP 地址使用一个新的 IBAN 伪国家代码-XE(全称是“扩展以太坊”),如非管辖货币中的 XE(如 XBT、XRP、XCP)。 ### 冰河世纪 {#ice-age} -以太坊块高为 200,000 的 [硬分叉](#hard-fork),带来了指数级[难度](#difficulty)增加(又称为[难度炸弹](#difficulty-bomb)),为过渡到[权益证明](#pos)做准备。 +以太坊在区块 200,000 的[硬分叉](#hard-fork),此分叉引入了指数级[难度](#difficulty)增加(又称为[难度炸弹](#difficulty-bomb)),促进了到[权益证明](#pos)的过渡。 ### 集成开发环境 (IDE) {#ide} -将代码编辑器、编译器、运行时和调试器合并在一起的用户界面。 +通常将代码编辑器、编译器、运行时和调试器合并在一起的用户界面。 集成开发环境 @@ -538,7 +542,7 @@ Gigawei 的缩写,[以太币](#ether)的一种计量单位,通常用于[燃 ### 部署代码不可改变问题 {#immutable-deployed-code-problem} -[合约](#smart-contract)(或[库](#library))的代码一经部署,便不可更改。 标准软件开发习惯于能够修复可能的缺陷并增加新的功能,但这对智能合约的开发而言是一个挑战。 +[合约](#smart-contract)(或[库](#library))的代码一经部署,便不可更改。 标准软件开发实践依赖于能够修复可能的错误并增加新的功能,但这对智能合约的开发而言是一个挑战。 部署智能合约 @@ -546,19 +550,19 @@ Gigawei 的缩写,[以太币](#ether)的一种计量单位,通常用于[燃 ### 内部交易 {#internal-transaction} -[交易](#transaction)从一个[合约帐户](#contract-account)发送到另一个合约帐户或一个[外部帐户](#eoa)(请参阅[信息](#message))。 +[交易](#transaction)从一个[合约帐户](#contract-account)发送到另一个合约帐户或一个[外部帐户](#eoa)(参见[消息](#message))。 ### 发行 -铸造新的以太币以奖励区块提议、证明和举报。 +铸造新的以太币以奖励区块提议、认证和举报。 ## K {#section-k} ### 密钥导出函数 (KDF) {#kdf} -也称为“密码拉伸算法”。[密钥库](#keystore-file)格式使用该算法,通过反复散列密码短语,防止针对密码短语加密的暴力破解、字典和彩虹表攻击。 +也称为“密码拉伸算法”。[密钥库](#keystore-file)格式使用该算法,通过反复散列密码短语,防范针对密码短语加密的暴力破解、字典和彩虹表攻击。 智能合约安全性 @@ -570,7 +574,7 @@ Gigawei 的缩写,[以太币](#ether)的一种计量单位,通常用于[燃 ### keccak-256 {#keccak-256} -以太坊协议使用的加密[哈希](#hash)函数。 Keccak-256 是从 [SHA](#sha)-3 规范演化而来。 +以太坊中使用的加密[哈希](#hash)函数。 Keccak-256 是从 [SHA](#sha)-3 标准演化而来。 @@ -586,19 +590,19 @@ Gigawei 的缩写,[以太币](#ether)的一种计量单位,通常用于[燃 ### LevelDB {#level-db} -开源的轻量级单用途硬盘键值对[程序库](#library),可以绑定到多个平台。 +实现为轻量级单用途[库](#library)的开源磁盘键值对存储库,可以绑定到多个平台。 -### 程序库 {#library} +### 库 {#library} -一种特殊类型的[合约](#smart-contract),没有可支付函数,没有回退函数,也没有数据存储器。 因此,它不能接收或持有以太币,也不能存储数据。 程序库可用作之前部署的代码,其他合约只能进行只读调用,以用于计算。 +一种特殊类型的[合约](#smart-contract),没有可支付函数,没有回退函数,也没有数据存储。 因此,它不能接收或持有以太币,也不能存储数据。 库可用作之前部署的代码,其他合约可以调用此代码以用于只读计算。 智能合约库 -### 轻量级客户端 {#lightweight-client} +### 轻量客户端 {#light-client} -一种以太坊客户端,不存储[区块链](#blockchain)的本地副本,也不验证区块和[交易](#transaction)。 它提供[钱包](#wallet)的功能,可以创建和广播交易。 +一种以太坊客户端,不存储[区块链](#blockchain)的本地副本,也不验证区块和[交易](#transaction)。 它提供[钱包](#wallet)的功能,并可以创建和广播交易。 @@ -608,7 +612,7 @@ Gigawei 的缩写,[以太币](#ether)的一种计量单位,通常用于[燃 ## M {#section-m} -### 主网 (Mainnet) {#mainnet} +### 主网 {#mainnet} "main network"(主网)的缩写,是主要的公共以太坊[区块链](#blockchain)。 它具有真正的以太币、真正的价值和真正的共识。 在讨论[二层网络](#layer-2)扩容解决方案时,主网也被称为一层网络。 (另请参见[测试网](#testnet)) @@ -618,11 +622,11 @@ Gigawei 的缩写,[以太币](#ether)的一种计量单位,通常用于[燃 ### 内存困难 {#memory-hard} -内存困难函数是当可用内存量略微减少时,速度或可行性急剧下降的过程, 是以太坊挖矿算法 [Ethash](#ethash) 的示例 id。 +内存困难函数是指当可用内存量略微减少时,速度或可行性便会急剧下降的进程。 以太坊挖矿算法 [Ethash](#ethash) 就是一个例子。 -### 默克尔前缀树 {#merkle-patricia-tree} +### 默克尔帕特里夏树 {#merkle-patricia-tree} -以太坊用于有效存储键值对的数据结构。 +以太坊用于高效存储键值对的数据结构。 ### 消息 {#message} @@ -630,7 +634,7 @@ Gigawei 的缩写,[以太币](#ether)的一种计量单位,通常用于[燃 ### 消息调用 {#message-call} -将[消息](#message)从一个帐户传递到另一个帐户的行为。 如果目标帐户与[以太坊虚拟机](#evm)代码相关联,虚拟机将从该对象的状态和要依据其执行动作的消息开始。 +将[消息](#message)从一个帐户传递到另一个帐户的行为。 如果目标帐户与[以太坊虚拟机](#evm)代码相关联,则将根据该对象的状态和要处理的消息启动虚拟机。 ### 大都市 {#metropolis} @@ -638,15 +642,15 @@ Gigawei 的缩写,[以太币](#ether)的一种计量单位,通常用于[燃 ### 挖矿 {#mining} -在以太坊区块链上验证交易和合同执行的过程,以换取开采每个区块的以太币奖励。 +在以太坊区块链上验证交易和合同执行的过程,以换取开采每个区块的以太币奖励。 这是以太坊在迁移到[权益证明](#pos)之前用来保障安全性的方法。 ### 矿池 {#mining-pool} -矿工共享处理能力并分配[区块奖励](#block-reward)的资源池。 +一个由[工作量证明](#pow)机制下的矿工组成的资源池,这些矿工共享他们的处理算力,并瓜分所获得的[区块奖励](#block-reward)。 ### 矿工 {#miner} -通过不断执行哈希算法,为新区块找到有效[工作量证明](#pow)的网络[节点](#node)(请参阅 [Ethash](#ethash))。 +通过不断执行哈希算法,为新区块找到有效[工作量证明](#pow)的网络[节点](#node)(参见 [Ethash](#ethash))。 矿工不再是以太坊的一部分,在以太坊迁移至[权益证明](#pos)后他们已被验证者所取代。 挖矿 @@ -654,7 +658,7 @@ Gigawei 的缩写,[以太币](#ether)的一种计量单位,通常用于[燃 ### 铸币 {#mint} -铸币是创建新代币并将其投入流通以供使用的过程。 这是一种去中心化机制,可以在没有中心机构参与的情况下创建新代币。 +铸币是创建新代币并将其投入流通以供使用的过程。 这是一种去中心化机制,可以在没有中央机构参与的情况下创建新代币。 @@ -662,7 +666,7 @@ Gigawei 的缩写,[以太币](#ether)的一种计量单位,通常用于[燃 ### 网络 {#network} -指以太坊网络,一种向每个以太坊节点(网络参与者)推广交易和区块的对等网络。 +指以太坊网络,一种向每个以太坊节点(网络参与者)传播交易和区块的对等网络。 网络 @@ -670,11 +674,11 @@ Gigawei 的缩写,[以太币](#ether)的一种计量单位,通常用于[燃 ### 网络哈希率 {#network-hashrate} -整个以太坊挖矿网络产生的总[哈希率](#hashrate)。 +整个以太坊挖矿网络产生的总[哈希率](#hashrate)。 在以太坊迁移至[权益证明](#pos)后,以太坊上的挖矿活动也已被停止。 ### 非同质化代币 (NFT) {#nft} -也叫“契约”,是 ERC-721 提案提出的代币标准。 非同质化代币既能跟踪也可以交易,每个代币都是独一无二的,不可互换,这与以太币和 [ERC-20 代币](#token-standard)不同。 非同质化代币能够代表数字或物理资产的所有权。 +也叫“契约”,是由 ERC-721 提案提出的代币标准。 非同质化代币既能跟踪也可以交易,但每个代币都是独一无二的,不可互换,这与以太币和 [ERC-20 代币](#token-standard)不同。 非同质化代币能够代表数字或物理资产的所有权。 非同质化代币 (NFT) @@ -693,7 +697,7 @@ Gigawei 的缩写,[以太币](#ether)的一种计量单位,通常用于[燃 ### 随机数 {#nonce} -在密码学中,随机数是指只能使用一次的值。 以太坊中有两类随机数:账户随机数,用来统计每个帐户的交易数,防止重放攻击;[工作量证明](#pow)随机数,即区块中用于满足[工作量证明](#pow)的随机值。 +在密码学中,是指只能使用一次的值。 帐户随机数是每个帐户中的交易计数器,用于防范重放攻击。 @@ -701,19 +705,19 @@ Gigawei 的缩写,[以太币](#ether)的一种计量单位,通常用于[燃 ### 叔块 {#ommer} -当一位[矿工](#miner)找到一个有效的[区块](#block)时,另一位矿工可能已经发布了一个存在竞争的区块,这个区块将首先添加到区块链顶端。 这个有效但已过时的区块可以被更新的区块归为*叔块*,可以领取部分区块奖励。 对于父区块的同级区块来说,“ommer”一词不分性别,因而为首选,但有时也被称为“uncle”(叔)。 +当工作量证明下的[矿工](#miner)找到一个合法的[区块](#block)时,其它矿工可能已经发布了一个竞争区块并首先添加到了区块链的末端。 这个有效但已过时的区块可以被更新的区块纳为*叔块*,并可以领取部分区块奖励。 对于父区块的同级区块来说,“ommer”一词不分性别,因而为首选,但有时也被称为“uncle”(叔)。 叔块仅在[工作量证明](pow)下的以太坊网络中有意义,在[权益证明](#pos)下的以太坊中不存在,因为后者在每个时隙中有且仅有一个区块提议者会被选中。 -### Optimistic Rollup {#optimistic-rollup} +### 乐观卷叠 {#optimistic-rollup} -使用 [“欺诈证明”](#rollups)的交易的 [“Rollup”](#fraud-proof),在使用[主网](#layer-2)(一层网络) 提供的安全性的同时,提供了更高的[二层网络](#mainnet)的交易吞吐量。 与[以太坊 Plasma 扩容解决方案](#plasma)(一种相似的二层网络解决方案)不同,乐观卷叠可以处理更复杂的交易类型 -- [以太坊虚拟机](#evm)中任何可能的交易。 与 [Zero-knowledge rollups](#zk-rollups) 相比,Optimistic Rollup 确实存在延迟问题,因为可以通过欺诈证明质疑交易。 +使用[欺诈证明](#rollups)的交易的[卷叠](#fraud-proof),在使用[主网](#layer-2)(一层网络)提供的安全性的同时,提供了更高的[二层网络](#mainnet)交易吞吐量。 与[以太坊 Plasma 扩容解决方案](#plasma)(一种相似的二层网络解决方案)不同,乐观卷叠可以处理更复杂的交易类型 -- [以太坊虚拟机](#evm)中任何可能的交易。 与[零知识卷叠](#zk-rollups)相比,乐观卷叠确实存在延迟问题,因为可以通过欺诈证明来质疑交易。 - Optimistic Rollup + 乐观卷叠 ### 预言机 {#oracle} -预言机是[区块链](#blockchain)与真实世界之间的桥梁。 预言机发挥链上[应用程序接口](#api)的作用,可以向其查询信息,也可在[智能合约](#smart-contract)中使用。 +预言机是[区块链](#blockchain)与真实世界之间的桥梁。 预言机起到链上[应用程序接口](#api)的作用,可以向其查询信息,也可在[智能合约](#smart-contract)中使用。 预言机 @@ -733,11 +737,11 @@ Gigawei 的缩写,[以太币](#ether)的一种计量单位,通常用于[燃 ### 对等网络 {#peer-to-peer-network} -一个由计算机([对等体](#peer))组成的网络,无需基于服务器的中心服务即可共同执行功能。 +一个由计算机([对等体](#peer))组成,无需基于服务器的中心服务即可共同执行功能的网络。 ### 以太坊 Plasma 扩容解决方案 {#plasma} -使用[欺诈证明](#fraud-proof)的链下扩容解决方案,例如[乐观卷叠](#optimistic-rollups)。 Plasma 仅限于简单的交易,例如基本令牌传输和交换。 +使用[欺诈证明](#fraud-proof)的链下扩容解决方案,例如[乐观卷叠](#optimistic-rollups)。 以太坊 Plasma 扩容解决方案仅限于简单交易,例如基本的代币转账和交换。 以太坊 Plasma 扩容解决方案 @@ -745,7 +749,7 @@ Gigawei 的缩写,[以太币](#ether)的一种计量单位,通常用于[燃 ### 私钥(密钥) {#private-key} -一个密码,可使以太坊用户通过生成数字签名来证明对某个帐户或合约的所有权(请参见[公钥](#public-key)、[地址](#address)、[椭圆曲线数字签名算法](#ecdsa))。 +一个密码,可使以太坊用户通过生成数字签名来证明对某个帐户或合约的所有权(参见[公钥](#public-key)、[地址](#address)、[椭圆曲线数字签名算法](#ecdsa))。 ### 私有链 {#private-chain} @@ -753,7 +757,7 @@ Gigawei 的缩写,[以太币](#ether)的一种计量单位,通常用于[燃 ### 权益证明 (PoS) {#pos} -加密货币区块链协议用以实现分布式[共识](#consensus)的方法。 权益证明要求用户证明自己拥有一定数量的加密货币(他们在网络中的“质押品”),以便能够参与交易的验证。 +加密货币区块链协议用以实现分布式[共识](#consensus)的方法。 权益证明要求用户证明自己拥有一定数量的加密货币(他们在网络中的“质押”),以便能够参与交易的验证。 权益证明 @@ -761,7 +765,7 @@ Gigawei 的缩写,[以太币](#ether)的一种计量单位,通常用于[燃 ### 工作量证明 (PoW) {#pow} -需要大量计算才能得出的数据(证明)。 在以太坊中,[矿工](#miner)必须找到符合整个网络[难度](#difficulty)目标的 [Ethash](#ethash) 算法数值解。 +需要大量计算才能得出的数据(证明)。 工作量证明 @@ -769,7 +773,7 @@ Gigawei 的缩写,[以太币](#ether)的一种计量单位,通常用于[燃 ### 公钥 {#public-key} -通过[私钥](#private-key)的单向函数派生的数字,可以公开共享。对于使用私钥签署的数字签名,任何人都可以用对应的公钥来验证该数字签名。 +通过[私钥](#private-key)的单向函数派生的数字。公钥可以公开共享,并被任何人用于验证使用相应私钥签署的数字签名。 @@ -777,7 +781,7 @@ Gigawei 的缩写,[以太币](#ether)的一种计量单位,通常用于[燃 ### 收据 {#receipt} -收据是以太坊客户端返回的数据,用来表示特定[交易](#transaction)的结果,数据包含交易[哈希值](#hash)、交易的[区块](#block)号、实际[燃料](#gas)消耗量;如果部署了[智能合约](#smart-contract),则还会返回该合约的[地址](#address)。 +收据是以太坊客户端返回的数据,用来表示特定[交易](#transaction)的结果,其中包含交易的[哈希](#hash)、交易的[区块](#block)号、实际[燃料](#gas)消耗量;如果部署了[智能合约](#smart-contract),则还会返回该合约的[地址](#address)。 ### 重入攻击 {#re-entrancy-attack} @@ -797,7 +801,7 @@ Gigawei 的缩写,[以太币](#ether)的一种计量单位,通常用于[燃 ### 卷叠 {#rollups} -一种[二层网络](#layer-2)扩容解决方案,将多笔交易分批提交到[以太坊主链](#mainnet)的单笔交易中。 这样可以降低[燃料](#gas)成本,增加[交易](#transaction)吞吐量。 部分乐观卷叠和零知识卷叠使用不同的安全方法来提供扩容能力。 +一种[二层网络](#layer-2)扩容解决方案,将多笔交易分批提交到[以太坊主链](#mainnet)的单笔交易中。 这样可以降低[燃料](#gas)成本,增加[交易](#transaction)吞吐量。 部分乐观卷叠和零知识卷叠使用不同的安全方法来提供这些扩容效益。 卷叠 @@ -813,11 +817,11 @@ Gigawei 的缩写,[以太币](#ether)的一种计量单位,通常用于[燃 ### 安全哈希算法 (SHA) {#sha} -国家标准和技术研究所 (NIST) 推出的加密哈希函数库。 +由美国国家标准和技术研究所 (NIST) 推出的系列加密哈希函数。 ### 宁静 {#serenity} -指启动了一组扩容和可持续性升级的以太坊开发阶段,以前称为“以太坊 2.0”或“以太坊 2”。 +启动了一组扩容和可持续性升级的以太坊开发阶段,以前称为“以太坊 2.0”或“以太坊 2”。 以太坊升级 @@ -829,7 +833,7 @@ Gigawei 的缩写,[以太币](#ether)的一种计量单位,通常用于[燃 ### 分片/分片链 {#shard} -由[信标链](#beacon-chain)协调并由[验证者](#validator)保护的[权益证明](#pos)链。 在分片链升级中,会将 64 个分片链加入到网络中。 分片链将为[二层网络](#layer-2)解决方案提供额外的数据,例如[乐观卷叠](#optimistic-rollups)和[零知识卷叠](#zk-rollups),从而增加交易吞吐量。 +分片链是整个区块链中验证者的子集可以负责的离散部分。 这将为以太坊提供更高的交易吞吐量,并提高[二层网络](#layer-2)解决方案(如[乐观卷叠](#optimistic-rollups)和[零知识卷叠](#zk-rollups))的数据可用性。 分片链 @@ -837,13 +841,13 @@ Gigawei 的缩写,[以太币](#ether)的一种计量单位,通常用于[燃 ### 侧链 {#sidechain} -一种扩容解决方案,使用具有不同[共识机制](#consensus-rules)(通常更快)的单独链。 要将这些侧链连接到[主网](#mainnet),则需要用到桥。 [卷叠](#rollups)也使用侧链,但是它们可以与[主网](#mainnet)协作运行。 +一种扩容解决方案,使用具有不同[共识机制](#consensus-rules)(通常速度更快)的单独链。 要将这些侧链连接到[主网](#mainnet),需要用到链桥。 [卷叠](#rollups)也使用侧链,但是它们可以与[主网](#mainnet)协作运行。 侧链 -### 签名 {#signing} +### 签署 {#signing} 以加密方式证明交易已获得特定私钥持有者的批准。 @@ -851,12 +855,16 @@ Gigawei 的缩写,[以太币](#ether)的一种计量单位,通常用于[燃 一种计算机编程术语,描述只能存在一个实例的对象。 +### 惩罚者 {#slasher} + +惩罚者是一个实体,它会扫描认证以搜索可惩罚的罪行。 惩罚被广播到网络,下一个区块提议者将证明添加到区块中。 然后,区块提议者会因惩罚恶意验证者而获得奖励。 + ### 时隙 {#slot} -一个时间段(12 秒),在这个时间段内,[验证者](#validator)可以在[权益证明](#pos)系统中提出一个新的[信标链](#beacon-chain)和[分片](#shard)链区块。 时隙有可能为空, 32 个时隙构成一个[时段](#epoch)。 +[权益证明](#pos)系统中的[验证者](#validator)可以提议新区块的时间段(12 秒)。 时隙有可能为空, 32 个时隙构成一个[时段](#epoch)。 - 权益证明 (PoS) + 权益证明 ### 智能合约 {#smart-contract} @@ -864,7 +872,7 @@ Gigawei 的缩写,[以太币](#ether)的一种计量单位,通常用于[燃 在以太坊计算基础框架上执行的程序。 - 智能合约介绍 + 智能合约简介 ### 简洁的非交互式知识论证 (SNARK) {#snark} @@ -933,7 +941,7 @@ STARK 是“scalable transparent argument of knowledge”(可扩展的透明 ### 绝对多数 {#supermajority} -绝对多数是指超过[信标链](#beacon-chain)上质押以太币总数的 2/3 (66%)。 要在信标链上[最终确定](#finality)区块,需要绝对多数投票。 +绝对多数是指超过 2/3 (66%) 的总质押以太币数量以保护以太坊的安全。 要在信标链上[最终确定](#finality)区块,需要绝对多数投票。 ### 同步 {#syncing} @@ -941,7 +949,7 @@ STARK 是“scalable transparent argument of knowledge”(可扩展的透明 ### 同步委员会 {#sync-committee} -同步委员会是[信标链](#beacon-chain)上随机选择的一组[验证者](#validator),约每 27 小时刷新一次。 同步委员会的目的是将他们的签名添加到有效的区块头中。 同步委员会允许[轻量级客户端](#lightweight-client)跟踪区块链的链头,无需访问整个验证者集。 +同步委员会是随机选择的一组[验证者](#validator),每约 27 小时刷新一次。 同步委员会的目的是将他们的签名添加到有效的区块头中。 同步委员会允许[轻量客户端](#light-client)跟踪区块链头,而无需访问整个验证者集。 ### Szabo {#szabo} @@ -957,9 +965,9 @@ STARK 是“scalable transparent argument of knowledge”(可扩展的透明 ### 终端总难度 (TTD) {#terminal-total-difficulty} -总难度是区块链中某个特定点之前所有区块的 Ethash 挖矿难度之和。 终端总难度是总难度的特定值,将用于触发执行客户端关闭他们的挖矿并阻止信息传播功能,以便网络可以过渡到权益证明。 +总难度是区块链中某个特定点之前所有区块的 Ethash 挖矿难度之和。 终端总难度是一个特定的总难度值,它被用来触发执行客户端关闭其挖矿和区块广播功能,使网络能够过渡到权益证明。 -### 测试网 (testnet) {#testnet} +### 测试网 {#testnet} “测试网络”的简称,用于模拟以太坊主网行为的网络(请参阅[主网](#mainnet))。 @@ -989,13 +997,13 @@ STARK 是“scalable transparent argument of knowledge”(可扩展的透明 ### 交易费 {#transaction-fee} -每次使用以太坊网络时需要支付的费用。 包括从你的[钱包](#wallet)发送资金或与[去中心化应用程序](#dapp)交互,例如兑换代币或购买收藏品等。 交易费可以看作服务费, 具体取决于网络的使用率。 这是因为[矿工](#miner),即负责处理交易的人,可能会优先考虑费用较高的交易——因此拥堵迫使价格上涨。 +每次使用以太坊网络时需要支付的费用。 示例包括从你的[钱包](#wallet)或[去中心化应用程序](#dapp)交互中发送资金,例如交换代币或购买收藏品。 交易费可以看作服务费, 具体取决于网络的使用率。 这是因为[验证者](#validator),负责处理你的交易的人,可能会优先考虑费用较高的交易 — 因此拥堵会迫使价格上涨。 从技术层面来讲,交易费用与相应交易需要的[燃料](#gas)消耗量有关。 降低交易费用目前非常受关注。 请参阅[二层网络](#layer-2) -### 无需信任 {#trustlessness} +### 免信任 {#trustlessness} 所涉任何关联方无需信任第三方即可进行交易调解的网络能力 @@ -1012,23 +1020,33 @@ STARK 是“scalable transparent argument of knowledge”(可扩展的透明 [权益证明](#pos)系统中的[节点](#node),负责存储数据、处理交易并且在区块链中添加新区块。 要激活验证者软件,需要[质押](#staking) 32 个以太币。 - 权益证明 (PoS) + 权益证明 以太坊中的质押 +### 验证者的生命周期 {#validator-lifecycle} + +验证者可以处于的状态序列。 这包括: + +- 已存款:验证者已将至少 32 个以太币存入[存款合约](#deposit-contract)中 +- 待处理:验证者正在激活队列中等待已存在的验证者投票决定其能否进入网络 +- 活跃:当前正在证明和提议区块 +- 惩罚中:验证者存在不当行为并正在被惩罚 +- 退出中:验证者被标记为退出网络,无论他们是自愿的还是被强制驱逐的 + ### 有效性证明 {#validity-proof} -特定[二层网络](#layer-2)解决方案的安全模型,用以提高速度,将交易[卷叠](/#rollups)为交易批,并作为单笔交易提交到以太坊。 交易计算在链下进行,然后提交给主链,并附带有效性证明。 这种方法提升了交易量,同时保证了安全性。 部分[卷叠](#rollups)使用[欺诈证明](#fraud-proof)。 +特定[二层网络](#layer-2)解决方案的安全模型。为了加快交易速度,交易成批[卷叠](/#rollups),在单笔交易中提交给以太坊。 交易计算在链下进行,然后提交给主链,并附带有效性证明。 这种方法在保证安全性的同时可能增加交易量。 部分[卷叠](#rollups)使用[欺诈证明](#fraud-proof)。 零知识卷叠 -### validium {#validium} +### Validium {#validium} -使用[有效性证明](#validity-proof)来提高交易吞吐量的链下解决方案。 与[零知识卷叠](#zk-rollup)不同,Validium 的数据没有存储在第一层[主网](#mainnet)中。 +使用[有效性证明](#validity-proof)来提高交易吞吐量的链下解决方案。 与[零知识卷叠](#zk-rollup)不同,Validium 的数据没有存储在一层网络[主网](#mainnet)中。 Validium @@ -1036,7 +1054,7 @@ STARK 是“scalable transparent argument of knowledge”(可扩展的透明 ### Vyper {#vyper} -高级编程语言,语法与 Python 类似。 但 Vyper 更接近纯函数式语言, 其创造者为 Vitalik Buterin。 +一种高级编程语言,语法与 Python 类似。 但 Vyper 更接近纯函数式语言, 其创造者为 Vitalik Buterin。 Vyper @@ -1048,7 +1066,7 @@ STARK 是“scalable transparent argument of knowledge”(可扩展的透明 ### 钱包 {#wallet} -持有[私钥](#private-key)的软件。 钱包用来访问和管理以太坊[帐户](#account),并与[智能合约](#smart-contract)交互。 密钥无需存储在钱包中,为了提高安全性,可以离线存储(如,存储卡或纸张)。 虽然称其为“钱包”,但它并不存储货币或代币。 +持有[私钥](#private-key)的软件。 钱包用来访问和管理以太坊[帐户](#account),并与[智能合约](#smart-contract)交互。 密钥无需存储在钱包中,为了提高安全性,可以从离线存储(如,存储卡或纸张)检索。 虽然称其为“钱包”,但它并不存储货币或代币。 以太坊钱包 @@ -1056,10 +1074,10 @@ STARK 是“scalable transparent argument of knowledge”(可扩展的透明 ### Web3 {#web3} -万维网的第三个版本。 Web3 最初由 Gavin Wood 博士提出,代表了网页应用程序的新愿景和关注点——从集中拥有和管理的应用程序到基于去中心化协议的应用程序(请参见[去中心化应用程序](#dapp))。 +万维网的第三个版本。 Web3 最初由 Gavin Wood 博士提出,代表了网页应用程序的新愿景和关注点 — 从集中拥有和管理的应用程序转为基于去中心化协议的应用程序(参见[去中心化应用程序](#dapp))。 - Web2 对比 Web3 + Web2 与 Web3 的对比 ### wei {#wei} @@ -1084,7 +1102,7 @@ STARK 是“scalable transparent argument of knowledge”(可扩展的透明 ### 零知识卷叠 {#zk-rollup} -使用[有效性证明](#validity-proof)的交易[卷叠](#rollups),在使用[主网](#mainnet)(第一层)安全性的同时,提高[二层网络](#layer-2)的交易吞吐量。 虽然无法处理复杂的交易类型,如[乐观卷叠](#optimistic-rollups),但没有延迟问题,因为提交交易时就可以证明其有效性。 +使用[有效性证明](#validity-proof)的交易[卷叠](#rollups),在使用[主网](#mainnet)(一层网络)安全性的同时,提高了[二层网络](#layer-2)的交易吞吐量。 虽然无法像[乐观卷叠](#optimistic-rollups)那样处理复杂的交易类型,但没有延迟问题,因为交易在提交时就可以证明其有效性。 零知识卷叠 diff --git a/src/content/translations/zh/history/index.md b/src/content/translations/zh/history/index.md index 7bf4f755001..dfd842f268c 100644 --- a/src/content/translations/zh/history/index.md +++ b/src/content/translations/zh/history/index.md @@ -27,7 +27,7 @@ sidebarDepth: 1 ### 灰色冰川 {#gray-glacier} -世界标准时间 2020 年 6 月 30 日上午 10 点 54 分 04 秒
区块编号:15,050,000
以太币价格:1,069 美元
网站时光机上的 ethereum.org +世界标准时间 2022 年 6 月 30 日上午 10 点 54 分 04 秒
区块编号:15,050,000
以太币价格:1,069 美元
网站时光机上的 ethereum.org #### 概览 {#gray-glacier-summary} @@ -47,7 +47,7 @@ sidebarDepth: 1 ### 箭形冰川 {#arrow-glacier} -世界标准时间 2021 年 12 月 9 日晚上 7 点 55 分 23 秒
区块编号:13,773,000
以太币价格:4,111 美元
网站时光机上的 ethereum.org +世界标准时间 2021 年 12 月 9 日晚上 7 点 55 分 23 秒
区块编号:13,773,000
以太币价格:4,111 美元
网站时光机上的 ethereum.org #### 概览 {#arrow-glacier-summary} @@ -66,7 +66,7 @@ sidebarDepth: 1 ### 天鹰座 {#altair} -世界标准时间 2021 年 10 月 27 日上午 10 点 56 分 23 秒
时段编号:74,240
以太币价格:4,024 美元
网站时光机上的 ethereum.org +世界标准时间 2021 年 10 月 27 日上午 10 点 56 分 23 秒
时段编号:74,240
以太币价格:4,024 美元
网站时光机上的 ethereum.org #### 概览 {#altair-summary} @@ -74,7 +74,7 @@ sidebarDepth: 1 - [阅读天鹰座升级说明](https://github.com/ethereum/consensus-specs/tree/dev/specs/altair) -#### 有趣的事实! {#altair-fun-fact} +#### 有趣的事实! {#altair-fun-fact} 天鹰座升级是第一个有确切发布时间的主网络升级。 之前的每一次升级均基于一个已经在工作量证明链上申报过的区块编号,它们的区块时间各不相同。 信标链不需要解析工作量证明,而是作用于一个基于时间、由 32 个 12 秒“时隙”组成的时段系统。在这个系统上,验证者可以提议区块。 这就是为什么我们能在达到时段 74,240 时立即知晓,然后即刻推出天鹰座升级! @@ -84,13 +84,13 @@ sidebarDepth: 1 ### 伦敦升级 {#london} - 世界标准时间 2021 年 8 月 5 日下午 12 点 33 分 42 秒
区块编号:12,965,000
以太币价格:2,621 美元
网站时光机上的 ethereum.org + 世界标准时间 2021 年 8 月 5 日下午 12 点 33 分 42 秒
区块编号:12,965,000
以太币价格:2,621 美元
网站时光机上的 ethereum.org #### 概览 {#london-summary} 伦敦升级引入了 [EIP-1559](https://eips.ethereum.org/EIPS/eip-1559),对交易费市场进行了改革,同时还对燃料费用的退款处理方式和[冰河世纪](/glossary/#ice-age)日程进行了修改。 -- [您是去中心化应用开发者吗? 请务必升级您的库和工具包。](https://github.com/ethereum/execution-specs/blob/master/network-upgrades/london-ecosystem-readiness.md) +- [你是去中心化应用程序的开发者吗? 请务必升级您的库和工具包。](https://github.com/ethereum/execution-specs/blob/master/network-upgrades/london-ecosystem-readiness.md) - [请阅读以太坊基金会公告](https://blog.ethereum.org/2021/07/15/london-mainnet-announcement/) - [请阅读以太坊牧猫人组织的解释说明](https://medium.com/ethereum-cat-herders/london-upgrade-overview-8eccb0041b41) @@ -108,7 +108,7 @@ sidebarDepth: 1 ### 柏林升级 {#berlin} - 世界标准时间 2021 年 4 月 15 日上午 10 点 07 分 03 秒
区块编号:12,244,000
以太币价格:2,454 美元
网站时光机上的 ethereum.org + 世界标准时间 2021 年 4 月 15 日上午 10 点 07 分 03 秒
区块编号:12,244,000
以太币价格:2,454 美元
网站时光机上的 ethereum.org #### 概览 {#berlin-summary} @@ -132,7 +132,7 @@ sidebarDepth: 1 ### 信标链创世块 {#beacon-chain-genesis} - 世界标准时间 2020 年 12 月 1 日下午 12 点 00 分 35 秒
信标链区块编号:1
以太币价格:586.23 美元
网站时光机上的 ethereum.org + 世界标准时间 2020 年 12 月 1 日下午 12 点 00 分 35 秒
信标链区块编号:1
以太币价格:586.23 美元
网站时光机上的 ethereum.org #### 概览 {#beacon-chain-genesis-summary} @@ -148,7 +148,7 @@ sidebarDepth: 1 ### 质押部署的存款合约 {#staking-deposit-contract} - 世界标准时间 2020 年 10 月 14 日上午 09 点 22 分 52 秒
区块编号:11,052,984
以太币价格:379.04 美元
网站时光机上的 ethereum.org + 世界标准时间 2020 年 10 月 14 日上午 09 点 22 分 52 秒
区块编号:11,052,984
以太币价格:379.04 美元
网站时光机上的 ethereum.org #### 概览 {#deposit-contract-summary} @@ -164,7 +164,7 @@ sidebarDepth: 1 ### 缪尔冰川 {#muir-glacier} - 世界标准时间 2020 年 1 月 2 日上午 08 点 30 分 49 秒
区块编号:9,200,000
以太币价格:127.18 美元
网站时光机上的 ethereum.org + 世界标准时间 2020 年 1 月 2 日上午 08 点 30 分 49 秒
区块编号:9,200,000
以太币价格:127.18 美元
网站时光机上的 ethereum.org #### 概览 {#muir-glacier-summary} @@ -185,7 +185,7 @@ sidebarDepth: 1 ### 伊斯坦布尔 {#istanbul} - 世界标准时间 2019 年 12 月 8 日中午 12 点 25 分 09 秒
区块编号:9,069,000
以太币价格:151.06 美元
网站时光机上的 ethereum.org + 世界标准时间 2019 年 12 月 8 日中午 12 点 25 分 09 秒
区块编号:9,069,000
以太币价格:151.06 美元
网站时光机上的 ethereum.org #### 概览 {#istanbul-summary} @@ -214,7 +214,7 @@ sidebarDepth: 1 ### 君士坦丁堡 {#constantinople} - 世界标准时间 2019 年 2 月 28 日晚上 07 点 52 分 04 秒
区块编号:7,280,000
以太币价格:136.29 美元
网站时光机上的 ethereum.org + 世界标准时间 2019 年 2 月 28 日晚上 07 点 52 分 04 秒
区块编号:7,280,000
以太币价格:136.29 美元
网站时光机上的 ethereum.org #### 概览 {#constantinople-summary} @@ -241,7 +241,7 @@ sidebarDepth: 1 ### 拜占庭 {#byzantium} - 世界标准时间 2017 年 10 月 16 日早上 05 点 22 分 11 秒
区块编号: 4,70,000
以太币价格:334.3 美元
网站时光机上的 ethereum.org + 世界标准时间 2017 年 10 月 16 日早上 05 点 22 分 11 秒
区块编号: 4,370,000
以太币价格:334.3 美元
网站时光机上的 ethereum.org #### 概览 {#byzantium-summary} @@ -274,7 +274,7 @@ sidebarDepth: 1 ### 伪龙 {#spurious-dragon} - 世界标准时间 2016 年 11 月 22 日早上 04 点 15 分 44 秒
区块编号:2,675,000
以太币价格:9.84 美元
网站时光机上的 ethereum.org + 世界标准时间 2016 年 11 月 22 日早上 04 点 15 分 44 秒
区块编号:2,675,000
以太币价格:9.84 美元
网站时光机上的 ethereum.org #### 概览 {#spurious-dragon-summary} @@ -299,7 +299,7 @@ sidebarDepth: 1 ### 橘子口哨 {#tangerine-whistle} - 世界标准时间 2016 年 10 月 18 日下午 01 点 19 分 31 秒
区块编号:2,463,000
以太币价格:12.50 美元
网站时光机上的 ethereum.org + 世界标准时间 2016 年 10 月 18 日下午 01 点 19 分 31 秒
区块编号:2,463,000
以太币价格:12.50 美元
网站时光机上的 ethereum.org #### 概览 {#tangerine-whistle-summary} @@ -320,7 +320,7 @@ sidebarDepth: 1 ### DAO 分叉 {#dao-fork} - 世界标准时间 2016 年 7 月 20 日下午 01 点 20 分 40 秒
区块编号:1,920,000
以太币价格:12.54 美元
网站时光机上的 ethereum.org + 世界标准时间 2016 年 7 月 20 日下午 01 点 20 分 40 秒
区块编号:1,920,000
以太币价格:12.54 美元
网站时光机上的 ethereum.org #### 概览 {#dao-fork-summary} @@ -336,7 +336,7 @@ DAO 分叉是为了响应 [2016 DAO 攻击](https://www.coindesk.com/markets/201 ### 家园 {#homestead} - 世界标准时间 2016 年 3 月 14 日下午 06 点 49 分 53 秒
区块编号:1,150,000
以太币价格:12.50 美元
网站时光机上的 ethereum.org + 世界标准时间 2016 年 3 月 14 日下午 06 点 49 分 53 秒
区块编号:1,150,000
以太币价格:12.50 美元
网站时光机上的 ethereum.org #### 概览 {#homestead-summary} @@ -358,7 +358,7 @@ DAO 分叉是为了响应 [2016 DAO 攻击](https://www.coindesk.com/markets/201 ### 边境解冻 {#frontier-thawing} - 世界标准时间 2015 年 9 月 7 日晚上 09 点 33 分 09 秒
区块编号:200,000
以太币价格:1.24 美元
网站时光机上的 ethereum.org + 世界标准时间 2015 年 9 月 7 日晚上 09 点 33 分 09 秒
区块编号:200,000
以太币价格:1.24 美元
网站时光机上的 ethereum.org #### 概览 {#frontier-thawing-summary} @@ -371,7 +371,7 @@ DAO 分叉是为了响应 [2016 DAO 攻击](https://www.coindesk.com/markets/201 ### 边境 {#frontier} - 世界标准时间 2015 年 7 月 30 日下午 03 点 26 分 13 秒
区块编号:0
以太币价格:不适用
网站时光机上的 ethereum.org + 世界标准时间 2015 年 7 月 30 日下午 03 点 26 分 13 秒
区块编号:0
以太币价格:不适用
网站时光机上的 ethereum.org #### 概览 {#frontier-summary} @@ -385,7 +385,7 @@ DAO 分叉是为了响应 [2016 DAO 攻击](https://www.coindesk.com/markets/201 ### 公开募资 {#ether-sale} - 2014 年 7 月 22 日 - 9 月 2 日
网站时光机上的 ethereum.org + 2014 年 7 月 22 日 - 9 月 2 日
网站时光机上的 ethereum.org 以太币的预售期为 42 天, 可以使用比特币进行购买。 @@ -395,7 +395,7 @@ DAO 分叉是为了响应 [2016 DAO 攻击](https://www.coindesk.com/markets/201 ### 黄皮书发布 {#yellowpaper} - 2014 年 4 月 1 日
网络时光机上的 ethereum.org + 2014 年 4 月 1 日
网络时光机上的 ethereum.org Gavin Wood 博士撰写的黄皮书,关于以太坊协议的技术定义。 @@ -407,7 +407,7 @@ Gavin Wood 博士撰写的黄皮书,关于以太坊协议的技术定义。 ### 白皮书发布 {#whitepaper} - 2013 年 11 月 27 日
网站时光机上的 ethereum.org + 2013 年 11 月 27 日
网站时光机上的 ethereum.org 以太坊项目在 2015 年启动。但早在 2013 年,以太坊的创始人 Vitalik Buterin 就发表了这一介绍性文章。 diff --git a/src/content/upgrades/merge/index.md b/src/content/upgrades/merge/index.md index c619a207531..3bb7be15750 100644 --- a/src/content/upgrades/merge/index.md +++ b/src/content/upgrades/merge/index.md @@ -221,3 +221,5 @@ Plans for sharding are rapidly evolving, but given the rise and success of layer ## Further reading {#further-reading} + + diff --git a/src/content/upgrades/merge/issuance/index.md b/src/content/upgrades/merge/issuance/index.md index 1ac97710ef8..2fc868fa793 100644 --- a/src/content/upgrades/merge/issuance/index.md +++ b/src/content/upgrades/merge/issuance/index.md @@ -1,10 +1,14 @@ --- -title: How The Merge impacts ETH supply -description: Breakdown on how The Merge will impact ETH supply +title: How The Merge impacted ETH supply +description: Breakdown on how The Merge impacted ETH supply lang: en --- -# How The Merge impacts ETH supply {#how-the-merge-impacts-ETH-supply} +# How The Merge impacted ETH supply {#how-the-merge-impacts-ETH-supply} + +The Merge represented the Ethereum networks transition from proof-of-work to proof-of-stake which occurred in September 2022. The way ETH is issued underwent changes at time of that transition. Previously, new ETH was issued from two sources: the execution layer (i.e. Mainnet) and the consensus layer (i.e. Beacon Chain). Since The Merge, issuance on the execution layer is now zero. Let's break this down. + +## Components of ETH issuance {#components-of-eth-issuance} We can break the supply of ETH into two primary forces: issuance, and burn. @@ -14,88 +18,114 @@ The **issuance** of ETH is the process of creating ETH that did not previously e emoji=":chart_decreasing:" title="ETH issuance tldr"> -- Mining rewards ~13,000 ETH/day pre-merge -- Staking rewards ~1,600 ETH/day pre-merge -- **After The Merge, only the ~1,600 ETH per day will remain, dropping total new ETH issuance by ~90%** -- The burn: At an average gas price of at least 16 gwei, at least 1,600 ETH is burned every day, which effectively brings net ETH inflation to zero or less post-merge. +- Before transitioning to proof-of-stake, miners were issued approximately 13,000 ETH/day +- Stakers are issued approximately 1,700 ETH/day, based on about 14 million total ETH staked +- The exact staking issuance fluctuates based on the total amount of ETH staked +- **Since The Merge, only the ~1,700 ETH/day remains, dropping total new ETH issuance by ~88%** +- The burn: This fluctuate according to network demand. _If_ an average gas price of at least 17 gwei is observed for a given day, this effectively offsets the ~1,700 ETH that is issued to validators and brings net ETH inflation to zero or less for that day. -How ETH gets issued will change at the time of The Merge. Currently, new ETH is issued from two sources: the execution layer (i.e. Mainnet) and the consensus layer (i.e. Beacon Chain). After The Merge, issuance from the execution layer will go to zero. Let's break this down. - -[More on The Merge](/upgrades/merge/) - -## Pre-merge {#pre-merge} +## Pre-merge (historical) {#pre-merge} ### Execution layer issuance {#el-issuance-pre-merge} -Under proof-of-work, miners only interact with the execution layer and are rewarded with block rewards if they are the first miner to solve the next block. Since the [Constantinople upgrade](/history/#constantinople) in 2019 this reward has been 2 ETH per block. Miners are also rewarded for publishing [ommer](/glossary/#ommer) blocks, which are valid blocks that don't end up in the longest/canonical chain. These rewards max out at 1.75 ETH per ommer, and are _in addition to_ the reward issued from the canonical block. Mining is an economically intensive activity, requiring high levels of ETH issuance to sustain. +Under proof-of-work, miners only interacted with the execution layer and were rewarded with block rewards if they were the first miner to solve the next block. Since the [Constantinople upgrade](/history/#constantinople) in 2019 this reward had been 2 ETH per block. Miners were also rewarded for publishing [ommer](/glossary/#ommer) blocks, which were valid blocks that didn't end up in the longest/canonical chain. These rewards maxed out at 1.75 ETH per ommer, and were _in addition to_ the reward issued from the canonical block. The process of mining was an economically intensive activity, which historically required high levels of ETH issuance to sustain. ### Consensus layer issuance {#cl-issuance-pre-merge} -The [Beacon Chain](/history/#beacon-chain-genesis) went live in 2020. Instead of miners, it is secured by validators using proof-of-stake. This chain was bootstrapped by Ethereum users depositing ETH one-way into a smart contract on Mainnet, which the Beacon Chain listens to, crediting the user with an equal amount on the new chain. Until The Merge happens, the Beacon Chain's validators are not processing transactions and are essentially coming to consensus on the state of the validator pool itself. +The [Beacon Chain](/history/#beacon-chain-genesis) went live in 2020. Instead of miners, it is secured by validators using proof-of-stake. This chain was bootstrapped by Ethereum users depositing ETH one-way into a smart contract on Mainnet (the execution layer), which the Beacon Chain listens to, crediting the user with an equal amount of ETH on the new chain. Until The Merge happened, the Beacon Chain's validators were not processing transactions and were essentially coming to consensus on the state of the validator pool itself. -Validators on the Beacon Chain are rewarded with ETH for attesting to the state of the chain and proposing blocks. Rewards (or penalties) are calculated and distributed at each epoch (every 6.4 minutes) based on validator performance. The validator rewards are **significantly** less than the miner rewards issued on proof-of-work (2 ETH every ~13.5 seconds), as operating a validating node is not an economically intense activity and thus does not require or warrant as high a reward. +Validators on the Beacon Chain are rewarded with ETH for attesting to the state of the chain and proposing blocks. Rewards (or penalties) are calculated and distributed at each epoch (every 6.4 minutes) based on validator performance. Validator rewards are **significantly** less than the mining rewards that were previously issued under proof-of-work (2 ETH every ~13.5 seconds), as operating a validating node is not an economically intense activity and thus does not require or warrant as high a reward. ### Pre-merge issuance breakdown {#pre-merge-issuance-breakdown} -Total ETH supply: **~119,300,000 ETH** (as of Q2 2022) + + +Total ETH supply: **~120,520,000 ETH** (at time of The Merge in September 2022) **Execution layer issuance:** -- Estimating at 2.08 ETH per 13.3 seconds\*: **~4,930,000** ETH issued in a year -- Currently inflating at **~4.13%** (4.93M per year / 119.3M total) +- Was estimated at 2.08 ETH per 13.3 seconds\*: **~4,930,000** ETH issued in a year +- Resulted in an inflation rate of **approximately 4.09%** (4.93M per year / 120.5M total) - \*This includes the 2 ETH per canonical block, plus an average of 0.08 ETH over time from ommer blocks. Also uses 13.3 seconds, the baseline block time target without any influence from a [difficulty bomb](/glossary/#difficulty-bomb). ([See source](https://bitinfocharts.com/ethereum/)) **Consensus layer issuance:** -- Using 13,000,000 total ETH staked, the rate of ETH issuance is ~1600 ETH/day ([See source](https://ultrasound.money/)) -- Results in **~584,000** ETH issued in a year -- Currently inflating at **~0.49%** (584K per year / 119.3M total) +- Using 14,000,000 total ETH staked, the rate of ETH issuance is approximately 1700 ETH/day ([See source](https://ultrasound.money/)) +- Results in **~620,500** ETH issued in a year +- Resulted in inflation rate of **approximately 0.52%** (620.5K per year / 119.3M total) -Total annual issuance rate: ~4.62% (4.13% + 0.49%)

-~89.4% of the issuance is going to miners on the execution layer (4.13 / 4.62 * 100)

-~10.6% is being issued to stakers on the consensus layer (0.49 / 4.62 * 100) +Total annualized issuance rate (pre-merge): ~4.61% (4.09% + 0.52%)

+~88.7% of the issuance was going to miners on the execution layer (4.09 / 4.61 * 100)

+~11.3% was being issued to stakers on the consensus layer (0.52 / 4.61 * 100)
-## Post-merge {#post-merge} +## Post-merge (present day) {#post-merge} ### Execution layer issuance {#el-issuance-post-merge} -Execution layer issuance after The Merge will be zero. Proof-of-work will no longer be valid under the rules of consensus. All execution layer activity will be included in "beacon blocks", which are published and attested to by proof-of-stake validators. +Execution layer issuance since The Merge is zero. Proof-of-work is no longer a valid means of block production under the upgraded rules of consensus. All execution layer activity is packaged into "beacon blocks", which are published and attested to by proof-of-stake validators. Rewards for attesting-to and publishing beacon blocks are accounted for separately on the consensus layer. ### Consensus layer issuance {#cl-issuance-post-merge} -Consensus layer issuance will continue as before The Merge, with small rewards for validators who attest to and propose blocks. Validator rewards will continue to accrue to _validator balances_ that are managed within the consensus layer. These are separate Ethereum accounts to the accounts we're used to on Mainnet, and until the Shanghai upgrade funds from validator accounts will not be withdrawable/transferrable. This means that although new ETH is still being issued, 100% of it will be locked from the market until this upgrade occurs. When the Shanghai upgrade is rolled out, this ETH will become available. +Consensus layer issuance continues today as it did prior to The Merge, with small rewards for validators who attest to and propose blocks. Validator rewards continue to accrue to _validator balances_ that are managed within the consensus layer. These are separate Ethereum accounts to the accounts we're used to on Mainnet, and until the upcoming Shanghai upgrade funds from validator accounts will not be withdrawable/transferrable. This means that although new ETH is still being issued, 100% remains locked from the market until this upgrade occurs. When the Shanghai upgrade is rolled out, this ETH will become available. -When validator withdrawals are enabled, stakers will be incentivized to remove their _earnings/rewards (balance over 32 ETH)_ as these funds are otherwise not contributing to their stake weight (which maxes as 32). +When validator withdrawals are enabled, stakers will be incentivized to remove their _earnings/rewards (balance over 32 ETH)_ as these funds are otherwise not contributing to their stake weight (which maxes at 32). -Stakers may also choose to exit and withdraw their entire validator balance. To ensure Ethereum is stable, the number of validators leaving simultaneously is capped. Only six validators may exit in a given epoch (6.4 minute period) depending on the total ETH staked at the time. This decreases to as low as four as more validators withdraw to intentionally prevent large destabilizing amounts of staked ETH from leaving at once. +After withdraw functionality is enabled, stakers may also choose to exit and withdraw their entire validator balance. To ensure Ethereum is stable, the number of validators leaving simultaneously is capped. Only six validators may exit in a given epoch (6.4 minute period) depending on the total ETH staked at the time. This decreases to as low as four as more validators withdraw to intentionally prevent large destabilizing amounts of staked ETH from leaving at once. ### Post-merge inflation breakdown {#post-merge-inflation-breakdown} -- Total ETH supply: **~119,300,000 ETH** (as of Q2 2022) +- Total ETH supply: **~120,520,000 ETH** (at time of The Merge in September 2022) - Execution layer issuance: **0** -- Consensus layer issuance: Same as above, **~0.49%** annual issuance rate (with 13 million ETH staked) -- Total annual issuance rate: **~0.49%** +- Consensus layer issuance: Same as above, **~0.52%** annualized issuance rate (with 14 million total ETH staked) -Total annual issuance rate: ~0.49%

-Net reduction in annual ETH issuance: ~89.4% (0.49% / 4.62% * 100) +Total annualized issuance rate: ~0.52%

+Net reduction in annual ETH issuance: ~88.7% ((4.61% - 0.52%) / 4.61% * 100)
##  The burn {#the-burn} -The opposite force to ETH issuance is the rate at which ETH is burned. For a transaction to execute on Ethereum, a minimum fee (known as a `base fee`) must be paid, which fluctuates continuously depending on network activity. The fee is paid in ETH and is _required_ for the transaction to be considered valid. This fee gets _burned_ during the transaction process, removing it from circulation. +The opposite force to ETH issuance is the rate at which ETH is burned. For a transaction to execute on Ethereum, a minimum fee (known as a "base fee") must be paid, which fluctuates continuously (block-to-block) depending on network activity. The fee is paid in ETH and is _required_ for the transaction to be considered valid. This fee gets _burned_ during the transaction process, removing it from circulation. -Fee burning went live with the London upgrade in August 2021, and will continue after the Merge. +Fee burning went live with the London upgrade in August 2021, and remains unchanged since The Merge. -On top of the fee burn implemented by the London upgrade, validators can also incur penalties for being offline, or worse, they can be slashed for breaking specific rules that threaten network security. These penalties result in a reduction of ETH from that validator's balance, which is not directly rewarded to any other account, effectively burning it from circulation. +On top of the fee burn implemented by the London upgrade, validators can also incur penalties for being offline, or worse, they can be slashed for breaking specific rules that threaten network security. These penalties result in a reduction of ETH from that validator's balance, which is not directly rewarded to any other account, effectively burning/removing it from circulation. + +### Calculating average gas price for deflation {#calculating-average-gas-price-for-deflation} + +As discussed above, the amount of ETH issued in a given day is dependent upon the total ETH staked. At time of writing, this is approximately 1700 ETH/day. + +To determine the average gas price required to completely offset this issuance in a given 24-hour period, we'll start by calculating the total number of blocks in a day: + +- `1 block / 12 seconds = 5 blocks/minute` +- `(5 blocks/minute) * (60 minutes/hour) * (24 hours/day) = 7200 blocks/day` + +Each block targets `15x10^6 gas/block` ([more on gas](/developers/docs/gas/)). Using this, we can solve for the average gas price (in units of gwei/gas) required to offset issuance, given a total daily ETH issuance of 1700 ETH: + +- `7200 blocks/day * 15x10^6 gas/block * Y gwei/gas * 1 ETH/ 10^9 gwei = 1700 ETH/day` + +Solving for `Y`: + +- `Y = (1700(10^9))/(7200 * 15(10^6)) = (1700(10^3)/(7200 * 15)) = 16 gwei` (rounding to only two significant digits) + +Another way to rearrange this last step would be to replace `1700` with a variable `X` that represents the daily ETH issuance, and to simplify the rest to: + +- `Y = (X(10^3)/(7200 * 15)) = X/108` + +We can simplify and write this as a function of `X`: + +- `f(X) = X/108` where `X` is daily ETH issuance, and `f(X)` represents the gwei/gas price required to offset all of the newly issued ETH. + +So, for example, if `X` (daily ETH issuance) rises to 1800 based on total ETH staked, `f(X)` (gwei required to offset all of the issuance) would then be `17 gwei` (using 2 significant digits) ## Further reading {#further-reading} +- [The Merge](/upgrades/merge/) - [Ultrasound.money](https://ultrasound.money/) - _Dashboards available to visualize ETH issuance and burn in real-time_ - [Charting Ethereum Issuance](https://www.attestant.io/posts/charting-ethereum-issuance/) - _Jim McDonald 2020_ diff --git a/src/content/web3/index.md b/src/content/web3/index.md index 37115a9a8f3..146dff77674 100644 --- a/src/content/web3/index.md +++ b/src/content/web3/index.md @@ -159,3 +159,5 @@ Web3 isn’t rigidly defined. Various community participants have different pers - [Why Decentralization Matters](https://onezero.medium.com/why-decentralization-matters-5e3f79f7638e) - _Chris Dixon_ - [The Web3 Landscape](https://a16z.com/wp-content/uploads/2021/10/The-web3-Readlng-List.pdf) – _a16z_ - [The Web3 Debate](https://www.notboring.co/p/the-web3-debate?s=r) – _Packy McCormick_ + + diff --git a/src/data/quizzes/index.ts b/src/data/quizzes/index.ts new file mode 100644 index 00000000000..8f3eed16e81 --- /dev/null +++ b/src/data/quizzes/index.ts @@ -0,0 +1,40 @@ +// Import data types +import { RawQuizzes } from "../../types" + +// Declare hash-map of quizzes based on slug key +const quizzes: RawQuizzes = { + "what-is-ethereum": { + title: "What is Ethereum?", + questions: ["a001", "a002", "a003", "a004", "a005"], + }, + "what-is-ether": { + title: "What is ether?", + questions: ["b001", "b002", "b003", "b004"], + }, + web3: { + title: "Web3", + questions: ["c001", "c002", "c003", "c004", "c005"], + }, + wallets: { + title: "Wallets", + questions: ["d001", "d002", "d003", "d004"], + }, + security: { + title: "Security", + questions: ["e001", "e002", "e003", "e004", "d003"], + }, + nfts: { + title: "NFTs", + questions: ["f001", "f002", "f003", "f004", "f005"], + }, + "layer-2": { + title: "Layer 2s", + questions: ["g001", "g002", "g003", "g004"], + }, + merge: { + title: "The Merge", + questions: ["h001", "h002", "h003", "h004", "h005"], + }, +} + +export default quizzes diff --git a/src/data/quizzes/questionBank.ts b/src/data/quizzes/questionBank.ts new file mode 100644 index 00000000000..02c1ceae7a5 --- /dev/null +++ b/src/data/quizzes/questionBank.ts @@ -0,0 +1,1013 @@ +// Import data types +import { QuestionBank } from "../../types" + +// Declare hash map of question bank +const questionBank: QuestionBank = { + // What is Ethereum? + a001: { + prompt: "The biggest difference between Ethereum and Bitcoin is:", + answers: [ + { + id: "a001-a", + label: "Ethereum doesn’t let you make payments to other people", + explanation: + "Both Bitcoin and Ethereum let you make payments to other people.", + }, + { + id: "a001-b", + label: "You can run computer programs on Ethereum", + explanation: + "Ethereum is programmable. This means you can put any computer program on the Ethereum blockchain.", + }, + { + id: "a001-c", + label: "You can run computer programs on Bitcoin", + explanation: + "Unlike Ethereum, Bitcoin isn’t programmable and cannot run arbitrary computer programs.", + }, + { + id: "a001-d", + label: "They have different logos", + explanation: + "They do have different logos! But this isn’t the biggest difference between them.", + }, + ], + correctAnswerId: "a001-b", + }, + a002: { + prompt: "Ethereum’s native cryptocurrency is called:", + answers: [ + { + id: "a002-a", + label: "Ether", + explanation: + "Ether is the cryptocurrency native to the Ethereum network.", + }, + { + id: "a002-b", + label: "Ethereum", + explanation: + "Ethereum is the blockchain, but its native currency is not called Ethereum. This is a common misconception.", + }, + { + id: "a002-c", + label: "Ethercoin", + explanation: + "Unlike many other cryptocurrencies, Ethereum’s native cryptocurrency doesn’t contain the word ‘coin’.", + }, + { + id: "a002-d", + label: "Bitcoin", + explanation: + "Bitcoin (uppercase B) was the first blockchain created, bitcoin (lowercase B) is it’s native cryptocurrency.", + }, + ], + correctAnswerId: "a002-a", + }, + a003: { + prompt: "Who runs Ethereum?", + answers: [ + { + id: "a003-a", + label: "Developers", + explanation: + "Developers are cruicial to building and improving Ethereum, but they are not the group who keep Ethereum running.", + }, + { + id: "a003-b", + label: "Miners", + explanation: + "Mining hasn’t been possible since The Merge. There are no longer ‘miners’ on Ethereum.", + }, + { + id: "a003-c", + label: "The Ethereum Foundation", + explanation: + "The Ethereum Foundation does not play any significant role in the day-to-day running of Ethereum nodes. ", + }, + { + id: "a003-d", + label: "Anyone running a node", + explanation: + "Anyone running a node is a crucial part of Ethereum’s infrastructure. If you haven’t already, consider running an Ethereum node.", + }, + ], + correctAnswerId: "a003-d", + }, + a004: { + prompt: + "Since Ethereum launched, how many times has the network went offline?", + answers: [ + { + id: "a004-a", + label: "Never", + explanation: + "Ethereum has never went completely offline since it launched.", + }, + { + id: "a004-b", + label: "Once", + explanation: + "Ethereum has never went completely offline since it launched.", + }, + { + id: "a004-c", + label: "Four times", + explanation: + "Ethereum has never went completely offline since it launched.", + }, + { + id: "a004-d", + label: "More than ten times", + explanation: + "Ethereum has never went completely offline since it launched.", + }, + ], + correctAnswerId: "a004-a", + }, + a005: { + prompt: "Ethereum consumes more electricity than:", + answers: [ + { + id: "a005-a", + label: "YouTube", + explanation: + "YouTube uses ~244 Terawatts per year. Ethereum uses 0.01 Terawatts per year.", + }, + { + id: "a005-b", + label: "Netflix", + explanation: + "Netflix uses ~94 Terawatts per year. Ethereum uses 0.01 Terawatts per year.", + }, + { + id: "a005-c", + label: "PayPal", + explanation: + "Paypal uses ~0.26 Terawatts per year. Ethereum uses 0.01 Terawatts per year.", + }, + { + id: "a005-d", + label: "None of the above", + explanation: + "Ethereum uses 0.01 Terawatts per year. Less than YouTube (~244 TW/yr), Netflix (~94 TW/yr), and Paypal (~0.26 TW/yr).", + }, + ], + correctAnswerId: "a005-d", + }, + // What is ether? + b001: { + prompt: "Ether is also known as:", + answers: [ + { + id: "b001-a", + label: "ETC", + explanation: "ETC is the ticker for ether on Ethereum Classic.", + }, + { + id: "b001-b", + label: "ETR", + explanation: + "ETR is not a ticker for ether or any significant cryptocurrency.", + }, + { + id: "b001-c", + label: "ETH", + explanation: "ETH is the ticker for ether on Ethereum.", + }, + { + id: "b001-d", + label: "BTC", + explanation: "BTC is the ticker for bitcoin on the Bitcoin network.", + }, + ], + correctAnswerId: "b001-c", + }, + b002: { + prompt: "On Ethereum, network fees are paid in:", + answers: [ + { + id: "b002-a", + label: "bitcoin", + explanation: + "Lowercase “bitcoin” is the native cryptocurrency of the Bitcoin network.", + }, + { + id: "b002-b", + label: "ETH", + explanation: + "Ether (ETH) is native cryptocurrency of Ethereum. All network fees on Ethereum are paid in ETH.", + }, + { + id: "b002-c", + label: "USD", + explanation: + "It is not possible to pay network fees on Ethereum in USD (US Dollars), or any other FIAT currency.", + }, + { + id: "b002-d", + label: "Ethereum", + explanation: + "Ethereum is the network, but Ethereum’s network fees are paid in the different.", + }, + ], + correctAnswerId: "b002-b", + }, + b003: { + prompt: "Staking on Ethereum helps secure the network because:", + answers: [ + { + id: "b003-a", + label: "Stakers can ban people if they don’t like what they are doing", + explanation: "Stakers are not able to arbitrarily censor users.", + }, + { + id: "b003-b", + label: + "If a staker tries to cheat the network, they risk losing their ETH", + explanation: + "Stakers risk losing a significant amount of their ETH if they are shown to be behaving maliciously against the network. This is known as slashing.", + }, + { + id: "b003-c", + label: "Stakers run powerful computers to demonstrate proof-of-work", + explanation: + "Stakers do not need powerful hardware to stake their ETH. Ethereum stopped using proof-of-work at The Merge.", + }, + { + id: "b003-d", + label: "Stakers undergo KYC before being accepted as a validator", + explanation: + "Staking on Ethereum is permissionless and does not require KYC.", + }, + ], + correctAnswerId: "b003-b", + }, + b004: { + prompt: "ETH is valuable because:", + answers: [ + { + id: "b004-a", + label: "ETH is needed to do anything on Ethereum", + explanation: + "This answer is correct, but there are also other correct answers.", + }, + { + id: "b004-b", + label: "ETH is an un-censorable peer-to-peer money", + explanation: + "This answer is correct, but there are also other correct answers.", + }, + { + id: "b004-c", + label: "ETH is used as collateral for crypto loans", + explanation: + "This answer is correct, but there are also other correct answers.", + }, + { + id: "b004-d", + label: "All of the above", + explanation: + "Ethereum transactions cannot be censored, ETH is required to make any transaction on Ethereum, and it is crucial to the stability of the DeFi ecosystem.", + }, + ], + correctAnswerId: "b004-d", + }, + // Web3 + c001: { + prompt: "Web3 allows users to own digital assets directly through:", + answers: [ + { + id: "c001-a", + label: "DAOs", + explanation: + "DAOs (Decentralized autonomous organizations) are member-owned communities without centralized leadership.", + }, + { + id: "c001-b", + label: "NFTs", + explanation: + "NFTs (Non-fungible tokens) provide a way to represent anything unique as an Ethereum-based asset.", + }, + { + id: "c001-c", + label: "ENS", + explanation: + "ENS (Ethereum Name Service) is a decentralized naming service for the Ethereum blockchain.", + }, + { + id: "c001-d", + label: "GitHub", + explanation: + "GitHub is a centralized platform, primarily for storing code using distributed version control. GitHub does not allow ownership of your data or digital assets.", + }, + ], + correctAnswerId: "c001-b", + }, + c002: { + prompt: + "Web1 was read-only, Web2 is read-write, Web3 has been described as:", + answers: [ + { + id: "c002-a", + label: "read-write-sell", + explanation: "Web3 has not been described in this way.", + }, + { + id: "c002-b", + label: "read-write-store", + explanation: "Web3 has not been described in this way.", + }, + { + id: "c002-c", + label: "read-write-own", + explanation: + "Web3 allows users to own their data and has therefore been described as ‘read-write-own’, any improvement on Web2’s, which is only ‘read-write’.", + }, + { + id: "c002-d", + label: "read-write-buy", + explanation: "Web3 has not been described in this way.", + }, + ], + correctAnswerId: "c002-c", + }, + c003: { + prompt: + "Which iteration of the web does not rely on third-party payment providers?", + answers: [ + { + id: "c003-a", + label: "Web1", + explanation: "Web1 didn’t native, built-in payments.", + }, + { + id: "c003-b", + label: "Web2", + explanation: "Web2 does not have native, built-in payments.", + }, + { + id: "c003-c", + label: "Web3", + explanation: + "Web3 has native, built-in payments with cryptocurrencies, such as ETH.", + }, + { + id: "c003-d", + label: "All of the above", + explanation: "Web1 and Web2 do not have native, built-in payments.", + }, + ], + correctAnswerId: "c003-c", + }, + c004: { + prompt: "The term ‘Web3’ was first coined by:", + answers: [ + { + id: "c004-a", + label: "Gavin Wood", + explanation: + "Gavin Wood, a co-founder of Ethereum, is credited with coining the term Web3 shortly after Ethereum launched in 2015.", + }, + { + id: "c004-b", + label: "Steve Jobs", + explanation: "Steve Jobs did not coin the phrase ‘Web3’.", + }, + { + id: "c004-c", + label: "Vitalik Buterin", + explanation: + "Vitalik Buterin, although the original founder of Ethereum, did not coin the phrase ‘Web3’.", + }, + { + id: "c004-d", + label: "Elon Musk", + explanation: "Elon Musk did not coin the phrase ‘Web3’.", + }, + ], + correctAnswerId: "c004-a", + }, + c005: { + prompt: + "You can have a single, censorship-resistant login across all of the web through the use of:", + answers: [ + { + id: "c005-a", + label: "Sign-in with Facebook", + explanation: "Sign-in with Facebook is not censorship resistant.", + }, + { + id: "c005-b", + label: "Sign-in with Google", + explanation: "Sign-in with Google is not censorship resistant.", + }, + { + id: "c005-c", + label: "Sign-in with Ethereum", + explanation: + "Sign-in with Ethereum is the only option that is censorship-resistant and usable on any web application.", + }, + { + id: "c005-d", + label: "Sign-in with Twitter", + explanation: "Sign-in with Twitter is not censorship resistant.", + }, + ], + correctAnswerId: "c005-d", + }, + // Wallets + d001: { + prompt: "The most secure type of wallet is:", + answers: [ + { + id: "d001-a", + label: "A mobile wallet", + explanation: + "Mobile wallets hold private keys on a mobile device, which typically has connections to the internet, and potentially compromised by other software.", + }, + { + id: "d001-b", + label: "A hardware wallet", + explanation: + "A hardware wallet’s private keys are stored on a dedicated device that can be kept off of the internet and are isolated from other applications on your devices.", + }, + { + id: "d001-c", + label: "A web wallet", + explanation: + "Web wallets have less security than hardware wallets because the private keys are stored on an internet-connected device.", + }, + { + id: "d001-d", + label: "A desktop wallet", + explanation: + "Desktop wallets hold private keys on a computer hard drive, which typically has connections to the internet, and potentially compromised by other software.", + }, + ], + correctAnswerId: "d001-b", + }, + d002: { + prompt: + "From the options presented, which is the most secure way to store your seed phrase?", + answers: [ + { + id: "d002-a", + label: "In a photo on your phone", + explanation: + "This is not the most secure option. If this photo is uploaded to cloud storage then a hacker gets this image and gains access to your account.", + }, + { + id: "d002-b", + label: "In a file on your computer", + explanation: + "This is not the most secure option. Hacker are increasingly looking for cryptocurrency related information on target devices. If a hacker accesses the file with your seed phrase they will gain access to your account.", + }, + { + id: "d002-c", + label: "Written down on paper", + explanation: + "Of the available options, writing down your seed phrase on paper is the most secure.", + }, + { + id: "d002-d", + label: "In a text message to a trusted family member", + explanation: + "You should never text your seed phrase to anyone. The message could be intercepted by a third party, and even if you trust this person absolutely, you do not know who may be able to access their phone.", + }, + ], + correctAnswerId: "d002-c", + }, + d003: { + prompt: "Who should you give your seed phrase / private keys to?", + answers: [ + { + id: "d003-a", + label: "Someone you’re paying", + explanation: + "You should never give your seed phrase or private keys to anyone. Instead, send tokens to their wallet address via a transaction.", + }, + { + id: "d003-b", + label: "To login to a dapp or wallet", + explanation: + "You should never give your seed phrase / private keys to login to your wallet or dapp.", + }, + { + id: "d003-c", + label: "Support staff", + explanation: + "You should never give your seed phrase / private keys to anyone claiming to be support staff. Anyone asking you for this is a scammer.", + }, + { + id: "d003-d", + label: "No one", + explanation: + "Ideally, you should never give your seed phrase or private keys to anyone. If you trust someone completely with absolute access to your funds (such as a spouse), then you may decide to share this information with them.", + }, + ], + correctAnswerId: "d003-d", + }, + d004: { + prompt: "A wallet and an account on Ethereum are the same thing.", + answers: [ + { + id: "d004-a", + label: "True", + explanation: + "A wallet is a visual interface used to interact with an Ethereum account.", + }, + { + id: "d004-b", + label: "False", + explanation: + "A wallet is a visual interface used to interact with an Ethereum account.", + }, + ], + correctAnswerId: "d004-b", + }, + // Security + e001: { + prompt: "Why should you use unique passwords for all of your accounts?", + answers: [ + { + id: "e001-a", + label: "In case one of the platforms has a data breach", + explanation: + "This answer is correct, but there are also other correct answers.", + }, + { + id: "e001-b", + label: + "In case someone looking over your shoulder works out your password", + explanation: + "This answer is correct, but there are also other correct answers.", + }, + { + id: "e001-c", + label: "In case malware, such as a key-logger, steals your password", + explanation: + "This answer is correct, but there are also other correct answers.", + }, + { + id: "e001-d", + label: "All of the above", + explanation: + "All answers are correct. Using unique passwords is the best way to prevent anyone else from accessing your account.", + }, + ], + correctAnswerId: "e001-d", + }, + e002: { + prompt: "Following The Merge, ETH must be upgraded to ETH2.", + answers: [ + { + id: "e002-a", + label: "True", + explanation: + "You do not need to upgrade your ETH to ETH2. There is no ETH2 and this is a common narrative used by scammers.", + }, + { + id: "e002-b", + label: "False", + explanation: + "You do not need to upgrade your ETH to ETH2. There is no ETH2 and this is a common narrative used by scammers.", + }, + ], + correctAnswerId: "e002-b", + }, + e003: { + prompt: "ETH giveaways are:", + answers: [ + { + id: "e003-a", + label: "a good way to get more ETH", + explanation: + "ETH giveaways are scams designed to steal your ETH and other tokens. They are never a good way to get more ETH.", + }, + { + id: "e003-b", + label: "always genuine", + explanation: "ETH giveaways are never genuine.", + }, + { + id: "e003-c", + label: "commonly performed by prominent members of the community", + explanation: + "Prominent community members do not do ETH giveaways. Scammers pretend well-know individuals, such as Elon Musk, are doing giveaways to give them the scam a sense of legitimacy.", + }, + { + id: "e003-d", + label: "always a scam", + explanation: + "ETH giveaways are always scams. Reporting and ignoring scammers is best.", + }, + ], + correctAnswerId: "e003-d", + }, + e004: { + prompt: "Ethereum transaction are reversible.", + answers: [ + { + id: "e004-a", + label: "True", + explanation: + "Ethereum transactions cannot be reversed. Anyone who tells you otherwise might be trying to scam you.", + }, + { + id: "e004-b", + label: "False", + explanation: + "Ethereum transactions cannot be reversed. Anyone who tells you otherwise might be trying to scam you.", + }, + ], + correctAnswerId: "e004-b", + }, + // NFTs + f001: { + prompt: "NFTs are most comprehensively defined as:", + answers: [ + { + id: "f001-a", + label: "unique digital assets", + explanation: "NFTs represent a unique digital asset.", // with an owner + }, + { + id: "f001-b", + label: "digital artwork", + explanation: + "NFTs represent a unique digital asset, this is commonly digital artwork, but it isn’t limited to art.", + }, + { + id: "f001-c", + label: "tickets to exclusive events", + explanation: + "NFTs represent a unique digital asset, this could be a ticketing system, but it isn't limited to tickets.", + }, + { + id: "f001-d", + label: "legally binding contracts", + explanation: + "Although a legal contract could be represented as an NFT, NFTs are not exclusive to legally binding contracts.", + }, + ], + correctAnswerId: "f001-a", + }, + f002: { + prompt: "Two NFTs representing the same artwork are the same thing.", + answers: [ + { + id: "f002-a", + label: "True", + explanation: + "NFTs are non-fungible. This means even if they represent the piece of digital art, they are still uniquely identifible. In the traditional artworld, this might be similar to originals and prints.", + }, + { + id: "f002-b", + label: "False", + explanation: + "NFTs are non-fungible. This means even if they represent the piece of digital art, they are still uniquely identifible. In the traditional artworld, this might be similar to originals and prints.", + }, + ], + correctAnswerId: "f002-b", + }, + f003: { + prompt: "NFTs most commonly represent:", + answers: [ + { + id: "f003-a", + label: "The password to your wallet", + explanation: "This is a security risk and generally a bad idea!", + }, + { + id: "f003-b", + label: "Ownership of a unique digital item", + explanation: + "NFTs commonly represent ownership of a unique digital item.", + }, + { + id: "f003-c", + label: "Your current ETH balance", + explanation: "NFTs cannot represent your ETH balance arbitrarily.", + }, + { + id: "f003-d", + label: "All of the above", + explanation: + "NFTs commonly represent ownership of a unique digital item, not ETH balances or wallet passwords.", + }, + ], + correctAnswerId: "f003-b", + }, + f004: { + prompt: "NFTs have helped create a new:", + answers: [ + { + id: "f004-a", + label: "curator economy", + explanation: + "NFTs helped create a new economy for creators, not curators.", + }, + { + id: "f004-b", + label: "carbon economy", + explanation: + "NFTs helped create a new economy for creators, not carbon.", + }, + { + id: "f004-c", + label: "creator economy", + explanation: "NFTs helped create the creator economy.", + }, + { + id: "f004-d", + label: "doge economy", + explanation: + "NFTs helped create a new economy for creators, not doges 🐶.", + }, + ], + correctAnswerId: "f004-c", + }, + f005: { + prompt: "NFTs on Ethereum are harmful to the environment", + answers: [ + { + id: "f005-a", + label: "True", + explanation: + "Since The Merge (transition to proof-of-stake), any transaction has been a negligible impact on the environment.", + }, + { + id: "f005-b", + label: "False", + explanation: + "Since The Merge (transition to proof-of-stake), any transaction has been a negligible impact on the environment.", + }, + ], + correctAnswerId: "f005-b", + }, + // Layer 2 + g001: { + prompt: "Layer 2 blockchain networks are for:", + answers: [ + { + id: "g001-a", + label: "Scaling Ethereum", + explanation: + "The primary purpose of rollups and other layer 2 solutions is for scaling Ethereum.", + }, + { + id: "g001-b", + label: "Making payments", + explanation: + "The primary purpose of rollups and other layer 2 solutions is for scaling Ethereum.", + }, + { + id: "g001-c", + label: "Buying NFTs", + explanation: + "The primary purpose of rollups and other layer 2 solutions is for scaling Ethereum.", + }, + { + id: "g001-d", + label: "Decentralizing Ethereum", + explanation: + "The primary purpose of rollups and other layer 2 solutions is for scaling Ethereum.", + }, + ], + correctAnswerId: "g001-a", + }, + g002: { + prompt: + "To scale, most alternative layer 1 networks have primarily sacrificed on:", + answers: [ + { + id: "g002-a", + label: "security", + explanation: + "Most alternative Layer 1 networks on security and something else in order to scale.", + }, + { + id: "g002-b", + label: "decentralization", + explanation: + "Most alternative Layer 1 networks on decentralization and something else in order to scale.", + }, + { + id: "g002-c", + label: "token price", + explanation: "Token price does not have any impact on scaling ability.", + }, + { + id: "g002-d", + label: "security and decentralization", + explanation: + "Most alternative layer 1 networks sacrifice on both security and decentralization in order to scale.", + }, + ], + correctAnswerId: "g002-d", + }, + g003: { + prompt: "Which of the following are not considered to be layer 2?", + answers: [ + { + id: "g003-a", + label: "Validiums", + explanation: + "Validiums are not considered to be layer 2 solutions as they do not derive security or data availability from Ethereum", + }, + { + id: "g003-b", + label: "Sidechains", + explanation: + "Sidechains are not considered to be layer 2 solutions as they do not derive security or data availability from Ethereum.", + }, + { + id: "g003-c", + label: "Alternative layer 1 blockchains", + explanation: + "Alternative layer 1 blockchains are not considered to be layer 2 solutions.", + }, + { + id: "g003-d", + label: "All of the above", + explanation: + "Validiums, Sidechains, and alternative layer 1 blockchains are not considered to be layer 2 solutions as they do not derive security or data availability from Ethereum.", + }, + ], + correctAnswerId: "g003-d", + }, + g004: { + prompt: "Why does Ethereum not have an ‘official’ layer 2?", + answers: [ + { + id: "g004-a", + label: "Core developers are too busy working on Ethereum", + explanation: + "There are no plans for an ‘official’ layer 2 on Ethereum as we’ll benefit from a wide-variety of approaches to designing layer 2 solutions.", + }, + { + id: "g004-b", + label: + "As an L1, Ethereum will eventually reach mass scaling on its own", + explanation: + "There are no plans for an ‘official’ layer 2 on Ethereum as we’ll benefit from a wide-variety of approaches to designing layer 2 solutions.", + }, + { + id: "g004-c", + label: + "Core developers are still debating between optimistic and zk-rollups", + explanation: + "There are no plans for an ‘official’ layer 2 on Ethereum as we’ll benefit from a wide-variety of approaches to designing layer 2 solutions.", + }, + { + id: "g004-d", + label: + "Ethereum will benefit from a wide-variety of approaches to designing an L2", + explanation: + "There are no plans for an ‘official’ layer 2 on Ethereum as we’ll benefit from a wide-variety of approaches to designing layer 2 solutions.", + }, + ], + correctAnswerId: "g004-d", + }, + // The Merge + h001: { + prompt: "The Merge moved Ethereum onto which consensus mechanism?", + answers: [ + { + id: "h001-a", + label: "Proof-of-work", + explanation: + "Proof-of-work was the consensus mechanism used before The Merge.", + }, + { + id: "h001-b", + label: "Proof-of-stake", + explanation: "Correct! The Merge moved Ethereum onto proof-of-stake.", + }, + { + id: "h001-c", + label: "Proof-of-authority", + explanation: + "Ethereum does not, and has never used proof-of-authority on Ethereum Mainnet.", + }, + { + id: "h001-d", + label: "All of the above", + explanation: + "It would not be possible for Ethereum to have all of these consensus mechanisms at once.", + }, + ], + correctAnswerId: "h001-b", + }, + h002: { + prompt: "The Merge reduced Ethereum’s energy consumption by:", + answers: [ + { + id: "h002-a", + label: "50%", + explanation: + "Ethereum’s energy consumption was reduced by 99.95% after The Merge enabled the transition from proof-of-work to proof-of-stake.", + }, + { + id: "h002-b", + label: "62.5%", + explanation: + "Ethereum’s energy consumption was reduced by 99.95% after The Merge enabled the transition from proof-of-work to proof-of-stake.", + }, + { + id: "h002-c", + label: "90%", + explanation: + "Ethereum’s energy consumption was reduced by 99.95% after The Merge enabled the transition from proof-of-work to proof-of-stake.", + }, + { + id: "h002-d", + label: "99.95%", + explanation: + "Ethereum’s energy consumption was reduced by 99.95% after The Merge enabled the transition from proof-of-work to proof-of-stake.", + }, + ], + correctAnswerId: "h002-d", + }, + h003: { + prompt: "When did The Merge happen?", + answers: [ + { + id: "h003-a", + label: "September 15th 2022", + explanation: + "The Merge happened on September 15th 2022 at 06:42:42 AM (UTC).", + }, + { + id: "h003-b", + label: "December 1st 2021", + explanation: + "The Merge happened later than this. December 1st 2022 was when the Beacon Chain was launched.", + }, + { + id: "h003-c", + label: "November 27 2013", + explanation: + "The Merge happened later than this. November 27 2013 is the day the Ethereum Whitepaper was released.", + }, + { + id: "h003-d", + label: "October 31st 2008", + explanation: + "The Merge happened later than this. October 31st is the day the Bitcoin Whitepaper was released.", + }, + ], + correctAnswerId: "h003-a", + }, + h004: { + prompt: "The Merge meant users had to exchange their ETH for ETH2:", + answers: [ + { + id: "h004-a", + label: "True", + explanation: + "ETH did not change at any point before, during, or after The Merge. The idea of ‘upgrading’ ETH to ETH2 was a common tactic by malicious actors to scam users.", + }, + { + id: "h004-b", + label: "False", + explanation: + "ETH did not change at any point before, during, or after The Merge. The idea of ‘upgrading’ ETH to ETH2 was a common tactic by malicious actors to scam users.", + }, + ], + correctAnswerId: "h004-b", + }, + h005: { + prompt: "Ethereum’s consensus layer was formerly known as:", + answers: [ + { + id: "h005-a", + label: "Proof-of-work", + explanation: + "Proof-of-work was the consensus mechanism used on Ethereum prior to The Merge.", + }, + { + id: "h005-b", + label: "Eth2", + explanation: + "Before being renamed the consensus layer, it was originally called ‘Eth2’.", + }, + { + id: "h005-c", + label: "Eth1", + explanation: + "Eth1 was the original name given to the execution layer, not the consensus layer.", + }, + { + id: "h005-d", + label: "Sharding", + explanation: + "Sharding is an update on the Ethereum roadmap related to scaling.", + }, + ], + correctAnswerId: "h005-b", + }, +} + +export default questionBank diff --git a/src/intl/de/page-developers-local-environment.json b/src/intl/de/page-developers-local-environment.json index af20fc599f6..7209b05db9e 100644 --- a/src/intl/de/page-developers-local-environment.json +++ b/src/intl/de/page-developers-local-environment.json @@ -21,7 +21,7 @@ "page-local-environment-hardhat-logo-alt": "Hardhat-Logo", "page-local-environment-openZeppelin-desc": "Sparen Stunden an Entwicklungszeit, indem Sie über unsere CLI kompilieren, upgraden, veröffentlichen und mit Smart Contracts interagieren.", "page-local-environment-openZeppelin-logo-alt": "OpenZeppelin-Logo", - "page-local-environment-scaffold-eth-desc": "Ethers + Hardhat + React: alles, was Sie brauchen, um mit der Entwicklung dezentraler Anwendungen auf Basis von Smart Contracts zu beginnen.", + "page-local-environment-scaffold-eth-desc": "Ethers + Hardhat + React: Alles, was Sie brauchen, um mit der Entwicklung dezentraler Anwendungen auf Basis von Smart Contracts zu beginnen.", "page-local-environment-scaffold-eth-logo-alt": "scaffold-eth-Logo", "page-local-environment-setup-meta-desc": "Anleitung, wie Sie Ihren Software-Stack für die Ethereum-Entwicklung auswählen.", "page-local-environment-setup-meta-title": "Ethereum – lokale Entwicklereinrichtung", diff --git a/src/intl/en/page-upgrades-get-involved-bug-bounty.json b/src/intl/en/page-upgrades-get-involved-bug-bounty.json index 9bec43dd3a0..4e4682b691e 100644 --- a/src/intl/en/page-upgrades-get-involved-bug-bounty.json +++ b/src/intl/en/page-upgrades-get-involved-bug-bounty.json @@ -12,7 +12,7 @@ "page-upgrades-bug-bounty-misc-bugs-desc": "See the Solidity SECURITY.MD for more details about what is included in this scope.", "page-upgrades-bug-bounty-misc-bugs-desc-2": "Solidity does not hold security guarantees regarding compilation of untrusted input – and we do not issue rewards for crashes of the solc compiler on maliciously generated data.", "page-upgrades-bug-bounty-deposit-bugs": "Deposit Contract bugs", - "page-upgrades-bug-bounty-deposit-bugs-desc": "The specificiations and source code of the Beacon Chain Deposit Contract is part of the bug bounty program.", + "page-upgrades-bug-bounty-deposit-bugs-desc": "The specifications and source code of the Beacon Chain Deposit Contract is part of the bug bounty program.", "page-upgrades-bug-bounty-docking": "merge", "page-upgrades-bug-bounty-email-us": "Email us:", "page-upgrades-bug-bounty-help-links": "Helpful links", diff --git a/src/intl/en/page-upgrades-index.json b/src/intl/en/page-upgrades-index.json index d14a34b0409..e1c77a0f559 100644 --- a/src/intl/en/page-upgrades-index.json +++ b/src/intl/en/page-upgrades-index.json @@ -43,7 +43,7 @@ "page-upgrades-dive": "Dive into the vision", "page-upgrades-dive-desc": "How are we making Ethereum more scalable, secure, and sustainable? All while keeping Ethereum's core ethos of decentralization.", "page-upgrades-docking": "The Merge", - "page-upgrades-merge-answer-1": "The Merge was when Mainnet switched off proof-of-work and turned on proof-of-stake on 15th September 2022.", + "page-upgrades-merge-answer-1": "The Merge was when Ethereum transitioned to proof-of-stake consensus on September 15, 2022. The Beacon Chain merged with Mainnet, officially deprecating proof-of-work on Ethereum, and reduced Ethereum’s energy consumption by ~99.95%.", "page-upgrades-merge-btn": "More on The Merge", "page-upgrades-merge-desc": "Mainnet Ethereum merged with the proof-of-stake Beacon Chain, marking the end of energy-intensive mining.", "page-upgrades-merge-estimate": "The Merge is live", diff --git a/src/intl/en/page-what-is-ethereum.json b/src/intl/en/page-what-is-ethereum.json index 7e0537e1f70..6b1473dd0fd 100644 --- a/src/intl/en/page-what-is-ethereum.json +++ b/src/intl/en/page-what-is-ethereum.json @@ -84,8 +84,8 @@ "page-what-is-ethereum-criminal-activity-desc-2": "Crypto is used much less than fiat currencies for criminal purposes according to the key findings of a recent report by Europol, the European Union Agency for Law Enforcement Cooperation:", "page-what-is-ethereum-criminal-activity-desc-3": "“The use of cryptocurrencies for illicit activities seems to comprise only a small part of the overall cryptocurrency economy, and it appears to be comparatively smaller than the amount of illicit funds involved in traditional finance.”", "page-what-is-ethereum-energy-title": "What about Ethereum's energy consumption?", - "page-what-is-ethereum-energy-desc-1": "Ethereum is currently using proof-of-work mechanism that consumes a large amount of energy. In the coming months (Q3/Q4 2022) Ethereum will undergo its biggest update yet and will switch to proof of stake mechanism which will greatly reduce the environmental impact it has.", - "page-what-is-ethereum-energy-desc-2": "This update will reduce the energy required to secure Ethereum by about 99.95%, creating a more secure network for a much smaller carbon cost. This will make Ethereum a truly low-carbon blockchain while boosting its security and scalability.", + "page-what-is-ethereum-energy-desc-1": "On September 15, 2022, Ethereum went through The Merge upgrade which transitioned Ethereum from proof-of-work to proof-of-stake.", + "page-what-is-ethereum-energy-desc-2": "The Merge was Ethereum's biggest uprade and reduced the energy consumption required to secure Ethereum by 99.95%, creating a more secure network for a much smaller carbon cost. Ethereum is now a low-carbon blockchain while boosting its security and scalability.", "page-what-is-ethereum-more-on-energy-consumption": "More on energy consumption", "page-what-is-ethereum-energy-consumption-chart-legend": "Annual Energy Consumption in TW/yr", "page-what-is-ethereum-the-merge-update": "The Merge update", diff --git a/src/intl/fr/page-contributing-translation-program-acknowledgements.json b/src/intl/fr/page-contributing-translation-program-acknowledgements.json index 1e36034fb82..71578a7d473 100644 --- a/src/intl/fr/page-contributing-translation-program-acknowledgements.json +++ b/src/intl/fr/page-contributing-translation-program-acknowledgements.json @@ -35,7 +35,7 @@ "page-contributing-translation-program-acknowledgements-how-to-claim-title": "Comment le récupérer", "page-contributing-translation-program-acknowledgements-how-to-claim-1": "Rejoignez notre", "page-contributing-translation-program-acknowledgements-how-to-claim-1-discord": "serveur Discord", - "page-contributing-translation-program-acknowledgements-how-to-claim-2": "Collez un lien vers votre profil Crowdin dans le salon #poaps-🏆.", + "page-contributing-translation-program-acknowledgements-how-to-claim-2": "Collez un lien vers votre profil Crowdin dans le salon #🥇 | poaps channel.", "page-contributing-translation-program-acknowledgements-how-to-claim-3": "Attendez qu'un membre de notre équipe vous envoie un lien vers votre POAP.", "page-contributing-translation-program-acknowledgements-how-to-claim-4": "Récupérez votre POAP !", "page-contributing-translation-program-acknowledgements-4": "Vous devez utiliser uniquement des portefeuilles autogérés pour récupérer des POAP. N'utilisez pas de comptes d'échange ou d'autres comptes dont vous ne détenez pas les clés privées, car ils ne vous permettront pas d'accéder à vos POAP et de les gérer." diff --git a/src/intl/fr/page-upgrades-get-involved-bug-bounty.json b/src/intl/fr/page-upgrades-get-involved-bug-bounty.json index 5291f306a4a..fbef9785f80 100644 --- a/src/intl/fr/page-upgrades-get-involved-bug-bounty.json +++ b/src/intl/fr/page-upgrades-get-involved-bug-bounty.json @@ -1,34 +1,41 @@ { "page-upgrades-bug-bounty-annotated-specs": "spécification annotée", "page-upgrades-bug-bounty-annotations": "Il peut être utile de vérifier les annotations suivantes :", - "page-upgrades-bug-bounty-client-bugs": "Bogues du client de la couche de consensus", - "page-upgrades-bug-bounty-client-bugs-desc": "Les clients se connecteront à la chaîne phare une fois la mise à niveau déployée. Les clients devront suivre la logique décrite dans la spécification et être sécurisés contre les attaques potentielles. Les bogues que nous voulons trouver sont liés à l'implémentation du protocole.", - "page-upgrades-bug-bounty-client-bugs-desc-2": "Les bogues actuels pour Lighthouse, Nimbus, Teku, et Prysm sont éligibles à toutes les primes en récompenses. Lodestar est également éligible, mais jusqu'à ce que d'autres audits aient été réalisés, les points et récompenses sont limités à 10 % (le paiement maximal est de 5 000 DAI). De nouveaux clients pourront être ajoutés au fur et à mesure s'ils complètent les audits et sont prets pour la production.", + "page-upgrades-bug-bounty-client-bugs": "Bugs clients", + "page-upgrades-bug-bounty-client-bugs-desc": "Les clients font fonctionner le réseau Ethereum, et ils doivent suivre la logique définie dans la spécification et être sécurisés contre les attaques potentielles. Les bugs que nous voulons trouver sont liés à l'implémentation du protocole.", + "page-upgrades-bug-bounty-client-bugs-desc-2": "Actuellement, les clients de la couche d'exécution (Besu, Erigon, Geth et Nethermind) et les clients de la couche de consensus (Lighthouse, Lodestar, Nimbus, Teku et Prysm) sont inclus dans le programme Prime aux bogues. De nouveaux clients peuvent être ajoutés au fur et à mesure qu'ils complètent les audits et se préparent à leur lancement.", "page-upgrades-bug-bounty-clients": "Fonctionnalités « clients » donnant droit à des primes", "page-upgrades-bug-bounty-clients-type-1": "Spécification de problèmes de non conformité", - "page-upgrades-bug-bounty-clients-type-2": "Des incidents inattendus ou des failles de déni de service (DOS)", + "page-upgrades-bug-bounty-clients-type-2": "Des incidents inattendus, RCE ou des failles de déni de service (DOS)", "page-upgrades-bug-bounty-clients-type-3": "Tout problème causant un consensus irréparable se sépare du reste du réseau", + "page-upgrades-bug-bounty-misc-bugs": "Bugs Solidity", + "page-upgrades-bug-bounty-misc-bugs-desc": "Consultez le fichier SECURITY.MD de Solidity pour plus de détails sur ce qui est inclus dans cette étendue.", + "page-upgrades-bug-bounty-misc-bugs-desc-2": "Solidity ne dispose pas de garanties de sécurité concernant la compilation des entrées non fiables – et nous ne délivrons pas de récompenses pour les plantages du compilateur solc sur les données générées de manière malveillante.", + "page-upgrades-bug-bounty-deposit-bugs": "Bugs du contrat de dépôt", + "page-upgrades-bug-bounty-deposit-bugs-desc": "Les spécifications et le code source du Contrat de dépôt de la chaîne phare font partie du programme de primes aux bogues.", "page-upgrades-bug-bounty-docking": "fusion", "page-upgrades-bug-bounty-email-us": "Envoyez-nous un courriel :", "page-upgrades-bug-bounty-help-links": "Liens utiles", "page-upgrades-bug-bounty-hunting": "Règles pour la chasse aux bogues", - "page-upgrades-bug-bounty-hunting-desc": "Le programme de primes des bogues est expérimental et discrétionnaire, et est destiné à notre communauté active afin d'encourager et récompenser ceux qui aident à l'amélioration de la plateforme. Ce n'est pas une compétition. Vous devez savoir que nous pouvons annuler le programme n'importe quand, et les primes sont attribuées à la discrétion du comité du programme de primes des bogues de l'Ethereum Foundation. De plus, nous ne pourrons pas attribuer de primes aux personnes qui sont sur la liste des personnes bannies ou faisant partie de pays étant sur la liste de pays bannis.(ex Corée du Nord, Iran, etc.). Vous êtes responsables pour les implications fiscales. Toutes les primes sont assujetties aux lois applicables. En conclusion, vos évaluations ne doivent pas violer de lois ou compromettre des données qui ne vous appartiennent pas.", - "page-upgrades-bug-bounty-hunting-leaderboard": "Classement de chasse aux bogues", + "page-upgrades-bug-bounty-hunting-desc": "Le programme de primes aux bogues est expérimental et discrétionnaire, et est destiné à notre communauté Ethereum active afin d'encourager et récompenser ceux qui aident à l'amélioration de la plateforme. Ce n'est pas une compétition. Vous devez savoir que nous pouvons annuler le programme n'importe quand, et les primes sont attribuées à la discrétion du comité du programme de primes aux bogues de l'Ethereum Foundation. De plus, nous ne pourrons pas attribuer de primes aux personnes qui sont sur la liste des personnes bannies ou faisant partie de pays étant sur la liste de pays bannis (p. ex. Corée du Nord, Iran, etc.). La législation locale exige de notre part de demander la preuve de votre identité. Vous êtes responsables eu égard aux implications fiscales. Toutes les récompenses sont assujetties aux lois applicables. En conclusion, vos évaluations ne doivent pas violer de lois ou compromettre des données qui ne vous appartiennent pas et doivent être effectuées sur des réseaux de test en fonctionnement local.", + "page-upgrades-bug-bounty-hunting-leaderboard": "Classement des Bug Bounty de la couche de consensus", + "page-upgrades-bug-bounty-hunting-execution-leaderboard": "Classement des primes aux bogues de la couche d'exécution", "page-upgrades-bug-bounty-hunting-leaderboard-subtitle": "Trouver des bogues de couche de consensus pour être ajouté à ce classement", - "page-upgrades-bug-bounty-hunting-li-1": "Les problèmes qui ont déjà été soumis par un autre utilisateur ou qui sont déjà connus par les responsables des spécifications et du client ne sont pas éligibles pour des primes de récompenses.", + "page-upgrades-bug-bounty-hunting-execution-leaderboard-subtitle": "Trouvez des bogues sur la couche d'exécution pour être ajouté à ce classement", + "page-upgrades-bug-bounty-hunting-li-1": "Les problèmes sans preuve de concept ou qui ont déjà été soumis par un autre utilisateur ou qui sont déjà connus par les responsables des spécifications et des clients ne sont pas éligibles pour des récompenses.", "page-upgrades-bug-bounty-hunting-li-2": "La divulgation publique d'une vulnérabilité la rend inadmissible à une prime.", - "page-upgrades-bug-bounty-hunting-li-3": "Les chercheurs d'Ethereum Foundation et les employés des équipes clientes de la couche de consensus ne sont pas admissibles à une récompense.", + "page-upgrades-bug-bounty-hunting-li-3": "Les employés et les entrepreneurs de la Fondation Ethereum ou des équipes de clients dans le cadre du programme de primes ne peuvent participer au programme que dans le cadre de l’accumulation de points et ne recevront aucune récompense monétaire.", "page-upgrades-bug-bounty-hunting-li-4": "Le programme de primes d'Ethereum prend en compte plusieurs facteurs pour l'attribution des récompenses. Les conditions pour l'éligibilité, le pointage ainsi que les termes en lien avec l'attribution d'une récompense sont à la seule et entière discrétion du comité du programme de primes de l'Ethereum Foundation.", "page-upgrades-bug-bounty-leaderboard": "Voir le classement complet", "page-upgrades-bug-bounty-leaderboard-points": "points", - "page-upgrades-bug-bounty-ledger-desc": "La spécification de la chaîne phare détaille sa conception et propose des modifications à Ethereum via la mise à niveau de la chaîne phare.", - "page-upgrades-bug-bounty-ledger-title": "Les bogues de spécification de la chaîne phare", - "page-upgrades-bug-bounty-meta-description": "Un aperçu du programme de primes de la couche de consensus : comment s'impliquer et récompenser les informations.", - "page-upgrades-bug-bounty-meta-title": "Programme de primes pour la chasse aux bogues de la couche de consensus", - "page-upgrades-bug-bounty-not-included": "Non inclus", - "page-upgrades-bug-bounty-not-included-desc": "Les mises à jour de la fusion et de la chaîne de fragments sont toujours en cours de développement et ne sont donc pas encore incluses dans ce programme de primes.", + "page-upgrades-bug-bounty-ledger-desc": "Les spécifications Ethereum détaillent les raisons de conception de la couche d'exécution et de consensus.", + "page-upgrades-bug-bounty-ledger-title": "Bugs de spécifications", + "page-upgrades-bug-bounty-meta-description": "Un aperçu du programme Ethereum de primes aux bogues : comment s'impliquer et récompenser les informations.", + "page-upgrades-bug-bounty-meta-title": "Programme de primes aux bogues d'Ethereum", + "page-upgrades-bug-bounty-not-included": "Hors périmètre", + "page-upgrades-bug-bounty-not-included-desc": "Seules les objectifs listés et énumérés dans le champs d'application font partie du programme de récompenses par prime. Cela signifie que par exemple, notre infrastructure ; comme les pages web, les dns, les e-mails, etc., ne font pas partie du programme de primes. Les bugs en relation avec le contrat ERC20 ne sont généralement pas inclus dans le champ des primes. Cependant dans ce cas, nous pouvons aider les parties concernées, comme les auteurs ou les échanges. ENS est maintenu par la Fondation ENS et ne fait pas partie du programme de primes.", "page-upgrades-bug-bounty-owasp": "Voir la méthode OWASP", - "page-upgrades-bug-bounty-points": "L'Ethereum Foundation (EF) attribuera également des points sur la base de :", + "page-upgrades-bug-bounty-points": "L'EF fournira également des récompenses basées sur :", "page-upgrades-bug-bounty-points-error": "Erreur lors du chargement des données... Veuillez actualiser.", "page-upgrades-bug-bounty-points-exchange": "Échanger des points", "page-upgrades-bug-bounty-points-loading": "Chargement des données en cours...", @@ -40,41 +47,41 @@ "page-upgrades-bug-bounty-quality-desc": ": des récompenses plus élevées sont payées pour les soumissions claires et bien écrites.", "page-upgrades-bug-bounty-quality-fix": "Qualité de la résolution, si incluse : des récompenses plus importantes sont offertes pour les soumissions décrivant clairement la façon de résoudre le problème.", "page-upgrades-bug-bounty-quality-repro": "Qualité de reproductibilité", - "page-upgrades-bug-bounty-quality-repro-desc": ": veuillez inclure le code de test, les scripts et les instructions détaillées. Plus il est facile pour nous de reproduire et de vérifier la vulnérabilité, plus la récompense est élevée.", + "page-upgrades-bug-bounty-quality-repro-desc": ": Une preuve de concept (Proof Of Concept) doit être incluse pour être éligible à des récompenses. Veuillez inclure le code de test, les scripts et les instructions détaillées. Plus il est facile pour nous de reproduire et de vérifier la vulnérabilité, plus la récompense sera élevée.", "page-upgrades-bug-bounty-questions": "Des questions ?", "page-upgrades-bug-bounty-rules": "Lire le règlement", - "page-upgrades-bug-bounty-shard-chains": "chaînes de fragments", - "page-upgrades-bug-bounty-slogan": "Primes de bogues sur la couche de consensus", - "page-upgrades-bug-bounty-specs": "Lire toutes les spécifications", + "page-upgrades-bug-bounty-slogan": "Programme de prime aux bogues", + "page-upgrades-bug-bounty-specs": "Spécifications de la couche de consensus", + "page-upgrades-bug-bounty-execution-specs": "Spécifications de la couche d'exécution", "page-upgrades-bug-bounty-specs-docs": "Documents de spécification", "page-upgrades-bug-bounty-submit": "Soumettre un bogue", - "page-upgrades-bug-bounty-submit-desc": "Pour chaque bogue que vous touverez vous serez récompensés par des points. Les points que vous gagnez dépendent de la gravité du bogue. Les bogues Lodestar sont actuellement récompensés par 10 % des points énumérés ci-dessous, car des audits supplémentaires sont en cours d'être achevés. L'Ethereum Foundation (EF) détermine la gravité en utilisant la méthode OWASP.", - "page-upgrades-bug-bounty-subtitle": "Gagnez jusqu'à 50 000 USD et une place dans le classement en trouvant des bogues dans le protocole Eth2 et dans le client.", + "page-upgrades-bug-bounty-submit-desc": "Pour chaque bogue valide que vous trouverez vous gagnerez des récompenses. La quantité de récompenses gagnées varie selon son importance. La gravité est calculée selon le modèle d'évaluation des risques OWASP basé sur l'impact sur le réseau Ethereum et la probabilité.", + "page-upgrades-bug-bounty-subtitle": "Gagnez jusqu'à 250 000 $ US, ainsi qu'une place sur le classement en identifiant des erreurs de protocole, de client et sur Solidity qui affectent le réseau Ethereum.", "page-upgrades-bug-bounty-title": "Ouvert pour soumissions", "page-upgrades-bug-bounty-title-1": "Chaîne phare", "page-upgrades-bug-bounty-title-2": "Choix de fourche", "page-upgrades-bug-bounty-title-3": "Contrat de dépôt Solidity", "page-upgrades-bug-bounty-title-4": "Réseau P2P", - "page-upgrades-bug-bounty-type-1": "Bogues de sécurité/détournant la finalité", + "page-upgrades-bug-bounty-type-1": "Bogues de sécurité/détournant la finalisation", "page-upgrades-bug-bounty-type-2": "Vecteurs de déni de service (DOS)", - "page-upgrades-bug-bounty-type-3": "Les incohérences dans Les hypothèses, comme Les situations où des validateurs honnêtes peuvent être coupés", + "page-upgrades-bug-bounty-type-3": "Les suppositions incohérentes, comme les situations où des validateurs honnêtes peuvent se faire exclure", "page-upgrades-bug-bounty-type-4": "Incohérences de calcul ou de paramètre", "page-upgrades-bug-bounty-types": "Types de bogues", - "page-upgrades-bug-bounty-validity": "Bogues valides", - "page-upgrades-bug-bounty-validity-desc": "Ce programme de primes de bogue est axé sur la recherche de bogue dans la spécification de la chaîne phare de la couche de consensus et les implémentations des clients LightHouse, Nimbus, Teku et Prysm.", + "page-upgrades-bug-bounty-validity": "Dans le champ d'application", + "page-upgrades-bug-bounty-validity-desc": "Notre programme de traitement des bugs s'intéresse à tous les domaines : de la solidité des protocoles (comme le modèle de consensus de la blockchain, les relations entre les protocoles p2p, la preuve de travail, la preuve d'enjeu, etc.), comme à la conformité des protocoles/implémentations, ou encore la sécurité du réseau et l'intégrité du consensus. La sécurité classique des clients ainsi que la sécurité des cryptographies primitives font également partie du programme. En cas de doute, envoyez un e-mail à bounty@ethereum.org et demandez-nous.", "page-upgrades-bug-bounty-card-critical": "Critique", "page-upgrades-bug-bounty-card-critical-risk": "Soumettre un bogue à risque critique", "page-upgrades-bug-bounty-card-h2": "Modéré", "page-upgrades-bug-bounty-card-high": "Élevé", "page-upgrades-bug-bounty-card-high-risk": "Soumettre un bogue à risque élevé", "page-upgrades-bug-bounty-card-label-1": "Jusqu'à 1 000 points", - "page-upgrades-bug-bounty-card-label-2": "Jusqu'à 2 000 DAI", + "page-upgrades-bug-bounty-card-label-2": "Jusqu'à 2.000 USD", "page-upgrades-bug-bounty-card-label-3": "Jusqu'à 5 000 points", - "page-upgrades-bug-bounty-card-label-4": "Jusqu'à 10 000 DAI", + "page-upgrades-bug-bounty-card-label-4": "Jusqu'à 10.000 USD", "page-upgrades-bug-bounty-card-label-5": "Jusqu'à 10 000 points", - "page-upgrades-bug-bounty-card-label-6": "Jusqu'à 20 000 DAI", + "page-upgrades-bug-bounty-card-label-6": "Jusqu'à 50.000 USD", "page-upgrades-bug-bounty-card-label-7": "Jusqu'à 25 000 points", - "page-upgrades-bug-bounty-card-label-8": "Jusqu'à 50 000 DAI", + "page-upgrades-bug-bounty-card-label-8": "Jusqu'à 250.000 USD", "page-upgrades-bug-bounty-card-li-1": "Faible impact, probabilité moyenne", "page-upgrades-bug-bounty-card-li-2": "Impact modéré, probabilité faible", "page-upgrades-bug-bounty-card-li-3": "Impact élevé, probabilité faible", @@ -91,5 +98,5 @@ "page-upgrades-bug-bounty-card-text": "Les attaquants peuvent parfois mettre un nœud dans un état qui l'amène à ne pas traiter une attestation sur cent faite par un validateur", "page-upgrades-bug-bounty-card-text-1": "L'attaquant peut mener avec succès des attaques éclairs sur des nœuds avec des identifiants de pairs commençant par 4 octets zéros", "page-upgrades-bug-bounty-card-text-2": "Il existe un bogue dans le consensus entre 2 clients, mais c'est difficile ou presque impossible pour un attaquant de le déclencher.", - "page-upgrades-bug-bounty-card-text-3": "Il existe un bogue de consensus entre deux clients, et il est facile pour un attaquant de déclencher l'événement." + "page-upgrades-bug-bounty-card-text-3": "Il existe une exécution de code à distance pour un client majoritaire, et il est trivial pour un attaquant de déclencher la vulnérabilité." } diff --git a/src/intl/fr/page-upgrades-get-involved.json b/src/intl/fr/page-upgrades-get-involved.json index d8aec5d9220..22ce83bc0af 100644 --- a/src/intl/fr/page-upgrades-get-involved.json +++ b/src/intl/fr/page-upgrades-get-involved.json @@ -25,10 +25,13 @@ "page-upgrades-get-involved-join-desc": "Comme c'est souvent le cas avec Ethereum, la plupart des recherches effectuées sont publiques. Cela signifie que vous pouvez prendre part aux discussions ou simplement lire ce que les chercheurs d'Ethereum ont à dire. ethresear.ch couvre un grand nombre de sujets, y compris les mises à niveau du consensus, la fragmentation, les rollups et bien plus encore.", "page-upgrades-get-involved-meta-description": "Comment participeraux mises à niveau d'Ethereum : opérer des nœuds, mettez en jeu, débusquez des bogues, et bien plus encore.", "page-upgrades-get-involved-more": "Plus d'infos", - "page-upgrades-get-involved-run-clients": "Exécuter un client de consensus", - "page-upgrades-get-involved-run-clients-desc": "La clé de la sécurité à long terme d'Ethereum est une distribution solide des logiciels clients. Un logiciel client est un logiciel qui opère la blockchain, vérifie les transactions et crée de nouveaux blocs. Chaque client a ses propres caractéristiques, alors choisissez en fonction de ce qui vous convient le mieux.", - "page-upgrades-get-involved-run-clients-desc-2": "Ces clients étaient auparavant appelés clients « Eth2 », mais ce terme est déprécié en faveur de \"clients de la couche de consensus\"", - "page-upgrades-get-involved-run-clients-production": "Clients du consensus de production", + "page-upgrades-get-involved-run-clients": "Exécuter une paire de clients", + "page-upgrades-get-involved-run-clients-desc": "Un 'client' est un logiciel qui exécute la blockchain, et dans le cas d'Ethereum, un noeud complet nécessite l'exécution d'une paire de ces clients : un client de couche d'exécution et un client de couche de consensus. Un nœud complet peut vérifier les transactions et, si vous mettez également des ETH en jeu, peut créer de nouveaux blocs. Chaque client a ses propres caractéristiques, mais exécute la même fonction dans l'ensemble, donc nous vous encourageons à choisir un client minoritaire dans la mesure du possible pour que le pool de clients soit diversifié et sécurisé.", + "page-upgrades-get-involved-run-clients-desc-link": "En savoir plus sur la diversité des clients.", + "page-upgrades-get-involved-run-clients-execution": "Clients de la couche d'exécution", + "page-upgrades-get-involved-run-clients-execution-desc": "Ces clients étaient auparavant appelés clients 'Eth1', mais ce terme est devenu obsolète et l'expression clients 'de couche d'exécution' lui a été préféré.", + "page-upgrades-get-involved-run-clients-consensus": "Clients de la couche de consensus", + "page-upgrades-get-involved-run-clients-consensus-desc": "Ces clients étaient auparavant appelés clients « Eth2 », mais ce terme est devenu obsolète et l'expression clients « de la couche de consensus » lui a été préféré.", "page-upgrades-get-involved-run-clients-experimental": "Clients de consensus expérimental", "page-upgrades-get-involved-stake": "Mettre en jeu vos ETH", "page-upgrades-get-involved-stake-desc": "Vous pouvez dès à présent miser vos ETH pour contribuer à la sécurisation de la chaîne phare.", @@ -37,6 +40,7 @@ "page-upgrades-get-involved-title-1": "Exécuter un client", "page-upgrades-get-involved-title-2": "Mettre en jeu vos ETH", "page-upgrades-get-involved-title-3": "Trouver des bogues", + "page-upgrades-get-involved-written-c-sharp": "Écrit en C#", "page-upgrades-get-involved-written-go": "Écrit en Go", "page-upgrades-get-involved-written-java": "Écrit en Java", "page-upgrades-get-involved-written-javascript": "Écrit en JavaScript", diff --git a/src/intl/fr/page-upgrades-index.json b/src/intl/fr/page-upgrades-index.json index a4ac4539d35..745336656bf 100644 --- a/src/intl/fr/page-upgrades-index.json +++ b/src/intl/fr/page-upgrades-index.json @@ -1,53 +1,41 @@ { + "consensus-client-besu-logo-alt": "Logo Besu", + "consensus-client-erigon-logo-alt": "Logo Erigon", + "consensus-client-geth-logo-alt": "Logo Geth", "consensus-client-lighthouse-logo-alt": "Logo Lighthouse", "consensus-client-lodestar-logo-alt": "Logo Lodestar", + "consensus-client-nethermind-logo-alt": "Logo Nethermind", "consensus-client-nimbus-logo-alt": "Logo de Nimbus", "consensus-client-prysm-logo-alt": "Logo Prysm", "consensus-client-teku-logo-alt": "Logo Teku", "consensus-client-under-review": "Revue et audit en cours", - "page-upgrades-answer-1": "Voyez les changements en cours de déploiement comme un ensemble de mises à niveau qui sont ajoutées pour améliorer l'Ethereum que nous utilisons aujourd'hui. Ces mises à niveau ont inclu la création d'une nouvelle chaîne appelée la chaîne phare, et introduiront de nouvelles chaînes appelées « fragments » dans le futur.", - "page-upgrades-answer-2": "Certaines mises à niveau sont distinctes du réseau principal d'Ethereum que nous utilisons à ce jour, mais elles le remplaceront pas. Au lieu de cela, le réseau principal sera fusionné avec ce système parallèle qui est ajouté progressivement.", + "page-upgrades-answer-1": "Considérez les changements apportés comme une série de mises à niveau destinées à améliorer l'Ethereum que nous utilisons aujourd'hui. Ces mises à jour comprennent la création d'une nouvelle chaîne appelée Beacon Chain (ou chaîne phare), qui servira bientôt de moteur de consensus pour l'ensemble du réseau.", + "page-upgrades-answer-2": "Bien que la Chaîne phare a débuté en tant que chaîne distincte, le réseau principal existant sera « fusionné » avec cette nouvelle couche de consensus de la preuve d'enjeu.", "page-upgrades-answer-4": "En d'autres termes, le réseau Ethereum que nous utilisons aujourd'hui finira par posséder toutes les fonctionnalités que l'on souhaite avoir au sein d'Ethereum.", "page-upgrade-article-title-two-point-oh": "Deux Point Oh : la chaîne phare", "page-upgrade-article-title-beacon-chain-explainer": "Explicatifs que vous devez d'abord lire concernant la chaîne phare d'Ethereum 2.0", "page-upgrade-article-title-sharding-consensus": "Consensus de fragmentation", "page-upgrade-article-author-ethereum-foundation": "Ethereum Foundation", + "page-upgrade-article-author-vitalik-buterin": "Vitalik Buterin", + "page-upgrade-article-author-ethos-dev": "Ethos.dev", + "page-upgrade-article-author-delphi-digital": "Delphi Digital", "page-upgrade-article-title-sharding-is-great": "Pourquoi la fragmentation est une bonne chose : démystification des propriétés technique", "page-upgrade-article-title-rollup-roadmap": "Une feuille de route axé sur le regroupement", + "page-upgrade-article-title-hitchhikers-guide-to-ethereum": "Le Guide des randonneurs sur Ethereum", "page-upgrades-beacon-chain-btn": "En savoir plus sur la chaîne phare", "page-upgrades-beacon-chain-date": "La chaîne phare a été mise en service le 1er décembre 2020.", - "page-upgrades-beacon-chain-desc": "La chaîne phare a amené le piégeage sur Ethereum, a jeté les bases de futures mises à jour et coordonnera éventuellement le nouveau système.", + "page-upgrades-beacon-chain-desc": "La Beacon Chain (chaîne phare) a apporté le staking à Ethereum, a posé les bases des futures mises à niveau, et coordonnera bientôt le nouveau système.", "page-upgrades-beacon-chain-estimate": "La chaîne phare est active", "page-upgrades-beacon-chain-title": "La chaîne phare", "page-upgrades-bug-bounty": "Voir le programme de primes au bogue", "page-upgrades-clients": "Découvrez les clients de consensus (précédemment appelés clients « d'Eth2 »)", "page-staking-deposit-contract-title": "Vérifiez l'adresse du contrat de dépôt", - "page-upgrades-diagram-ethereum-mainnet": "Réseau principal Ethereum", - "page-upgrades-diagram-h2": "Comment les mises à niveau s'intègrent", - "page-upgrades-diagram-link-1": "En savoir plus sur la preuve de travail", - "page-upgrades-diagram-link-2": "En savoir plus sur les chaînes de fragments", - "page-upgrades-diagram-mainnet": "Réseau principal", - "page-upgrades-diagram-p": "Le réseau principal d'Ethereum continuera à exister sous sa forme actuelle pendant un certain temps. Cela signifie que les mises à niveau de la chaîne phare et des fragments ne perturberont pas le réseau.", - "page-upgrades-diagram-p-1": "Le réseau principal fusionnera avec le nouveau système introduit par les mises à niveau de la chaîne phare.", - "page-upgrades-diagram-p-2": "La chaîne phare guidera Ethereum, coordonnera les validateurs et donnera le rythme pour la création des blocs.", - "page-upgrades-diagram-p-3": "Au début, il existera séparément du réseau principal et gérera les validateurs. Cela n'impactera pas les contrats intelligents, les transactions ou les comptes.", - "page-upgrades-diagram-p-4": "Les fragments fourniront un grand nombre de données supplémentaires pour aider à augmenter le nombre de transactions que le réseau principal peut traiter. Ils seront coordonnés par la chaîne phare.", - "page-upgrades-diagram-p-5": "Mais toutes les transactions reposeront toujours sur le réseau principal, qui continuera d'exister tel que nous le connaissons aujourd'hui, sécurisé par la preuve de travail et les mineurs.", - "page-upgrades-diagram-p-6": "Le réseau principal fusionnera avec le système de preuve d'enjeu, coordonné par la chaîne phare.", - "page-upgrades-diagram-p-8": "Cela transformera le réseau principal en un fragment dans le nouveau système. Les mineurs ne seront plus nécessaires car l'ensemble d'Ethereum sera sécurisé par des validateurs.", - "page-upgrades-diagram-p10": "L'évolutivité d'Ethereum n'est pas une migration ni une seule chose. Il correspond à un ensemble de mises à niveau en cours d'élaboration pour libérer le véritable potentiel d'Ethereum. C'est ainsi qu'elles s'intègrent toutes.", - "page-upgrades-diagram-scroll": "Faites défiler pour explorer - touchez pour plus d'informations.", - "page-upgrades-diagram-shard": "Fragment (1)", - "page-upgrades-diagram-shard-1": "Fragment (...)", - "page-upgrades-diagram-shard-2": "Fragment (2)", - "page-upgrades-diagram-shard-3": "Fragment (...)", - "page-upgrades-diagram-validators": "En savoir plus sur les validateurs", "page-upgrades-dive": "Plongez dans la vision", "page-upgrades-dive-desc": "Comment allons-nous rendre Ethereum plus évolutif, plus sûr et plus durable ? Tout en gardant l'éthique de base de la décentralisation d'Ethereum.", "page-upgrades-docking": "La fusion", - "page-upgrades-merge-answer-1": "La fusion désigne le moment où le réseau principal commencera à utiliser la chaîne phare pour assurer le consensus et que la preuve travail sera désactivée, au cours de l'année 2022.", + "page-upgrades-merge-answer-1": "La Fusion est le moment où le réseau principal commencera à utiliser la chaîne phare pour le consensus, et où la preuve de travail sera désactivée, prochainement.", "page-upgrades-merge-btn": "Plus d'informations sur la fusion", - "page-upgrades-merge-desc": "Le réseau principal Ethereum devra « fusionner » avec la chaîne phare à un moment donné. Cela permettra d'activer la possibilité de miser sur l'ensemble du réseau et signalera la fin du minage, gourmand en énergie.", + "page-upgrades-merge-desc": "Le réseau principal Ethereum va bientôt « fusionner » avec la chaîne phare de preuve d'enjeu, ce qui marquera la fin de l'activité de minage à forte intensité énergétique.", "page-upgrades-merge-estimate": "Estimation : 2022", "page-upgrades-merge-mainnet": "Qu'est-ce que le réseau principal ?", "page-upgrades-merge-mainnet-eth2": "Fusionnement du réseau principal et de la chaîne phare", @@ -56,12 +44,12 @@ "page-upgrades-get-involved": "Participez à la mise à niveau d'Ethereum", "page-upgrades-get-involved-2": "S'impliquer", "page-upgrades-head-to": "Rendez-vous sur", - "page-upgrades-help": "Souhaitez-vous aider à mettre à niveau Ethereum ?", + "page-upgrades-help": "Souhaitez-vous aider à mettre à niveau Ethereum ?", "page-upgrades-help-desc": "Il existe de nombreuses opportunités pour participer aux mises à niveau d'Ethereum, aider à réaliser des tests, et même gagner des récompenses.", "page-upgrades-index-staking": "La mise en jeu est ouverte", "page-upgrades-index-staking-desc": "La clé des mises à niveau d'Ethereum est l'introduction de la mise en jeu. Si vous voulez utiliser votre ETH pour aider à sécuriser le réseau Ethereum, assurez-vous de suivre ces étapes.", "page-upgrades-index-staking-learn": "En savoir plus sur la mise en jeu", - "page-upgrades-index-staking-learn-desc": "La chaîne phare apportera la fonctionnalité de mise en jeu à Ethereum. Cela signifie que si vous avez des ETH, vous pouvez contribuer à l'intérêt général en sécurisant le réseau et gagner plus d'ETH par la même occasion.", + "page-upgrades-index-staking-learn-desc": "La chaîne phare apportera la fonctionnalité de staking à Ethereum. Cela signifie que si vous avez des ETH, vous pouvez contribuer à l'intérêt général en sécurisant le réseau et gagner plus d'ETH par la même occasion.", "page-upgrades-index-staking-step-1": "1. Configuration avec la plateforme de lancement", "page-upgrades-index-staking-step-1-btn": "Visitez la plateforme de lancement de mise en jeu", "page-upgrades-index-staking-step-1-desc": "Pour mettre en jeu des fonds dans Ethereum, vous devrez utiliser la plateforme de lancement. Il vous guidera tout au long du processus.", @@ -69,40 +57,41 @@ "page-upgrades-index-staking-step-2-btn": "Confirmer l'adresse du contrat de dépôt", "page-upgrades-index-staking-step-2-desc": "Avant de mettre vos ETH en jeu, vérifiez que vous avez la bonne adresse. Vous devez avoir parcouru la documentation de la plateforme de lancement avant de vous lancer.", "page-upgrades-index-staking-sustainability": "Plus durable", - "page-upgrades-just-docking": "Plus d'informations sur la fusion", "page-upgrades-meta-desc": "Un aperçu des mises à niveau d'Ethereum et de la vision qu'elles espèrent concrétiser.", "page-upgrades-meta-title": "Mises à niveau d'Ethereum (anciennement 'Eth2')", - "page-upgrades-miners": "En savoir plus sur les mineurs", - "page-upgrades-more-on-upgrades": "En savoir plus sur les mises à niveau d'Ethereum", "page-upgrades-proof-of-stake": "preuve d'enjeu", "page-upgrades-proof-of-work": "preuve de travail", "page-upgrades-proof-stake-link": "Plus d'infos sur la preuve d'enjeu", - "page-upgrades-question-1-title": "Quand les mises à niveau seront-elles implémentées ?", + "page-upgrades-question-1-title": "Quand les mises à niveau seront-elles implémentées ?", "page-upgrades-question-1-desc": "Ethereum sera mis à jour progressivement ; les mises à jour s'effectueront séparément.", "page-upgrades-question-2-title": "La chaîne phare est-elle une blockchain distincte ?", - "page-upgrades-question-2-desc": "Il n'est pas exact de considérer ces mises à niveau comme une blockchain distincte.", - "page-upgrades-question-3-answer-2": "Les mises à jour de la chaîne de fragments et de la fusion peuvent impacter les développeurs d'applications décentralisées (Decentralized applications, dApps). Mais les spécifications n'ont pas encore été finalisées, donc aucune action immédiate n'est requise.", - "page-upgrades-question-3-answer-3": "Parlez à l'équipe de recherche et développement Ethereum sur ethresear.ch.", + "page-upgrades-question-2-desc": "Il n'est pas exact de considérer cette mise à niveau comme une blockchain séparée.", + "page-upgrades-question-3-answer-2a": "Les spécifications de la Fusion ont été finalisées, et sont conçues pour avoir un impact minimal sur les développeurs de dApps.", + "page-upgrades-question-3-answer-2a-link": "La Fusion et les développeurs de dApps", + "page-upgrades-question-3-answer-2b": "Les plans de fragmentation sont encore en cours d'élaboration, mais ils seront conçus en tenant compte des rollups de couche 2.", + "page-upgrades-layer-2-rollups": "En savoir plus sur les rollups de Couche 2", "page-upgrades-question-3-answer-3-link": "Visitez ethresear.ch", "page-upgrades-question-3-desc": "Vous n'avez rien à faire pour le moment pour vous préparer aux mises à niveau.", "page-upgrades-question-3-title": "Comment se préparer pour les mises à niveau ?", - "page-upgrades-question-4-answer-1": "Chaque fois que vous envoyez une transaction ou utilisez une dApp aujourd'hui, vous utilisez la couche d'exécution, aussi appelée Mainnet. Voilà l'Ethereum qui est sécurisé par les mineurs.", + "page-upgrades-question-4-answer-1": "Aujourd'hui, chaque fois que vous envoyez une transaction ou que vous utilisez un dApp, vous utilisez la couche d'exécution, également connue sous le nom de réseau principal.", "page-upgrades-question-4-answer-2": "Mainnet continuera d'opérer normalement jusqu'à la fusion.", "page-upgrades-question-4-answer-3": "Après la fusion, les validateurs sécuriseront le réseau entier via la preuve d'enjeu.", "page-upgrades-question-4-answer-6": "N'importe qui peut devenir validateur en mettant en jeu son ETH.", "page-upgrades-question-4-answer-7": "Plus d'infos sur la mise en jeu", - "page-upgrades-question-4-answer-8": "Les mises à niveau de la chaîne phare et de la chaîne de fragments ne perturberont pas la couche d'exécution (Mainnet) car elles sont construites séparément.", + "page-upgrades-question-4-answer-8": "Les mises à niveau de la chaîne phare et de la fragmentation ne perturberont pas la couche d'exécution (réseau principal), car elles sont réalisées séparément.", "page-upgrades-question-4-title": "Qu'est-ce que la couche d'exécution ?", "page-upgrades-question-4-desc": "Le réseau principal d'Ethereum qui sert actuellement à vos transactions était précédemment nommé « Eth ». Ce terme va être progressivement remplacé par « couche d'exécution ».", "page-upgrades-question-5-answer-1": "Pour devenir un validateur à part entière sur le réseau, vous devrez miser 32 ETH. Si vous n'avez pas assez d'ETH, ou si vous ne voulez pas en mettre autant en jeu, vous pouvez vous joindre à des groupes d'enjeux. Ces groupes vous permettront de miser une fraction de la somme, et donc de gagner une fraction de la récompense totale.", "page-upgrades-question-5-desc": "Vous devrez utiliser la plateforme de lancement de mise en jeu ou rejoindre un groupe d'enjeux.", "page-upgrades-question-5-title": "Comment puis-je mettre en jeu ?", - "page-upgrades-question-6-answer-1": "Pour l'instant, il n'y a aucune action à prendre. Mais nous vous recommandons de rester au courant des développements sur les mises à jour de la fusion et de la chaîne de fragments.", "page-upgrades-question-6-answer-3": "Danny Ryan, de l'Ethereum Foundation, met régulièrement à jour la communauté:", "page-upgrades-question-6-answer-4": "Ben Edgington de ConsenSys envoie une newsletter hebdomadaire sur les mises à jour d'Ethereum :", "page-upgrades-question-6-answer-5": "Vous pouvez également vous joindre à la discussion sur la recherche et le développement Ethereum sur ethresear.ch.", - "page-upgrades-question-6-desc": "Votre dApp ne sera pas affectée par les mises à jour imminentes. Cependant, les futures mises à jour peuvent nécessiter quelques modifications.", - "page-upgrades-question-6-title": "Que dois-je faire avec mon dApp ?", + "page-upgrades-question-6-title": "Que dois-je faire avec ma dApp ?", + "page-upgrades-question-6-desc": "La Fusion a été conçue dans le but de minimiser l'impact sur les développeurs de dApps, mais il y a quelques points à noter.", + "page-upgrades-question-6-answer-1": "Quelques changements apportés par la Fusion peuvent avoir un impact sur certains types d'applications. Ces changements concernent la structure et la synchronisation des blocs, quelques modifications des opcodes, les sources d'aléa en chaîne et le concept de finalisation de la période (epoch).", + "page-upgrades-question-6-answer-1-link": "Comment la Fusion affecte la couche d'application d'Ethereum", + "page-upgrades-question-6-answer-2": "La plupart des applications ne seront pas affectées, mais nous recommandons aux développeurs de se tenir au courant des dernières nouveautés de la Fusion.", "page-upgrades-question-7-desc": "De nombreuses équipes de toute la communauté travaillent sur les différentes mises à niveau d'Ethereum.", "page-upgrades-question-7-lighthouse": "Lighthouse", "page-upgrades-question-7-lighthouse-lang": "(Implémentation Rust)", @@ -119,7 +108,7 @@ "page-upgrades-question-7-clients": "En savoir plus sur les clients Ethereum", "page-upgrades-question-8-answer-1": "Les mises à niveau d'Ethereum aideront Ethereum à évoluer de manière décentralisée, tout en maintenant la sécurité et en augmentant la durabilité.", "page-upgrades-question-8-answer-2": "Le problème le plus évident est sûrement le fait qu'Ethereum doive pouvoir gérer plus de 15 à 45 transactions par seconde. Mais les mises à niveau visent également à corriger d'autres problèmes sur Ethereum aujourd'hui.", - "page-upgrades-question-8-answer-3": "Le réseau est tellement exigeant qu'il rend Ethereum coûteux. Les nœuds du réseau sont en difficulté sous la taille d'Ethereum et la quantité de données que leur ordinateur doit traiter. Et l'algorithme sous-jacent qui maintient Ethereum sûr et décentralisé est énergivore et doit être plus écologique.", + "page-upgrades-question-8-answer-3": "Le réseau est tellement exigeant qu'il rend l'Ethereum cher à utiliser. Les nœuds du réseau doivent supporter la taille de l'Ethereum et la quantité de données que leurs ordinateurs doivent traiter. L'algorithme sous-jacent qui sous-tend la sécurité et la décentralisation d'Ethereum est gourmand en énergie et doit être plus écologique.", "page-upgrades-question-8-answer-4": "Beaucoup de changements ont toujours été sur la feuille de route d'Ethereum, même depuis 2015. Mais les conditions actuelles rendent les mises à niveau encore plus nécessaires.", "page-upgrades-question-8-answer-6": "Découvrez la vision d'Ethereum", "page-upgrades-question-8-desc": "L'Ethereum que nous utilisons aujourd'hui doit offrir une meilleure expérience aux utilisateurs et participants du réseau.", @@ -140,8 +129,8 @@ "page-upgrades-question-10-answer-2": "Mais si vous avez suivi les discussions, voici comment les mises à niveau s'intègrent à nos feuilles de route techniques, et comment elles évoluent.", "page-upgrades-question-10-answer-3": "La phase 0 décrit les travaux pour rendre la chaîne phare opérationnelle.", "page-upgrades-question-10-answer-5": "La phase 1 se concentrait à l'origine sur la mise en œuvre des chaînes de fragments, mais la priorité a été déplacée vers la « fusion », qui est la prochaine mise à jour planifiée.", - "page-upgrades-question-10-answer-6": "La phase 1.5 était initialement prévue pour suivre les implémentations de fragments, lorsque le réseau principal serait ajouté en tant que dernier fragment de la chaîne phare. Pour accélérer la transition de l'exploitation minière, le réseau principal représentera à la place le premier fragment à se connecter à la chaîne phare. C'est maintenant connu sous le nom de « fusion » et constituera un pas important vers un Ethereum plus vert.", - "page-upgrades-question-10-answer-7": "Bien que les plans autour de la phase 2 aient été un point de recherche et de discussion intenses, avec la fusion prévue avant les chaînes de fragments, ceci permettra de poursuivre la réévaluation des besoins du développement d'Ethereum. Face à une feuille de route axée sur le regroupement (rollup), la nécessité immédiate de chaînes de fragments est discutable.", + "page-upgrades-question-10-answer-6": "La phase 1.5 était initialement prévue pour suivre les implémentations de fragments lorsque le réseau principal serait ajouté comme dernier fragment à la chaîne phare. Cependant, au fur et à mesure que la technologie rollup a progressé, la communauté Ethereum a accéléré la transition vers l'abandon de la preuve de travail. Le réseau principal sera plutôt « fusionné » dans la chaîne phare et restera la couche d'exécution d'Ethereum. Il s'agit d'une étape importante vers un Ethereum plus écologique.", + "page-upgrades-question-10-answer-7": "Les plans de la phase 2 ont fait l'objet de recherches et de discussions intenses. La Fusion ayant été planifiée avant la fragmentation et les progrès des solutions de couche 2, les objectifs ont changé pour fournir une forme plus simplifiée de fragmentation des données afin de maximiser l'efficacité des rollups. Les couches 2 actuelles permettent d'échelonner l'exécution des transactions, et la fragmentation permettra de stocker les preuves de ces données sur la couche 1 d'une manière bon marché et évolutive.", "page-upgrades-question-10-answer-8": "En savoir plus sur une feuille de route axée sur le regroupement", "page-upgrades-question-11-title": "Puis-je acheter de l'Eth2 ?", "page-upgrades-question-11-desc": "Non. Il n'existe pas de jeton Eth2 et vos ETH ne changeront pas après La Fusion.", @@ -154,11 +143,11 @@ "page-upgrades-secure": "Plus sécurisé", "page-upgrades-secure-desc": "L'Ethereum doit être plus sécurisé. À mesure que l'adoption d'Ethereum s'intensifie, le protocole doit être plus sécurisé contre toutes les formes d'attaque.", "page-upgrades-shard-button": "En savoir plus sur les chaînes de fragments", - "page-upgrades-shard-date": "Les chaînes de fragments devraient suivre la fusion, vers 2023.", - "page-upgrades-shard-desc": "Les chaînes de fragments augmenteront la capacité d'Ethereum à traiter les transactions et à stocker les données. Les fragments eux-mêmes gagneront plus de fonctionnalités au fil du temps, en plusieurs phases.", - "page-upgrades-shard-estimate": "Estimation : 2023", - "page-upgrades-shard-lower": "En savoir plus sur les chaînes de fragments", - "page-upgrades-shard-title": "Chaînes fragment", + "page-upgrades-shard-date": "La fragmentation suivra la Fusion en plusieurs phases, au cours des années 2023-2024.", + "page-upgrades-shard-desc": "La fragmentation augmentera la capacité d'Ethereum à stocker des données et fonctionnera harmonieusement avec les L2 pour augmenter le débit et réduire les frais de réseau. La fragmentation sera déployée en plusieurs étapes.", + "page-upgrades-shard-estimate": "Estimation : 2023-2024", + "page-upgrades-shard-lower": "En savoir plus sur la fragmentation", + "page-upgrades-shard-title": "Fragmentation", "page-upgrades-stay-up-to-date": "Restez à jour", "page-upgrades-stay-up-to-date-desc": "Obtenez les dernières informations des chercheurs et des développeurs travaillant sur les mises à niveau d'Ethereum.", "page-upgrades-sustainable-desc": "L'Ethereum doit être meilleur pour l'environnement. La technologie actuelle nécessite trop d'énergie et d'énergie informatique.", @@ -171,14 +160,16 @@ "page-upgrades-upgrades": "Les mises à niveau d'Ethereum", "page-upgrades-upgrades-aria-label": "Menu des mises à niveau d'Ethereum", "page-upgrades-upgrades-beacon-chain": "La chaîne phare", - "page-upgrades-upgrades-docking": "La fusion", "page-upgrades-upgrades-guide": "Guide des mises à niveau d'Ethereum", + "page-upgrades-upgrades-docking": "La fusion", + "page-upgrades-energy-consumption": "En savoir plus sur la consommation énergétique d'Ethereum", + "page-upgrades-upgrades-shard-chains": "Les chaînes de fragments", "page-upgrades-upgrading": "Mise à niveau d'Ethereum vers de nouveaux sommets", "page-upgrades-vision": "Notre vision", "page-upgrades-vision-btn": "En savoir plus sur la vision d'Ethereum", "page-upgrades-vision-desc": "Pour intégrer Ethereum dans le courant général et servir toute l'humanité, nous devons rendre Ethereum plus évolutif, plus sécuritaire et plus durable.", "page-upgrades-vision-upper": "La vision d'Ethereum", - "page-upgrades-what-happened-to-eth2-title": "Qu'est-il arrivé à « Eth2 » ?", + "page-upgrades-what-happened-to-eth2-title": "Qu'est-il arrivé à « Eth2 » ?", "page-upgrades-what-happened-to-eth2-1": "Le terme « Eth2 » est progressivement supprimé en préparation de la fusion.", "page-upgrades-what-happened-to-eth2-1-more": "En savoir plus sur la fusion.", "page-upgrades-what-happened-to-eth2-2": "Après avoir fusionné « Eth1 » et « Eth2 » en une seule chaîne, il n'y aura plus deux réseaux Ethereum distincts ; il n'y aura qu'Ethereum.", diff --git a/src/intl/fr/page-upgrades-vision.json b/src/intl/fr/page-upgrades-vision.json index b468407b0d2..5878754433d 100644 --- a/src/intl/fr/page-upgrades-vision.json +++ b/src/intl/fr/page-upgrades-vision.json @@ -1,17 +1,11 @@ { - "page-upgrades-vision-2014": "Voir un article de blog 2014 détaillant la preuve d'enjeu", + "page-upgrades-vision-2014": "Voir un article de blog datant 2014 détaillant la preuve d'enjeu", "page-upgrades-vision-2021": "Voir un article de blog 2021 sur l'évolution de la feuille de route Ethereum", + "page-upgrades-vision-2022": "Voir un billet de blog de 2022 : Le Guide des Autostoppeurs sur Ethereum", "page-upgrades-vision-2021-updates": "Voir un article d'un blog de 2021 sur les mises à jour du protocole Ethereum", - "page-upgrades-vision-beacon-chain": "La chaîne phare", - "page-upgrades-vision-beacon-chain-btn": "En savoir plus sur la chaîne phare", - "page-upgrades-vision-beacon-chain-date": "La chaîne phare est active", - "page-upgrades-vision-beacon-chain-desc": "La chaîne phare a amené la mise en jeu à Ethereum, a jeté les bases de futures mises à niveau et coordonnera éventuellement le nouveau système.", - "page-upgrades-vision-beacon-chain-upper": "Chaîne phare", "page-upgrades-vision-desc-1": "Ethereum a besoin de réduire la congestion du réseau et d'améliorer les vitesses pour mieux servir une base d'utilisateurs mondiale.", "page-upgrades-vision-desc-2": "Exécuter un nœud devient plus difficile au fur et à mesure que le réseau grandit. Cela sera encore plus difficile avec les efforts de mise à l'échelle du réseau.", "page-upgrades-vision-desc-3": "Ethereum consomme trop d'électricité. La technologie qui maintient la sécurité du réseau doit être plus durable.", - "page-upgrades-vision-merge-date": "Estimation : 2022", - "page-upgrades-vision-merge-desc": "Le réseau principal Ethereum devra « fusionner » avec la chaîne phare à un moment donné. Cela permettra d'activer la mise pour l'ensemble du réseau et de signaler la fin des mines à forte intensité énergétique.", "page-upgrades-vision-ethereum-node": "En savoir plus sur les nœuds", "page-upgrades-vision-explore-upgrades": "Explorez les mises à niveau", "page-upgrades-vision-future": "Un avenir numérique à l'échelle mondiale", @@ -21,48 +15,45 @@ "page-upgrades-vision-problems": "Problèmes actuels", "page-upgrades-vision-scalability": "Évolutivité", "page-upgrades-vision-scalability-desc": "Ethereum doit pouvoir gérer plus de transactions par seconde sans augmenter la taille des nœuds du réseau. Les nœuds sont des acteurs vitaux au réseau qui stockent et exécutent la blockchain. L'augmentation de la taille des nœuds n'est pas pratique car seuls ceux qui disposent d'ordinateurs puissants et coûteux pourraient le faire. Pour évoluer, Ethereum a besoin d'exécuter plus de transactions par seconde, couplé à plus de nœuds. Plus de nœuds signifie plus de sécurité.", - "page-upgrades-vision-scalability-desc-3": "La mise à niveaus des chaînes de fragments répartira la charge du réseau en 64 nouvelles chaînes. Cela permettra à Ethereum de respirer en réduisant la congestion et en améliorant les vitesses au-delà de la limite actuelle de 15 à 45 transactions par seconde.", - "page-upgrades-vision-scalability-desc-4": "Et même s'il y avait plus de chaînes, cela nécessiterait en fait moins de travail de la part des validateurs - les « responsables du réseau ». Les validateurs n'auront besoin que de traiter leur fragment et non toute la chaîne Ethereum. Cela rend les nœuds plus légers, permettant à Ethereum d'évoluer et de rester décentralisé.", + "page-upgrades-vision-scalability-desc-3": "Les mises à jour de la fragmentation permettent de répartir les besoins de stockage des données sur l'ensemble du réseau, et il n'est plus nécessaire que tous les nœuds conservent 100 % des données. Bien que cela ne concerne pas directement la mise à l'échelle de l'exécution des transactions, ce problème est directement résolu par les solutions de rollup de couche 2.", + "page-upgrades-vision-scalability-desc-4": "Les rollups ont besoin d'un stockage bon marché sur la couche 1 pour être plus efficaces. La fragmentation donnera à Ethereum toute latitude pour maximiser l'efficacité des rollups, permettant des améliorations exponentielles au-delà de la limite actuelle de 15-45 transactions par seconde.", "page-upgrades-vision-security": "Sécurité", - "page-upgrades-vision-security-desc": "Les mises à niveau prévues améliorent la sécurité d'Ethereum contre les attaques coordonnées, comme une attaque de 51 %. Il s'agit d'un type d'attaque où, si quelqu'un contrôle la majorité du réseau, il peut forcer des modifications frauduleuses.", - "page-upgrades-vision-security-desc-3": "La transition vers une preuve d'enjeu signifie que le protocole Ethereum est plus dissuasif contre les attaques. Cela est dû au fait que les validateurs qui sécurisent le réseau doivent miser des quantités significatives d'ETH dans le protocole. S'ils tentent d'attaquer le réseau, le protocole peut automatiquement détruire leur ETH.", - "page-upgrades-vision-security-desc-5": "Ce n'est pas possible dans la preuve de travail, où le mieux qu'un protocole puisse faire est de forcer les entités qui sécurisent le réseau (les mineurs) à perdre des récompenses minières qu'ils auraient gagnées autrement. Pour obtenir l'effet équivalent en preuve de travail, le protocole devrait être en mesure de détruire tout l'équipement d'un mineur s'il tente de tricher.", - "page-upgrades-vision-security-desc-5-link": "En savoir plus sur la preuve de travail", - "page-upgrades-vision-security-desc-8": "Le modèle de sécurité d'Ethereum doit également être modifié en raison de l'introduction de chaînes de fragmentation. La chaîne phare attribuera aléatoirement des validateurs à différents fragments - ce qui rend virtuellement impossible la collaboration des validateurs en attaquant un fragment spécifique. Le déchirage n'est pas aussi sécurisé sur une blockchain, car les mineurs ne peuvent pas être contrôlés par le protocole de cette manière.", - "page-upgrades-vision-security-desc-10": "La mise ne jeu signifie également que vous n'avez pas besoin d'investir dans du matériel d'élite pour exécuter un nœud Ethereum. Cela devrait encourager un plus grand nombre de personnes à devenir validateur, augmentant la décentralisation du réseau et réduisant la surface d’attaque.", + "page-upgrades-vision-security-desc": "Les mises à niveau prévues améliorent la sécurité d'Ethereum contre les attaques coordonnées.", + "page-upgrades-vision-security-desc-3": "Avec la preuve d'enjeu, une sécurité supplémentaire provient de facteurs plus importants de dissuasion crypto-économiques contre les attaques. Cela est dû au fait que, dans la preuve d'enjeu, les validateurs qui sécurisent le réseau doivent miser des quantités significatives d'ETH dans le protocole. S'ils tentent d'attaquer le réseau, le protocole peut automatiquement détruire leur ETH.", + "page-upgrades-vision-security-desc-5": "Cependant, il est également important que les mises à niveau qui protègent les validateurs contre les attaques par déni de service, améliorent leur anonymat. De plus, la construction de blocs séparés et la propagation de blocs seront prochainement mis en œuvre. Ces mises à niveau protègent les validateurs individuels et le réseau dans son ensemble contre les attaques vives et la censure.", + "page-upgrades-vision-security-desc-5-link": "En savoir plus sur la preuve d'enjeu", + "page-upgrades-vision-security-desc-8": "Le modèle de sécurité d'Ethereum permet également la fragmentation. Les validateurs seront chargés d'affirmer que toutes les données ont été mises à disposition, mais les nœuds individuels ne seront plus tenus de conserver l'historique complet de la chaîne. Un nouveau rôle est également prévu, connu sous le nom de constructeur de blocs dédiés, qui travaillera aux côtés des proposants de blocs (validateurs) pour une production de blocs efficace et sûre", + "page-upgrades-vision-security-desc-10": "La mise en jeu signifie également que vous n'avez pas besoin d'investir dans du matériel d'élite pour participer directement au consensus. Cela devrait encourager davantage de gens à devenir validateur, augmentant ainsi la décentralisation du réseau et diminuant la surface d'attaque.", "page-upgrades-vision-security-staking": "Mise en jeu de l'ETH", "page-upgrades-vision-security-validator": "Vous pouvez devenir un validateur en mettant en jeu votre ETH.", - "page-upgrades-vision-shard-chains": "chaînes de fragments", - "page-upgrades-vision-shard-date": "Estimation : 2023", - "page-upgrades-vision-shard-desc-4": "Les chaînes de fragments répartiront la charge du réseau en 64 nouvelles blockchains. La fragmentation a le potentiel d’améliorer considérablement la vitesse de transaction – jusqu’à 100 000 par seconde.", - "page-upgrades-vision-shard-upgrade": "En savoir plus sur les chaînes de fragments", + "page-upgrades-vision-shard-upgrade": "En savoir plus sur la fragmentation", "page-upgrades-vision-staking-lower": "Plus d'infos sur la mise en jeu", "page-upgrades-vision-subtitle": "Développez Ethereum jusqu'à ce qu'il soit assez puissant pour aider toute l'humanité.", "page-upgrades-vision-sustainability": "Développement durable", - "page-upgrades-vision-sustainability-desc-1": "Ce n'est pas un secret qu'Ethereum et d'autres blockchains comme Bitcoin sont fortement énergivores à cause de l'extraction.", - "page-upgrades-vision-sustainability-desc-2": "Mais Ethereum se dirige vers la sécurisation par l'ETH, et non vers le calcul de la puissance - par le biais de la mise en jeu.", - "page-upgrades-vision-sustainability-desc-3": "Bien que la mise en jeu ait déjà été introduit par la chaîne phare, l'Ethereum que nous utilisons aujourd'hui fonctionnera en parallèle pour un certain laps de temps. Un système sécurisé par l'ETH, l'autre le restera par la puissance informatique, et ce jusqu'à la fusion.", - "page-upgrades-vision-sustainability-desc-8": "Avec la chaîne phare en cours, les travaux ont commencé sur la fusion du réseau principal avec la nouvelle couche de consensus. Le reseau principal sera alors sécurisés par les ETH mis en jeu et sera bien moins énergivore.", - "page-upgrades-vision-sustainability-subtitle": "Ethereum doit être plus écologique.", + "page-upgrades-vision-sustainability-desc-1": "Ethereum est maintenant une blockchain verte. La consommation énergétique a été réduite de ~99,95 % lorsque la preuve de travail a été abandonnée au profit de la preuve d'enjeu.", + "page-upgrades-vision-sustainability-desc-2": "Ethereum est maintenant sécurisé par la mise en jeu et non par la puissance de calcul.", + "page-upgrades-vision-sustainability-desc-3": "Ce renforcement de la durabilité apporte également des avantages en matière de sécurité - la mise en jeu d'Ether rend l'attaque de la chaîne beaucoup plus coûteuse que dans le cadre de la preuve de travail, mais moins coûteuse à sécuriser, car moins de nouveaux ETH doivent être émis pour rémunérer les validateurs que les mineurs.", + "page-upgrades-vision-sustainability-desc-8": "Le passage à la preuve d'enjeu a rendu Ethereum plus écologique et plus sûr. C'est une plateforme à faible émission de carbone pour le développement d'applications et d'organisations.", + "page-upgrades-vision-sustainability-subtitle": "Ethereum est une blockchain verte avec une sécurité crypto-économique forte.", "page-upgrades-vision-title": "La vision d'Ethereum", "page-upgrades-vision-title-1": "Réseau saturé", "page-upgrades-vision-title-2": "Espace disque", "page-upgrades-vision-title-3": "Trop d'énergie", - "page-upgrades-vision-trilemma-cardtext-1": "Les mises à niveau d'Ethereum rendront Ethereum évolutif, sécurisé et décentralisé. La fragmentation rendra Ethereum plus évolutif en augmentant les transactions par seconde tout en réduisant la puissance nécessaire pour exécuter un nœud et valider la chaîne. La chaîne phare sécurisera Ethereum en coordonnant les validateurs à travers les fragments. Et la mise en jeu réduira la barrière à la participation, créant un réseau plus large et plus décentralisé.", + "page-upgrades-vision-trilemma-cardtext-1": "Les mises à niveau d'Ethereum rendront Ethereum évolutif, sécurisé et décentralisé. La fragmentation rendra Ethereum plus évolutif en augmentant le nombre de transactions par seconde tout en diminuant la puissance nécessaire pour faire fonctionner un nœud et valider la chaîne. La chaîne phare sécurisera Ethereum en coordonnant les validateurs sur un ensemble de données partagées. Enfin, la mise en jeu abaissera la barrière à la participation et limitera les économies d'échelle, créant ainsi un réseau plus vaste et plus décentralisé.", "page-upgrades-vision-trilemma-cardtext-2": "Les réseaux blockchain sécurisés et décentralisés exigent que chaque nœud vérifie chaque transaction traitée par la chaîne. Ce volume de travail limite le nombre de transactions qui peuvent se faire à un moment donné. Décentralisée et sécurisée sont les adjectifs qui caractérisent la chaîne Ethereum aujourd'hui.", - "page-upgrades-vision-trilemma-cardtext-3": "Les réseaux décentralisés fonctionnent en envoyant des informations sur les transactions à travers des nœuds - tout le réseau a besoin d'être informé de tout changement d'état. Le passage à l'échelle du nombre de transactions par seconde sur un réseau décentralisé comporte des risques de sécurité car plus il y a de transactions, plus le délai est long, plus la probabilité d'attaque est élevée lorsque l'information transite sur le réseau.", + "page-upgrades-vision-trilemma-cardtext-3": "Les réseaux décentralisés fonctionnent en envoyant des informations sur les transactions à travers les nœuds - tout le réseau a besoin d'être informé de tout changement d'état. La mise à l'échelle des transactions par seconde sur un réseau décentralisé comporte des risques de sécurité car, plus il y a de transactions, plus le délai est long, plus la probabilité d'attaque est élevée lorsque l'information transite sur le réseau.", "page-upgrades-vision-trilemma-cardtext-4": "L'augmentation de la taille et de la puissance des nœuds d'Ethereum pourrait augmenter les transactions par seconde de façon sécurisée, mais l’exigence matérielle restreindrait alors qui peut ou non le faire – c'est une menace sur la décentralisation. Nous espérons que la fragmentation et la preuve d'enjeu permettront à Ethereum d'augmenter la quantité de nœuds et non la taille de nœuds.", - "page-upgrades-vision-trilemma-h2": "Le défi du passage à l'échelle décentralisé", - "page-upgrades-vision-trilemma-modal-tip": "Appuyez sur les cercles ci-dessous pour mieux comprendre les problèmes du passage à l'échelle décentralisé", + "page-upgrades-vision-trilemma-h2": "Le défi de la mise à l'échelle décentralisée", + "page-upgrades-vision-trilemma-modal-tip": "Appuyez sur les cercles ci-dessous pour mieux comprendre les problèmes de la mise à l'échelle décentralisée", "page-upgrades-vision-trilemma-p": "Une manière naïve de résoudre les problèmes d'Ethereum serait de centraliser. Cependant, la décentralisation est trop importante. C'est la décentralisation qui donne à Ethereum une résistance à la censure, sa capacité d'ouverture, la confidentialité des données et une sécurité quasi indestructible.", "page-upgrades-vision-trilemma-p-1": "La vision d’Ethereum est d’être plus évolutive et plus sûre, mais aussi de rester décentralisée. Atteindre ces 3 qualités est un problème connu sous le nom de trilemme de mise à l'échelle.", "page-upgrades-vision-trilemma-p-2": "Les mises à jour d'Ethereum visent à résoudre le trilemme, mais il y a des défis importants.", - "page-upgrades-vision-trilemma-press-button": "Appuyez sur les boutons du triangle pour mieux comprendre les problèmes du passage à l'échelle décentralisé.", + "page-upgrades-vision-trilemma-press-button": "Appuyez sur les boutons du triangle pour mieux comprendre les problèmes de la mise à l'échelle décentralisée.", "page-upgrades-vision-trilemma-text-1": "Décentralisation", "page-upgrades-vision-trilemma-text-2": "Sécurité", "page-upgrades-vision-trilemma-text-3": "Évolutivité", "page-upgrades-vision-trilemma-title-1": "Explorer le trilemme d'évolutivité", - "page-upgrades-vision-trilemma-title-2": "Mises à niveau d'Ethereum et passage à l'échelle décentralisé", + "page-upgrades-vision-trilemma-title-2": "Mises à niveau d'Ethereum et mise à l'échelle décentralisée", "page-upgrades-vision-trilemma-title-3": "Sécurisé et décentralisé", "page-upgrades-vision-trilemma-title-4": "Décentralisé et évolutif", "page-upgrades-vision-trilemma-title-5": "Fiable et sécurisé", diff --git a/src/intl/fr/page-upgrades.json b/src/intl/fr/page-upgrades.json index ea0a0722af0..73c87c52ec6 100644 --- a/src/intl/fr/page-upgrades.json +++ b/src/intl/fr/page-upgrades.json @@ -1,5 +1,13 @@ { + "page-upgrades-merge-infographic-el": "État Ethereum : transactions, applications, contrats, soldes", + "page-upgrades-merge-infographic-alt-text": "Infographie illustrant comment la Chaîne phare fusionne avec la couche d'exécution d'Ethereum pendant la transition de la preuve de travail à la preuve d'enjeu.", "page-upgrades-beacon-date": "Expédié !", - "page-upgrades-merge-date": "Septembre 2022", - "page-upgrades-shards-date": "~2023" + "page-upgrades-merge-date": "~T3/T4 2022", + "page-upgrades-shards-date": "~2023", + "page-upgrades-merge-banner-intro": "La Fusion approche et apporte des changements pour Ethereum.", + "page-upgrades-merge-banner-content-outdated": "Certains contenus de cette page ne sont plus à jour. Les mises à jour sont à venir.", + "page-upgrades-merge-banner-developers-landing": "Certains documents affichent une bannière indiquant qu'ils ne sont plus à jour. Des prochaines mises à jour sont à venir.", + "page-upgrades-post-merge-banner-tutorial-ood": "Ce tutoriel est obsolète depuis la fusion et peut ne pas fonctionner. Veuillez éditer un PR sur GitHub si vous souhaitez contribuer.", + "page-upgrades-post-merge-banner-tutorial-light-node-ood": "Ce tutoriel est obsolète depuis la fusion. Les nœuds simplifiés ne fonctionnent pas actuellement avec la preuve d'enjeu, mais devraient être prochainement expédiés.", + "page-upgrades-post-merge-banner-governance-ood": "Certains contenus sur cette page sont périmés depuis la fusion. Veuillez éditer un PR sur GitHub si vous souhaitez contribuer." } diff --git a/src/intl/ko/page-staking-deposit-contract.json b/src/intl/ko/page-staking-deposit-contract.json new file mode 100644 index 00000000000..5255b3538e2 --- /dev/null +++ b/src/intl/ko/page-staking-deposit-contract.json @@ -0,0 +1,27 @@ +{ + "page-staking-deposit-contract-address": "스테이킹 입금 계약 주소", + "page-staking-deposit-contract-address-caption": "주소를 더 쉽게 읽을 수 있도록 공백을 추가했습니다.", + "page-staking-deposit-contract-address-check-btn": "입금 계약 주소 확인", + "page-staking-deposit-contract-checkbox1": "이미 런치패드를 사용하여 이더리움 검증자를 설치했습니다.", + "page-staking-deposit-contract-checkbox2": "스테이킹하려면 런치패드를 사용해야 한다는 것을 이해합니다. 이 주소로 단순 전송은 작동하지 않습니다.", + "page-staking-deposit-contract-checkbox3": "다른 소스로 입금 계약 주소를 확인하겠습니다.", + "page-staking-deposit-contract-confirm-address": "주소 공개 확인", + "page-staking-deposit-contract-copied": "주소 복사됨", + "page-staking-deposit-contract-copy": "주소 복사", + "page-staking-deposit-contract-etherscan": "Etherscan에서 계약 보기", + "page-staking-deposit-contract-h2": "여기에서 스테이킹하지 않습니다.", + "page-staking-deposit-contract-launchpad": "런치패드를 사용한 스테이킹", + "page-staking-deposit-contract-launchpad-2": "런치패드 사용", + "page-staking-deposit-contract-meta-desc": "이더리움 스테이킹을 하려면 입금 계약 주소를 확인하세요.", + "page-staking-deposit-contract-meta-title": "이더리움 스테이킹 입금 계약 주소", + "page-staking-deposit-contract-read-aloud": "주소를 소리내어 읽기", + "page-staking-deposit-contract-reveal-address-btn": "주소 공개", + "page-staking-deposit-contract-staking": "ETH를 스테이킹하려면 전용 런치패드 제품을 사용하고 안내를 따라야 합니다. 이 페이지에 있는 주소로 ETH를 전송해도 스테이커가 되지는 않으며 거래가 실패합니다.", + "page-staking-deposit-contract-staking-check": "이 출처를 확인하십시오.", + "page-staking-deposit-contract-staking-check-desc": "이 작업과 관련하여 많은 가짜 주소와 사기가 있을 것으로 예상됩니다. 안전을 위해 사용 중인 스테이킹 계약 주소와 이 페이지에 있는 주소를 비교해 가며 확인하세요. 신뢰할 수 있는 다른 출처에서도 확인할 것을 권장합니다.", + "page-staking-deposit-contract-staking-more-link": "스테이킹에 대해 자세히 알아보기", + "page-staking-deposit-contract-stop-reading": "읽기 중지", + "page-staking-deposit-contract-subtitle": "다음은 이더리움 스테이킹 계약용 주소입니다. 스테이킹할 때 이 페이지를 참조하여 자금을 올바른 주소로 보내고 있는지 확인하세요.", + "page-staking-deposit-contract-warning": "각 문자를 주의 깊게 확인하십시오.", + "page-staking-deposit-contract-warning-2": "이 주소로 자금을 보내는 작업은 작동하지 않으며 귀하를 스테이커로 만들지 않습니다. 런치패드 지침을 따르십시오." +} diff --git a/src/intl/ko/page-staking.json b/src/intl/ko/page-staking.json new file mode 100644 index 00000000000..0577cb0dbe6 --- /dev/null +++ b/src/intl/ko/page-staking.json @@ -0,0 +1,184 @@ +{ + "page-staking-image-alt": "스테이킹 런치패드를 위한 코뿔소 마스코트 이미지.", + "page-staking-benefits-1-title": "보상 받기", + "page-staking-benefits-1-description": "네트워크가 합의에 도달하는 데 도움이 되는 작업에 대한 보상이 제공됩니다. 트랜잭션을 새 블록으로 적절하게 배치하고 다른 검증자의 작업을 확인하는 소프트웨어를 실행하면 그에 대한 보상을 받습니다. 이를 통해 체인을 계속 안전하게 실행할 수 있게 됩니다.", + "page-staking-benefits-2-title": "더 나은 보안", + "page-staking-benefits-2-description": "네트워크는 대부분의 네트워크를 제어하는 데 더 많은 ETH가 필요하기 때문에 더 많은 ETH가 스테이킹될수록 외부 공격에 더 잘 견디게 됩니다. 위협이 되려면 대다수의 검증자를 보유해야 합니다. 즉, 시스템 내 대부분의 ETH를 제어해야 합니다. 방대한 양이죠!", + "page-staking-benefits-3-title": "환경을 생각한 지속 성장", + "page-staking-benefits-3-description": "스테이커는 많은 에너지를 소비하는 컴퓨터 없이도 가정용 컴퓨터나 스마트폰만으로 지분 증명 시스템에 참여할 수 있습니다. 이는 이더리움을 환경에 더욱 적합하게 만들 것입니다.", + "page-staking-benefits-3-link": "이더리움 에너지 소비에 대한 자세한 정보", + "page-staking-check-address": "입금 주소 확인", + "page-staking-deposit-address": "입금 주소 확인", + "page-staking-deposit-address-desc": "이미 런치패드에서 설정 지침을 따랐다면 스테이킹 입금 계약에 트랜잭션을 보내야 한다는 사실을 알고 있습니다. 주소를 매우 주의 깊게 확인하는 것이 좋습니다. 해당하는 공식 주소는 ethereum.org 및 기타 여러 신뢰할 수 있는 사이트에서 찾을 수 있습니다.", + "page-staking-description": "스테이킹은 검증자 소프트웨어를 활성화하기 위해 32 ETH를 예치하는 작업입니다. 검증자는 데이터를 저장하고 트랜잭션을 처리하며 새로운 블록을 블록체인에 추가하는 일을 담당하게 됩니다. 이를 통해 모두에게 안전한 이더리움을 유지하고 그 과정에서 새로운 ETH를 벌 수 있습니다.", + "page-staking-hero-title": "ETH를 스테이킹하는 방법", + "page-staking-hero-header": "이더리움을 보호하면서 보상을 받으세요", + "page-staking-hero-subtitle": "스테이킹은 이더리움 생태계를 위한 공익 활동입니다. ETH의 양에 관계없이 모든 사용자가 네트워크를 보호하는 데 도움을 줄 수 있으며 그 과정에서 보상을 받습니다.", + "page-staking-dropdown-text": "스테이킹 옵션", + "page-staking-dropdown-aria": "스테이킹 옵션 드롭다운 메뉴", + "page-staking-dropdown-home": "스테이킹 홈", + "page-staking-dropdown-solo": "솔로 스테이킹", + "page-staking-more-on-solo": "솔로 스테이킹 자세히 알아보기", + "page-staking-learn-more-solo": "솔로 스테이킹에 대해 자세히 알아보기", + "page-staking-dropdown-saas": "서비스로서의 스테이킹", + "page-staking-saas-with-abbrev": "서비스로서 스테이킹(SaaS)", + "page-staking-more-on-saas": "서비스로서 스테이킹 자세히 알아보기", + "page-staking-learn-more-saas": "서비스로서 스테이킹에 대해 자세히 알아보기", + "page-staking-dropdown-pools": "풀 스테이킹", + "page-staking-more-on-pools": "풀 스테이킹 자세히 알아보기", + "page-staking-learn-more-pools": "풀 스테이킹에 대해 자세히 알아보기", + "page-staking-section-what-title": "스테이킹이란 무엇인가요?", + "page-staking-section-what-p": "스테이킹이란 네트워크에서 블록 제안에 참여할 권리를 부여하기 위해 ETH를 잠그는 행위입니다. 아무리 적은 양의 ETH라도 보유하고 있다면 누구든지 스테이킹을 고려할 수 있습니다.", + "page-staking-section-what-link": "ETH를 얻는 방법 알아보기", + "page-staking-section-why-title": "ETH를 스테이킹하는 이유는 무엇인가요?", + "page-staking-section-why-p1": "그건 전적으로 얼마를 기꺼이 스테이킹하고자 하는지에 달려 있습니다. 자신의 검증자를 활성화하려면 32 ETH가 필요하지만 그보다 적게 스테이킹할 수도 있습니다.", + "page-staking-section-why-p2": "아래 옵션을 확인하고 귀하와 네트워크에 가장 적합한 옵션을 선택하세요.", + "page-staking-hierarchy-solo-h2": "솔로 홈 스테이킹", + "page-staking-hierarchy-solo-pill-1": "영향력이 가장 많음", + "page-staking-hierarchy-solo-pill-2": "완벽한 제어", + "page-staking-hierarchy-solo-pill-3": "완전한 보상", + "page-staking-hierarchy-solo-pill-4": "신뢰 불필요", + "page-staking-hierarchy-solo-p1": "이더리움의 솔로 스테이킹은 스테이킹의 최적 표준입니다. 완전한 참여 보상을 제공하고 네트워크의 탈중앙화를 개선하며 귀하의 자금을 다른 사람에게 맡길 필요가 없습니다.", + "page-staking-hierarchy-solo-p2": "솔로 스테이킹을 고려하는 사람들은 최소 32 ETH와 인터넷에 연결된 전용 컴퓨터를 24시간 사용할 수 있어야 합니다. 일부 기술 노하우는 도움이 되지만, 이제 이 프로세스를 단순화하기 위해 쉽게 사용할 수 있는 도구도 있습니다.", + "page-staking-hierarchy-saas-pill-1": "귀하의 32 ETH", + "page-staking-hierarchy-saas-pill-2": "내 검증자 키", + "page-staking-hierarchy-saas-pill-3": "위임된 노드 작업", + "page-staking-hierarchy-saas-p1": "하드웨어를 다루기가 싫거나 불편하지만 여전히 32 ETH를 스테이킹하고자 하는 경우, 서비스로서 스테이킹 옵션을 사용하면 기본 블록 보상을 받는 동안 어려운 부분을 위임할 수 있습니다.", + "page-staking-hierarchy-saas-p2": "이러한 옵션은 일반적으로 일련의 검증자 자격 증명을 만들고 서명 키를 업로드하며 32 ETH를 예치하는 과정을 안내합니다. 이를 통해 서비스가 귀하를 대신하여 검증할 수 있습니다.", + "page-staking-hierarchy-saas-p3": "이러한 스테이킹 방법을 수행하려면 공급자에 대한 어느 정도 수준의 신뢰가 필요합니다. 상대방의 위험을 제한하기 위해 ETH를 인출하는 키는 일반적으로 본인이 소유하고 있습니다.", + "page-staking-hierarchy-pools-pill-1": "임의의 수량 스테이킹", + "page-staking-hierarchy-pools-pill-2": "보상 받기", + "page-staking-hierarchy-pools-pill-3": "단순하게 유지", + "page-staking-hierarchy-pools-pill-4": "인기", + "page-staking-hierarchy-pools-p1": "32 ETH를 스테이킹하는 데 익숙하지 않거나 편안함을 느끼는 사용자를 지원하기 위해 현재 여러 풀링 솔루션이 존재합니다.", + "page-staking-hierarchy-pools-p2": "이러한 다수의 옵션에는 스테이킹된 ETH를 나타내는 ERC-20 유동성 토큰과 관련된 '유동성 스테이킹'으로 알려진 것이 포함됩니다.", + "page-staking-hierarchy-pools-p3": "유동 스테이킹은 쉽고 언제든지 종료할 수 있으며 토큰 교환만큼이나 간단하게 스테이킹할 수 있습니다. 이 옵션을 통해 사용자는 자산을 본인의 이더리움 지갑에 보관할 수 있습니다.", + "page-staking-hierarchy-pools-p4": "풀 스테이킹은 이더리움 네트워크에 고유하지 않습니다. 타사는 이러한 솔루션을 구축하고 있으며 자체 위험을 감수합니다.", + "page-staking-hierarchy-cex-h2": "중앙화 거래소", + "page-staking-hierarchy-cex-pill-1": "영향력이 가장 적음", + "page-staking-hierarchy-cex-pill-2": "최고의 신뢰 가정", + "page-staking-hierarchy-cex-p1": "다양한 중앙화 거래소는 아직 자신의 지갑에 ETH를 보관하는 것이 불편한 사용자에게 스테이킹 서비스를 제공합니다. 최소한의 감독이나 노력으로 ETH 보유량에 대해 어느 정도 수익을 얻을 수 있게 대비할 수 있습니다.", + "page-staking-hierarchy-cex-p2": "여기에서 트레이드오프는 중앙화된 공급자가 많은 수의 검증자를 실행하기 위해 대규모 ETH 풀을 통합한다는 것입니다. 이는 대규모 중앙화 목표와 실패 지점을 만들어 네트워크를 공격 또는 버그에 더 취약하게 하기 때문에 네트워크와 사용자에게 위험할 수 있습니다.", + "page-staking-hierarchy-cex-p3": "자신의 키를 보유하기 불편하셔도 괜찮습니다. 이러한 사용자를 위해 제공되는 옵션이 있습니다. 한편으로 지갑 페이지를 확인해 보세요. 여기에서 자금에 대한 진정한 소유권을 갖는 법을 알아볼 수 있습니다. 준비가 되셨다면 다시 돌아와서 제공되는 자체 관리 풀 스테이킹 서비스 중 하나를 시도하여 스테이킹 게임의 수준을 높이세요.", + "page-staking-hierarchy-subtext": "눈치채셨겠지만 이더리움 스테이킹에 참여하는 방법은 여러 가지가 있습니다. 이러한 경로는 광범위한 사용자를 대상으로 하며, 궁극적으로는 각각 고유하고 리스크, 보상 및 신뢰 가정 측면에서 다양합니다. 일부는 다른 것보다 더 탈중앙화되고 배틀 테스트를 거치며/거치거나 좀 더 위험할 수 있습니다. 저희는 공간에서 인기 있는 프로젝트에 대한 몇 가지 정보를 제공하지만, ETH를 어디로든 전송하기 전에 항상 충분히 조사하세요.", + "page-staking-comparison-solo-saas": "SaaS 제공 업체의 경우 여전히 32 ETH를 예치해야 하지만, 하드웨어를 실행할 필요는 없습니다. 일반적으로 검증자 키에 대한 액세스를 유지하지만 운영자가 검증자를 대신할 수 있도록 서명 키도 공유해야 합니다. 이는 자신의 하드웨어를 실행할 때 존재하지 않는 신뢰 층을 도입하며, 집에서 솔로 스테이킹을 하는 것과 달리 SaaS는 노드의 지리적 배포에 그다지 도움이 되지 않습니다. 하드웨어 운영이 불편하지만 여전히 32 ETH를 스테이킹하려는 경우, SaaS 제공 업체를 이용하는 것이 합당한 선택일 수 있습니다.", + "page-staking-comparison-solo-pools": "솔로 스테이킹은 풀링 서비스에서 스테이킹할 때보다 훨씬 더 복잡하지만, ETH 보상에 대한 완전한 액세스와 검증자의 설정 및 보안에 대한 완벽한 제어를 제공합니다. 풀 스테이킹은 진입 장벽이 현저하게 낮습니다. 사용자는 소량의 ETH를 스테이킹할 수 있으며 검증자 키를 생성하지 않아도 되고, 표준 인터넷 연결 이상의 하드웨어 요건이 없습니다. 유동성 토큰을 사용하면 프로토콜 수준에서 활성화되기 전에 스테이킹을 종료할 수 있습니다. 이러한 기능에 관심이 있다면 풀 스테이킹이 적합할 수 있습니다.", + "page-staking-comparison-saas-solo": "마찬가지로 자금을 모으지 않고도 자체 검증자 키를 갖는 경우도 있지만, SaaS를 사용하면 악의적인 행동을 할 가능성이 있거나 스스로 공격 또는 규제의 대상이 될 수 있는 제3자를 신뢰해야 합니다. 이러한 신뢰 가정이나 중앙화 위험이 우려되는 경우, 자기 주도 스테이킹의 최적 표준은 솔로 스테이킹입니다.", + "page-staking-comparison-saas-pools": "이는 검증자 클라이언트를 실행하기 위해 일반적으로 다른 사람에게 의존한다는 점에서 유사하지만, SaaS와 달리 풀 스테이킹을 사용하면 더 적은 양의 ETH로 참여할 수 있습니다. 32 ETH 미만으로 스테이킹하려는 경우 이를 확인하는 것이 좋습니다.", + "page-staking-comparison-pools-solo": "풀 스테이킹은 솔로 스테이킹에 비해 진입 장벽은 현저하게 낮지만, 모든 노드 운영을 제3자에게 위임하고 수수료를 지불해야 하는 추가 위험이 따릅니다. 솔로 스테이킹은 스테이킹 설정을 선택하는 데 필요한 선택에 대한 완전한 주권 및 제어를 제공합니다. 스테이커는 키를 넘겨줄 필요가 없으며 중개자가 삭감하는 일 없이 완전히 보상을 받습니다.", + "page-staking-comparison-pools-saas": "이는 스테이커가 검증자 소프트웨어를 자체적으로 실행하지 않는다는 점에서 유사하지만, 풀링 옵션과 달리 SaaS는 검증자를 활성화하기 위해 전체 32 ETH 예치금을 요구합니다. 보상은 스테이커에게 누적되며 일반적으로 서비스를 사용하기 위한 월 수수료 또는 기타 지분이 포함됩니다. 자체 검증자 키를 선호하고 최소 32 ETH를 스테이킹하려는 경우에는 SaaS 제공 업체를 이용하는 것이 합당한 옵션일 수 있습니다.", + "page-staking-considerations-solo-1-title": "오픈 소스", + "page-staking-considerations-solo-1-description": "필수 코드는 100% 오픈 소스로, 대중이 포크하여 사용할 수 있습니다.", + "page-staking-considerations-solo-1-warning": "비공개 소스", + "page-staking-considerations-solo-2-title": "감사됨", + "page-staking-considerations-solo-2-description": "필수 코드는 공식 감사를 거쳤으며 결과가 게시되어 공개적으로 확인할 수 있습니다.", + "page-staking-considerations-solo-2-warning": "없음", + "page-staking-considerations-solo-3-title": "버그 포상금", + "page-staking-considerations-solo-3-description": "취약점을 안전하게 보고 및/또는 수정한 사용자에게 보상하기 위해 모든 필수 코드에 대해 공개 버그 포상금이 부여되었습니다.", + "page-staking-considerations-solo-3-valid": "현재 활성화", + "page-staking-considerations-solo-3-caution": "완료됨", + "page-staking-considerations-solo-4-title": "배틀 테스트", + "page-staking-considerations-solo-4-description": "소프트웨어는 표시된 기간 동안 대중이 사용할 수 있으며 사용되었습니다.", + "page-staking-considerations-solo-4-valid": "실시간 > 1년", + "page-staking-considerations-solo-4-caution": "실시간 > 6개월", + "page-staking-considerations-solo-4-warning": "새로 출시됨", + "page-staking-considerations-solo-5-title": "신뢰 불필요", + "page-staking-considerations-solo-5-description": "검증자 키는 검증자 수명 주기의 어느 시점에서든 다른 사람에게 위임되지 않습니다. 관련된 모든 스마트 계약은 투명하게 공개되며 실행을 위한 특권적 권한에 의존하지 않습니다.", + "page-staking-considerations-solo-5-warning": "신뢰 필요", + "page-staking-considerations-solo-6-title": "무허가성", + "page-staking-considerations-solo-6-description": "사용자는 소프트웨어나 서비스를 사용하여 검증자를 작동하기 위해 특별한 권한이 필요하지 않습니다.", + "page-staking-considerations-solo-6-valid": "권한 없음", + "page-staking-considerations-solo-6-warning": "권한 필요", + "page-staking-considerations-solo-7-title": "다중 클라이언트", + "page-staking-considerations-solo-7-description": "소프트웨어를 통해 사용자는 둘 이상의 합의 계층 클라이언트 중에 선택하고 전환할 수 있습니다.", + "page-staking-considerations-solo-7-valid": "손쉬운 클라이언트 전환", + "page-staking-considerations-solo-7-warning": "다수의 클라이언트로 제한됨", + "page-staking-considerations-solo-8-title": "자체 보관", + "page-staking-considerations-solo-8-description": "사용자는 서명 및 인출 키를 비롯한 모든 검증자 자격 증명의 보관을 관리합니다.", + "page-staking-considerations-solo-8-warning": "제3자 관리인", + "page-staking-considerations-solo-9-title": "경제적", + "page-staking-considerations-solo-9-description": "사용자는 다른 사람의 공동 자금을 활용하여 32 ETH보다 적은 금액을 스테이킹하고 검증자를 운영할 수 있습니다.", + "page-staking-considerations-solo-9-valid": "< 32 ETH", + "page-staking-considerations-solo-9-warning": "32 ETH", + "page-staking-considerations-saas-4-description": "서비스는 표시된 기간 동안 대중이 사용할 수 있으며 사용되었습니다.", + "page-staking-considerations-saas-6-description": "사용자가 서비스에 참여하는 데 특별한 권한, 계정 가입 또는 KYC가 필요하지 않습니다.", + "page-staking-considerations-saas-6-valid": "누구나 가입 가능", + "page-staking-considerations-saas-6-warning": "권한 필요", + "page-staking-considerations-saas-7-title": "다양한 클라이언트", + "page-staking-considerations-saas-7-description": "서비스는 대다수의 검증자 클라이언트에서 집계 검증자의 50% 이상을 실행하면 안 됩니다.", + "page-staking-considerations-saas-7-valid": "50% 미만", + "page-staking-considerations-saas-7-caution": "현재 알 수 없음", + "page-staking-considerations-saas-7-warning": "50% 초과", + "page-staking-considerations-pools-5-description": "서비스를 이용하면 키를 보관하거나 보상을 분배하는 작업을 다른 사람에게 맡길 필요가 없습니다.", + "page-staking-considerations-pools-6-title": "무허가성 노드", + "page-staking-considerations-pools-6-description": "서비스를 통해 누구나 권한 없이 풀에 대한 노드 운영자로 참여할 수 있습니다.", + "page-staking-considerations-pools-7-description": "서비스는 대다수의 검증자 클라이언트에서 집계 검증자의 50% 이상을 실행하면 안 됩니다.", + "page-staking-considerations-pools-8-title": "유동성 토큰", + "page-staking-considerations-pools-8-description": "자신의 지갑에 보관된 스테이킹된 ETH를 나타내는 거래 가능한 유동성 토큰을 제공합니다.", + "page-staking-considerations-pools-8-valid": "유동성 토큰", + "page-staking-considerations-pools-8-warning": "유동성 토큰 없음", + "page-staking-how-solo-works-item-1": "하드웨어 구입: 스테이킹하려면 노드를 실행해야 합니다.", + "page-staking-how-solo-works-item-2": "실행 계층 클라이언트 동기화", + "page-staking-how-solo-works-item-3": "합의 계층 클라이언트 동기화", + "page-staking-how-solo-works-item-4": "키를 생성하고 검증자 클라이언트에 로드", + "page-staking-how-solo-works-item-5": "노드를 모니터링하고 유지관리", + "page-staking-launchpad-widget-testnet-label": "Goerli/Prater 테스트넷", + "page-staking-launchpad-widget-testnet-start": "Goerli/Prater 테스트넷에서 스테이킹 시작", + "page-staking-launchpad-widget-mainnet-label": "메인넷", + "page-staking-launchpad-widget-mainnet-start": "메인넷에서 스테이킹 시작", + "page-staking-launchpad-widget-span": "네트워크 선택", + "page-staking-launchpad-widget-p1": "솔로 검증자는 자금 위험을 감수하기 전에 Goerli/Prater 테스트넷에서 설정 및 운영 기술을 테스트해야 합니다. 소수 클라이언트를 선택하는 것은 네트워크 보안을 개선하고 위험을 제한한다는 점에서 중요하다는 것을 기억하세요.", + "page-staking-launchpad-widget-p2": "익숙해지면 스테이킹 런치패드만 사용하여 명령줄에서 필요한 모든 작업을 설정할 수 있습니다.", + "page-staking-launchpad-widget-p3": "작업을 더 쉽게 하려면 스테이킹 런치패드와 함께 클라이언트를 손쉽게 설정하는 데 도움이 될 수 있는 몇 가지 도구와 가이드를 확인하세요.", + "page-staking-launchpad-widget-link": "소프트웨어 도구 및 안내서", + "page-staking-products-get-started": "시작하기", + "page-staking-stats-box-metric-1": "총 스테이킹된 ETH", + "page-staking-stats-box-metric-2": "총 검증자 수", + "page-staking-stats-box-metric-3": "현재 APR", + "page-staking-section-comparison-subtitle": "스테이킹을 위한 획일적인 솔루션은 없으며, 저마다 고유합니다. 여기에서는 스테이킹할 수 있는 다양한 방법의 위험, 보상 및 요건 중 일부를 비교해 보겠습니다.", + "page-staking-section-comparison-rewards-title": "보상", + "page-staking-section-comparison-solo-rewards-li1": "최대 보상 - 프로토콜에서 직접 전체 보상 받기", + "page-staking-section-comparison-solo-rewards-li2": "트랜잭션을 새 블록으로 일괄 처리하거나 다른 검증자의 작업을 확인하여 체인이 안전하게 실행되도록 하면 그에 대한 보상을 받습니다.", + "page-staking-section-comparison-solo-rewards-li3": "또한 제출한 블록에 대해 소각되지 않은 거래 수수료를 받게 됩니다.", + "page-staking-section-comparison-saas-rewards-li1": "일반적으로 전체 프로토콜 보상에서 노드 운영에 대한 매월 수수료를 뺀 금액이 포함됩니다.", + "page-staking-section-comparison-saas-rewards-li2": "검증자 클라이언트를 쉽게 추적할 수 있는 대시보드", + "page-staking-section-comparison-pools-rewards-li1": "풀 스테이커는 선택한 풀 스테이킹의 방법에 따라 다르게 보상을 받습니다.", + "page-staking-section-comparison-pools-rewards-li2": "다양한 풀 스테이킹 서비스에서 스테이킹된 ETH와 검증자 보상의 몫을 나타내는 하나 이상의 유동성 토큰을 제공합니다.", + "page-staking-section-comparison-pools-rewards-li3": "유동성 토큰은 본인 지갑에 보관할 수 있으며, DeFi에서 사용되고, 종료하기로 결정한 경우 이 토큰을 판매할 수 있습니다.", + "page-staking-section-comparison-risks-title": "리스크", + "page-staking-section-comparison-solo-risks-li1": "귀하의 ETH는 스테이킹됩니다.", + "page-staking-section-comparison-solo-risks-li2": "오프라인으로 전환하면 ETH가 소모되는 페널티가 있습니다.", + "page-staking-section-comparison-solo-risks-li3": "악의적인 행동은 더 많은 양의 ETH를 '슬래싱'하고 네트워크에서 강제 퇴출될 수 있습니다.", + "page-staking-section-comparison-saas-risks-li1": "솔로 스테이킹과 동일한 위험과 서비스 제공자의 상대방 위험", + "page-staking-section-comparison-saas-risks-li2": "서명 키 사용은 악의적으로 행동할지도 모르는 다른 사람에게 위임됨", + "page-staking-section-comparison-pools-risks-li1": "리스크는 사용된 방법에 따라 다릅니다.", + "page-staking-section-comparison-pools-risks-li2": "일반적으로 리스크는 상대방, 스마트 계약 및 실행 위험의 조합으로 구성됩니다.", + "page-staking-section-comparison-requirements-title": "요구 사항", + "page-staking-section-comparison-solo-requirements-li1": "32 ETH를 예치해야 합니다.", + "page-staking-section-comparison-solo-requirements-li2": "인터넷에 연결된 상태에서 이더리움 실행 클라이언트와 합의 클라이언트를 모두 실행하는 하드웨어를 유지관리합니다.", + "page-staking-section-comparison-solo-requirements-li3": "스테이킹 런치패드는 프로세스 및 하드웨어 요구 사항에 대해 안내합니다.", + "page-staking-section-comparison-saas-requirements-li1": "32 ETH를 예치하고 지원을 받아 키를 생성합니다.", + "page-staking-section-comparison-saas-requirements-li2": "키를 안전하게 보관합니다.", + "page-staking-section-comparison-saas-requirements-li3": "특정 서비스는 다를 수 있지만 나머지는 처리됩니다.", + "page-staking-section-comparison-pools-requirements-li1": "가장 낮은 ETH 요구 사항으로, 일부 프로젝트에는 0.01 ETH만 필요합니다.", + "page-staking-section-comparison-pools-requirements-li2": "지갑에서 다양한 풀 스테이킹 플랫폼으로 직접 예치하거나 스테이킹 유동성 토큰 중 하나와 간단히 거래합니다.", + "page-staking-faq-1-question": "검증자란 무엇인가요?", + "page-staking-faq-1-answer": "검증자는 이더리움에서 작동하는 가상의 주체이며 이더리움 프로토콜의 합의에 참여합니다. 검증자는 잔고, 공개 키 및 기타 속성들로 나타냅니다. 검증자 클라이언트는 검증자를 대신하여 개인 키를 보유하고 사용하는 소프트웨어입니다. 검증자 클라이언트 하나로 많은 키 쌍을 보유하여 다양한 검증자를 제어할 수 있습니다.", + "page-staking-faq-2-question": "왜 자금을 스테이킹해야 하나요?", + "page-staking-faq-2-answer": "검증자는 네트워크에 대한 블록을 제안하고 증명할 수 있습니다. 부정직한 행동을 방지하기 위해 사용자는 자신의 자금을 스테이킹해야 합니다. 이를 통해 프로토콜은 악의적인 행위자를 처벌할 수 있습니다. 귀하의 행동은 재정적 결과를 초래할 수 있기 때문에 스테이킹은 귀하의 정직함을 유지하게 해주는 수단입니다.", + "page-staking-faq-3-question": "'Eth2'를 살 수 있을까요?", + "page-staking-faq-3-answer-p1": "기본 토큰 이더(ETH)는 이더리움이 지분 증명 방식으로 전환될 때 변경되지 않았기 때문에 프로토콜에 대해 고유한 'Eth2' 토큰은 없습니다.", + "page-staking-faq-3-answer-p2": "스테이킹된 ETH를 나타내기 위한 파생 토큰/티커가 있을 수 있습니다(예: Rocket Pool의 rETH, Lido의 stETH, Coinbase의 ETH2). 스테이킹 풀에 대해 자세히 알아보세요.", + "page-staking-faq-4-question": "스테이킹은 이미 상용화되었나요?", + "page-staking-faq-4-answer-p1": "예. 스테이킹은 2020년 12월 1일부터 사용되었습니다.", + "page-staking-faq-4-answer-p2": "즉, 사용자는 현재 스테이킹을 사용하여 ETH를 예치하고, 검증자 클라이언트를 실행하며, 보상을 받기 시작할 수 있습니다. 상하이 업데이트 후에 스테이커는 검증자 잔고에서 보상과 자금을 인출할 수 있습니다.", + "page-staking-toc-how-to-stake-your-eth": "ETH를 스테이킹하는 방법", + "page-staking-toc-comparison-of-options": "스테이킹 옵션 비교", + "page-staking-toc-faq": "FAQ", + "page-staking-toc-further": "더 읽을거리", + "page-staking-dom-info-title": "이더리움으로 스테이킹", + "page-staking-join-community": "스테이커 커뮤니티에 가입하기", + "page-staking-join-community-desc": "EthStaker는 모든 사람이 이더리움 스테이킹에 대해 논의하고 배울 수 있는 커뮤니티입니다. 조언 및 지원을 위해, 스테이킹에 관한 모든 내용을 교환하기 위해 전 세계 수만 명의 회원과 함께하세요.", + "page-staking-meta-description": "이더리움 스테이킹에 대한 개요: 리스크, 보상, 요구 사항 및 실행할 위치.", + "page-staking-meta-title": "이더리움 스테이킹" +} diff --git a/src/intl/nl/page-developers-index.json b/src/intl/nl/page-developers-index.json index ff2eb9315c0..0a2f249248b 100644 --- a/src/intl/nl/page-developers-index.json +++ b/src/intl/nl/page-developers-index.json @@ -33,12 +33,14 @@ "page-developers-improve-ethereum": "Help ons ethereum.org beter te maken", "page-developers-improve-ethereum-desc": "Net als ethereum.org, zijn deze documenten een gezamenlijke inspanning. Dien een PR in als je fouten, ruimte voor verbetering of nieuwe mogelijkheden ziet om Ethereum-ontwikkelaars te helpen.", "page-developers-into-eth-desc": "Een introductie voor blockchain en Ethereum", + "page-developers-intro-ether-desc": "Een introductie tot cryptovaluta en Ether", "page-developers-intro-dapps-desc": "Een introductie voor gedecentraliseerde toepassingen", "page-developers-intro-dapps-link": "Intro voor dapps", "page-developers-intro-eth-link": "Intro voor Ethereum", + "page-developers-intro-ether-link": "Intro tot Ether", "page-developers-intro-stack": "Intro voor de stack", "page-developers-intro-stack-desc": "Een introductie voor de Ethereum-stack", - "page-developers-js-libraries-desc": "JavaScript gebruiken om te communiceren met Smart Contracts", + "page-developers-js-libraries-desc": "Gebruik van Javascript om te communiceren met slimme contracten", "page-developers-js-libraries-link": "JavaScript-bibliotheken", "page-developers-language-desc": "Ethereum gebruiken met bekende talen", "page-developers-languages": "Programmeertalen", @@ -48,9 +50,13 @@ "page-developers-learn-tutorials-cta": "Handleidingen weergeven", "page-developers-learn-tutorials-desc": "Leer stap voor stap Ethereum ontwikkelen van makers die je zijn voorgegaan.", "page-developers-meta-desc": "Documentatie, handleidingen en tools voor ontwikkelaars die bouwen op Ethereum.", + "page-developers-mev-desc": "Een introductie tot maximaal extraheerbare waarde (MEV)", + "page-developers-mev-link": "Maximale extraheerbare waarde (MEV)", "page-developers-mining-desc": "Hoe nieuwe blocks worden gemaakt en consensus wordt bereikt", "page-developers-mining-link": "Mining", - "page-developers-networks-desc": "Een overzicht van Mainnet en de testnetwerken", + "page-developers-mining-algorithms-desc": "Informatie over Ethereums mining-algoritmes", + "page-developers-mining-algorithms-link": "Mining-algoritmes", + "page-developers-networks-desc": "Een overzicht van mainnet en de testnetwerken", "page-developers-networks-link": "Netwerken", "page-developers-node-clients-desc": "Hoe blocks en transacties in het netwerk worden geverifieerd", "page-developers-node-clients-link": " Nodes en clients", @@ -60,8 +66,8 @@ "page-developers-read-docs": "Lees de documentatie", "page-developers-scaling-desc": "Oplossingen voor snellere transacties", "page-developers-scaling-link": "Schalen", - "page-developers-smart-contract-security-desc": "Beveiligingsmaatregelen die tijdens het ontwikkelen in acht moeten worden genomen", - "page-developers-smart-contract-security-link": "Beveiliging", + "page-developers-smart-contract-security-desc": "Beveiligingsmaatregelen om te overwegen tijdens het ontwikkelen van slimme contracten", + "page-developers-smart-contract-security-link": "Beveiliging van slimme contracten", "page-developers-set-up": "Lokale omgeving instellen", "page-developers-setup-desc": "Bereid je stack voor om te bouwen door het configureren van een ontwikkelomgeving.", "page-developers-smart-contracts-desc": "De logica achter dapps – zelf-uitvoerende overeenkomsten", @@ -80,5 +86,11 @@ "page-developers-transactions-desc": "Hoe de Ethereum-status verandert", "page-developers-transactions-link": "Transacties", "page-developers-web3-desc": "In hoeverre de web3-wereld van ontwikkelen anders is", - "page-developers-web3-link": "Web2 versus Web3" + "page-developers-web3-link": "Web2 versus Web3", + "page-developers-networking-layer": "Netwerklaag", + "page-developers-networking-layer-link": "Netwerklaag", + "page-developers-networking-layer-desc": "Introductie tot de netwerklaag van Ethereum", + "page-developers-data-structures-and-encoding": "Gegevensstructuren en codering", + "page-developers-data-structures-and-encoding-link": "Gegevensstructuren en codering", + "page-developers-data-structures-and-encoding-desc": "Introductie tot de gegevensstructuren en het coderingsschema gebruikt in de Ethereum stack" } diff --git a/src/intl/nl/page-developers-learning-tools.json b/src/intl/nl/page-developers-learning-tools.json new file mode 100644 index 00000000000..02630542577 --- /dev/null +++ b/src/intl/nl/page-developers-learning-tools.json @@ -0,0 +1,49 @@ +{ + "page-learning-tools-bloomtech-description": "De BloomTech Web3-cursus leert u de vaardigheden die werkgevers zoeken in ingenieurs.", + "page-learning-tools-bloomtech-logo-alt": "BloomTech logo", + "page-learning-tools-bootcamps": "Bootcamps voor ontwikkelaars", + "page-learning-tools-bootcamps-desc": "Betaalde online cursussen om u snel op weg te helpen.", + "page-learning-tools-browse-docs": "Doorzoek documenten", + "page-learning-tools-capture-the-ether-description": "Capture the Ether is een spel waarin u slimme contracten van Ethereum hackt om meer te weten te komen over beveiliging.", + "page-learning-tools-capture-the-ether-logo-alt": "Logo van Capture the Ether", + "page-learning-tools-chainshot-description": "Door instructeur geleide bootcamp op afstand voor Ethereum-ontwikkelaars en extra cursussen.", + "page-learning-tools-chainshot-logo-alt": "ChainShot logo", + "page-learning-tools-coding": "Leer door te coderen", + "page-learning-tools-coding-subtitle": "Deze tools zullen u helpen te experimenteren met Ethereum als u de voorkeur geeft aan een meer interactieve leerervaring.", + "page-learning-tools-consensys-academy-description": "Online bootcamp voor Ethereum-ontwikkelaars.", + "page-learning-tools-consensys-academy-logo-alt": "Logo van ConsenSys Academy", + "page-learning-tools-buildspace-description": "Leer over crypto door coole projecten te bouwen.", + "page-learning-tools-buildspace-logo-alt": "_buildspace Logo", + "page-learning-tools-cryptozombies-description": "Leer uw eigen Zombie-game te bouwen met Solidity.", + "page-learning-tools-cryptozombies-logo-alt": "CryptoZombies logo", + "page-learning-tools-documentation": "Leer met documentatie", + "page-learning-tools-documentation-desc": "Wilt u meer informatie? Ga naar onze documentatie om de uitleg te vinden die u nodig heeft.", + "page-learning-tools-eth-dot-build-description": "Een educatieve sandbox voor web3, inclusief drag-and-drop programmeren en open-source bouwstenen.", + "page-learning-tools-eth-dot-build-logo-alt": "Eth.build logo", + "page-learning-tools-ethernauts-description": "Voltooi niveaus door slimme contracten te hacken.", + "page-learning-tools-ethernauts-logo-alt": "Ethernauts-logo", + "page-learning-tools-game-tutorials": "Interactieve game-tutorials", + "page-learning-tools-game-tutorials-desc": "Leer terwijl u speelt. Deze tutorials leggen u de basis uit aan de hand van gameplay.", + "page-learning-tools-meta-desc": "Webgebaseerde codeerhulpmiddelen en interactieve leerervaringen om u te helpen te experimenteren met Ethereum-ontwikkeling.", + "page-learning-tools-meta-title": "Leerhulpmiddelen voor ontwikkelaars", + "page-learning-tools-questbook-description": "Zelfstudie-tutorials om Web 3.0 te leren door te bouwen", + "page-learning-tools-questbook-logo-alt": "Questbook-logo", + "page-learning-tools-remix-description": "Ontwikkel, implementeer en beheer slimme contracten voor Ethereum. Volg tutorials met de Learneth-plugin.", + "page-learning-tools-remix-description-2": "Remix en Replit zijn niet alleen sandboxes; ontwikkelaars kunnen er hun slimme contracten mee schrijven, compileren en implementeren.", + "page-learning-tools-replit-description": "Een aanpasbare ontwikkelomgeving voor Ethereum met hot reloading, foutcontrole en eersteklas testnetondersteuning.", + "page-learning-tools-replit-logo-alt": "Replit-logo", + "page-learning-tools-remix-logo-alt": "Remix-logo", + "page-learning-tools-sandbox": "Code-sandboxes", + "page-learning-tools-sandbox-desc": "Deze sandboxes geven u de ruimte om te experimenteren met het schrijven van slimme contracten en het begrijpen van Ethereum.", + "page-learning-tools-speed-run-ethereum-description": "SpeedRunEthereum biedt een reeks uitdagingen om uw Solidity-kennis te testen met Scaffold-ETH", + "page-learning-tools-speed-run-ethereum-logo-alt": "Logo van Speed Run Ethereum", + "page-learning-tools-studio-description": "Een webgebaseerde IDE waar u tutorials kunt volgen om slimme contracten te maken en te testen, en er een frontend voor te bouwen.", + "page-learning-tools-vyperfun-description": "Leer Vyper door uw eigen Pokémon-game te maken.", + "page-learning-tools-vyperfun-logo-alt": "Logo van Vyper.fun", + "page-learning-tools-nftschool-description": "Onderzoek wat er gebeurt met niet-vervangbare tokens of NFT's vanuit technisch opzicht.", + "page-learning-tools-nftschool-logo-alt": "NFT-schoollogo", + "page-learning-tools-pointer-description": "Leer web3-ontwikkelingsvaardigheden met leuke interactieve tutorials. Verdien onderweg cryptobeloningen", + "page-learning-tools-pointer-logo-alt": "Pointer-logo", + "page-learning-tools-platzi-description": "Leer hoe u dapps kunt bouwen op Web3 en beheers alle vaardigheden die nodig zijn om blockchain-ontwikkelaar te zijn.", + "page-learning-tools-platzi-logo-alt": "Platzi-logo" +} diff --git a/src/intl/nl/page-developers-local-environment.json b/src/intl/nl/page-developers-local-environment.json new file mode 100644 index 00000000000..b0365eea01e --- /dev/null +++ b/src/intl/nl/page-developers-local-environment.json @@ -0,0 +1,37 @@ +{ + "page-local-environment-brownie-desc": "Een op Python gebaseerd ontwikkel- en testraamwerk voor slimme contracten gericht op de Ethereum Virtual Machine.", + "page-local-environment-brownie-logo-alt": "Brownie logo", + "page-local-environment-embark-desc": "Het alles-in-één ontwikkelingsplatform voor het bouwen en implementeren van gedecentraliseerde applicaties.", + "page-local-environment-embark-logo-alt": "Embark logo", + "page-local-environment-epirus-desc": "Een platform voor het ontwikkelen, implementeren en monitoren van blockchain-applicaties op de Java Virtual Machine.", + "page-local-environment-epirus-logo-alt": "Epirus logo", + "page-local-environment-eth-app-desc": "Maak door Ethereum aangedreven apps met één commando. Wordt geleverd met een breed aanbod aan UI frameworks en DeFi templates om uit te kiezen.", + "page-local-environment-eth-app-logo-alt": "Maak Eth App-logo", + "page-local-environment-foundry-desc": "Een absurd snelle, draagbare en modulaire toolkit voor de ontwikkeling van Ethereum-applicaties geschreven in Rust.", + "page-local-environment-foundry-logo-alt": "Foundry-logo", + "page-local-environment-framework-feature-1": "Functies om een lokale blockchain-instantie op te zetten.", + "page-local-environment-framework-feature-2": "Hulpprogramma's om je slimme contracten te compileren en te testen.", + "page-local-environment-framework-feature-3": "Client-ontwikkeling-add-ons om uw gebruikersgerichte applicatie\nbinnen hetzelfde project/repository te bouwen.", + "page-local-environment-framework-feature-4": "Configuratie om verbinding te maken met Ethereum-netwerken en\ncontracten te implementeren, of het nu gaat om een lokaal lopende instantie of een van de publieke netwerken van Ethereum.", + "page-local-environment-framework-feature-5": "Gedecentraliseerde app-distributie - integraties met opslagopties zoals IPFS.", + "page-local-environment-framework-features": "Deze frameworks komen met veel out-of-the-box functionaliteit, zoals:", + "page-local-environment-frameworks-desc": "We raden u aan om een framework te kiezen, zeker als u pas bent begonnen. Het bouwen van een volledige dapp vereist verschillende technologieën. Frameworks omvatten veel van de benodigde functies of bieden eenvoudige plug-in systemen aan om de tools te kiezen die u nodig heeft.", + "page-local-environment-frameworks-title": "Frameworks en vooraf gemaakte stacks", + "page-local-environment-hardhat-desc": "Hardhat is een Ethereum-ontwikkelingsomgeving voor professionals.", + "page-local-environment-hardhat-logo-alt": "Hardhat-logo", + "page-local-environment-openZeppelin-desc": "Bespaar uren ontwikkeltijd door te compileren, te upgraden, te implementeren en te communiceren met slimme contracten via onze CLI.", + "page-local-environment-openZeppelin-logo-alt": "OpenZeppelin-logo", + "page-local-environment-scaffold-eth-desc": "Ethers + Hardhat + React: alles wat u nodig heeft om gedecentraliseerde toepassingen te bouwen, mogelijk gemaakt door slimme contracten.", + "page-local-environment-scaffold-eth-logo-alt": "scaffold-eth-logo", + "page-local-environment-setup-meta-desc": "Handleiding over hoe u uw softwarestack voor Ethereum-ontwikkeling kunt kiezen.", + "page-local-environment-setup-meta-title": "Lokale ontwikkelingsinstellingenvan Ethereum", + "page-local-environment-setup-subtitle": "Als u klaar bent om te beginnen, is het tijd om uw stack te kiezen.", + "page-local-environment-setup-subtitle-2": "Hier zijn de tools en frameworks die u kunt gebruiken om uw Ethereum-applicatie te bouwen.", + "page-local-environment-setup-title": "Stel u lokale ontwikkelingsomgeving in", + "page-local-environment-solidity-template-desc": "Een GitHub-template voor vooraf gebouwde instellingen voor uw Solidity slimme contracten. Bevat een lokaal Hardhat-netwerk, Waffle voor tests, Ethers voor portemonnee-implementaties, en meer.", + "page-local-environment-solidity-template-logo-alt": "Logo van Solidity-template", + "page-local-environment-truffle-desc": "De Truffle Suite helpt ontwikkelaars op de meest comfortabele manier ideeën om te zetten in dapps.", + "page-local-environment-truffle-logo-alt": "Truffle logo", + "page-local-environment-waffle-desc": "De meest geavanceerde testbibliotheek voor slimme contracten. Gebruik alleen of met Scaffold-eth of Hardhat.", + "page-local-environment-waffle-logo-alt": "Waffle logo" +} diff --git a/src/intl/nl/page-eth.json b/src/intl/nl/page-eth.json index 4106b339903..637491a6fdc 100644 --- a/src/intl/nl/page-eth.json +++ b/src/intl/nl/page-eth.json @@ -16,13 +16,13 @@ "page-eth-flexible-amounts-desc": "ETH is deelbaar tot op achttien decimale plaatsen, zodat u geen 1 hele ETH hoeft te kopen. U kunt enkele delen kopen - zo weinig als 0,000000000000000001 ETH als u wilt.", "page-eth-fuels": "ETH is de drijvende kracht achter en beveiligt Ethereum", "page-eth-fuels-desc": "ETH is de levensader van Ethereum. Wanneer u ETH verzendt of een Ethereum-applicatie gebruikt, betaalt u een vergoeding in ETH om het Ethereum-netwerk te gebruiken. Deze vergoeding is een stimulans voor een blokproducent om te verwerken en te verifiëren wat u probeert te doen.", - "page-eth-fuels-desc-2": "Momenteel zijn miners net als de boekhouders van Ethereum: ze controleren en bewijzen dat niemand vals speelt, en voeren werk uit voor het recht om een blok transacties voor te stellen. Miners die dit werk doen, worden ook beloond met kleine hoeveelheden nieuw uitgegeven ETH.", - "page-eth-fuels-desc-3": "De miners houden Ethereum veilig en vrij van gecentraliseerde controle. Met andere woorden,", - "page-eth-fuels-staking": "Binnenkort wordt ETH nog belangrijker met staking. Wanneer u uw ETH staket, kunt u Ethereum helpen beveiligen en beloningen verdienen. In dit systeem schrikt de dreiging van het verliezen van hun ETH de aanvallers af.", + "page-eth-fuels-desc-2": "Validators zijn de administrators van Ethereum — zij controleren en bewijzen of niemand aan het valsspelen is. Ze worden willekeurig geselecteerd om een blok met transacties voor te stellen. Validators die dit werk doen, worden ook beloond met kleine hoeveelheden ETH.", + "page-eth-fuels-desc-3": "Het werk dat validators doen, en het kapitaal dat ze staken, zorgt ervoor dat Ethereum veilig en vrij van gecentraliseerde controle blijft.", + "page-eth-fuels-staking": "Wanneer u uw ETH staket, helpt u Ethereum en verdient u hier beloningen mee. In dit systeem schrikt het gevaar om ETH te verliezen aanvallers af.", "page-eth-fuels-more-staking": "Meer over staking", "page-eth-get-eth-btn": "Verkrijg ETH", "page-eth-gov-tokens": "Governance tokens", - "page-eth-gov-tokens-desc": "Tokens die stemrecht vertegenwoordigen in gedecentraliseerde organisaties.", + "page-eth-gov-tokens-desc": "Tokens die stemrechten weergeven in gedecentraliseerde organisaties.", "page-eth-has-value": "Waarom heeft ETH waarde?", "page-eth-has-value-desc": "ETH is op verschillende manieren waardevol voor verschillende mensen.", "page-eth-has-value-desc-2": "Voor Ethereum-gebruikers is ETH waardevol, omdat je er transactiekosten mee kunt betalen.", diff --git a/src/intl/nl/page-languages.json b/src/intl/nl/page-languages.json new file mode 100644 index 00000000000..222b2eb3cd8 --- /dev/null +++ b/src/intl/nl/page-languages.json @@ -0,0 +1,15 @@ +{ + "page-languages-h1": "Taalondersteuning", + "page-languages-interested": "Interesse om bij te dragen?", + "page-languages-learn-more": "Meer informatie over ons vertaalprogramma", + "page-languages-meta-desc": "Hulpbronnen voor alle ondersteunde talen van ethereum.org en manieren om als vertaler bij te dragen.", + "page-languages-meta-title": "Vertalingen van talen voor ethereum.org ", + "page-languages-p1": "Ethereum is een wereldwijd project, daarom is het cruciaal dat ethereum.org voor iedereen toegankelijk is, ongeacht hun nationaliteit of taal. Onze gemeenschap heeft er hard aan gewerkt om deze visie tot een realiteit te maken.", + "page-languages-translations-available": "ethereum.org is beschikbaar in de volgende talen", + "page-languages-resources-paragraph": "Naast het vertalen van de inhoud van ethereum.org, onderhouden we ook een", + "page-languages-resources-link": "geordende lijst van Ethereum-bronnen in verschillende talen", + "page-languages-want-more-header": "Wilt u ethereum.org weergeven in een andere taal?", + "page-languages-want-more-link": "Vertalingsprogramma", + "page-languages-want-more-paragraph": "Vertalers van ethereum.org vertalen altijd pagina's in zoveel mogelijk talen als mogelijk. Om te zien waar ze nu aan werken of om ze te helpen, lees meer over onze", + "page-languages-filter-placeholder": "Filter" +} diff --git a/src/intl/nl/page-layer-2.json b/src/intl/nl/page-layer-2.json new file mode 100644 index 00000000000..cc7fee60a80 --- /dev/null +++ b/src/intl/nl/page-layer-2.json @@ -0,0 +1,135 @@ +{ + "layer-2-arbitrum-note": "Fraud proofs alleen voor gewhiteliste gebruikers, whitelist is nog niet geopend", + "layer-2-boba-note": "Staatsvalidatie in ontwikkeling", + "layer-2-metis-note": "Fraud proofs in ontwikkeling", + "layer-2-optimism-note": "Fault proofs in ontwikkeling", + "layer-2-hero-title": "Laag 2", + "layer-2-hero-header": "Ethereum voor iedereen", + "layer-2-hero-subtitle": "Ethereum schalen, zonder in te leveren op veiligheid of decentralisatie.", + "layer-2-hero-alt-text": "Illustratie van transacties die op Laag 2 worden uitgevoerd en in het Ethereum-hoofdnet worden geplaatst", + "layer-2-hero-button-1": "Wat is laag 2", + "layer-2-hero-button-2": "Gebruik laag 2", + "layer-2-hero-button-3": "Verplaats naar laag 2", + "layer-2-statsbox-1": "TVL vergrendeld in laag 2 (USD)", + "layer-2-statsbox-2": "Gemiddelde ETH-overschrijvingsvergoeding van laag 2 (USD)", + "layer-2-statsbox-3": "TVL-verandering van laag 2 (30 dagen)", + "layer-2-what-is-layer-2-title": "Wat is laag 2?", + "layer-2-what-is-layer-2-1": "Laag 2 (L2) is een collectieve term om een specifieke set van Ethereum-schaaloplossingen te beschrijven. Een laag 2 is een aparte blockchain die Ethereum uitbreidt en de beveiligingsgaranties van Ethereum overerft.", + "layer-2-what-is-layer-2-2": "Laten we hier nu iets dieper op ingaan, en om dit te doen moeten we eerst laag 1 (L1) uitleggen.", + "layer-2-what-is-layer-1-title": "Wat is laag 1?", + "layer-2-what-is-layer-1-1": "Laag 1 is de basisblockchain. Ethereum en Bitcoin zijn beide laag 1-blockchains omdat ze de onderliggende basis zijn van verschillende laag 2-netwerken. Voorbeelden van projecten in laag 2 omvatten \"rollups\" op Ethereum en het Lighting Network op Bitcoin. Alle gebruikerstransactie-activiteiten op deze laag 2-projecten kunnen uiteindelijk terugvloeien naar de blockchain in laag 1.", + "layer-2-what-is-layer-1-2": "Ethereum functioneert ook als een databeschikbaarheidslaag voor laag 2. Laag 2-projecten zullen hun transactiegegevens op Ethereum plaatsen en vertrouwen op Ethereum voor de beschikbaarheid van gegevens. Deze gegevens kunnen gebruikt worden om de status van laag 2 te verkrijgen of om transacties op laag 2 te betwisten.", + "layer-2-what-is-layer-1-list-title": "Ethereum als laag 1 bevat:", + "layer-2-what-is-layer-1-list-1": "Een netwerk van node-beheerders om het netwerk te beveiligen en te valideren", + "layer-2-what-is-layer-1-list-2": "Een netwerk van blokproducenten", + "layer-2-what-is-layer-1-list-3": "De blockchain zelf en de geschiedenis van transactiegegevens", + "layer-2-what-is-layer-1-list-4": "Het consensusmechanisme voor het netwerk", + "layer-2-what-is-layer-1-list-link-1": "Nog steeds in de war over Ethereum?", + "layer-2-what-is-layer-1-list-link-2": "Leer wat Ethereum is.", + "layer-2-why-do-we-need-layer-2-title": "Waarom hebben we laag 2 nodig?", + "layer-2-why-do-we-need-layer-2-1": "De drie wenselijke eigenschappen van een blockchain zijn dat het gedecentraliseerd, veilig en schaalbaarmoet zijn. Het blockchain trilemma stelt dat een eenvoudige blockchainarchitectuur maar twee van de drie kan bereiken. Wil je een veilige en gedecentraliseerde blockchain? Dan moet je schaalbaarheid opofferen.", + "layer-2-why-do-we-need-layer-2-2": "Ethereum heeft zijn huidige capaciteit bereikt met meer dan 1 miljoen transacties per dag en een hoge vraag naar elk van deze transacties. Het succes van Ethereum en de vraag om het te gebruiken heeft ervoor gezorgd dat de gasprijzen aanzienlijk zijn gestegen. Daarom is de vraag naar schalingsoplossingen ook toegenomen. Hierbij komen laag 2-netwerken aan de orde.", + "layer-2-why-do-we-need-layer-2-scalability": "Schaalbaarheid", + "layer-2-why-do-we-need-layer-2-scalability-1": "Het belangrijkste doel van schaalbaarheid is het verhogen van de transactiesnelheid (snellere finaliteit) en transactiedoorvoer (meer transacties per seconde) zonder decentralisatie of beveiliging op te offeren.", + "layer-2-why-do-we-need-layer-2-scalability-2": "De Ethereum-gemeenschap heeft een sterk standpunt ingenomen om decentralisatie en veiligheid niet op te offeren om te schalen. Tot sharding is het Ethereum-hoofdnet (laag 1) alleen in staat om grofweg 15 transacties per seconde te verwerken. Wanneer de vraag om Ethereum te gebruiken hoog is, wordt het netwerk overbelast, wat de transactiekosten verhoogt en gebruikers achter zich laat die zich deze kosten niet kunnen veroorloven. Dit is wanneer laag 2 aan de orde komt om Ethereum op dit moment te schalen.", + "layer-2-why-do-we-need-layer-2-scalability-3": "Meer over de visie van Ethereum", + "layer-2-benefits-of-layer-2-title": "Voordelen van laag 2", + "layer-2-lower-fees-title": "Lagere kosten", + "layer-2-lower-fees-description": "Door meerdere off-chain transacties te combineren in één enkele laag 1-transactie, worden de transactiekosten enorm verlaagd, waardoor Ethereum toegankelijker wordt voor iedereen.", + "layer-2-maintain-security-title": "Veiligheid blijft behouden", + "layer-2-maintain-security-description": "Laag 2-blockchains vereffenen hun transacties op het Ethereum-hoofdnet, waardoor gebruikers kunnen profiteren van de beveiliging van het Ethereum-netwerk.", + "layer-2-expand-use-cases-title": "Meer use cases", + "layer-2-expand-use-cases-description": "Met meer transacties per seconde, lagere kosten en nieuwe technologie zullen projecten uitbreiden tot nieuwere toepassingen met een verbeterde gebruikerservaring.", + "layer-2-how-does-layer-2-work-title": "Hoe werkt laag 2?", + "layer-2-how-does-layer-2-work-1": "Zoals we hierboven hebben gezegd, is laag 2 een collectieve term voor de schalingsoplossingen van Ethereum die transacties buiten laag 1 van Ethereum afhandelen, terwijl ze nog steeds kunnen profiteren van de robuuste gedecentraliseerde veiligheid van Ethereum laag 1. Een laag 2 is een aparte blockchain die Ethereum uitbreidt. Hoe werkt dat?", + "layer-2-how-does-layer-2-work-2": "Een laag 2-blockchain communiceert regelmatig met Ethereum (door het indienen van bundels van transacties) om ervoor te zorgen dat het vergelijkbare beveiligings- en decentralisatiegaranties heeft. Dit alles vereist geen wijzigingen in het protocol voor laag 1 (Ethereum). Hierdoor kan laag 1 de beveiliging, gegevensbeschikbaarheid en decentralisatie afhandelen, terwijl laag 2 de schaling behandelt. Laag 2'en nemen de transactionele last weg van laag 1 en sturen definitief bewijs terug naar laag 1. Door deze transactiebelasting te verwijderen uit laag 1, wordt de basislaag minder belast en wordt alles schaalbaarder.", + "layer-2-rollups-title": "Rollups", + "layer-2-rollups-1": "Rollups zijn momenteel de laag 2-voorkeursoplossing voor het schalen van Ethereum. Door rollups te gebruiken, kunnen gebruikers gaskosten tot 100x verlagen ten opzichte van laag 1.", + "layer-2-rollups-2": "Rollups bundelen (of ’roll up’) honderden transacties in een enkele transactie op laag 1. Dit verdeelt de L1-transactiekosten over iedereen in de rollup, waardoor het goedkoper wordt voor elke gebruiker. Rollup-transacties worden buiten laag 1 uitgevoerd, maar de transactiegegevens worden op laag 1 geplaatst. Door transactiegegevens op laag 1 te plaatsen, erven rollups de veiligheid van Ethereum over. Er zijn twee verschillende benaderingen voor rollups: optimistic en zero-knowledge. Ze verschillen voornamelijk over hoe deze transactiegegevens op L1 worden geplaatst.", + "layer-2-optimistic-rollups-title": "Optimistic rollups", + "layer-2-optimistic-rollups-description": "Optimistic rollups zijn 'optimistisch' in die zin dat verondersteld wordt dat transacties geldig zijn, maar indien nodig kunnen worden gecontrolleerd. Als er een ongeldige transactie wordt vermoed, wordt er een foutief bewijs geleverd om te zien of dit heeft plaatsgevonden.", + "layer-2-optimistic-rollups-childSentance": "Meer over optimistic rollups", + "layer-2-zk-rollups-title": "Zero-knowledge rollups", + "layer-2-zk-rollups-description": "Zero-knowledge rollups gebruiken geldigheidsbewijzen wanneer transacties buiten de keten worden berekend, en vervolgens worden gecomprimeerde gegevens aan het Ethereum-hoofdnet verstrekt als bewijs van hun geldigheid.", + "layer-2-zk-rollups-childSentance": "Meer over ZK-rollups", + "layer-2-dyor-title": "Doe uw eigen onderzoek: risico's van laag 2", + "layer-2-dyor-1": "Omdat laag 2-ketens de beveiliging van Ethereum overerven, zijn ze (in een ideale wereld) net zo veilig als L1 Ethereum. Veel van de projecten zijn echter nog steeds jong en enigszins experimenteel. Na jaren van onderzoek en ontwikkeling werden veel van de L2-technologieën die Ethereum zullen schalen, gelanceerd in 2021. Veel projecten hebben nog steeds aannames ten aanzien van het vertrouwen terwijl ze eraan werken om hun netwerken te decentraliseren. Doe altijd je eigen onderzoek om te bepalen of je comfortabel bent met eventuele risico's.", + "layer-2-dyor-2": "Voor meer informatie over de technologie, risico's en betrouwbaarheid van laag 2'en, bevelen we u aan om L2BEAT te bekijken, dat een uitgebreid framework voor risicobeoordeling van elk project biedt.", + "layer-2-dyor-3": "Ga naar L2BEAT", + "layer-2-use-layer-2-title": "Gebruik laag 2", + "layer-2-use-layer-2-1": "Nu u begrijpt waarom laag 2 bestaat en hoe het werkt, kunnen we u op weg helpen!", + "layer-2-contract-accounts": "OPMERKING: Bij het overbruggen en gebruiken van laag 2, is het belangrijk om op te merken dat u het adres van uw EOA-account (een account waar slechts één persoonlijke sleutel het account beheert) net zoals op het Ethereum-hoofdnet controleert. Als u echter een contractaccount gebruikt, zoals Gnosis Safe of Argent, dan heeft u geen controle over dit adres op laag 2 totdat u uw contractaccount opnieuw invoegt naar dat adres op laag 2. Als u geld overbrugt of verzendt naar een contractaccount, en u beheert dit adres voor het contractaccount niet, dan kunt u uw middelen verliezen.", + "layer-2-use-layer-2-generalized-title": "Gegeneraliseerde laag 2'en", + "layer-2-use-layer-2-generalized-1": "Gegeneraliseerde laag 2'en gedragen zich net als Ethereum - maar goedkoper. Alles wat je met Ethereums laag 1 kunt doen, kun je ook met laag 2 doen. Veel dapps zijn al begonnen met naar deze netwerken te migreren of hebben het hoofdnet helemaal overgeslagen om rechtstreeks op laag 2 te implementeren.", + "layer-2-use-layer-2-application-specific-title": "Toepassingsspecifieke laag 2'en", + "layer-2-use-layer-2-application-specific-1": "Toepassingsspecifieke laag 2'en zijn projecten die gespecialiseerd zijn in het optimaliseren van een specifieke toepassingsruimte, wat leidt tot verbeterde prestaties.", + "layer-2-sidechains-title": "Een opmerking over sidechains, validiums en alternatieve blockchains", + "layer-2-sidechains-1": "Sidechains en validiums zijn blockchains waarmee assets van Ethereum kunnen worden overbrugd en gebruikt op een andere blockchain. Sidechains en validiums lopen parallel met Ethereum en communiceren met Ethereum via bridges, maar ze ontlenen hun veiligheid of gegevensbeschikbaarheid niet van Ethereum.", + "layer-2-sidechains-2": "Beide worden op vergelijkbare wijze op laag 2'en geschaald - ze bieden lagere transactiekosten en hogere transactiedoorvoer - maar hebben verschillende aannames ten aanzien van het vertrouwen.", + "layer-2-more-on-sidechains": "Meer informatie over sidechains", + "layer-2-more-on-validiums": "Meer informatie over validiums", + "layer-2-sidechains-4": "Sommige laag 1-blockchains hebben een hogere doorvoer en lagere transactiekosten dan Ethereum. Deze alternatieve laag 1'en hebben veiligheid of decentralisatie moeten opofferen om hogere transacties per seconde en lagere transactiekosten te bereiken.", + "layer-2-sidechains-5": "Het Ethereum-ecosysteem is stevig afgestemd op het feit dat laag 2-schaling de enige manier is om het schaalbaarheidstrilemma op te lossen terwijl het gedecentraliseerd en veilig blijft.", + "layer-2-onboard-title": "Zo komt u op een laag 2", + "layer-2-onboard-1": "Er zijn twee manieren om uw assets op laag 2 te krijgen: geld overbruggen van Ethereum (via een slim contract) of uw geld direct via een exchange opnemen en op het laag 2-netwerk zetten.", + "layer-2-onboard-wallet-title": "Middelen in je portemonnee?", + "layer-2-onboard-wallet-1": "Als u al ETH in uw portemonnee heeft, moet u een bridge gebruiken om het van het Ethereum-hoofdnet naar laag 2 te verplaatsen.", + "layer-2-more-on-bridges": "Meer over bridges", + "layer-2-onboard-wallet-input-placeholder": "Selecteer L2 waar u naar wilt overbruggen", + "layer-2-onboard-wallet-selected-1": "U kunt verbinden met", + "layer-2-onboard-wallet-selected-2": "met behulp van deze portemonnees:", + "layer-2-bridge": "Bridge", + "layer-2-onboard-exchange-title": "Middelen op een exchange?", + "layer-2-onboard-exchange-1": "Sommige gecentraliseerde exchanges bieden nu directe opnames en stortingen op laag 2 aan. Bekijk welke exchanges laag 2-opnames ondersteunen en welke laag 2'en ze ondersteunen.", + "layer-2-onboard-exchange-2": "U heeft ook een portemonnee nodig om uw middelen in op te nemen.", + "layer-2-onboard-find-a-wallet": "Zoek een Ethereum-portemonnee.", + "layer-2-onboard-exchange-input-placeholder": "Bekijk exchanges die L2 ondersteunen", + "layer-2-deposits": "Stortingen", + "layer-2-withdrawals": "Opnames", + "layer-2-go-to": "Ga naar", + "layer-2-tools-title": "Tools die effectief zijn op laag 2", + "layer-2-tools-l2beat-description": "L2BEAT is een geweldige bron voor het bekijken van technische risicobeoordelingen van projecten op laag 2. We raden aan om hun hulpbronnen te bekijken bij het onderzoeken van specifieke laag 2-projecten.", + "layer-2-tools-l2fees-description": "Met L2-vergoedingen kunt u de huidige kosten (genoteerd in USD) zien voor transacties op verschillende laag 2'en.", + "layer-2-tools-chainlist-description": "Chainlist is een geweldige bron voor het importeren van netwerk RPC's in ondersteunende portemonnees. U e vindt hier RPC's voor laag 2-projecten om u te helpen starten.", + "layer-2-tools-zapper-description": "Beheer uw hele web3-portfolio, van DeFi tot NFT's en wat er hierna nog komt. Investeer in de laatste kansen vanuit één handige plaats.", + "layer-2-tools-zerion-description": "Bouw en beheer uw hele DeFi-portfolio op één plaats. Ontdek de wereld van gedecentraliseerde financiën vandaag.", + "layer-2-tools-debank-description": "Blijf op de hoogte van alle belangrijke gebeurtenissen in de web3-wereld", + "layer-2-faq-title": "Veelgestelde vragen", + "layer-2-faq-question-1-title": "Waarom is er geen 'officiële' Ethereum L2?", + "layer-2-faq-question-1-description-1": "Net zoals er geen 'officiële' Ethereum-client is, is er geen 'officiële' laag 2 op Ethereum. Ethereum is vrijblijvend - technisch gezien kan iedereen een laag 2 maken! Verschillende teams zullen hun versie van laag 2 implementeren en het ecosysteem als geheel zal profiteren van een verscheidenheid aan benaderingen die zijn geoptimaliseerd voor verschillende gebruiksscenario's. Net als dat er meerdere Ethereum-clients zijn die werden ontwikkeld door verschillende teams om voor diversiteit in het netwerk te zorgen, zal dit ook de manier zijn waarop laag 2'en ontwikkeld zullen worden in de toekomst.", + "layer-2-faq-question-2-title": "Wat is het verschil tussen optimistic rollups en zero-knowledge rollups?", + "layer-2-faq-question-2-description-1": "Zowel optimistic als zero-knowledge rollups bundelen honderden transacties in een enkele transactie op laag 1. Rollup-transacties worden buiten laag 1 uitgevoerd, maar de transactiegegevens worden in laag 1 geplaatst.", + "layer-2-faq-question-2-description-2": "Het primaire verschil is welke gegevens worden geplaatst in laag 1 en hoe de gegevens worden geverifieerd. Bij geldigheidsbewijzen (gebruikt door zero-knowledge rollups) worden de berekeningen off-chain uitgevoerd en wordt een bewijs geplaatst, terwijl bij foutbewijzen (gebruikt door optimistic rollups) de berekeningen alleen on-chain worden uitgevoerd wanneer er een fout wordt vermoed, en deze moeten worden gecontroleerd.", + "layer-2-faq-question-2-description-3": "Op dit moment zijn de meeste ZK-rollups toepassingsspecifiek, in tegenstelling tot optimistic rollups die grotendeels generalistisch zijn.", + "layer-2-more-info-on-optimistic-rollups": "Meer informatie over optimistic rollups", + "layer-2-more-info-on-zk-rollups": "Meer informatie over zero-knowledge rollups", + "layer-2-faq-question-3-title": "Is schaling op laag 1 mogelijk?", + "layer-2-faq-question-3-description-1": "Ja. Op dit moment bestaan er in de Ethereum-roadmap plannen voor shardketens. Hoewel deze zich in de roadmap bevinden, is verdere schaling met laag 2-netwerken nog steeds noodzakelijk.", + "layer-2-more-on-sharding": "Meer informatie over sharding", + "layer-2-faq-question-4-title": "Wat zijn de risico's met laag 2?", + "layer-2-faq-question-4-description-1": "Laag 2-projecten bevatten extra risico's in vergelijking met het houden van fondsen en direct transacties uitvoeren op het Ethereum-hoofdnet. Sequencers kunnen bijvoorbeeld dalen, wat ertoe leidt dat u moet wachten op toegang tot uw fondsen.", + "layer-2-faq-question-4-description-2": "We moedigen u aan om uw eigen onderzoek te doen voordat u aanzienlijke bedragen overmaakt naar laag 2. Voor meer informatie over de technologie, risico's en vertrouwensaannames van laag 2'en, raden we u aan omL2BEATte bekijken, wat een uitgebreid framework voor risicobeoordeling van elk project biedt.", + "layer-2-faq-question-4-description-3": "Blockchain-bridges, die transfers van assets naar laag 2 vergemakkelijken, bevinden zich in een vroeg stadium van ontwikkeling en het is waarschijnlijk dat het optimale bridge-ontwerp nog niet is ontdekt. Er vonden recente bridge-hacks plaats.", + "layer-2-faq-question-5-title": "Waarom staan sommige laag 2-projecten hier niet opgesomd?", + "layer-2-faq-question-5-description-1": "We willen ervoor zorgen dat we de best mogelijke bronnen vermelden zodat gebruikers laag 2 op veilige en zekere manier kunnen gebruiken. Wij onderhouden een framework met criteria voor de wijze waarop projecten worden geëvalueerd voor opname.", + "layer-2-faq-question-5-view-listing-policy": "Bekijk hier ons beleid inzake vermelding van laag 2'en.", + "layer-2-faq-question-5-description-2": "Iedereen kan voorstellen om een laag 2 toe te voegen op ethereum.org. Als er een laag 2 is die we hebben gemist, stel deze dan voor.", + "layer-2-further-reading-title": "Verder lezen", + "a-rollup-centric-ethereum-roadmap": "Een rollup-centrische ethereum-roadmap", + "an-incomplete-guide-to-rollups": "Een onvolledige handleiding voor Rollups", + "polygon-sidechain-vs-ethereum-rollups": "Polygon sidechain vs Ethereum rollups: Layer 2 scaling approaches| Vitalik Buterin en Lex Fridman", + "rollups-the-ultimate-ethereum-scaling-strategy": "ROLLUPS - de ultieme Ethereum-schalingsstrategie? Arbitrum en Optimism verklaard", + "scaling-layer-1-with-shard-chains": "Laag 1 schalen met shardketens", + "understanding-rollup-economics-from-first-principals": "De rollup-economie begrijpen vanuit de eerste beginselen", + "arbitrum-description": "Arbitrum is een Optimistic Rollup die het exacte gevoel probeert te geven van een interactie met Ethereum, maar waarbij transacties maar een fractie kosten van wat ze op L1 kosten.", + "optimism-description": "Optimism is een snelle, eenvoudige en veilige EVM-equivalente optimistic rollup. Het schaalt de technologie van Ethereum, terwijl het de waarden daarvan ook schaalt door middel van retroactieve financiering van publieke goederen.", + "boba-description": "Boba is een Optimistic Rollup die oorspronkelijk werd afgeleid van Optimism. Het is een schalingsoplossing die tot doel heeft de gaskosten te verlagen, de transactiedoorvoer te verbeteren en de mogelijkheden van slimme contracten uit te breiden.", + "loopring-description": "De zkRollup L2-oplossing van Loopring heeft tot doel dezelfde beveiligingsgaranties te bieden als het Ethereum-hoofdnet, met een grote schaalbaarheidsimpuls: doorvoer verhoogd met 1000x en de kosten verlaagd tot slechts 0,1% van L1.", + "zksync-description": "zkSync is een gebruikerscentrisch zk rollup-platform van Matter Labs. Het is een schalingsoplossing voor Ethereum die al live is op het Ethereum-hoofdnet. Het ondersteunt betalingen, tokenuitwisselingen en NFT-minting.", + "zkspace-description": "Het ZKSpace-platform bestaat uit drie hoofddelen: een Laag 2 AMM DEX die gebruik maakt van ZK-Rollups-technologie met de naam ZKSwap, een betalingsdienst genaamd ZKSquare en een NFT-marktplaats genaamd ZKSea.", + "aztec-description": "Aztec Network is de eerste private zk-rollup op Ethereum, waardoor gedecentraliseerde toepassingen toegang krijgen tot privacy en schaal.", + "layer-2-note": "Opmerking:", + "layer-2-ecosystem-portal": "Ecosysteemportaal", + "layer-2-token-lists": "Tokenlijsten", + "layer-2-explore": "Verkennen" +} diff --git a/src/intl/nl/page-run-a-node.json b/src/intl/nl/page-run-a-node.json new file mode 100644 index 00000000000..8b76c9eb25d --- /dev/null +++ b/src/intl/nl/page-run-a-node.json @@ -0,0 +1,138 @@ +{ + "page-run-a-node-build-your-own-title": "Bouw je eigen", + "page-run-a-node-build-your-own-hardware-title": "Stap 1 - Hardware", + "page-run-a-node-build-your-own-minimum-specs": "Minimale specs", + "page-run-a-node-build-your-own-min-ram": "4 - 8 GB RAM", + "page-run-a-node-build-your-own-ram-note-1": "Zie opmerking over staking", + "page-run-a-node-build-your-own-ram-note-2": "Zie opmerking over Raspberry Pi", + "page-run-a-node-build-your-own-min-ssd": "2 TB SSD", + "page-run-a-node-build-your-own-ssd-note": "SSD noodzakelijk voor benodigde schrijfsnelheden.", + "page-run-a-node-build-your-own-min-internet": "Internetverbinding", + "page-run-a-node-build-your-own-recommended": "Aanbevolen", + "page-run-a-node-build-your-own-nuc": "Intel NUC, 7e gen of hoger", + "page-run-a-node-build-your-own-nuc-small": "x86 processor", + "page-run-a-node-build-your-own-connection": "Bedrade internetverbinding", + "page-run-a-node-build-your-own-connection-small": "Niet vereist, maar biedt eenvoudigere setup en de meest consistente verbinding", + "page-run-a-node-build-your-own-peripherals": "Scherm en toetsenbord", + "page-run-a-node-build-your-own-peripherals-small": "Tenzij u gebruik maakt van DAppNode, of ssh/headless setup", + "page-run-a-node-build-your-own-software": "Stap 2 - Software", + "page-run-a-node-build-your-own-software-option-1-title": "Optie 1 - DAppNode", + "page-run-a-node-build-your-own-software-option-1-description": "Wanneer u klaar bent met uw hardware, kan het DAppNode-besturingssysteem met elke computer gedownload worden en geïnstalleerd op een verse SSD via een USB-stick.", + "page-run-a-node-build-your-own-software-option-1-button": "DAppNode Setup", + "page-run-a-node-build-your-own-software-option-2-title": "Optie 2 - Command line", + "page-run-a-node-build-your-own-software-option-2-description-1": "Voor maximale controle kunnen ervaren gebruikers de voorkeur geven aan de commandoregel.", + "page-run-a-node-build-your-own-software-option-2-description-2": "Bekijk onze ontwikkelaarsdocumenten voor meer informatie over het starten met de selectie van clients.", + "page-run-a-node-build-your-own-software-option-2-button": "Command line setup", + "page-run-a-node-buy-fully-loaded-title": "Koop fully-loaded", + "page-run-a-node-buy-fully-loaded-description": "Bestel de plug-and-play optie van leveranciers voor de eenvoudigste onboarding-ervaring.", + "page-run-a-node-buy-fully-loaded-note-1": "Bouwen niet nodig.", + "page-run-a-node-buy-fully-loaded-note-2": "App-achtige setup met een GUI.", + "page-run-a-node-buy-fully-loaded-note-3": "Geen command line vereist.", + "page-run-a-node-buy-fully-loaded-plug-and-play": "Deze oplossingen zijn klein in omvang, maar worden fully-loaded geleverd.", + "page-run-a-node-censorship-resistance-title": "Censuurbestendig", + "page-run-a-node-censorship-resistance-preview": "Verzeker toegang wanneer u dit nodig heeft, en word niet gecensureerd.", + "page-run-a-node-censorship-resistance-1": "Een node van een derde kan ervoor kiezen om transacties van specifieke IP-adressen of specifieke accounts te weigeren, waarbij u mogelijk geblokkeerd wordt om het netwerk te gebruiken wanneer u het nodig heeft. ", + "page-run-a-node-censorship-resistance-2": "Uw eigen node hebben om transacties in te dienen garandeert dat u op elk moment uw transacties kunt uitzenden naar de rest van het peer-to-peer netwerk.", + "page-run-a-node-community-title": "Vind enkele helpers", + "page-run-a-node-community-description-1": "Online platformen zoals Discord of Reddit zijn de thuisbasis van een groot aantal gemeenschapsbouwers die bereid zijn om u te helpen met al uw vragen.", + "page-run-a-node-community-description-2": "Probeer niet alles alleen te doen.Als u een vraag heeft, is de kans groot dat iemand u kan helpen een antwoord te vinden.", + "page-run-a-node-community-link-1": "Neem deel aan de DAppNode Discord", + "page-run-a-node-community-link-2": "Vind online communities", + "page-run-a-node-choose-your-adventure-title": "Kies je avontuur", + "page-run-a-node-choose-your-adventure-1": "Om te beginnen heeft u bepaalde hardware nodig. Hoewel het draaien van node-software mogelijk is op een pc, kan beschikken over een specifieke machine de prestaties van uw node aanzienlijk verbeteren terwijl de impact op uw primaire computer geminimaliseerd wordt.", + "page-run-a-node-choose-your-adventure-2": "Bij het selecteren van hardware moet men bedenken dat de keten voortdurend groeit en dat onderhoud onvermijdelijk nodig zal zijn. Scherpere specificaties kunnen de noodzaak voor onderhoud van nodes verminderen.", + "page-run-a-node-choose-your-adventure-build-1": "Een goedkopere en beter aanpasbare optie voor ietwat technischere gebruikers.", + "page-run-a-node-choose-your-adventure-build-bullet-1": "Zorg voor je eigen onderdelen.", + "page-run-a-node-choose-your-adventure-build-bullet-2": "Installeer DAppNode.", + "page-run-a-node-choose-your-adventure-build-bullet-3": "Of kies uw eigen OS en clients.", + "page-run-a-node-choose-your-adventure-build-start": "Start met bouwen", + "page-run-a-node-decentralized-title": "Decentralisatie", + "page-run-a-node-decentralized-preview": "Weersta het versterken van gecentraliseerde punten van mislukking.", + "page-run-a-node-decentralized-1": "Gecentraliseerde cloudservers kunnen veel rekenkracht bieden, maar ze bieden een doelwit voor landen of aanvallers die het netwerk proberen te verstoren.", + "page-run-a-node-decentralized-2": "Netwerkveerkracht wordt bereikt met meer nodes, in geografisch gediversifieerde locaties, die worden beheerd door verschillende mensen met verschillende achtergronden. Naarmate meer mensen hun eigen node draaien, zal het vertrouwen op gecentraliseerde punten van mislukking verminderen, waardoor het netwerk sterker wordt.", + "page-run-a-node-feedback-prompt": "Vond u deze pagina nuttig?", + "page-run-a-node-further-reading-title": "Verder lezen", + "page-run-a-node-further-reading-1-link": "Ethereum leren kennen - Moet ik een volledige node draaien", + "page-run-a-node-further-reading-1-author": "Andreas Antonopoulos", + "page-run-a-node-further-reading-2-link": "Ethereum op ARM - Snelstartgids", + "page-run-a-node-further-reading-3-link": "De Limieten van Blockchain Schaalbaarheid", + "page-run-a-node-further-reading-3-author": "Vitalik Buterin", + "page-run-a-node-getting-started-title": "Aan de slag", + "page-run-a-node-getting-started-software-section-1": "In de eerdere dagen van het netwerk moesten gebruikers kunnen communiceren met de commandoregel om een Ethereum-node te beheren.", + "page-run-a-node-getting-started-software-section-1-alert": "Als dit uw voorkeur is, en u heeft de vaardigheden, bekijk dan gerust onze technische documenten.", + "page-run-a-node-getting-started-software-section-1-link": "Draai een Ethereum node", + "page-run-a-node-getting-started-software-section-2": "Nu beschikken we over DAppNode, dat gratis en open-source software is, die gebruikers een op een app gelijkende ervaring geeft tijdens het beheren van hun node.", + "page-run-a-node-getting-started-software-section-3a": "In slechts enkele tikken kunt u uw node laten draaien.", + "page-run-a-node-getting-started-software-section-3b": "DAppNode maakt het gemakkelijk voor gebruikers om volledige nodes, dapps en andere P2P-netwerken te draaien, zonder dat het nodig is om de commandoregel aan te raken. Dit maakt het gemakkelijker voor iedereen om deel te nemen aan een gedecentraliseerd netwerk en deze te creëren.", + "page-run-a-node-getting-started-software-title": "Deel 2: Software", + "page-run-a-node-glyph-alt-terminal": "Terminal glyph", + "page-run-a-node-glyph-alt-phone": "Telefoonbewaking glyph", + "page-run-a-node-glyph-alt-dappnode": "DAppNode glyph", + "page-run-a-node-glyph-alt-pnp": "Plug-n-play glyph", + "page-run-a-node-glyph-alt-hardware": "Hardware glyph", + "page-run-a-node-glyph-alt-software": "Softwaredownload glyph", + "page-run-a-node-glyph-alt-privacy": "Privacy glyph", + "page-run-a-node-glyph-alt-censorship-resistance": "Censuurbestendige megafoon glyph", + "page-run-a-node-glyph-alt-earth": "Aarde glyph", + "page-run-a-node-glyph-alt-decentralization": "Decentralisatie glyph", + "page-run-a-node-glyph-alt-vote": "Laat je stem horen glyph", + "page-run-a-node-glyph-alt-sovereignty": "Soevereiniteit glyph", + "page-run-a-node-hero-alt": "Afbeelding van node", + "page-run-a-node-hero-header": "Neem de volledige controle.
Draai uw eigen node.", + "page-run-a-node-hero-subtitle": "Word volledig soeverein terwijl u het netwerk helpt beveiligen. Word Ethereum.", + "page-run-a-node-hero-cta-1": "Meer informatie", + "page-run-a-node-hero-cta-2": "Laten we beginnen!", + "page-run-a-node-install-manually-title": "Installeer handmatig", + "page-run-a-node-install-manually-1": "Als u een meer technische gebruiker bent en besloten heeft om uw eigen apparaat te bouwen, kan DAppNode vanaf elke computer gedownload worden en op een nieuwe SSD geïnstalleerd worden via een USB-stick.", + "page-run-a-node-meta-description": "Een inleiding over het wat, waarom en hoe van het draaien van een Ethereum-node.", + "page-run-a-node-participate-title": "Neem deel", + "page-run-a-node-participate-preview": "De decentralisatierevolutie begint met u.", + "page-run-a-node-participate-1": "Door het draaien van een node wordt u onderdeel van een wereldwijde beweging om controle en macht over een wereld van informatie te decentraliseren.", + "page-run-a-node-participate-2": "Als u een houder bent, breng dan waarde naar uw ETH door de gezondheid en decentralisatie van het netwerk te ondersteunen, en zorg ervoor dat u in de toekomst ervan uw stem kunt laten horen.", + "page-run-a-node-privacy-title": "Privacy & Beveiliging", + "page-run-a-node-privacy-preview": "Stop met het lekken van uw persoonlijke gegevens naar nodes van derden.", + "page-run-a-node-privacy-1": "Bij het verzenden van transacties met openbare nodes, kan persoonlijke informatie worden uitgelekt naar derden, zoals uw IP-adres en uw Ethereum-adressen.", + "page-run-a-node-privacy-2": "Door compatibele portemonnees naar uw eigen node te verwijzen, kunt u uw portemonnee gebruiken voor een privé en veilige interactie met de blockchain.", + "page-run-a-node-privacy-3": "En als een kwaadaardige node een ongeldige transactie distribueert, zal uw node deze gewoon negeren. Elke transactie wordt lokaal op uw eigen apparaat geverifieerd, dus u hoeft niemand te vertrouwen.", + "page-run-a-node-rasp-pi-title": "Een opmerking over de Raspberry Pi (ARM-processor)", + "page-run-a-node-rasp-pi-description": "Raspberry Pi's zijn lichtgewicht en betaalbare computers, maar ze hebben beperkingen die van invloed kunnen zijn op de prestaties van uw node. Hoewel deze momenteel niet aanbevolen worden om te staken, kunnen ze een uitstekende en goedkope optie zijn voor het draaien van een node voor persoonlijk gebruik, met maar liefst 4 tot 8 GB aan RAM.", + "page-run-a-node-rasp-pi-note-1-link": "DAppNode op ARM", + "page-run-a-node-rasp-pi-note-1-description": "Bekijk deze instructies als u van plan bent om DAppNode op een Raspberry Pi uit te voeren", + "page-run-a-node-rasp-pi-note-2-link": "Ethereum op ARM-documentatie", + "page-run-a-node-rasp-pi-note-2-description": "Leer hoe u een node instelt via de commanderegel op een Raspberry Pi", + "page-run-a-node-rasp-pi-note-3-link": "Draai een node met de Raspberry Pi", + "page-run-a-node-rasp-pi-note-3-description": "Volg hier mee als tutorials uw voorkeur zijn", + "page-run-a-node-shop": "Shop", + "page-run-a-node-shop-avado": "Shop Avado", + "page-run-a-node-shop-dappnode": "Shop DAppNode", + "page-run-a-node-staking-title": "Stake uw ETH", + "page-run-a-node-staking-description": "Hoewel het niet vereist is, bent u met een node die draait één stap dichter bij het staken van uw ETH om beloningen te verdienen en helpt u bij te dragen aan een verschillende component van de veiligheid van Ethereum.", + "page-run-a-node-staking-link": "Stake ETH", + "page-run-a-node-staking-plans-title": "Van plan om te staken?", + "page-run-a-node-staking-plans-description": "Om de efficiëntie van uw validator te maximaliseren, wordt minimaal 16 GB RAM aanbevolen, maar 32 GB is beter, met een CPU-benchmarkscore van meer dan 6667 op cpubenchmark.net. Het wordt ook aanbevolen dat stakers toegang hebben tot onbeperkte internetbandbreedte met hoge snelheid, maar dit is geen absolute eis.", + "page-run-a-node-staking-plans-ethstaker-link-label": "Zo winkelt u voor hardware voor Ethereum-validators", + "page-run-a-node-staking-plans-ethstaker-link-description": "EthStaker gaat in meer detail in deze één uur durende special", + "page-run-a-node-sovereignty-title": "Soevereiniteit", + "page-run-a-node-sovereignty-preview": "Denk over het draaien van een node als de volgende stap na het verkrijgen van uw eigen Ethereum-portemonnee.", + "page-run-a-node-sovereignty-1": "Een Ethereum-portemonnee stelt u in staat om uw digitale middelen volledig te bewaken en te beheren door te beschikken over de persoonlijke sleutels voor uw adressen, maar die sleutels vertellen u niet de huidige status van de blockchain, zoals het saldo van uw portemonnee.", + "page-run-a-node-sovereignty-2": "Standaard maken Ethereum-portemonnees verbinding met nodes van derden zoals Infura of Alchemy wanneer u uw saldi opzoekt. Met uw eigen node beschikt u over uw eigen kopie van de Ethereum-blockchain.", + "page-run-a-node-title": "Run een node", + "page-run-a-node-voice-your-choice-title": "Laat uw keuze horen", + "page-run-a-node-voice-your-choice-preview": "Geef de controle niet op in geval van een fork.", + "page-run-a-node-voice-your-choice-1": "In het geval van een chain fork, waarbij twee chains ontstaan met twee verschillende regels, garandeert het draaien van uw eigen node uw vermogen om te kiezen welke regels u ondersteunt. Het is aan u om al dan niet te upgraden naar nieuwe regels en voorgestelde wijzigingen te ondersteunen.", + "page-run-a-node-voice-your-choice-2": "Als u ETH staket, kunt u met uw eigen node uw eigen client kiezen, om uw risico op slashing te minimaliseren en om na verloop van tijd te reageren op fluctuerende behoeften van het netwerk. Bij staking met een derde partij vervalt uw stem over welke client volgens u de beste is.", + "page-run-a-node-what-title": "Wat betekent het om \"een node te draaien\"?", + "page-run-a-node-what-1-subtitle": "Software draaien.", + "page-run-a-node-what-1-text": "Deze software, bekend als een 'client', downloadt een kopie van de Ethereum-blockchain en verifieert de geldigheid van elk blok, houdt deze vervolgens up-to-date met nieuwe blokken en transacties, en helpt anderen om hun eigen kopieën te downloaden en bij te werken.", + "page-run-a-node-what-2-subtitle": "Met hardware.", + "page-run-a-node-what-2-text": "Ethereum is ontworpen voor het draaien van een node op gemiddelde computers van consumentenkwaliteit. U kunt elke personal computer gebruiken, maar de meeste gebruikers kiezen voor het uitvoeren van hun node op speciale hardware om de prestatie-impact op hun machine te elimineren en de downtime van hun node te minimaliseren.", + "page-run-a-node-what-3-subtitle": "Terwijl u online bent.", + "page-run-a-node-what-3-text": "Een Ethereum-node draaien kan ingewikkeld klinken, maar het is gewoon het werk van continu draaiende clientsoftware op een computer terwijl deze verbonden is met het internet. Wanneer u offline bent, zal uw node eenvoudig inactief zijn totdat het terug online komt en bijgewerkt wordt met de laatste wijzigingen.", + "page-run-a-node-who-title": "Wie zou een node moeten draaien?", + "page-run-a-node-who-preview": "Iedereen! Nodes zijn niet alleen voor miners en validators. Iedereen kan een node draaien - je hebt niet eens ETH nodig.", + "page-run-a-node-who-copy-1": "U hoeft geen ETH te staken of een miner te zijn om een node te draaien. Sterker nog, het is bijna elke node op Ethereum die miners en validators verantwoordelijk houdt.", + "page-run-a-node-who-copy-2": "U krijgt misschien niet de financiële beloningen die validators en miners verdienen, maar er zijn vele andere voordelen van het draaien van een node voor een Ethereum-gebruiker, inclusief privacy, beveiliging, verminderde afhankelijkheid van servers van derden, censuurweerstand en verbeterde gezondheid en decentralisatie van het netwerk.", + "page-run-a-node-who-copy-3": "Met uw eigen node hoeft u geen informatie te vertrouwen over de status van het netwerk die door een derde partij wordt verstrekt.", + "page-run-a-node-who-copy-bold": "Vertrouw niet. Verifieer.", + "page-run-a-node-why-title": "Waarom een node draaien?" +} diff --git a/src/intl/nl/page-wallets.json b/src/intl/nl/page-wallets.json index 1e61f0736cd..13260c4309a 100644 --- a/src/intl/nl/page-wallets.json +++ b/src/intl/nl/page-wallets.json @@ -7,7 +7,7 @@ "page-wallets-blog": "Coinbase blog", "page-wallets-bookmarking": "Bookmark uw wallet", "page-wallets-bookmarking-desc": "Als u een web wallet gebruikt, bookmark dan de website om uzelf te beschermen tegen phishing.", - "page-wallets-cd": "Fysieke hardware wallets zijn zeer veilig, want hiermee kunt u uw crypto offline bewaren", + "page-wallets-cd": "Fysieke hardware wallets zijn apparaten waarmee u uw crypto offline kunt bewaren - zeer veilig", "page-wallets-desc-2": "U hebt een wallet nodig om geld te verzenden en uw ETH te beheren.", "page-wallets-desc-2-link": "Meer over ETH", "page-wallets-desc-3": "Uw wallet is slechts een hulpmiddel om uw Ethereum account te beheren. Dit betekent dat u altijd van walletaanbieder kunt wisselen. Veel wallets laten u ook meerdere Ethereum accounts tegelijk beheren vanuit één applicatie.", @@ -17,7 +17,7 @@ "page-wallets-ethereum-wallet": "Een wallet is een product waarmee u uw Ethereum account kunt beheren. Hiermee kunt u uw accountsaldo bekijken, transacties versturen en meer.", "page-wallets-explore": "Verken Ethereum", "page-wallets-features-desc": "We kunnen u helpen bij het kiezen van een wallet op basis van de functies die u belangrijk vindt.", - "page-wallets-features-title": "Compare wallets based on features", + "page-wallets-features-title": "Vergelijk wallets op basis van functies", "page-wallets-find-wallet-btn": "Zoek een wallet", "page-wallets-find-wallet-link": "Zoek een wallet", "page-wallets-get-some": "Verkrijg ETH", @@ -31,7 +31,7 @@ "page-wallets-meta-description": "Wat u moet weten om Ethereum wallets te gebruiken.", "page-wallets-meta-title": "Ethereum wallets", "page-wallets-mobile": "Mobiele apps die u overal ter wereld toegang geven tot uw fondsen", - "page-wallets-more-on-dapps-btn": "More on dapps", + "page-wallets-more-on-dapps-btn": "Meer over dapps", "page-wallets-most-wallets": "De meeste wallet-producten laten u een Ethereum account aanmaken. Dus u hebt er geen nodig voordat u een wallet downloadt.", "page-wallets-protecting-yourself": "Bescherm uzelf en uw fondsen", "page-wallets-seed-phrase": "Schrijf uw herstelzin op", @@ -53,8 +53,10 @@ "page-wallets-try-dapps": "Probeer enkele dapps", "page-wallets-try-dapps-alt": "Een illustratie van samenwerking tussen Ethereum-communityleden", "page-wallets-try-dapps-desc": "Dapps zijn applicaties gebouwd op Ethereum. Ze zijn goedkoper, eerlijker en vriendelijker met uw gegevens dan de meeste traditionele toepassingen.", - "page-wallets-types": "Soorten wallet", - "page-wallets-web-browser": "Web wallets - hiermee kunt u uw crypto via een webbrowser beheren", + "page-wallets-types": "Soorten wallets", + "page-wallets-types-desc": "Er zijn een aantal manieren om interactie te hebben met uw account:", + "page-wallets-web-browser": "Browser wallets zijn webapplicaties die u directe toegang geven tot uw account vanuit uw browser", + "page-wallets-web-browser-extension": "Browserextentie wallets zijn gedownloade extensies die u toegang geven tot uw account en applicaties vanuit uw browser", "page-wallets-whats-a-wallet": "Wat is een Ethereum wallet?", "page-wallets-your-ethereum-account": "Uw Ethereum account", "page-wallets-your-ethereum-account-desc": "Uw wallet is uw interactie met uw Ethereum account – uw saldo, transactiegeschiedenis en meer. Maar u kunt op elk gewenst moment van walletaanbieder wisselen.", diff --git a/src/intl/nl/page-what-is-ethereum.json b/src/intl/nl/page-what-is-ethereum.json index 0369060a9c2..fac178d9415 100644 --- a/src/intl/nl/page-what-is-ethereum.json +++ b/src/intl/nl/page-what-is-ethereum.json @@ -11,8 +11,8 @@ "page-what-is-ethereum-comm-desc": "Onze community bestaat uit mensen met verschillende achtergronden, waaronder artiesten, crypto-anarchisten, Fortune 500-bedrijven en nu ook u. Ontdek hoe u vandaag nog mee kunt doen.", "page-what-is-ethereum-commerce-card": "Handelsgaranties", "page-what-is-ethereum-commerce-card-desc": "Klanten hebben een veilige en ingebouwde garantie dat tegoeden enkel worden uitgewisseld als u levert zoals vooraf is afgesproken. Op deze manier hebben ontwikkelaars de zekerheid dat de regels voor hen niet zullen veranderen.", - "page-what-is-ethereum-composable-card": "All products are composable", - "page-what-is-ethereum-composable-card-desc": "Since all apps are built on the same blockchain with a shared global state, they can build off each other (like legos). This allows for better products and experiences being built all the time.", + "page-what-is-ethereum-composable-card": "Alle producten kunnen op elkaar bouwen", + "page-what-is-ethereum-composable-card-desc": "Doordat alle apps op dezelfde blockchain zijn gebouwd met een gedeelde algemene staat, kunnen ze op elkaar bouwen (zoals lego's). Dit maakt het mogelijk om steeds betere producten en ervaringen te bouwen.", "page-what-is-ethereum-community": "De Ethereum-community", "page-what-is-ethereum-desc": "Het fundament voor onze digitale toekomst", "page-what-is-ethereum-explore": "Verken Ethereum", @@ -25,75 +25,75 @@ "page-what-is-ethereum-p2p-card-desc": "Ethereum stelt je in staat om geld te verplaatsen of overeenkomsten te sluiten direct met iemand anders. Je hebt geen tussenpersonen nodig.", "page-what-is-ethereum-start-building-btn": "Start met bouwen", "page-what-is-ethereum-title": "Wat is Ethereum?", - "page-what-is-ethereum-subtitle": "A complete beginner's guide to how Ethereum works, the benefits it brings and how it's being used by millions of people around the world.", + "page-what-is-ethereum-subtitle": "Een volledige beginnershandleiding over hoe Ethereum werkt, de voordelen die het oplevert en hoe het wordt gebruikt door miljoenen mensen over de hele wereld.", "page-what-is-ethereum-button-lets-start": "Laten we beginnen", "page-what-is-ethereum-blockchain-tab-title": "Wat is een blockchain?", - "page-what-is-ethereum-blockchain-tab-content": " Een blockchain is een database van transacties die wordt bijgewerkt en gedeeld over verschillende computers in een netwerk. Elke keer wanneer er een nieuwe reeks transacties wordt toegevoegd, wordt dit een \"blok\" genoemd. Daarom de naam blockchain. De meeste blockchains zijn openbaar en hebben enkel de mogelijkheid om data toe te voegen, niet om te verwijderen. Als iemand de informatie wil wijzigen of het systeem wil misleiden, hebben ze de meerderheid van de computers op het netwerk nodig. Dat is een hele hoop! Dit maakt reeds gevestigde blockchains zoals Ethereum extreem veilig.", - "page-what-is-ethereum-cryptocurrency-tab-title": "Why is it called cryptocurrency?", - "page-what-is-ethereum-cryptocurrency-tab-content": "Blockchains use cryptographic techniques to ensure that your funds are safe. Similar techniques have been used in the banking industries to ensure the security of monetary transactions for years. So you could say cryptocurrencies have a bank level of security.", + "page-what-is-ethereum-blockchain-tab-content": " Een blockchain is een database van transacties die wordt bijgewerkt en gedeeld over verschillende computers in een netwerk. Elke keer wanneer er een nieuwe reeks transacties wordt toegevoegd, wordt dit een \"blok\" genoemd - vandaar de naam blockchain. De meeste blockchains zijn openbaar en hebben enkel de mogelijkheid om data toe te voegen, niet om te verwijderen. Als iemand de informatie wil wijzigen of het systeem wil misleiden, hebben ze de meerderheid van de computers op het netwerk nodig. Dat is een hele hoop! Dit maakt reeds gevestigde blockchains zoals Ethereum extreem veilig.", + "page-what-is-ethereum-cryptocurrency-tab-title": "Waarom heet het cryptovaluta?", + "page-what-is-ethereum-cryptocurrency-tab-content": "Blockchains gebruiken cryptografische technieken om ervoor te zorgen dat uw geld veilig is. In de banksector worden al jaren vergelijkbare technieken gebruikt om monetaire transacties veilig te stellen. Je zou dus kunnen zeggen dat cryptovaluta's het veiligheidsniveau van een bank hebben.", "page-what-is-ethereum-summary-title": "Samenvatting", - "page-what-is-ethereum-summary-desc-1": "Ethereum is a technology for building apps and organizations, holding assets, transacting and communicating without being controlled by a central authority. There is no need to hand over all your personal details to use Ethereum - you keep control of your own data and what is being shared. Ethereum has its own cryptocurrency, Ether, which is used to pay for certain activities on the Ethereum network.", - "page-what-is-ethereum-summary-desc-2": "Still confused? Let's explain everything step-by-step.", + "page-what-is-ethereum-summary-desc-1": "Ethereum is een technologie voor het bouwen van apps en organisaties, het houden van activa, het uitvoeren van transacties en om te communiceren zonder gecontroleerd te worden door een centrale autoriteit. Het is niet nodig om al uw persoonlijke gegevens over te dragen om Ethereum te kunnen gebruiken - u houdt zelf de controle over uw eigen gegevens en over wat er wordt gedeeld. Ethereum heeft zijn eigen cryptovaluta, Ether, die wordt gebruikt om bepaalde activiteiten op het Ethereum-netwerk te betalen.", + "page-what-is-ethereum-summary-desc-2": "Nog steeds in de war? Laten we het stap voor stap uitleggen.", "page-what-is-ethereum-what-is-crypto-title": "Wat is een cryptovaluta?", - "page-what-is-ethereum-what-is-crypto-desc-1": "Crypto (short for cryptocurrency) is a new form of digital money powered by cryptography.", - "page-what-is-ethereum-what-is-crypto-desc-2": "It all started in 2008 with Bitcoin. You could use it to send funds to anyone anywhere globally. What made crypto different from normal bank transfers or other financial services like Paypal or Alipay is that there was no middle man for the first time.", - "page-what-is-ethereum-what-is-crypto-desc-3": "Wait, what is a middle man?", - "page-what-is-ethereum-what-is-crypto-desc-4": "A middle-man is a central authority like a bank or government that intervenes in a transaction between the sender and recipient. They have the power to surveill, censor or revert transactions and they can share the sensitive data they collect about you with third parties. They also often dictate which financial services you have access to.", - "page-what-is-ethereum-what-is-crypto-desc-5": "Things are different with crypto. Transactions directly connect sender and recipient without having to deal with any central authority. Nobody else will have access to your funds and nobody can tell you what services you can use. This is possible because of the blockchain technology upon which cryptocurrencies operate.", - "page-what-is-ethereum-btc-eth-diff-title": "What is the difference between Ethereum and Bitcoin?", - "page-what-is-ethereum-btc-eth-diff-1": "Launched in 2015, Ethereum builds on Bitcoin's innovation, with some big differences.", - "page-what-is-ethereum-btc-eth-diff-2": "Both let you use digital money without payment providers or banks. But Ethereum is programmable, so you can also build and deploy decentralized applications on its network.", - "page-what-is-ethereum-btc-eth-diff-3": "Ethereum being programmable means that you can build apps that use the blockchain to store data or control what your app can do. This results in a general purpose blockchain that can be programmed to do anything. As there is no limit to what Ethereum can do, it allows for great innovation to happen on the Ethereum network.", - "page-what-is-ethereum-btc-eth-diff-4": "While Bitcoin is only a payment network, Ethereum is more like a marketplace of financial services, games, social networks and other apps that respect your privacy and cannot censor you.", - "page-what-is-ethereum-what-can-eth-do-title": "What can Ethereum do?", - "page-what-is-ethereum-why-would-i-use-ethereum-title": "Why would I use Ethereum?", - "page-what-is-ethereum-why-would-i-use-ethereum-1": "If you’ve ever sent money overseas (or plan to), or had to worry about the future of your assets due to external forces outside of your control where you live, or been fed up by the numerous restrictions and fees imposed by traditional financial institutions for everyday transactions, you might be interested in what cryptocurrencies have to offer.", - "page-what-is-ethereum-why-would-i-use-ethereum-2": "Bear in mind that Ethereum is a story that is still being written, and many more reasons to use it are being uncovered as it evolves and develops over time.", - "page-what-is-ethereum-slide-1-title": "Cheaper and Faster Crossborder Payments", - "page-what-is-ethereum-slide-1-desc-1": "Stablecoins are a novel type of cryptocurrency that relies on a more stable asset as the basis for its value. Most of them are linked to the United States dollar and therefore maintain the value of that currency. These allow for a very cheap and stable global payment system. Many current stablecoins are built on the Ethereum network.", - "page-what-is-ethereum-slide-1-desc-2": "Ethereum and stablecoins simplify the process of sending money overseas. It often takes only few minutes to move funds across the globe, as opposed to the several business days or even weeks that it may take your average bank, and for a fraction of the price. Additionally, there is no extra fee for making a high value transaction, and there are zero restrictions on where or why you are sending your money.", - "page-what-is-ethereum-slide-2-title": "The Quickest Help in Times of Crisis", - "page-what-is-ethereum-slide-2-desc-1": "If you are lucky enough to have multiple banking options through trusted institutions where you live, you may take for granted the financial freedom, security and stability that they offer. But for many people around the world facing political repression or economic hardship, financial institutions may not provide the protection or services they need.", - "page-what-is-ethereum-slide-2-desc-2": "When war, economic catastrophes or crackdowns on civil liberties struck the residents of Venezuela, Cuba, Afghanistan, Nigeria, Belarus, and Ukraine, cryptocurrencies constituted the quickest and often the only option to retain financial agency.1 As seen in these examples, cryptocurrencies like Ethereum can provide unfettered access to the global economy when people are cut off from the outside world. Additionally, stablecoins offer a store of value when local currencies are collapsing due to superinflation.", - "page-what-is-ethereum-slide-3-title": "Empowering Creators", - "page-what-is-ethereum-slide-3-desc-1": "In 2021 alone, artists, musicians, writers, and other creators used Ethereum to earn around $3.5 billion collectively. This makes Ethereum one of the largest global platforms for creators, alongside Spotify, YouTube, and Etsy. Learn more.", - "page-what-is-ethereum-slide-4-title": "Empowering Gamers", - "page-what-is-ethereum-slide-4-desc-1": "Play to earn games (where players are actually rewarded for playing the games) have recently emerged and are transforming the gaming industry. Traditionally, it is often prohibited to trade or transfer in-game assets to other players for real money. This forces players to use black market websites that are often a security risk. Blockchain gaming embraces the in-game economy and promotes such behavior in a trusted manner.", - "page-what-is-ethereum-slide-4-desc-2": "Moreover, players are incentivized by being able to trade in-game tokens for real money and thus being truly rewarded for their play time.", - "page-what-is-ethereum-meet-ether-title": "Meet ether, Ethereum's cryptocurrency", - "page-what-is-ethereum-meet-ether-desc-1": "Ethereum has a native cryptocurrency called ether (ETH). It is purely digital, and you can send it to anyone anywhere in the world instantly. The supply of ETH isn’t controlled by any government or company - it is decentralized and completely transparent. New coins (also commonly called tokens) are created only by miners and stakers who maintain the network.", - "page-what-is-ethereum-meet-ether-desc-2": "Every action on the Ethereum network requires a certain amount of computational power. This fee is paid in the form of ether. This means you need at least a small amount of ETH to use the network.", + "page-what-is-ethereum-what-is-crypto-desc-1": "Crypto (kort voor cryptocurrency/cryptovaluta) is een nieuwe vorm van digitaal geld aangedreven door cryptografie.", + "page-what-is-ethereum-what-is-crypto-desc-2": "Het begon allemaal in 2008 met Bitcoin. Het kon gebruikt worden om fondsen naar iedereen wereldwijd te sturen. Wat cryptogeld anders maakte dan normale bankoverschrijvingen of andere financiële diensten zoals Paypal of Alipay, is dat er voor de eerste keer geen tussenpersoon was.", + "page-what-is-ethereum-what-is-crypto-desc-3": "Wacht, wat is een tussenpersoon?", + "page-what-is-ethereum-what-is-crypto-desc-4": "Een tussenpersoon (middle-man) is een centrale autoriteit zoals een bank of een overheid die tussenbeide komt in een transactie tussen afzender en ontvanger. Zij hebben de bevoegdheid om transacties te onderzoeken, te censureren of terug te draaien. Zij kunnen de gevoelige gegevens die zij over u verzamelen met derden delen. Ze beslissen vaak ook tot welke financiële diensten u toegang heeft.", + "page-what-is-ethereum-what-is-crypto-desc-5": "Dingen zijn anders met crypto. Transacties verbinden afzenders en ontvangers direct met elkaar zonder dat ze met een centrale autoriteit te maken krijgen. Niemand anders zal toegang hebben tot uw geld en niemand kan u vertellen welke diensten u mag gebruiken. Dit is mogelijk vanwege de blockchain-technologie op basis waarvan cryptovaluta's kunnen werken.", + "page-what-is-ethereum-btc-eth-diff-title": "Wat is het verschil tussen Ethereum en Bitcoin?", + "page-what-is-ethereum-btc-eth-diff-1": "Ethereum, gelanceerd in 2015, bouwt voort op de innovaties van Bitcoin, met enkele grote verschillen.", + "page-what-is-ethereum-btc-eth-diff-2": "Beide laten u digitaal geld gebruiken zonder tussenkomst van betalingsproviders of banken. Maar Ethereum is programmeerbaar, wat wil zeggen dat u ook gedecentraliseerde toepassingen op het netwerk kunt bouwen.", + "page-what-is-ethereum-btc-eth-diff-3": "Dat Ethereum programmeerbaar is betekent dat u apps kunt bouwen die de blockchain gebruiken om gegevens op te slaan of te bepalen wat uw app kan doen. Dit resulteert in een algemene blockchain die kan worden geprogrammeerd om wat dan ook te doen. Omdat er geen limiet is aan wat Ethereum mag doen, maakt dit het mogelijk dat er grote innovaties plaatsvinden op het Ethereum-netwerk.", + "page-what-is-ethereum-btc-eth-diff-4": "Terwijl Bitcoin alleen maar een betalingsnetwerk is, lijkt Ethereum meer op een markt van financiële diensten, games, sociale netwerken en andere apps die uw privacy respecteren en u niet kunnen censureren.", + "page-what-is-ethereum-what-can-eth-do-title": "Wat kan Ethereum doen?", + "page-what-is-ethereum-why-would-i-use-ethereum-title": "Waarom zou ik Ethereum gebruiken?", + "page-what-is-ethereum-why-would-i-use-ethereum-1": "Als u ooit geld naar het buitenland heeft gestuurd (of van plan bent om dit te doen), of u ooit zorgen heeft gemaakt over uw bezittingen omdat ze door externe bedrijven buiten uw controle bewaard worden, of u heeft genoeg van de vele beperkingen en vergoedingen die traditionele financiële instellingen opleggen voor dagelijkse transacties, dan zou u geïntresseerd kunnen zijn in wat cryptovaluta's te bieden hebben.", + "page-what-is-ethereum-why-would-i-use-ethereum-2": "Vergeet niet dat Ethereum een verhaal is dat nog steeds wordt geschreven, Het wordt continu ontwikkeld en elke dag komen er meer redenen bij om het te gebruiken.", + "page-what-is-ethereum-slide-1-title": "Goedkopere en snellere grensoverschrijdende betalingen", + "page-what-is-ethereum-slide-1-desc-1": "Stablecoins zijn een nieuw type cryptovaluta dat afhankelijk is van een stabielere activa als basis voor de waarde. De meesten van deze zijn verbonden met de Amerikaanse dollar en houden dus vast aan de waarde van die munt. Dit zorgt voor een zeer goedkoop en stabiel mondiaal betalingssysteem. Veel huidige stablecoins zijn gebouwd op het Ethereum-netwerk.", + "page-what-is-ethereum-slide-1-desc-2": "Ethereum en stablecoins vereenvoudigen het proces van het verzenden van geld naar het buitenalnd. Het duurt vaak maar een paar minuten om fondsen over de hele wereld te verschuiven, dit in tegenstelling tot enkele werkdagen of zelfs weken bij de gemiddelde bank, en voor een fractie van de prijs. Daarnaast zijn er geen extra kosten voor het uitvoeren van een hoge waarde en er zijn geen beperkingen op waar of waarom u uw geld stuurt.", + "page-what-is-ethereum-slide-2-title": "De snelste hulp in tijden van crisis", + "page-what-is-ethereum-slide-2-desc-1": "Als u het geluk heeft om op een plaats te wonen met meerdere vertrouwde financiële instellingen voor bankzaken, dan zijn financiële vrijheid, veiligheid en stabiliteit vanzelfsprekend voor u. Maar voor veel mensen over de hele wereld die te maken hebben met politieke onderdrukking of economische tegenspoed, bieden de financiële instellingen wellicht niet de bescherming en diensten die zij nodig hebben.", + "page-what-is-ethereum-slide-2-desc-2": "Wanneer oorlog, economische rampen of repressies tegen de burgerlijke vrijheden de inwoners van Venezuela, Cuba, Afghanistan, Nigeria, Belarus en Oekraïne troffen, vormden cryptovaluta's de snelste en vaak de enige mogelijkheid om financiële onafhankelijkheid te behouden.1 Zoals te zien in deze voorbeelden, kunnen cryptovaluta's zoals Ethereum onbeperkte toegang tot de mondiale economie bieden wanneer mensen worden afgesloten van de buitenwereld. Stablecoins bieden bovendien een ruilmiddel wanneer lokale valuta instorten als gevolg van superinflatie.", + "page-what-is-ethereum-slide-3-title": "Creators empowereren", + "page-what-is-ethereum-slide-3-desc-1": "Alleen al in 2021 gebruikten artiesten, muzikanten, schrijvers en andere makers Ethereum, die hiermee collectief ongeveer $3,5 miljard verdienden. Dit maakt Ethereum een van de grootste globale platforms voor creators, naast Spotify, YouTube en Etsy. \nMeer informatie.", + "page-what-is-ethereum-slide-4-title": "Gamers empowereren", + "page-what-is-ethereum-slide-4-desc-1": "Play-to-earn games (waar spelers daadwerkelijk worden beloond voor het spelen van de games) zijn recent verschenen en transformeren de game-industrie. Traditioneel is het vaak verboden om in-game middelen te verhandelen voor echt geld. Dit zorgt ervoor dat veel spelers zwarte markt websites gebruiken die een veiligheidsrisico vormen. Blockchain-gaming omarmt de in-game economie en bevordert dergelijk gedrag op een vertrouwde manier.", + "page-what-is-ethereum-slide-4-desc-2": "Bovendien worden spelers gestimuleerd door het feit dat ze in-game tokens kunnen verhandelen voor echt geld, en dus daadwerkelijk worden beloond voor hun speeltijd.", + "page-what-is-ethereum-meet-ether-title": "Maak kennis met ether, de cryptovaluta van Ethereum.", + "page-what-is-ethereum-meet-ether-desc-1": "Ethereum heeft een eigen cryptovaluta genaamd ether (ETH). Het is puur digitaal en u kunt het direct naar iedereen over de hele wereld sturen. Het aanbod van ETH wordt niet gecontroleerd door een overheid of bedrijf - het is gedecentraliseerd en volledig transparant. Nieuwe munten (ook vaak tokens genoemd) kunnen enkel gemaakt worden door miners en stakers die het netwerk onderhouden.", + "page-what-is-ethereum-meet-ether-desc-2": "Elke actie op het Ethereum-netwerk vereist een bepaalde hoeveelheid rekenkracht. Deze vergoeding wordt betaald in de vorm van ether. Dit betekent dat je minimaal een kleine hoeveelheid ETH nodig hebt om het netwerk te kunnen gebruiken.", "page-what-is-ethereum-what-is-ether": "Wat is ether?", "page-what-is-ethereum-get-eth": "Verkrijg ETH", - "page-what-is-ethereum-what-can-i-do-title": "What can I do with ETH coins?", - "page-what-is-ethereum-what-can-i-do-desc-1": "Turns out: a lot of things! One of the most prominent usages of the Ethereum technology is decentralized finance (DeFi) that opens entire areas of banking services to anybody with an internet connection. You can use your ether as a collateral to take out loans or provide liquidity to earn interest on your funds.", - "page-what-is-ethereum-explore-applications": "Explore applications", - "page-what-is-ethereum-learn-defi": "Learn about DeFi", - "page-what-is-ethereum-who-runs-ethereum-title": "Who runs Ethereum?", - "page-what-is-ethereum-who-runs-ethereum-desc-1": "Ethereum is not controlled by any one entity. It exists solely through the decentralized participation and cooperation of the community. Ethereum makes use of nodes (a computer with a copy of the Ethereum blockchain data) run by volunteers to replace individual server and cloud systems owned by major internet providers and services.", - "page-what-is-ethereum-who-runs-ethereum-desc-2": "These distributed nodes, run by individuals and businesses all over the world, provide resiliency to the Ethereum network infrastructure. It is therefore much less vulnerable to hacks or shutdowns. Since its launch in 2015, Ethereum has never suffered downtime. There are thousands of individual nodes running Ethereum network. This makes Ethereum one of the most decentralized cryptocurrencies out there, second only to bitcoin.", - "page-what-is-ethereum-run-a-node": "Voer een node uit", + "page-what-is-ethereum-what-can-i-do-title": "Wat kan ik doen met ETH-munten?", + "page-what-is-ethereum-what-can-i-do-desc-1": "Veel dingen! Een van de meest populaire toepassingen van de Ethereum-technologie is gedecentraliseerde financiering (DeFi) die financiële diensten mogelijk maakt voor iedereen met een internetverbinding. U kunt uw ether als onderpand gebruiken om leningen op te nemen, of om liquiditeit te bieden om rente op uw geld te verdienen.", + "page-what-is-ethereum-explore-applications": "Applicaties verkennen", + "page-what-is-ethereum-learn-defi": "Meer informatie over DeFi", + "page-what-is-ethereum-who-runs-ethereum-title": "Wie beheert Ethereum?", + "page-what-is-ethereum-who-runs-ethereum-desc-1": "Ethereum wordt niet gecontroleerd door één enkele entiteit. Het bestaat uitsluitend door de gedecentraliseerde deelname en samenwerking van de gemeenschap. Ethereum maakt gebruik van nodes (een computer met een kopie van de Ethereum-blockchaindata) die door vrijwilligers beheerd worden om individuele server- en cloudsystemen te vervangen (die eigendom zijn van grote internetproviders en -diensten).", + "page-what-is-ethereum-who-runs-ethereum-desc-2": "Deze gedistribueerde nodes, beheerd door personen en bedrijven over de hele wereld, bieden veerkracht aan de infrastructuur van het Ethereum-netwerk. Het is daarom veel minder kwetsbaar voor hacks of shutdowns. Sinds de lancering in 2015 heeft Ethereum nooit downtime gehad. Er zijn duizenden individuele nodes die Ethereum gebruiken. Dit maakt Ethereum een van de meest gedecentraliseerde cryptovaluta's, op de tweede plaats na bitcoin.", + "page-what-is-ethereum-run-a-node": "Een node runnen", "page-what-is-ethereum-smart-contract-title": "Wat zijn smart contracts?", - "page-what-is-ethereum-smart-contract-desc-1": "Smart contracts are simply computer programs living on the Ethereum blockchain. They only execute when triggered by a transaction from a user (or another contract). They make Ethereum very flexible in what it can do and distinguish it from other cryptocurrencies. These programs are what we now call decentralized apps, or dapps.", - "page-what-is-ethereum-smart-contract-desc-2": "Have you ever used a product that changed its terms of service? Or removed a feature you found useful? Once a smart contract is published to Ethereum, it will be online and operational for as long as Ethereum exists. Not even the author can take it down. Since smart contracts are automated, they do not discriminate against any user and are always ready to use.", - "page-what-is-ethereum-smart-contract-desc-3": "Popular examples of smart contracts are lending apps, decentralized trading exchanges, insurance, crowdfunding apps - basically anything you can think of.", - "page-what-is-ethereum-more-on-smart-contracts": "More on Smart contracts", + "page-what-is-ethereum-smart-contract-desc-1": "Slimme contracten zijn gewoon computerprogramma's die op de Ethereum-blockchain bestaan. Ze worden alleen uitgevoerd wanneer ze worden geactiveerd door een transactie van een gebruiker (of door een ander contract). Ze maken Ethereum zeer flexibel in wat het kan en zorgen voor een onderscheid tussen Ethereum en andere cryptovaluta's. Deze programma's zijn wat we nu gedecentraliseerde apps of dapps noemen.", + "page-what-is-ethereum-smart-contract-desc-2": "Heeft u ooit al eens een product gebruikt dat zijn gebruiksvoorwaarden heeft gewijzigd? Of die een functie heeft verwijderd die u nuttig vond? Bij Ethereum kan dit niet. Zodra een slim contract is gepubliceerd op Ethereum, zal het online en operationeel blijven zolang Ethereum bestaat. Zelfs de auteur kan het niet verwijderen. Omdat slimme contracten geautomatiseerd zijn, worden gebruikers nooit gediscimineerd en zijn ze altijd beschikbaar om gebruikt te worden.", + "page-what-is-ethereum-smart-contract-desc-3": "Populaire voorbeelden van slimme contracten zijn: lening-apps, gedecentraliseerde handelsuitwisselingen, verzekeringen, crowdfunding apps - eigenlijk alles waar u aan kunt denken.", + "page-what-is-ethereum-more-on-smart-contracts": "Meer over slimme contracten", "page-what-is-ethereum-explore-dapps": "Verken dapps", - "page-what-is-ethereum-criminal-activity-title": "I heard crypto is being used as a tool for criminal activity. Is this true?", - "page-what-is-ethereum-criminal-activity-desc-1": "Like any form of money, some of it will be misused. However, because all Ethereum transactions happen on an open blockchain, it’s often easier for authorities to track illicit activity than it would be in the traditional financial system, arguably making Ethereum a less appealing choice for those who would rather go undetected.", - "page-what-is-ethereum-criminal-activity-desc-2": "Crypto is used much less than fiat currencies for criminal purposes according to the key findings of a recent report by Europol, the European Union Agency for Law Enforcement Cooperation:", - "page-what-is-ethereum-criminal-activity-desc-3": "“The use of cryptocurrencies for illicit activities seems to comprise only a small part of the overall cryptocurrency economy, and it appears to be comparatively smaller than the amount of illicit funds involved in traditional finance.”", - "page-what-is-ethereum-energy-title": "What about Ethereum's energy consumption?", - "page-what-is-ethereum-energy-desc-1": "Ethereum is currently using proof-of-work mechanism that consumes a large amount of energy. In the coming months (Q3/Q4 2022) Ethereum will undergo its biggest update yet and will switch to proof of stake mechanism which will greatly reduce the environmental impact it has.", - "page-what-is-ethereum-energy-desc-2": "This update will reduce the energy required to secure Ethereum by about 99.95%, creating a more secure network for a much smaller carbon cost. This will make Ethereum a truly low-carbon blockchain while boosting its security and scalability.", - "page-what-is-ethereum-more-on-energy-consumption": "More on energy consumption", - "page-what-is-ethereum-the-merge-update": "The Merge update", - "page-what-is-ethereum-additional-reading": "Additional reading", + "page-what-is-ethereum-criminal-activity-title": "Ik heb gehoord dat crypto wordt gebruikt als tool voor criminele activiteiten. Is dat waar?", + "page-what-is-ethereum-criminal-activity-desc-1": "Zoals bij elke vorm van geld zal een deel van het geld worden misbruikt. Het is echter vaak veel gemakkelijker voor de autoriteiten om illegale activiteiten op te sporen op Ethereum, omdat alle Ethereum-transacties plaatsvinden op een open blockchain. Dit zorgt er indirect voor dat Ethereum minder aantrekkelijk is voor degenen die liever niet worden gedetecteerd.", + "page-what-is-ethereum-criminal-activity-desc-2": "Volgens de belangrijkste bevindingen van een recent rapport van Europol, het Agentschap van de Europese Unie voor samenwerking op gebied van wetgeving, blijkt dat cryptovaluta veel minder dan fiat valuta gebruikt worden voor criminele doeleinden :", + "page-what-is-ethereum-criminal-activity-desc-3": "“Het gebruik van cryptovaluta's voor illegale activiteiten omvat slechts een klein deel van de totale cryptovaluta-economie; bovendien is het een relatief klein bedrag in vergelijking met de hoeveelheid illegale fondsen die bij traditionele financiën zijn betrokken.\"", + "page-what-is-ethereum-energy-title": "Hoe zit het met Ethereums energieverbruik?", + "page-what-is-ethereum-energy-desc-1": "Ethereum gebruikt momenteel het proof-of-work mechanisme, dat een grote hoeveelheid energie verbruikt. In de komende maanden (K3/K4 2022) zal Ethereum een grote update ondergaan en wordt er overgeschakeld op het proof-of-stake mechanisme, dat de impact op het milieu aanzienlijk gaat verminderen.", + "page-what-is-ethereum-energy-desc-2": "Deze update vermindert de energie die nodig is om Ethereum te beveiligen met ongeveer 99,95%, het creëert een veiliger netwerk voor veel lagere koolstofkosten. Dit zal van Ethereum een echt koolstofarme blockchain maken en tegelijkertijd de veiligheid en schaalbaarheid ervan vergroten.", + "page-what-is-ethereum-more-on-energy-consumption": "Meer over energieverbruik", + "page-what-is-ethereum-the-merge-update": "De merge update", + "page-what-is-ethereum-additional-reading": "Lees meer", "page-what-is-ethereum-week-in-ethereum": "Week in Ethereum News", - "page-what-is-ethereum-week-in-ethereum-desc": "- A weekly newsletter covering key developments across the ecosystem.", - "page-what-is-ethereum-the-year-in-ethereum-2021": "The Year in Ethereum 2021", - "page-what-is-ethereum-the-year-in-ethereum-2021-desc": "Jan 17, 2022 - Josh Stark and Evan Van Ness", + "page-what-is-ethereum-week-in-ethereum-desc": "- Een wekelijkse nieuwsbrief over belangrijke ontwikkelingen in het ecosysteem.", + "page-what-is-ethereum-the-year-in-ethereum-2021": "Het jaar in Ethereum 2021", + "page-what-is-ethereum-the-year-in-ethereum-2021-desc": "17 januari 2022 - Josh Stark en Evan Van Ness", "page-what-is-ethereum-atoms-institutions-blockchains": "Atoms, Institutions, Blockchains", - "page-what-is-ethereum-atoms-institutions-blockchains-desc": "- Why blockchains matter?", - "page-what-is-ethereum-ethereum-in-numbers-title": "Ethereum in numbers" + "page-what-is-ethereum-atoms-institutions-blockchains-desc": "- Waarom blockchains belangrijk zijn?", + "page-what-is-ethereum-ethereum-in-numbers-title": "Ethereum in cijfers" } diff --git a/src/intl/zh/page-about.json b/src/intl/zh/page-about.json index be5595e725f..3cc5849d6ed 100644 --- a/src/intl/zh/page-about.json +++ b/src/intl/zh/page-about.json @@ -17,7 +17,7 @@ "page-about-p-1": "自从ethereum.org启动以来,我们努力使我们的运作方式具有透明度。 这是我们的核心价值观之一,因为我们认为透明度对以太坊的成功至关重要。", "page-about-p-2": "我们使用", "page-about-p-3": "作为我们的主要项目管理工具。我们的任务分为三类:", - "page-about-p-4": " 我们尽最大努力让社区了解具体任务的情况。", + "page-about-p-4": "我们尽最大努力让社区了解具体任务的情况。", "page-about-p-5": "正在执行的任务。", "page-about-p-6": "我们排队等待执行的任务。", "page-about-p-7": "最近完成的任务。", diff --git a/src/intl/zh/page-assets.json b/src/intl/zh/page-assets.json index f445c46b952..e4ce58c9be8 100644 --- a/src/intl/zh/page-assets.json +++ b/src/intl/zh/page-assets.json @@ -38,6 +38,7 @@ "page-assets-illustrations": "插图", "page-assets-impact": "影响力", "page-assets-infrastructure": "基础设施", + "page-assets-leslie-the-rhino": "莱斯利犀牛", "page-assets-meta-desc": "浏览并下载以太坊和 ethereum.org 的品牌资产、插图和媒体。", "page-assets-meta-title": "以太坊品牌资产", "page-assets-mainnet": "主网", diff --git a/src/intl/zh/page-contributing-translation-program-acknowledgements.json b/src/intl/zh/page-contributing-translation-program-acknowledgements.json index e872fcce958..f97411967fa 100644 --- a/src/intl/zh/page-contributing-translation-program-acknowledgements.json +++ b/src/intl/zh/page-contributing-translation-program-acknowledgements.json @@ -35,7 +35,7 @@ "page-contributing-translation-program-acknowledgements-how-to-claim-title": "如何领取", "page-contributing-translation-program-acknowledgements-how-to-claim-1": "加入我们", "page-contributing-translation-program-acknowledgements-how-to-claim-1-discord": "Discord 服务器", - "page-contributing-translation-program-acknowledgements-how-to-claim-2": "在#🥇 | poaps频道中粘贴指向你的 Crowdin 帐户的链接 。", + "page-contributing-translation-program-acknowledgements-how-to-claim-2": "在 #🥇 | poaps 频道中粘贴指向你的 Crowdin 帐户的链接。", "page-contributing-translation-program-acknowledgements-how-to-claim-3": "等待我们的团队成员向您发送 POAP 徽章领取链接。", "page-contributing-translation-program-acknowledgements-how-to-claim-4": "领取您的 POAP 徽章!", "page-contributing-translation-program-acknowledgements-4": "您应该只使用自我保管的钱包来领取 POAP 徽章。不要使用交易所账户或其他您不持有私钥的账户,因为这些账户将不允许您访问和管理您的 POAP 徽章。" diff --git a/src/intl/zh/page-developers-docs.json b/src/intl/zh/page-developers-docs.json index b6e0b4cbf07..0a5b0806a3c 100644 --- a/src/intl/zh/page-developers-docs.json +++ b/src/intl/zh/page-developers-docs.json @@ -4,7 +4,7 @@ "docs-nav-advanced": "高级", "docs-nav-backend-apis": "后端API", "docs-nav-block-explorers": "区块浏览器", - "docs-nav-blocks": "块", + "docs-nav-blocks": "区块", "docs-nav-blocks-description": "交易分批进行,以确保状态在所有行为者之间同步。", "docs-nav-bridges": "链桥", "docs-nav-bridges-description": "面向开发者的桥接概述", @@ -16,7 +16,7 @@ "docs-nav-weak-subjectivity": "弱主观性", "docs-nav-attestations": "认证", "docs-nav-data-and-analytics": "数据和分析", - "docs-nav-data-and-analytics-description": "区块链数据如何汇总、组织并实施到 dapp 中\n", + "docs-nav-data-and-analytics-description": "区块链数据如何汇总、组织并实施到 dapp 中", "docs-nav-data-availability": "数据可用性", "docs-nav-dart": "Dart", "docs-nav-delphi": "Delphi", @@ -33,7 +33,7 @@ "docs-nav-erc-4626": "ERC-4626", "docs-nav-ethereum-client-apis": "以太坊客户端API", "docs-nav-ethereum-client-apis-description": "便利库,允许您的 web 应用程序与以太坊和智能合同交互", - "docs-nav-ethereum-stack": "以太坊权益", + "docs-nav-ethereum-stack": "以太坊堆栈", "docs-nav-evm": "以太坊虚拟机(EVM)", "docs-nav-evm-description": "EVM 处理以太坊网络上的所有计算", "docs-nav-foundational-topics": "基础主题", @@ -44,7 +44,7 @@ "docs-nav-integrated-development-environments-ides-description": "写入 dapp 代码的最佳环境", "docs-nav-intro-to-dapps": "去中心化应用简介", "docs-nav-intro-to-dapps-description": "去中心化应用程序简介", - "docs-nav-intro-to-ether": "ETH 简介", + "docs-nav-intro-to-ether": "以太币简介", "docs-nav-intro-to-ether-description": "ETH 简要概述", "docs-nav-intro-to-ethereum": "以太坊简介", "docs-nav-intro-to-ethereum-description": "以太坊简要概述", @@ -68,7 +68,7 @@ "docs-nav-run-a-node": "运行节点", "docs-nav-client-diversity": "客户端多样性", "docs-nav-nodes-as-a-service": "节点即服务", - "docs-nav-oracles": "Oracle", + "docs-nav-oracles": "预言机", "docs-nav-oracles-description": "如何将信息注入到以太坊区块链中", "docs-nav-programming-languages": "编程语言", "docs-nav-programming-languages-description": "如何使用您可能已经知道的语言开始使用以太坊", @@ -81,10 +81,10 @@ "docs-nav-scaling": "缩放", "docs-nav-scaling-description": "随着以太坊的发展,维护去中心化和安全的方法", "docs-nav-scaling-optimistic-rollups": "乐观卷叠", - "docs-nav-scaling-zk-rollups": "零知识证明卷叠", + "docs-nav-scaling-zk-rollups": "零知识卷叠", "docs-nav-scaling-channels": "状态通道", "docs-nav-scaling-sidechains": "侧链", - "docs-nav-scaling-plasma": "Plasma", + "docs-nav-scaling-plasma": "以太坊 Plasma 扩容解决方案", "docs-nav-scaling-validium": "Validium", "docs-nav-smart-contract-security": "智能合约安全性", "docs-nav-smart-contract-security-description": "管理智能合约攻击和漏洞的最佳实践", @@ -110,17 +110,17 @@ "docs-nav-networking-layer": "网络层", "docs-nav-networking-layer-description": "以太坊网络层的解释", "docs-nav-networking-layer-network-addresses": "网络地址", - "docs-nav-data-structures-and-encoding": "数据结构和编码", + "docs-nav-data-structures-and-encoding": "数据结构与编码", "docs-nav-data-structures-and-encoding-description": "以太坊堆栈中使用的数据结构和编码方案的解释", "docs-nav-data-structures-and-encoding-rlp": "递归长度前缀编码 (RLP)", - "docs-nav-data-structures-and-encoding-patricia-merkle-trie": "帕特里夏默克尔树", + "docs-nav-data-structures-and-encoding-patricia-merkle-trie": "默克尔前缀树", "docs-nav-data-structures-and-encoding-ssz": "简单序列化 (SSZ)", "page-calltocontribute-desc-1": "如果您是这方面的专家,并想发表意见,那么编辑此页分享您的智慧。", "page-calltocontribute-desc-2": "您将获得褒奖并会为以太坊社区提供帮助!", "page-calltocontribute-desc-3": "自由发挥", "page-calltocontribute-desc-4": "有任何疑问? 请在我们的频道中进行询问", "page-calltocontribute-link": "文档模板", - "page-calltocontribute-link-2": "Discord服务器", + "page-calltocontribute-link-2": "Discord 服务器", "page-calltocontribute-span": "编辑页面", "page-calltocontribute-title": "帮助我们处理此页面" } diff --git a/src/pages-conditional/eth.tsx b/src/pages-conditional/eth.tsx index be4de0c0df7..1edb521b9f6 100644 --- a/src/pages-conditional/eth.tsx +++ b/src/pages-conditional/eth.tsx @@ -1,4 +1,5 @@ import React from "react" +import { Center } from "@chakra-ui/react" import styled from "@emotion/styled" import { GatsbyImage } from "gatsby-plugin-image" import { useIntl } from "react-intl" @@ -28,6 +29,7 @@ import { StyledCard, } from "../components/SharedStyledComponents" import FeedbackCard from "../components/FeedbackCard" +import QuizWidget from "../components/Quiz/QuizWidget" import { translateMessageId } from "../utils/translations" import { getImage, getSrc } from "../utils/image" @@ -511,6 +513,11 @@ const EthPage = (props: PageProps) => { ))} + +
+ +
+
diff --git a/src/pages-conditional/wallets.tsx b/src/pages-conditional/wallets.tsx index 266e8906972..fafee332546 100644 --- a/src/pages-conditional/wallets.tsx +++ b/src/pages-conditional/wallets.tsx @@ -1,4 +1,5 @@ import React from "react" +import { Center } from "@chakra-ui/react" import styled from "@emotion/styled" import { GatsbyImage } from "gatsby-plugin-image" import { useIntl } from "react-intl" @@ -22,6 +23,7 @@ import { TwoColumnContent, } from "../components/SharedStyledComponents" import FeedbackCard from "../components/FeedbackCard" +import QuizWidget from "../components/Quiz/QuizWidget" import { translateMessageId } from "../utils/translations" import { getImage, getSrc } from "../utils/image" @@ -451,6 +453,11 @@ const WalletsPage = ({ + +
+ +
+
diff --git a/src/pages-conditional/what-is-ethereum.tsx b/src/pages-conditional/what-is-ethereum.tsx index 199c7125f0e..c3adf2c05cd 100644 --- a/src/pages-conditional/what-is-ethereum.tsx +++ b/src/pages-conditional/what-is-ethereum.tsx @@ -35,6 +35,7 @@ import AdoptionChart from "../components/AdoptionChart" import EnergyConsumptionChart from "../components/EnergyConsumptionChart" import Slider, { EmblaSlide } from "../components/Slider" import FeedbackCard from "../components/FeedbackCard" +import QuizWidget from "../components/Quiz/QuizWidget" import { getLocaleForNumberFormat, @@ -52,6 +53,7 @@ import { GATSBY_FUNCTIONS_PATH } from "../constants" import { Context } from "../types" import StatErrorMessage from "../components/StatErrorMessage" import StatLoadingMessage from "../components/StatLoadingMessage" +import { Center } from "@chakra-ui/react" const Slogan = styled.p` font-style: normal; @@ -942,6 +944,13 @@ const WhatIsEthereumPage = ({ + + +
+ +
+
+ diff --git a/src/pages/layer-2.tsx b/src/pages/layer-2.tsx index 17a74b1708f..55d70378f98 100644 --- a/src/pages/layer-2.tsx +++ b/src/pages/layer-2.tsx @@ -16,13 +16,14 @@ import FeedbackCard from "../components/FeedbackCard" import Icon from "../components/Icon" import InfoBanner from "../components/InfoBanner" import Layer2Onboard from "../components/Layer2/Layer2Onboard" +import Layer2ProductCard from "../components/Layer2ProductCard" import Link from "../components/Link" import OrderedList from "../components/OrderedList" import PageHero from "../components/PageHero" import PageMetadata from "../components/PageMetadata" import Pill from "../components/Pill" -import Layer2ProductCard from "../components/Layer2ProductCard" import ProductList from "../components/ProductList" +import QuizWidget from "../components/Quiz/QuizWidget" import Tooltip from "../components/Tooltip" import Translation from "../components/Translation" import { CardGrid, Content, Page } from "../components/SharedStyledComponents" @@ -963,6 +964,9 @@ const Layer2Page = ({ data }: PageProps) => { + + + diff --git a/src/pages/run-a-node.tsx b/src/pages/run-a-node.tsx index 2b27547a96a..232edd5dfd2 100644 --- a/src/pages/run-a-node.tsx +++ b/src/pages/run-a-node.tsx @@ -171,15 +171,6 @@ const Highlight = styled(Content)<{ backgroundColor: string }>` const SoftwareHighlight = styled(Highlight)`` -const StyledExpandableInfo = styled(ExpandableInfo)` - width: 90%; - align-self: center; - @media (max-width: ${({ theme }) => theme.breakpoints.m}) { - margin: 0; - width: 100%; - } -` - const ColumnFill = styled.div` line-height: 2; box-sizing: border-box; @@ -536,7 +527,10 @@ const RunANodePage = ({ data }: PageProps) => { - } contentPreview={} @@ -555,7 +549,7 @@ const RunANodePage = ({ data }: PageProps) => { - + diff --git a/src/scripts/markdown-checker.js b/src/scripts/markdown-checker.js index 5981fab81a4..3023046e631 100644 --- a/src/scripts/markdown-checker.js +++ b/src/scripts/markdown-checker.js @@ -15,7 +15,13 @@ const BROKEN_LINK_REGEX = new RegExp( "\\[[^\\]]+\\]\\([^\\)\\s]+\\s[^\\)]+\\)", "g" ) -const HTML_TAGS = [""] + +// add ", ""] const SPELLING_MISTAKES = [ "Ethreum", "Etherum", diff --git a/src/templates/static.tsx b/src/templates/static.tsx index 1a20a87315d..9f6d4b02974 100644 --- a/src/templates/static.tsx +++ b/src/templates/static.tsx @@ -47,6 +47,7 @@ import YouTube from "../components/YouTube" import TranslationChartImage from "../components/TranslationChartImage" import PostMergeBanner from "../components/Banners/PostMergeBanner" import EnergyConsumptionChart from "../components/EnergyConsumptionChart" +import QuizWidget from "../components/Quiz/QuizWidget" import { getLocaleTimestamp } from "../utils/time" import { isLangRightToLeft, TranslationKey } from "../utils/translations" @@ -154,6 +155,7 @@ const components = { YouTube, TranslationChartImage, EnergyConsumptionChart, + QuizWidget, } const StaticPage = ({ diff --git a/src/templates/upgrade.tsx b/src/templates/upgrade.tsx index fd37a1f17b5..ebe523cf3d7 100644 --- a/src/templates/upgrade.tsx +++ b/src/templates/upgrade.tsx @@ -43,6 +43,7 @@ import Emoji from "../components/OldEmoji" import YouTube from "../components/YouTube" import MergeInfographic from "../components/MergeInfographic" import FeedbackCard from "../components/FeedbackCard" +import QuizWidget from "../components/Quiz/QuizWidget" import { getLocaleTimestamp } from "../utils/time" import { isLangRightToLeft } from "../utils/translations" @@ -183,6 +184,7 @@ const components = { YouTube, ExpandableCard, MergeInfographic, + QuizWidget, } const Title = styled.h1` diff --git a/src/templates/use-cases.tsx b/src/templates/use-cases.tsx index 5b59d481435..cf45e4f8cb1 100644 --- a/src/templates/use-cases.tsx +++ b/src/templates/use-cases.tsx @@ -42,6 +42,7 @@ import { import Emoji from "../components/OldEmoji" import YouTube from "../components/YouTube" import FeedbackCard from "../components/FeedbackCard" +import QuizWidget from "../components/Quiz/QuizWidget" import { isLangRightToLeft } from "../utils/translations" import { getSummaryPoints } from "../utils/getSummaryPoints" @@ -171,6 +172,7 @@ const components = { DocLink, ExpandableCard, YouTube, + QuizWidget, } const Title = styled.h1` diff --git a/src/theme.ts b/src/theme.ts index 3ca5ab38efb..ceda2f572f4 100644 --- a/src/theme.ts +++ b/src/theme.ts @@ -253,16 +253,14 @@ const lightColors = { "linear-gradient(102.7deg, rgba(185, 185, 241, 0.2) 0%, rgba(84, 132, 234, 0.2) 51.56%, rgba(58, 142, 137, 0.2) 100%)", bannerGridGradient: "linear-gradient(90deg, rgba(127,127,213,0.2) 0%, rgba(132,145,221,0.2) 50%, rgba(145,234,228,0.2) 100%)", - slider: { - bg: "#F7F7F7", - border: "#ECECEC", - dot: "#A4A4A4", - dotActive: "#1C1DFF", - btnBg: "#A4A4A4", - btnColor: white, - btnBgDisabled: "#E7E7E7", - btnColorDisabled: "#737373", - }, + sliderBg: "#F7F7F7", + sliderBorder: "#ECECEC", + sliderDot: "#A4A4A4", + sliderDotActive: "#1C1DFF", + sliderBtnBg: "#A4A4A4", + sliderBtnColor: white, + sliderBtnBgDisabled: "#E7E7E7", + sliderBtnColorDisabled: "#737373", } // TODO replace random variables w/ baseColor variables @@ -369,16 +367,14 @@ const darkColors = { "linear-gradient(83.46deg, #2C2C32 7.03%, #44404D 52.42%, #303038 98.77%)", bannerGridGradient: "linear-gradient(90deg, rgba(172, 182, 229, 0.08) 0%, rgba(134, 253, 232, 0.08) 100%)", - slider: { - bg: "#191919", - border: "#404040", - dot: "#A4A4A4", - dotActive: "#FF7324", - btnBg: "#404040", - btnColor: white, - btnBgDisabled: "#404040", - btnColorDisabled: "#737373", - }, + sliderBg: "#191919", + sliderBorder: "#404040", + sliderDot: "#A4A4A4", + sliderDotActive: "#FF7324", + sliderBtnBg: "#404040", + sliderBtnColor: white, + sliderBtnBgDisabled: "#404040", + sliderBtnColorDisabled: "#737373", } const lightThemeColors = Object.assign({}, baseColors, lightColors) diff --git a/src/types.ts b/src/types.ts index 1848c9db77d..3222c05334e 100644 --- a/src/types.ts +++ b/src/types.ts @@ -68,3 +68,47 @@ export interface LearningTool { export interface LearningToolsCardGridProps { category: Array } + +/** + * Quiz data types + */ +export interface AnswerChoice { + answerId: string + isCorrect: boolean +} + +export interface Answer { + id: string + label: string + explanation: string + moreInfoLabel?: string + moreInfoUrl?: string +} + +export interface RawQuestion { + prompt: string + answers: Array + correctAnswerId: string +} + +export interface Question extends RawQuestion { + id: string +} + +export interface QuestionBank { + [key: string]: RawQuestion +} + +export interface RawQuiz { + title: string + questions: Array // TODO: Force to be an array of questionID's +} + +export interface Quiz { + title: string + questions: Array +} + +export interface RawQuizzes { + [key: string]: RawQuiz +} diff --git a/src/utils/numberToPercent.ts b/src/utils/numberToPercent.ts new file mode 100644 index 00000000000..c7ec01e8012 --- /dev/null +++ b/src/utils/numberToPercent.ts @@ -0,0 +1,11 @@ +import { getLocaleForNumberFormat } from "./translations" +import type { Lang } from "./languages" + +export const numberToPercent = ( + num: number, + locale: string | Lang = "en" +): string => + new Intl.NumberFormat(getLocaleForNumberFormat(locale as Lang), { + style: "percent", + maximumFractionDigits: 0, + }).format(num)