From 22ed7d26970046a6b5c4361605c1ec3df7704a6f Mon Sep 17 00:00:00 2001 From: tylerapfledderer Date: Thu, 30 Mar 2023 11:44:59 -0400 Subject: [PATCH 001/186] refactor(theme/components.utils): update `defineMergeStyles` typing --- .../gatsby-plugin/components/components.utils.ts | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/@chakra-ui/gatsby-plugin/components/components.utils.ts b/src/@chakra-ui/gatsby-plugin/components/components.utils.ts index 104225ef3fe..e9758bc5ec4 100644 --- a/src/@chakra-ui/gatsby-plugin/components/components.utils.ts +++ b/src/@chakra-ui/gatsby-plugin/components/components.utils.ts @@ -65,8 +65,11 @@ export { * @param styleObjs - The following style objects to be merged */ export function defineMergeStyles( - defaultTheming?: SystemStyleObject, - ...styleObjs: SystemStyleObject[] | undefined[] + defaultTheming?: SystemStyleObject | unknown, + ...styleObjs: SystemStyleObject[] | unknown[] ) { - return merge(defaultTheming, ...styleObjs) + return merge(defaultTheming, ...styleObjs) as Record< + string, + SystemStyleObject + > } From b12d75418f47bfcbc2ae0ba478a3b17e7dc3dc6a Mon Sep 17 00:00:00 2001 From: tylerapfledderer Date: Thu, 30 Mar 2023 11:46:42 -0400 Subject: [PATCH 002/186] feat(theme/components.utils): add object of common form component styles --- .../components/components.utils.ts | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/src/@chakra-ui/gatsby-plugin/components/components.utils.ts b/src/@chakra-ui/gatsby-plugin/components/components.utils.ts index e9758bc5ec4..1bf4964b525 100644 --- a/src/@chakra-ui/gatsby-plugin/components/components.utils.ts +++ b/src/@chakra-ui/gatsby-plugin/components/components.utils.ts @@ -73,3 +73,53 @@ export function defineMergeStyles( SystemStyleObject > } + +export const _notDisabled = "&:not([data-disabled], [disabled])" + +const INPUT_TRIGGER_DISABLE_COLOR = "--input-trigger-disable-color" + +export const commonInputTriggerStyles = { + commonControlProps: { + border: "1px", + outline: "2px solid", + outlineColor: "transparent", + _checked: { + color: "background", + bg: "primary", + borderColor: "primary", + }, + _focusVisible: { + borderColor: "primaryHighContrast", + outlineColor: "primaryHover", + outlineOffset: "2px", + boxShadow: "none", + }, + _disabled: { + bg: `var(${INPUT_TRIGGER_DISABLE_COLOR})`, + borderColor: `var(${INPUT_TRIGGER_DISABLE_COLOR})`, + opacity: 1, + }, + [_notDisabled]: { + // Hovering over the label triggers the style for the control + "*:hover > &": { + bg: "primaryHover", + outlineColor: "primaryDark", + _dark: { + outlineColor: "primaryLight", + }, + }, + }, + }, + commonContainerProps: { + [INPUT_TRIGGER_DISABLE_COLOR]: "colors.disabled", + _disabled: { + cursor: "not-allowed", + }, + }, + commonLabelProps: { + _disabled: { + color: `var(${INPUT_TRIGGER_DISABLE_COLOR})`, + opacity: 1, + }, + }, +} From 3ccc72bc6739d5dcc25baca6eac75320dad504f2 Mon Sep 17 00:00:00 2001 From: tylerapfledderer Date: Thu, 30 Mar 2023 11:47:31 -0400 Subject: [PATCH 003/186] refactor(.storybook): modify preview window layout --- .storybook/preview.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.storybook/preview.js b/.storybook/preview.js index 1133895b052..e598bff489f 100644 --- a/.storybook/preview.js +++ b/.storybook/preview.js @@ -25,6 +25,9 @@ window.___navigate = (pathname) => { export const parameters = { actions: { argTypesRegex: "^on[A-Z].*" }, + backgrounds: { + disable: true, + }, controls: { matchers: { color: /(background|color)$/i, @@ -34,6 +37,7 @@ export const parameters = { chakra: { theme, }, + layout: "centered", // Modify viewport selection to match Chakra breakpoints (or custom breakpoints) viewport: { viewports: chakraBreakpointArray.reduce((prevVal, currVal) => { From 0b228039d062332a8cfc1713ae7df25a1481c5dc Mon Sep 17 00:00:00 2001 From: tylerapfledderer Date: Thu, 30 Mar 2023 21:04:44 -0400 Subject: [PATCH 004/186] chore(.storybook): replace auto-generated docs and story directory structure --- .storybook/main.js | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/.storybook/main.js b/.storybook/main.js index 6b0b74b0274..253384295f3 100644 --- a/.storybook/main.js +++ b/.storybook/main.js @@ -3,13 +3,7 @@ const { propNames } = require("@chakra-ui/react") const { babelConfig } = require("./babel-storybook-config") module.exports = { - stories: [ - { - directory: "../src/components", - titlePrefix: "Components", - files: "**/*.stories.tsx", - }, - ], + stories: ["../src/components/**/*.stories.tsx"], addons: [ "@storybook/addon-links", "@storybook/addon-essentials", @@ -87,7 +81,4 @@ module.exports = { }, }, }, - docs: { - autodocs: true, - }, } From 3137204279ff06d0a11df644f1d0041be6abf0be Mon Sep 17 00:00:00 2001 From: tylerapfledderer Date: Thu, 30 Mar 2023 21:05:39 -0400 Subject: [PATCH 005/186] chore(theme/colors): update color value for blue 300 --- src/@chakra-ui/gatsby-plugin/foundations/colors.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/@chakra-ui/gatsby-plugin/foundations/colors.ts b/src/@chakra-ui/gatsby-plugin/foundations/colors.ts index ed0766c393d..14c4e3e2c2e 100644 --- a/src/@chakra-ui/gatsby-plugin/foundations/colors.ts +++ b/src/@chakra-ui/gatsby-plugin/foundations/colors.ts @@ -11,7 +11,7 @@ const colors = { }, blue: { 100: "#dedeff", - 300: "#ababfe", + 300: "#8282ff", 500: "#1c1cff", 600: "#090990", 700: "#0b0b66", From 93f7eb87242166e473b5717877572f034baf5bc5 Mon Sep 17 00:00:00 2001 From: tylerapfledderer Date: Thu, 30 Mar 2023 21:10:43 -0400 Subject: [PATCH 006/186] feat(theme/Checkbox): update theme and add story --- .../gatsby-plugin/components/Checkbox.ts | 82 ++++++------------- .../components/components.utils.ts | 5 +- src/components/Checkbox/Checkbox.stories.tsx | 45 ++++++++++ .../{Checkbox.tsx => Checkbox/index.tsx} | 0 4 files changed, 72 insertions(+), 60 deletions(-) create mode 100644 src/components/Checkbox/Checkbox.stories.tsx rename src/components/{Checkbox.tsx => Checkbox/index.tsx} (100%) diff --git a/src/@chakra-ui/gatsby-plugin/components/Checkbox.ts b/src/@chakra-ui/gatsby-plugin/components/Checkbox.ts index 0f3a87beb36..6a976640f88 100644 --- a/src/@chakra-ui/gatsby-plugin/components/Checkbox.ts +++ b/src/@chakra-ui/gatsby-plugin/components/Checkbox.ts @@ -1,70 +1,40 @@ import { createMultiStyleConfigHelpers, defineStyle } from "@chakra-ui/react" import { checkboxAnatomy } from "@chakra-ui/anatomy" -import { checkboxDefaultTheme, defineMergeStyles } from "./components.utils" +import { + checkboxDefaultTheme, + commonInputTriggerStyles, + defineMergeStyles, +} from "./components.utils" -const { baseStyle: defaultBaseStyle } = checkboxDefaultTheme +const { sizes: defaultSizes } = checkboxDefaultTheme const { definePartsStyle, defineMultiStyleConfig } = createMultiStyleConfigHelpers(checkboxAnatomy.keys) -const baseStyleControl = defineStyle((props) => - defineMergeStyles(defaultBaseStyle?.(props).control, { - bg: "background", - _checked: { - bg: "primary400", - _hover: { - bg: "primary400", - borderColor: "primary600", - }, - borderColor: "black50", - }, - border: "1px", - borderColor: "black50", - borderRadius: "3px", - transition: "all 150ms", - _focusVisible: { - boxShadow: "none", - }, - _hover: { - boxShadow: "tableItemBoxShadow", - border: "1px", - borderStyle: "solid", - borderColor: "primary600", - transition: "transform 0.1s", - transform: "scale(1.02)", - }, - }) +const { commonContainerProps, commonControlProps, commonLabelProps } = + commonInputTriggerStyles + +const checkboxMdSize = defaultSizes?.md + +const baseStyleControl = defineMergeStyles( + checkboxMdSize?.control, + commonControlProps, + { + boxSize: "var(--checkbox-size)", // Comes from default theme + borderRadius: "sm", + } ) -const sizes = { - md: defineStyle({ - control: { - h: "1.5rem", - w: "1.5rem", - }, - icon: { - fontSize: "md", - }, - }), -} +const baseStyleLabel = defineStyle({ ...commonLabelProps }) + +const baseStyleContainer = defineStyle({ ...commonContainerProps }) -const variantAlignTop = definePartsStyle({ - control: { - mt: "0.25rem", - }, +const baseStyle = definePartsStyle({ + container: baseStyleContainer, + control: baseStyleControl, + label: baseStyleLabel, }) export const Checkbox = defineMultiStyleConfig({ - baseStyle: definePartsStyle((props) => ({ - ...defaultBaseStyle?.(props), - control: baseStyleControl(props), - })), - sizes, - variants: { - // TODO: remove this variant - alignTop: variantAlignTop, - }, - defaultProps: { - size: "md", - }, + baseStyle, }) diff --git a/src/@chakra-ui/gatsby-plugin/components/components.utils.ts b/src/@chakra-ui/gatsby-plugin/components/components.utils.ts index 1bf4964b525..c166eb961ca 100644 --- a/src/@chakra-ui/gatsby-plugin/components/components.utils.ts +++ b/src/@chakra-ui/gatsby-plugin/components/components.utils.ts @@ -103,10 +103,7 @@ export const commonInputTriggerStyles = { // Hovering over the label triggers the style for the control "*:hover > &": { bg: "primaryHover", - outlineColor: "primaryDark", - _dark: { - outlineColor: "primaryLight", - }, + borderColor: "primaryHighContrast", }, }, }, diff --git a/src/components/Checkbox/Checkbox.stories.tsx b/src/components/Checkbox/Checkbox.stories.tsx new file mode 100644 index 00000000000..6769ba97cab --- /dev/null +++ b/src/components/Checkbox/Checkbox.stories.tsx @@ -0,0 +1,45 @@ +import * as React from "react" +import { CheckboxGroup, VStack } from "@chakra-ui/react" +import { Meta, StoryObj } from "@storybook/react" +import CheckboxComponent from "." + +type CheckboxType = typeof CheckboxComponent + +const meta: Meta = { + title: "Atoms / Form / Checkbox", + component: CheckboxComponent, + parameters: { + controls: { + hideNoControlsWarning: true, + expanded: false, + }, + }, +} + +export default meta + +type Story = StoryObj + +const DEFAULT_VAL = "checked" + +export const Checkbox: Story = { + render: () => ( + + + defaultValue + + isDisabled + + + isFocusable + + + isReadOnly + + + isRequired + + + + ), +} diff --git a/src/components/Checkbox.tsx b/src/components/Checkbox/index.tsx similarity index 100% rename from src/components/Checkbox.tsx rename to src/components/Checkbox/index.tsx From 5a1a8ac691a5ed6ea2b8111bb65d1b7618e2e9ed Mon Sep 17 00:00:00 2001 From: tylerapfledderer Date: Thu, 30 Mar 2023 21:32:29 -0400 Subject: [PATCH 007/186] feat(theme/Radio): add radio theme and story --- .../gatsby-plugin/components/Radio.ts | 52 +++++++++++++++++++ .../components/components.utils.ts | 4 +- .../gatsby-plugin/components/index.ts | 2 + src/components/BaseStories/Radio.stories.tsx | 51 ++++++++++++++++++ 4 files changed, 108 insertions(+), 1 deletion(-) create mode 100644 src/@chakra-ui/gatsby-plugin/components/Radio.ts create mode 100644 src/components/BaseStories/Radio.stories.tsx diff --git a/src/@chakra-ui/gatsby-plugin/components/Radio.ts b/src/@chakra-ui/gatsby-plugin/components/Radio.ts new file mode 100644 index 00000000000..0dcfc732a86 --- /dev/null +++ b/src/@chakra-ui/gatsby-plugin/components/Radio.ts @@ -0,0 +1,52 @@ +import { + createMultiStyleConfigHelpers, + cssVar, + defineStyle, +} from "@chakra-ui/react" +import { radioAnatomy } from "@chakra-ui/anatomy" +import { + commonInputTriggerStyles, + defineMergeStyles, + radioDefaultTheme, +} from "./components.utils" + +const { defineMultiStyleConfig, definePartsStyle } = + createMultiStyleConfigHelpers(radioAnatomy.keys) + +export const $radioDisableColor = cssVar("radio-disable-color") + +const { commonContainerProps, commonControlProps, commonLabelProps } = + commonInputTriggerStyles + +const baseStyleContainer = defineStyle({ ...commonContainerProps }) + +const baseStyleControl = defineMergeStyles( + radioDefaultTheme.baseStyle?.({} as never).control, + commonControlProps, + { + borderColor: "bodyLight", + boxSize: 4, + fontSize: "md", + "*:hover > &": { + outlineOffset: "-1px", + }, + _checked: { + _before: { + // Force half the size, as '50%' value not reliable. + boxSize: 2, + }, + }, + } +) + +const baseStyleLabel = defineStyle({ ...commonLabelProps }) + +const baseStyle = definePartsStyle({ + container: baseStyleContainer, + control: baseStyleControl, + label: baseStyleLabel, +}) + +export const Radio = defineMultiStyleConfig({ + baseStyle, +}) diff --git a/src/@chakra-ui/gatsby-plugin/components/components.utils.ts b/src/@chakra-ui/gatsby-plugin/components/components.utils.ts index c166eb961ca..d9879d9bbd0 100644 --- a/src/@chakra-ui/gatsby-plugin/components/components.utils.ts +++ b/src/@chakra-ui/gatsby-plugin/components/components.utils.ts @@ -20,6 +20,7 @@ const { List: listDefaultTheme, Menu: menuDefaultTheme, Modal: modalDefaultTheme, + Radio: radioDefaultTheme, Select: selectDefaultTheme, Spinner: spinnerDefaultTheme, Switch: switchDefaultTheme, @@ -47,6 +48,7 @@ export { listDefaultTheme, menuDefaultTheme, modalDefaultTheme, + radioDefaultTheme, selectDefaultTheme, spinnerDefaultTheme, switchDefaultTheme, @@ -96,7 +98,7 @@ export const commonInputTriggerStyles = { }, _disabled: { bg: `var(${INPUT_TRIGGER_DISABLE_COLOR})`, - borderColor: `var(${INPUT_TRIGGER_DISABLE_COLOR})`, + borderColor: `var(${INPUT_TRIGGER_DISABLE_COLOR}) !important`, opacity: 1, }, [_notDisabled]: { diff --git a/src/@chakra-ui/gatsby-plugin/components/index.ts b/src/@chakra-ui/gatsby-plugin/components/index.ts index b4d0d3d4c58..7f651b78bec 100644 --- a/src/@chakra-ui/gatsby-plugin/components/index.ts +++ b/src/@chakra-ui/gatsby-plugin/components/index.ts @@ -5,6 +5,7 @@ import { Tag } from "./Tag" import { Modal } from "./Modal" import { Checkbox } from "./Checkbox" import { Tabs } from "./Tabs" +import { Radio } from "./Radio" import { accordionDefaultTheme, avatarDefaultTheme, @@ -40,6 +41,7 @@ export default { Link, Menu: menuDefaultTheme, Modal, + Radio, Select: selectDefaultTheme, Spinner: spinnerDefaultTheme, Switch: switchDefaultTheme, diff --git a/src/components/BaseStories/Radio.stories.tsx b/src/components/BaseStories/Radio.stories.tsx new file mode 100644 index 00000000000..f46e22a59a2 --- /dev/null +++ b/src/components/BaseStories/Radio.stories.tsx @@ -0,0 +1,51 @@ +import * as React from "react" +import { RadioGroup, Radio as RadioComponent, Stack } from "@chakra-ui/react" +import { Meta, StoryObj } from "@storybook/react" + +type RadioType = typeof RadioComponent + +const meta: Meta = { + title: "Atoms / Form / Radio", + component: RadioComponent, + argTypes: { + groupDir: { + options: ["column", "row"], + control: { type: "radio" }, + }, + }, + parameters: { + controls: { + hideNoControlsWarning: true, + expanded: false, + }, + }, +} + +export default meta + +type Story = StoryObj + +export const Radio: Story = { + args: { + groupDir: "column", + }, + render: ({ groupDir }) => ( + + + defaultValue + + isDisabled + + + isFocusable + + + isReadOnly + + + isRequired + + + + ), +} From b4fab27a9eeb238cf5355bf7b0fd1e1502ac167d Mon Sep 17 00:00:00 2001 From: tylerapfledderer Date: Thu, 30 Mar 2023 22:08:04 -0400 Subject: [PATCH 008/186] feat(theme/switch): add Switch theme and story --- .../gatsby-plugin/components/Switch.ts | 49 +++++++++++++++++++ .../components/components.utils.ts | 16 ++++-- .../gatsby-plugin/components/index.ts | 4 +- src/components/BaseStories/Switch.stories.tsx | 41 ++++++++++++++++ 4 files changed, 103 insertions(+), 7 deletions(-) create mode 100644 src/@chakra-ui/gatsby-plugin/components/Switch.ts create mode 100644 src/components/BaseStories/Switch.stories.tsx diff --git a/src/@chakra-ui/gatsby-plugin/components/Switch.ts b/src/@chakra-ui/gatsby-plugin/components/Switch.ts new file mode 100644 index 00000000000..7b73d6b9622 --- /dev/null +++ b/src/@chakra-ui/gatsby-plugin/components/Switch.ts @@ -0,0 +1,49 @@ +import { createMultiStyleConfigHelpers } from "@chakra-ui/react" +import { switchAnatomy } from "@chakra-ui/anatomy" +import { + commonInputTriggerStyles, + defineMergeStyles, + switchDefaultTheme, +} from "./components.utils" + +const { defineMultiStyleConfig, definePartsStyle } = + createMultiStyleConfigHelpers(switchAnatomy.keys) + +const { baseStyle: defaultBaseStyle, sizes: defaultSizes } = switchDefaultTheme + +const switchSmSize = defaultSizes?.sm + +const { commonControlProps, commonContainerProps, commonLabelProps } = + commonInputTriggerStyles + +const baseStyleContainer = defineMergeStyles( + defaultBaseStyle?.({} as never).container, + switchSmSize?.container, + commonContainerProps, + {} +) + +const baseStyleThumb = defineMergeStyles( + defaultBaseStyle?.({} as never).thumb, + { bg: "background" } +) + +const baseStyleTrack = defineMergeStyles( + defaultBaseStyle?.({} as never).track, + commonControlProps, + { + bg: "bodyLight", + _invalid: { borderColor: "errorOutline" }, + _focusVisible: { bg: "gray.500", borderColor: "transparent" }, + } +) + +const baseStyle = definePartsStyle({ + container: baseStyleContainer, + thumb: baseStyleThumb, + track: baseStyleTrack, +}) + +export const Switch = defineMultiStyleConfig({ + baseStyle, +}) diff --git a/src/@chakra-ui/gatsby-plugin/components/components.utils.ts b/src/@chakra-ui/gatsby-plugin/components/components.utils.ts index d9879d9bbd0..16321fc9c14 100644 --- a/src/@chakra-ui/gatsby-plugin/components/components.utils.ts +++ b/src/@chakra-ui/gatsby-plugin/components/components.utils.ts @@ -1,4 +1,4 @@ -import { SystemStyleObject, theme } from "@chakra-ui/react" +import { cssVar, SystemStyleObject, theme } from "@chakra-ui/react" import { merge } from "lodash" const { @@ -79,10 +79,12 @@ export function defineMergeStyles( export const _notDisabled = "&:not([data-disabled], [disabled])" const INPUT_TRIGGER_DISABLE_COLOR = "--input-trigger-disable-color" +const $inputTriggerDisableColor = cssVar("input-trigger-disable-color") export const commonInputTriggerStyles = { commonControlProps: { border: "1px", + borderColor: "bodyLight", outline: "2px solid", outlineColor: "transparent", _checked: { @@ -97,9 +99,13 @@ export const commonInputTriggerStyles = { boxShadow: "none", }, _disabled: { - bg: `var(${INPUT_TRIGGER_DISABLE_COLOR})`, - borderColor: `var(${INPUT_TRIGGER_DISABLE_COLOR}) !important`, + bg: $inputTriggerDisableColor.reference, + borderColor: $inputTriggerDisableColor.reference, opacity: 1, + _checked: { + bg: $inputTriggerDisableColor.reference, + borderColor: $inputTriggerDisableColor.reference, + }, }, [_notDisabled]: { // Hovering over the label triggers the style for the control @@ -110,14 +116,14 @@ export const commonInputTriggerStyles = { }, }, commonContainerProps: { - [INPUT_TRIGGER_DISABLE_COLOR]: "colors.disabled", + [$inputTriggerDisableColor.variable]: "colors.disabled", _disabled: { cursor: "not-allowed", }, }, commonLabelProps: { _disabled: { - color: `var(${INPUT_TRIGGER_DISABLE_COLOR})`, + color: $inputTriggerDisableColor.reference, opacity: 1, }, }, diff --git a/src/@chakra-ui/gatsby-plugin/components/index.ts b/src/@chakra-ui/gatsby-plugin/components/index.ts index 7f651b78bec..7be78fa6235 100644 --- a/src/@chakra-ui/gatsby-plugin/components/index.ts +++ b/src/@chakra-ui/gatsby-plugin/components/index.ts @@ -6,6 +6,7 @@ import { Modal } from "./Modal" import { Checkbox } from "./Checkbox" import { Tabs } from "./Tabs" import { Radio } from "./Radio" +import { Switch } from "./Switch" import { accordionDefaultTheme, avatarDefaultTheme, @@ -20,7 +21,6 @@ import { menuDefaultTheme, selectDefaultTheme, spinnerDefaultTheme, - switchDefaultTheme, tableDefaultTheme, } from "./components.utils" @@ -44,7 +44,7 @@ export default { Radio, Select: selectDefaultTheme, Spinner: spinnerDefaultTheme, - Switch: switchDefaultTheme, + Switch, Table: tableDefaultTheme, Tabs, Tag, diff --git a/src/components/BaseStories/Switch.stories.tsx b/src/components/BaseStories/Switch.stories.tsx new file mode 100644 index 00000000000..832573f3017 --- /dev/null +++ b/src/components/BaseStories/Switch.stories.tsx @@ -0,0 +1,41 @@ +import * as React from "react" +import { SimpleGrid, Switch as SwitchComponent } from "@chakra-ui/react" +import { Meta, StoryObj } from "@storybook/react" + +type SwitchType = typeof SwitchComponent + +const meta: Meta = { + title: "Atoms / Form / Switch", + component: SwitchComponent, + parameters: { + controls: { + hideNoControlsWarning: true, + expanded: false, + }, + }, +} + +export default meta + +type Story = StoryObj + +export const Switch: Story = { + render: () => ( + + isChecked: + + + isDisabled and checked: + + + isFocusable & isDisabled: + + + isReadOnly: + + + isRequired: + + + ), +} From 3c6a8bc9e43a11ad43e620daf2442a7682468ca8 Mon Sep 17 00:00:00 2001 From: tylerapfledderer Date: Thu, 30 Mar 2023 22:58:17 -0400 Subject: [PATCH 009/186] feat(theme/Input): add theme and story --- .../gatsby-plugin/components/Input.ts | 113 ++++++++++++++++++ .../gatsby-plugin/components/index.ts | 2 + src/components/Input/Input.stories.tsx | 50 ++++++++ src/components/Input/index.tsx | 32 +++++ 4 files changed, 197 insertions(+) create mode 100644 src/@chakra-ui/gatsby-plugin/components/Input.ts create mode 100644 src/components/Input/Input.stories.tsx create mode 100644 src/components/Input/index.tsx diff --git a/src/@chakra-ui/gatsby-plugin/components/Input.ts b/src/@chakra-ui/gatsby-plugin/components/Input.ts new file mode 100644 index 00000000000..0576a15d40c --- /dev/null +++ b/src/@chakra-ui/gatsby-plugin/components/Input.ts @@ -0,0 +1,113 @@ +import { inputAnatomy } from "@chakra-ui/anatomy" +import { + createMultiStyleConfigHelpers, + defineStyle, +} from "@chakra-ui/styled-system" +import { defineMergeStyles, inputDefaultTheme } from "./components.utils" + +const { defineMultiStyleConfig, definePartsStyle } = + createMultiStyleConfigHelpers(inputAnatomy.keys) + +const baseStyle = definePartsStyle((props) => { + const { + focusBorderColor: fc = "primary", + errorBorderColor: ec = "errorOutline", + } = props + + return defineMergeStyles( + inputDefaultTheme.baseStyle, + inputDefaultTheme.variants?.outline(props), + { + field: { + borderColor: "body", + borderRadius: "base", + _placeholder: { + color: "disabled", + opacity: 1, + }, + _focusVisible: { + borderColor: fc, + boxShadow: "none", + }, + _hover: null, // override default + _invalid: { + borderColor: ec, + boxShadow: "none", + }, + _disabled: { + borderColor: "disabled", + opacity: 1, + }, + "&:not(:disabled)": { + _hover: { + borderColor: "primaryHover", + }, + _active: { + bg: "backgroundHighlight", + borderColor: "primaryHighContrast", + }, + }, + }, + element: { + fontSize: "xl", + _groupHover: { + color: "primaryHover", + }, + _peerFocus: { + color: fc, + _peerInvalid: { + color: ec, + }, + _peerDisabled: { + color: "disabled", + }, + }, + _peerDisabled: { + color: "disabled", + }, + "[data-peer]:not(:disabled):active ~ &": { + color: "primaryDark", + _dark: { + color: "primaryHighContrast", + }, + }, + }, + } + ) +}) +console.log( + "🚀 ~ file: Input.ts:78 ~ baseStyle ~ inputDefaultTheme.baseStyle,:", + inputDefaultTheme.baseStyle +) + +const size = { + md: defineStyle({ + h: 10, + px: 2, + }), + sm: defineStyle({ + fontSize: "sm", + h: 8, + px: 1, + }), +} + +const sizes = { + md: definePartsStyle({ + field: size.md, + element: size.md, + }), + sm: definePartsStyle({ + field: size.sm, + element: size.sm, + }), +} + +export const Input = defineMultiStyleConfig({ + baseStyle, + sizes, + defaultProps: { + variant: "outline", + size: "md", + }, +}) diff --git a/src/@chakra-ui/gatsby-plugin/components/index.ts b/src/@chakra-ui/gatsby-plugin/components/index.ts index 7be78fa6235..3948ea89d03 100644 --- a/src/@chakra-ui/gatsby-plugin/components/index.ts +++ b/src/@chakra-ui/gatsby-plugin/components/index.ts @@ -7,6 +7,7 @@ import { Checkbox } from "./Checkbox" import { Tabs } from "./Tabs" import { Radio } from "./Radio" import { Switch } from "./Switch" +import { Input } from "./Input" import { accordionDefaultTheme, avatarDefaultTheme, @@ -38,6 +39,7 @@ export default { Form: formDefaultTheme, FormLabel: formLabelDefaultTheme, Heading: headingDefaultTheme, + Input, Link, Menu: menuDefaultTheme, Modal, diff --git a/src/components/Input/Input.stories.tsx b/src/components/Input/Input.stories.tsx new file mode 100644 index 00000000000..17fbe872e9c --- /dev/null +++ b/src/components/Input/Input.stories.tsx @@ -0,0 +1,50 @@ +import * as React from "react" +import { VStack } from "@chakra-ui/react" +import { Meta, StoryObj } from "@storybook/react" +import Input from "." +import { MdSearch } from "react-icons/md" +import { BsSlashSquare } from "react-icons/bs" + +type InputType = typeof Input + +const meta: Meta = { + title: "Atoms / Form / Input", + component: Input, +} + +export default meta + +type Story = StoryObj + +export const Sizes: Story = { + render: () => ( + + } + rightElement={} + placeholder="Search" + /> + } + rightElement={} + placeholder="Search" + size="sm" + /> + + ), +} + +export const ElementVariations: Story = { + render: () => ( + + } + rightElement={} + placeholder="input text" + /> + } placeholder="input text" /> + + } placeholder="input text" /> + + ), +} diff --git a/src/components/Input/index.tsx b/src/components/Input/index.tsx new file mode 100644 index 00000000000..b355f1ee8a8 --- /dev/null +++ b/src/components/Input/index.tsx @@ -0,0 +1,32 @@ +import * as React from "react" +import { + Input as ChakraInput, + InputGroup, + InputLeftElement, + InputProps as ChakraInputProps, + InputRightElement, +} from "@chakra-ui/react" + +interface InputProps extends ChakraInputProps { + /** + * The Element or Icon used to render `InputLeftElement` + */ + leftElement?: React.ReactNode + /** + * The Element or Icon used to render `InputRightElement` + */ + rightElement?: React.ReactNode +} + +const Input = (props: InputProps) => { + const { leftElement, rightElement, size, ...rest } = props + return ( + + + {leftElement ? : null} + {rightElement ? : null} + + ) +} + +export default Input From 150418c395b77bf110b9564c9e17e7b0894782e3 Mon Sep 17 00:00:00 2001 From: tylerapfledderer Date: Fri, 31 Mar 2023 00:01:22 -0400 Subject: [PATCH 010/186] feat(theme/dropdown): create component, theme, and stories --- package.json | 2 + .../gatsby-plugin/components/Dropdown.ts | 118 +++++++++++++ .../gatsby-plugin/components/index.ts | 2 + .../gatsby-plugin/semanticTokens.ts | 6 + src/components/Dropdown/Dropdown.stories.tsx | 24 +++ src/components/Dropdown/index.tsx | 69 ++++++++ yarn.lock | 156 +++++++++++++++++- 7 files changed, 375 insertions(+), 2 deletions(-) create mode 100644 src/@chakra-ui/gatsby-plugin/components/Dropdown.ts create mode 100644 src/components/Dropdown/Dropdown.stories.tsx create mode 100644 src/components/Dropdown/index.tsx diff --git a/package.json b/package.json index eb0b65bc67e..bed89b0c1f8 100644 --- a/package.json +++ b/package.json @@ -18,6 +18,8 @@ "@formatjs/intl-numberformat": "^6.1.4", "@mdx-js/mdx": "^1.6.5", "@mdx-js/react": "^1.6.5", + "@zag-js/react": "^0.3.12", + "@zag-js/select": "^0.2.1", "algoliasearch": "^4.3.0", "axios": "^0.21.2", "browser-lang": "^0.1.0", diff --git a/src/@chakra-ui/gatsby-plugin/components/Dropdown.ts b/src/@chakra-ui/gatsby-plugin/components/Dropdown.ts new file mode 100644 index 00000000000..841818bdc59 --- /dev/null +++ b/src/@chakra-ui/gatsby-plugin/components/Dropdown.ts @@ -0,0 +1,118 @@ +import { + createMultiStyleConfigHelpers, + cssVar, + defineStyle, +} from "@chakra-ui/react" + +const { defineMultiStyleConfig, definePartsStyle } = + createMultiStyleConfigHelpers(["trigger", "triggerIcon", "content", "option"]) + +const $borderBaseWidth = cssVar("border-base-width") + +const baseStyleTrigger = defineStyle({ + [$borderBaseWidth.variable]: "1px", + borderColor: "currentColor", + borderStyle: "solid", + display: "inline-flex", + alignItems: "center", + justifyContent: "space-between", + gap: 4, + p: 2, + width: "full", + _active: { + bg: "primaryLowContrast", + boxShadow: "none", + }, + _hover: { + boxShadow: "buttonHover", + color: "primary", + }, + _focusVisible: { + outline: "3px solid", + outlineColor: "primaryHover", + }, + _expanded: { + bg: "backgroundHighlight", + color: "primary", + boxShadow: "buttonHover", + outline: "none", + }, +}) + +const baseStyleTriggerIcon = defineStyle({ + "[data-expanded] > &": { + transform: "rotate(180deg)", + }, +}) + +const baseStyleContent = defineStyle({ + listStyle: "none", + bg: "backgroundHighlight", + width: "var(--reference-width)", + boxShadow: "buttonHover", + borderRadius: "base", + borderTopRadius: "none", + color: "primary", + m: 0, +}) + +const baseStyleOption = defineStyle({ + p: 2, + m: 0, + cursor: "pointer", + "&[aria-selected='true'], &:hover": { + bg: "primaryHover", + color: "primaryLowContrast", + }, + "&[data-focus]": { + outline: "3px solid", + outlineColor: "primaryHover", + outlineOffset: -3, + }, +}) + +const baseStyle = definePartsStyle({ + trigger: baseStyleTrigger, + triggerIcon: baseStyleTriggerIcon, + content: baseStyleContent, + option: baseStyleOption, +}) + +const variantOutline = definePartsStyle({ + trigger: { + borderRadius: "base", + borderWidth: $borderBaseWidth.reference, + _expanded: { + borderBottomColor: "transparent", + borderBottomRadius: 0, + }, + }, + content: { + border: "1px", + borderColor: "currentColor", + borderTop: "0", + }, +}) +const variantFlushed = definePartsStyle({ + trigger: { + borderTopRadius: "base", + borderBottomWidth: $borderBaseWidth.reference, + }, + content: { + borderTop: "1px", + borderColor: "currentColor", + }, +}) + +const variants = { + outline: variantOutline, + flushed: variantFlushed, +} + +export const Dropdown = defineMultiStyleConfig({ + baseStyle, + variants, + defaultProps: { + variant: "outline", + }, +}) diff --git a/src/@chakra-ui/gatsby-plugin/components/index.ts b/src/@chakra-ui/gatsby-plugin/components/index.ts index 3948ea89d03..c7c23f9cf17 100644 --- a/src/@chakra-ui/gatsby-plugin/components/index.ts +++ b/src/@chakra-ui/gatsby-plugin/components/index.ts @@ -8,6 +8,7 @@ import { Tabs } from "./Tabs" import { Radio } from "./Radio" import { Switch } from "./Switch" import { Input } from "./Input" +import { Dropdown } from "./Dropdown" import { accordionDefaultTheme, avatarDefaultTheme, @@ -36,6 +37,7 @@ export default { Code: codeDefaultTheme, Divider: dividerDefaultTheme, Drawer: drawerDefaultTheme, + Dropdown, Form: formDefaultTheme, FormLabel: formLabelDefaultTheme, Heading: headingDefaultTheme, diff --git a/src/@chakra-ui/gatsby-plugin/semanticTokens.ts b/src/@chakra-ui/gatsby-plugin/semanticTokens.ts index 19aeeb602b6..94959272a6f 100644 --- a/src/@chakra-ui/gatsby-plugin/semanticTokens.ts +++ b/src/@chakra-ui/gatsby-plugin/semanticTokens.ts @@ -82,6 +82,12 @@ const semanticTokens = { "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%)", }, }, + shadows: { + buttonHover: { + _light: "4px 4px 0 var(--eth-colors-blue-100)", + _dark: "4px 4px 0 #352313", + }, + }, } export default semanticTokens diff --git a/src/components/Dropdown/Dropdown.stories.tsx b/src/components/Dropdown/Dropdown.stories.tsx new file mode 100644 index 00000000000..d90f0fbc591 --- /dev/null +++ b/src/components/Dropdown/Dropdown.stories.tsx @@ -0,0 +1,24 @@ +import * as React from "react" +import { VStack } from "@chakra-ui/react" +import { Meta, StoryObj } from "@storybook/react" +import DropdownComponent from "." + +type DropdownType = typeof DropdownComponent + +const meta: Meta = { + title: "Atoms / Form / Dropdown", + component: DropdownComponent, +} + +export default meta + +type Story = StoryObj + +export const Dropdown: Story = { + render: () => ( + + + + + ), +} diff --git a/src/components/Dropdown/index.tsx b/src/components/Dropdown/index.tsx new file mode 100644 index 00000000000..ad278ac2bf3 --- /dev/null +++ b/src/components/Dropdown/index.tsx @@ -0,0 +1,69 @@ +import * as React from "react" +import { useMachine, normalizeProps } from "@zag-js/react" +import { machine, connect } from "@zag-js/select" +import { + chakra, + Portal, + SystemStyleObject, + useMultiStyleConfig, + ThemingProps, +} from "@chakra-ui/react" +import { FaChevronDown } from "react-icons/fa" + +const selectData = [ + { label: "Ethereum", value: "eth" }, + { label: "Bitcoin", value: "bit" }, + { label: "Dogecoin", value: "doge" }, +] + +interface DropdownProps extends ThemingProps<"Dropdown"> {} + +const Dropdown = (props: DropdownProps) => { + const { variant } = props + + const [state, send] = useMachine( + machine({ + id: React.useId(), + positioning: { + gutter: -1, + }, + }) + ) + + const api = connect(state, send, normalizeProps) + + const styles = useMultiStyleConfig("Dropdown", { variant }) as Record< + "trigger" | "triggerIcon" | "content" | "option", + SystemStyleObject + > + + const triggerRef = React.useRef(null) + + return ( + <> + + {api.selectedOption?.label ?? "Select Crypto"} + + + + + +
+ + {selectData.map(({ label, value }) => ( + + {label} + + ))} + +
+
+ + ) +} + +export default Dropdown diff --git a/yarn.lock b/yarn.lock index 1730121b732..3ae07ad64e7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2408,6 +2408,18 @@ resolved "https://registry.yarnpkg.com/@fal-works/esbuild-plugin-global-externals/-/esbuild-plugin-global-externals-2.1.2.tgz#c05ed35ad82df8e6ac616c68b92c2282bd083ba4" integrity sha512-cEee/Z+I12mZcFJshKcCqC8tuX5hG3s+d+9nZ3LabqKF1vKdF41B92pJVCBggjAGORAeOzyyDDKrZwIkLffeOQ== +"@floating-ui/core@^1.2.4": + version "1.2.5" + resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.2.5.tgz#612f0d203e6f647490d572c7b798eebac9e3cf54" + integrity sha512-qrcbyfnRVziRlB6IYwjCopYhO7Vud750JlJyuljruIXcPxr22y8zdckcJGsuOdnQ639uVD1tTXddrcH3t3QYIQ== + +"@floating-ui/dom@1.2.5": + version "1.2.5" + resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.2.5.tgz#c9ec259a24ce0958b1ea29674df4eee4455361a9" + integrity sha512-+sAUfpQ3Frz+VCbPCqj+cZzvEESy3fjSeT/pDWkYCWOBXYNNKZfuVsHuv8/JO2zze8+Eb/Q7a6hZVgzS81fLbQ== + dependencies: + "@floating-ui/core" "^1.2.4" + "@formatjs/ecma402-abstract@1.11.4": version "1.11.4" resolved "https://registry.yarnpkg.com/@formatjs/ecma402-abstract/-/ecma402-abstract-1.11.4.tgz#b962dfc4ae84361f9f08fbce411b4e4340930eda" @@ -5517,6 +5529,47 @@ dependencies: tslib "^2.4.0" +"@zag-js/anatomy@0.1.4": + version "0.1.4" + resolved "https://registry.yarnpkg.com/@zag-js/anatomy/-/anatomy-0.1.4.tgz#61c5434eaa4e2a8fd2e09ac6fc22b83a74e46052" + integrity sha512-Xc5QmQwY0W3VdkukYVaoujuCmgf0Y2ZbXhIBi0CJ0d8wWRwjkphhJu8l9kDyX4ElpyzvExYbrpTuQoI4BspaVQ== + +"@zag-js/core@0.2.12": + version "0.2.12" + resolved "https://registry.yarnpkg.com/@zag-js/core/-/core-0.2.12.tgz#22f4217bc583f12bc3e071c54ad43b7f42eea74a" + integrity sha512-XAcB9BorwetDljwLQeFHrTeBpw7jQUSKNj1zfy+TU/ZmQ9JVaKSDLO0JdKAy05lJIT7jKpjOkGB3g5tt+mT79w== + dependencies: + "@zag-js/store" "0.2.8" + klona "2.0.6" + +"@zag-js/dismissable@0.2.6": + version "0.2.6" + resolved "https://registry.yarnpkg.com/@zag-js/dismissable/-/dismissable-0.2.6.tgz#eedac5fbd1511a356396053807000281044d35cd" + integrity sha512-ra72EJySeKRuVaUj/m/OiMFq32dAkVY8dD387EhhSZejN0GLUQlKfZG4/3Mq6j4mm71N1Nig0epGZ6o1LSxDIA== + dependencies: + "@zag-js/dom-event" "0.0.1" + "@zag-js/dom-query" "0.1.4" + "@zag-js/interact-outside" "0.2.6" + "@zag-js/utils" "0.3.4" + +"@zag-js/dom-event@0.0.1": + version "0.0.1" + resolved "https://registry.yarnpkg.com/@zag-js/dom-event/-/dom-event-0.0.1.tgz#a6864a582a3e318349577e2ab2aca5d0aef495cb" + integrity sha512-oRDWn/31JUwTc9nIUG/Ingug6FNBkhXUnd2dh3vEcqfk+NVHPZ9Lgx5tauiEDyiRKeWr9PS5GJpBQVNc2YDo3Q== + dependencies: + "@zag-js/text-selection" "0.0.1" + "@zag-js/types" "0.3.4" + +"@zag-js/dom-query@0.1.4": + version "0.1.4" + resolved "https://registry.yarnpkg.com/@zag-js/dom-query/-/dom-query-0.1.4.tgz#942602800d81f2d38264ce1e879831329e51a6a1" + integrity sha512-s2q18k3z3ABAkySc6xK1NLPVIdgZGTLSZxok7yzpCYoywEeCnFvP6K63Q4ONElk74XgO7Eq8KMzIj702LDS+Mg== + +"@zag-js/element-rect@0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@zag-js/element-rect/-/element-rect-0.3.0.tgz#af8c6680bb34b6f6dba06b1ac7919b01d09f5d95" + integrity sha512-P3bdcfE5Bk3Bm7qhs8lPDykgWNYJeMgyqa+3Z93QPCH9cXsg76O0OrhkK3kWruHzT/f+sVXDDZ1yEUxxgLCRFg== + "@zag-js/element-size@0.3.2": version "0.3.2" resolved "https://registry.yarnpkg.com/@zag-js/element-size/-/element-size-0.3.2.tgz#ebb76af2a024230482406db41344598d1a9f54f4" @@ -5527,6 +5580,100 @@ resolved "https://registry.yarnpkg.com/@zag-js/focus-visible/-/focus-visible-0.2.2.tgz#56233480ca1275d3218fb2e10696a33d1a6b9e64" integrity sha512-0j2gZq8HiZ51z4zNnSkF1iSkqlwRDvdH+son3wHdoz+7IUdMN/5Exd4TxMJ+gq2Of1DiXReYLL9qqh2PdQ4wgA== +"@zag-js/form-utils@0.2.5": + version "0.2.5" + resolved "https://registry.yarnpkg.com/@zag-js/form-utils/-/form-utils-0.2.5.tgz#0f8e6cfa36560735a1f7e9d2dca651db8be43310" + integrity sha512-aqdj+M4lvczDITrfkZqQxGkfHbFn084ONRkDylaPNx8xQKoRbsy+crDga10QDOUkgSMtVOB8XZ+VyJHQAzRErQ== + dependencies: + "@zag-js/mutation-observer" "0.0.1" + +"@zag-js/interact-outside@0.2.6": + version "0.2.6" + resolved "https://registry.yarnpkg.com/@zag-js/interact-outside/-/interact-outside-0.2.6.tgz#9c6add221e15760e3c607bf3ab1e2b14b7ba77b5" + integrity sha512-4Q3ij2aDYwcGkJmlyxIq+lq3J9gF2hjMJGAIYFC6AOfN/SCivkPFlq3zabCZUSZrzPYwggMVL6GdUI+bTAE4Iw== + dependencies: + "@zag-js/dom-event" "0.0.1" + "@zag-js/dom-query" "0.1.4" + "@zag-js/tabbable" "0.1.1" + "@zag-js/utils" "0.3.4" + +"@zag-js/mutation-observer@0.0.1": + version "0.0.1" + resolved "https://registry.yarnpkg.com/@zag-js/mutation-observer/-/mutation-observer-0.0.1.tgz#55fb919b9c2cf07fb9255caea5ae698b82d8df18" + integrity sha512-HasPzt6LyVWsu1jwx3lFNKuV3nlaJQ918rU1wUnhqMD8ZVSKvNBxCoz0NswiKZWTR/6eNwFwvHrewJiWKXivrw== + +"@zag-js/popper@0.2.7": + version "0.2.7" + resolved "https://registry.yarnpkg.com/@zag-js/popper/-/popper-0.2.7.tgz#0e9d741edb3c10e140fbe9ef252f78f2ccda5580" + integrity sha512-ruWgwZXYt+hEhMamjuQ1J/UdQsRazB0t4eajatgb9ei9YPtFDxEmXf3UegeWkhMTMfZdTTZEozmtrzcflzAmKQ== + dependencies: + "@floating-ui/dom" "1.2.5" + "@zag-js/dom-query" "0.1.4" + "@zag-js/element-rect" "0.3.0" + "@zag-js/utils" "0.3.4" + +"@zag-js/react@^0.3.12": + version "0.3.12" + resolved "https://registry.yarnpkg.com/@zag-js/react/-/react-0.3.12.tgz#641cdee856ad27ca7291de722ac6121c0783d78c" + integrity sha512-IkGcZMCoU1ahJMlZ5Y0r1rrftmw9DUFW213qifveYr7Y1FX0vKfeMq5rbhI5+hrwcnJfgUSsFs3lQ8fwxVT+RA== + dependencies: + "@zag-js/core" "0.2.12" + "@zag-js/store" "0.2.8" + "@zag-js/types" "0.3.4" + proxy-compare "2.5.0" + +"@zag-js/select@^0.2.1": + version "0.2.1" + resolved "https://registry.yarnpkg.com/@zag-js/select/-/select-0.2.1.tgz#b88ca85fc7847aa9df9c50ce173fc9a2462096ae" + integrity sha512-JmxCbkFdyfScrywJnuVm6XFHMEfXuP7Pcn2mI3UpUu7lYEkckDw+K3KHHbB6cNEmeHNiAFGAK5jul27/XxUetg== + dependencies: + "@zag-js/anatomy" "0.1.4" + "@zag-js/core" "0.2.12" + "@zag-js/dismissable" "0.2.6" + "@zag-js/dom-event" "0.0.1" + "@zag-js/dom-query" "0.1.4" + "@zag-js/form-utils" "0.2.5" + "@zag-js/mutation-observer" "0.0.1" + "@zag-js/popper" "0.2.7" + "@zag-js/tabbable" "0.1.1" + "@zag-js/types" "0.3.4" + "@zag-js/utils" "0.3.4" + "@zag-js/visually-hidden" "0.0.1" + +"@zag-js/store@0.2.8": + version "0.2.8" + resolved "https://registry.yarnpkg.com/@zag-js/store/-/store-0.2.8.tgz#b7b477c56e688043ed3f1c7a8ebb12cb6e994639" + integrity sha512-QgBnbYjb5jvcTt0+JCoPJ9YKM9vP1/RR78mkT6fWCIM0N8hnZu4MzQPVKxiopxZ8XIrDbUjFWlJLzL83uiYv2g== + dependencies: + proxy-compare "2.5.0" + +"@zag-js/tabbable@0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@zag-js/tabbable/-/tabbable-0.1.1.tgz#5cfeb336c72e408b54a22e05471867ded7698e65" + integrity sha512-wvGE8pLZW1U1u15Gdk8NXLFmPhBePhBVcuG/eJ/bb3FpCh+oX2hJAANxlDCJrGN4ticGyTwJNYG1XOYaf6ZEGA== + +"@zag-js/text-selection@0.0.1": + version "0.0.1" + resolved "https://registry.yarnpkg.com/@zag-js/text-selection/-/text-selection-0.0.1.tgz#7eeeb32a23d4936d3a4f1c1f5d5bbc03cbf462cb" + integrity sha512-l8Im0FkMw63BPXocHRbtFgMIz3SkVpc4HI/S/wV0FqKgWMzOZzd/avHljCNfoXyhjhKauwR5xPivAwsOcye8CA== + +"@zag-js/types@0.3.4": + version "0.3.4" + resolved "https://registry.yarnpkg.com/@zag-js/types/-/types-0.3.4.tgz#9443590d80d4bad8861fcee1e0b1939611964c5c" + integrity sha512-KkZOMNqFZA0TaVF70O6WIRJPWTcDyRQjhXLDkLVfo99gwJdsC1bMZWfjrCiR8g1CfzvCyGNSWzdArIgzTJVEMA== + dependencies: + csstype "3.1.1" + +"@zag-js/utils@0.3.4": + version "0.3.4" + resolved "https://registry.yarnpkg.com/@zag-js/utils/-/utils-0.3.4.tgz#3efc22fbddf97a5190ba444c6a74e52f4c6bbcfe" + integrity sha512-Wz6OsvGsteCmu8uGot5H/xj0QpUzXlmAlDw+d2Lnqz1Y3uWcq36r6EPWfH15HXJXdEDuCameAmdOruZ0s/SVjA== + +"@zag-js/visually-hidden@0.0.1": + version "0.0.1" + resolved "https://registry.yarnpkg.com/@zag-js/visually-hidden/-/visually-hidden-0.0.1.tgz#7ac8c463ff16c7011e67036f2a007fd25d8024b8" + integrity sha512-wEhubtraCJOPFh3aPcidQWXF7a9O1TG1I48blpGt3XEI9brwpp7Gjjvus5uGkH00s+WziEudy1dv2B0HOTexNA== + abortcontroller-polyfill@^1.1.9: version "1.7.5" resolved "https://registry.yarnpkg.com/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.5.tgz#6738495f4e901fbb57b6c0611d0c75f76c485bed" @@ -7905,7 +8052,7 @@ csso@^4.2.0: dependencies: css-tree "^1.1.2" -csstype@^3.0.11, csstype@^3.0.2: +csstype@3.1.1, csstype@^3.0.11, csstype@^3.0.2: version "3.1.1" resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.1.tgz#841b532c45c758ee546a11d5bd7b7b473c8c30b9" integrity sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw== @@ -12633,7 +12780,7 @@ kleur@^3.0.3: resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== -klona@^2.0.4: +klona@2.0.6, klona@^2.0.4: version "2.0.6" resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.6.tgz#85bffbf819c03b2f53270412420a4555ef882e22" integrity sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA== @@ -15351,6 +15498,11 @@ proxy-addr@~2.0.7: forwarded "0.2.0" ipaddr.js "1.9.1" +proxy-compare@2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/proxy-compare/-/proxy-compare-2.5.0.tgz#0387c5e4d283ba9b1c0353bb20def4449b06bbd2" + integrity sha512-f1us0OsVAJ3tdIMXGQx2lmseYS4YXe4W+sKF5g5ww/jV+5ogMadPt+sIZ+88Ga9kvMJsrRNWzCrKPpr6pMWYbA== + proxy-from-env@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" From 724d61796bda4cf0d27a029e18cb8e5ad65a8dfa Mon Sep 17 00:00:00 2001 From: tylerapfledderer Date: Sun, 2 Apr 2023 16:47:27 -0400 Subject: [PATCH 011/186] chore(theme/Input): remove console log --- src/@chakra-ui/gatsby-plugin/components/Input.ts | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/@chakra-ui/gatsby-plugin/components/Input.ts b/src/@chakra-ui/gatsby-plugin/components/Input.ts index 0576a15d40c..816b5892325 100644 --- a/src/@chakra-ui/gatsby-plugin/components/Input.ts +++ b/src/@chakra-ui/gatsby-plugin/components/Input.ts @@ -75,10 +75,6 @@ const baseStyle = definePartsStyle((props) => { } ) }) -console.log( - "🚀 ~ file: Input.ts:78 ~ baseStyle ~ inputDefaultTheme.baseStyle,:", - inputDefaultTheme.baseStyle -) const size = { md: defineStyle({ From f0fb32e9ce4f87a1cfb5e9166692bd34d6c01cf8 Mon Sep 17 00:00:00 2001 From: tylerapfledderer Date: Sun, 2 Apr 2023 18:57:04 -0400 Subject: [PATCH 012/186] refactor(Input): restructure component returns --- src/components/Input/index.tsx | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/src/components/Input/index.tsx b/src/components/Input/index.tsx index b355f1ee8a8..562fc96713f 100644 --- a/src/components/Input/index.tsx +++ b/src/components/Input/index.tsx @@ -2,6 +2,7 @@ import * as React from "react" import { Input as ChakraInput, InputGroup, + InputGroupProps, InputLeftElement, InputProps as ChakraInputProps, InputRightElement, @@ -16,17 +17,24 @@ interface InputProps extends ChakraInputProps { * The Element or Icon used to render `InputRightElement` */ rightElement?: React.ReactNode + inputGroupProps?: InputGroupProps } -const Input = (props: InputProps) => { - const { leftElement, rightElement, size, ...rest } = props - return ( - - - {leftElement ? : null} - {rightElement ? : null} - - ) +function Input(props: InputProps) { + if ("leftElement" in props || "rightElement" in props) { + const { size, inputGroupProps, leftElement, rightElement, ...rest } = props + return ( + + + {leftElement ? : null} + {rightElement ? : null} + + ) + } + + const { size, ...rest } = props + + return } export default Input From 0c954de2a44200b13f3526b66df30f33eb4fbc41 Mon Sep 17 00:00:00 2001 From: tylerapfledderer Date: Sun, 2 Apr 2023 19:06:37 -0400 Subject: [PATCH 013/186] refactor: update Input component implementations --- src/components/MeetupList.tsx | 8 +----- .../Staking/WithdrawalCredentials.tsx | 5 ++-- src/pages/languages.tsx | 27 ++++++++++--------- 3 files changed, 18 insertions(+), 22 deletions(-) diff --git a/src/components/MeetupList.tsx b/src/components/MeetupList.tsx index f7e201ea4ba..0eacb2e7623 100644 --- a/src/components/MeetupList.tsx +++ b/src/components/MeetupList.tsx @@ -4,7 +4,6 @@ import { sortBy } from "lodash" import { Box, Flex, - Input, LinkBox, LinkOverlay, Text, @@ -19,6 +18,7 @@ import Translation from "./Translation" // Data import meetups from "../data/community-meetups.json" +import Input from "./Input" export interface Meetup { title: string @@ -64,13 +64,7 @@ const MeetupList: React.FC = () => { mr="auto" ml="auto" mb={6} - border="1px solid" - borderColor="searchBorder" - color="text" - bg="searchBackground" p={2} - borderRadius="base" - w="100%" _focus={{ outline: "auto 1px" }} _placeholder={{ color: "text200" }} /> diff --git a/src/components/Staking/WithdrawalCredentials.tsx b/src/components/Staking/WithdrawalCredentials.tsx index cd0608bc938..e9323f3e78c 100644 --- a/src/components/Staking/WithdrawalCredentials.tsx +++ b/src/components/Staking/WithdrawalCredentials.tsx @@ -1,6 +1,6 @@ // Import libraries import React, { FC, useState, useMemo, ChangeEvent } from "react" -import { Button, Flex, Input, Text } from "@chakra-ui/react" +import { Button, Flex, Text } from "@chakra-ui/react" import { useTranslation } from "gatsby-plugin-react-i18next" // Components import CopyToClipboard from "../CopyToClipboard" @@ -8,6 +8,7 @@ import Emoji from "../Emoji" import Translation from "../Translation" // Utilites import { trackCustomEvent } from "../../utils/matomo" +import Input from "../Input" interface Validator { validatorIndex: number @@ -139,13 +140,11 @@ const WithdrawalCredentials: FC = () => { { :
- setKeyword(e.target.value)} + rightElement={ + keyword !== "" && ( + } + onClick={resetKeyword} + position="absolute" + insetInlineEnd={1} + aria-label={t("clear")} + variant="icon" + _hover={{ svg: { fill: "primary" } }} + /> + ) + } /> - {keyword !== "" && ( - } - onClick={resetKeyword} - position="absolute" - insetInlineEnd={1} - aria-label={t("clear")} - variant="icon" - _hover={{ svg: { fill: "primary" } }} - /> - )} {translationsCompleted.map((lang) => ( From 4328aa8e98c83f18dfb06218ffe7bf69bc4d9c14 Mon Sep 17 00:00:00 2001 From: tylerapfledderer Date: Sun, 2 Apr 2023 19:10:35 -0400 Subject: [PATCH 014/186] refactor: update Checkbox component implementation --- src/components/MatomoOptOut.tsx | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/components/MatomoOptOut.tsx b/src/components/MatomoOptOut.tsx index 585867833d7..7130a263c99 100644 --- a/src/components/MatomoOptOut.tsx +++ b/src/components/MatomoOptOut.tsx @@ -1,6 +1,7 @@ import React, { useState, useEffect } from "react" import { MATOMO_LS_KEY } from "../utils/matomo" -import { Checkbox, Flex, Text } from "@chakra-ui/react" +import { Flex, Text } from "@chakra-ui/react" +import Checkbox from "./Checkbox" export interface IProps {} @@ -53,12 +54,10 @@ const MatomoOptOut: React.FC = () => { "Loading preferences..." ) : ( {isOptedOut ? "You are opted out. Check this box to opt-in." From 007092e332cdfc1220dba555afc1c6c88e140c96 Mon Sep 17 00:00:00 2001 From: tylerapfledderer Date: Sun, 2 Apr 2023 19:16:39 -0400 Subject: [PATCH 015/186] style(theme/Switch): remove track border --- src/@chakra-ui/gatsby-plugin/components/Switch.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/@chakra-ui/gatsby-plugin/components/Switch.ts b/src/@chakra-ui/gatsby-plugin/components/Switch.ts index 7b73d6b9622..f8560ff2538 100644 --- a/src/@chakra-ui/gatsby-plugin/components/Switch.ts +++ b/src/@chakra-ui/gatsby-plugin/components/Switch.ts @@ -19,8 +19,7 @@ const { commonControlProps, commonContainerProps, commonLabelProps } = const baseStyleContainer = defineMergeStyles( defaultBaseStyle?.({} as never).container, switchSmSize?.container, - commonContainerProps, - {} + commonContainerProps ) const baseStyleThumb = defineMergeStyles( @@ -33,6 +32,7 @@ const baseStyleTrack = defineMergeStyles( commonControlProps, { bg: "bodyLight", + border: "none", _invalid: { borderColor: "errorOutline" }, _focusVisible: { bg: "gray.500", borderColor: "transparent" }, } From d9d6154fdc464fa1ee2e4f73db9c5d113eb38a98 Mon Sep 17 00:00:00 2001 From: tylerapfledderer Date: Sun, 2 Apr 2023 19:16:58 -0400 Subject: [PATCH 016/186] refactor: update Switch component implimentation --- src/components/TableOfContents/index.tsx | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/src/components/TableOfContents/index.tsx b/src/components/TableOfContents/index.tsx index db74dae4162..4d267c4e564 100644 --- a/src/components/TableOfContents/index.tsx +++ b/src/components/TableOfContents/index.tsx @@ -118,24 +118,6 @@ const TableOfContents: React.FC = ({ handleZenModeChange()} /> From 907fc9662d98b828fad1f487ef8a52765aebfef8 Mon Sep 17 00:00:00 2001 From: tylerapfledderer Date: Wed, 12 Apr 2023 23:12:56 -0400 Subject: [PATCH 017/186] revert(theme): remove Dropdown component and theme --- .../gatsby-plugin/components/Dropdown.ts | 118 ------------------ .../gatsby-plugin/components/index.ts | 2 - src/components/Dropdown/Dropdown.stories.tsx | 24 ---- src/components/Dropdown/index.tsx | 69 ---------- 4 files changed, 213 deletions(-) delete mode 100644 src/@chakra-ui/gatsby-plugin/components/Dropdown.ts delete mode 100644 src/components/Dropdown/Dropdown.stories.tsx delete mode 100644 src/components/Dropdown/index.tsx diff --git a/src/@chakra-ui/gatsby-plugin/components/Dropdown.ts b/src/@chakra-ui/gatsby-plugin/components/Dropdown.ts deleted file mode 100644 index 841818bdc59..00000000000 --- a/src/@chakra-ui/gatsby-plugin/components/Dropdown.ts +++ /dev/null @@ -1,118 +0,0 @@ -import { - createMultiStyleConfigHelpers, - cssVar, - defineStyle, -} from "@chakra-ui/react" - -const { defineMultiStyleConfig, definePartsStyle } = - createMultiStyleConfigHelpers(["trigger", "triggerIcon", "content", "option"]) - -const $borderBaseWidth = cssVar("border-base-width") - -const baseStyleTrigger = defineStyle({ - [$borderBaseWidth.variable]: "1px", - borderColor: "currentColor", - borderStyle: "solid", - display: "inline-flex", - alignItems: "center", - justifyContent: "space-between", - gap: 4, - p: 2, - width: "full", - _active: { - bg: "primaryLowContrast", - boxShadow: "none", - }, - _hover: { - boxShadow: "buttonHover", - color: "primary", - }, - _focusVisible: { - outline: "3px solid", - outlineColor: "primaryHover", - }, - _expanded: { - bg: "backgroundHighlight", - color: "primary", - boxShadow: "buttonHover", - outline: "none", - }, -}) - -const baseStyleTriggerIcon = defineStyle({ - "[data-expanded] > &": { - transform: "rotate(180deg)", - }, -}) - -const baseStyleContent = defineStyle({ - listStyle: "none", - bg: "backgroundHighlight", - width: "var(--reference-width)", - boxShadow: "buttonHover", - borderRadius: "base", - borderTopRadius: "none", - color: "primary", - m: 0, -}) - -const baseStyleOption = defineStyle({ - p: 2, - m: 0, - cursor: "pointer", - "&[aria-selected='true'], &:hover": { - bg: "primaryHover", - color: "primaryLowContrast", - }, - "&[data-focus]": { - outline: "3px solid", - outlineColor: "primaryHover", - outlineOffset: -3, - }, -}) - -const baseStyle = definePartsStyle({ - trigger: baseStyleTrigger, - triggerIcon: baseStyleTriggerIcon, - content: baseStyleContent, - option: baseStyleOption, -}) - -const variantOutline = definePartsStyle({ - trigger: { - borderRadius: "base", - borderWidth: $borderBaseWidth.reference, - _expanded: { - borderBottomColor: "transparent", - borderBottomRadius: 0, - }, - }, - content: { - border: "1px", - borderColor: "currentColor", - borderTop: "0", - }, -}) -const variantFlushed = definePartsStyle({ - trigger: { - borderTopRadius: "base", - borderBottomWidth: $borderBaseWidth.reference, - }, - content: { - borderTop: "1px", - borderColor: "currentColor", - }, -}) - -const variants = { - outline: variantOutline, - flushed: variantFlushed, -} - -export const Dropdown = defineMultiStyleConfig({ - baseStyle, - variants, - defaultProps: { - variant: "outline", - }, -}) diff --git a/src/@chakra-ui/gatsby-plugin/components/index.ts b/src/@chakra-ui/gatsby-plugin/components/index.ts index c7c23f9cf17..3948ea89d03 100644 --- a/src/@chakra-ui/gatsby-plugin/components/index.ts +++ b/src/@chakra-ui/gatsby-plugin/components/index.ts @@ -8,7 +8,6 @@ import { Tabs } from "./Tabs" import { Radio } from "./Radio" import { Switch } from "./Switch" import { Input } from "./Input" -import { Dropdown } from "./Dropdown" import { accordionDefaultTheme, avatarDefaultTheme, @@ -37,7 +36,6 @@ export default { Code: codeDefaultTheme, Divider: dividerDefaultTheme, Drawer: drawerDefaultTheme, - Dropdown, Form: formDefaultTheme, FormLabel: formLabelDefaultTheme, Heading: headingDefaultTheme, diff --git a/src/components/Dropdown/Dropdown.stories.tsx b/src/components/Dropdown/Dropdown.stories.tsx deleted file mode 100644 index d90f0fbc591..00000000000 --- a/src/components/Dropdown/Dropdown.stories.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import * as React from "react" -import { VStack } from "@chakra-ui/react" -import { Meta, StoryObj } from "@storybook/react" -import DropdownComponent from "." - -type DropdownType = typeof DropdownComponent - -const meta: Meta = { - title: "Atoms / Form / Dropdown", - component: DropdownComponent, -} - -export default meta - -type Story = StoryObj - -export const Dropdown: Story = { - render: () => ( - - - - - ), -} diff --git a/src/components/Dropdown/index.tsx b/src/components/Dropdown/index.tsx deleted file mode 100644 index ad278ac2bf3..00000000000 --- a/src/components/Dropdown/index.tsx +++ /dev/null @@ -1,69 +0,0 @@ -import * as React from "react" -import { useMachine, normalizeProps } from "@zag-js/react" -import { machine, connect } from "@zag-js/select" -import { - chakra, - Portal, - SystemStyleObject, - useMultiStyleConfig, - ThemingProps, -} from "@chakra-ui/react" -import { FaChevronDown } from "react-icons/fa" - -const selectData = [ - { label: "Ethereum", value: "eth" }, - { label: "Bitcoin", value: "bit" }, - { label: "Dogecoin", value: "doge" }, -] - -interface DropdownProps extends ThemingProps<"Dropdown"> {} - -const Dropdown = (props: DropdownProps) => { - const { variant } = props - - const [state, send] = useMachine( - machine({ - id: React.useId(), - positioning: { - gutter: -1, - }, - }) - ) - - const api = connect(state, send, normalizeProps) - - const styles = useMultiStyleConfig("Dropdown", { variant }) as Record< - "trigger" | "triggerIcon" | "content" | "option", - SystemStyleObject - > - - const triggerRef = React.useRef(null) - - return ( - <> - - {api.selectedOption?.label ?? "Select Crypto"} - - - - - -
- - {selectData.map(({ label, value }) => ( - - {label} - - ))} - -
-
- - ) -} - -export default Dropdown From 6c56945d07eb8994d915d16e88934a5142a57edb Mon Sep 17 00:00:00 2001 From: tylerapfledderer Date: Wed, 12 Apr 2023 23:13:19 -0400 Subject: [PATCH 018/186] feat(theme/Select): add custom styling and story --- .../gatsby-plugin/components/Select.ts | 66 +++++++++++++++++++ .../gatsby-plugin/components/index.ts | 4 +- src/components/BaseStories/Select.stories.tsx | 44 +++++++++++++ 3 files changed, 112 insertions(+), 2 deletions(-) create mode 100644 src/@chakra-ui/gatsby-plugin/components/Select.ts create mode 100644 src/components/BaseStories/Select.stories.tsx diff --git a/src/@chakra-ui/gatsby-plugin/components/Select.ts b/src/@chakra-ui/gatsby-plugin/components/Select.ts new file mode 100644 index 00000000000..81204d3614d --- /dev/null +++ b/src/@chakra-ui/gatsby-plugin/components/Select.ts @@ -0,0 +1,66 @@ +import { selectAnatomy } from "@chakra-ui/anatomy" +import { + createMultiStyleConfigHelpers, + cssVar, + defineStyle, +} from "@chakra-ui/react" +import { defineMergeStyles, selectDefaultTheme } from "./components.utils" + +const { defineMultiStyleConfig, definePartsStyle } = + createMultiStyleConfigHelpers(selectAnatomy.keys) + +const $borderBaseWidth = cssVar("border-base-width") + +const baseStyleField = defineMergeStyles(selectDefaultTheme.baseStyle?.field, { + [$borderBaseWidth.variable]: "1px", + borderColor: "currentColor", + cursor: "pointer", + py: 2, + ps: 2, + pe: 8, + _active: { + bg: "primaryLowContrast", + boxShadow: "none", + }, + _hover: { + boxShadow: "buttonHover", + color: "primary", + }, + _focusVisible: { + outline: "3px solid", + outlineColor: "primaryHover", + outlineOffset: "-1px", + }, +}) + +const baseStyle = definePartsStyle({ + field: baseStyleField, + icon: selectDefaultTheme.baseStyle?.icon, +}) + +const variantOutline = definePartsStyle({ + field: { + borderRadius: "base", + borderWidth: $borderBaseWidth.reference, + }, +}) + +const variantFlushed = definePartsStyle({ + field: { + borderTopRadius: "base", + borderBottomWidth: $borderBaseWidth.reference, + }, +}) + +const variants = { + outline: variantOutline, + flushed: variantFlushed, +} + +export const Select = defineMultiStyleConfig({ + baseStyle, + variants, + defaultProps: { + variant: "outline", + }, +}) diff --git a/src/@chakra-ui/gatsby-plugin/components/index.ts b/src/@chakra-ui/gatsby-plugin/components/index.ts index 3948ea89d03..ce67e91cde2 100644 --- a/src/@chakra-ui/gatsby-plugin/components/index.ts +++ b/src/@chakra-ui/gatsby-plugin/components/index.ts @@ -6,6 +6,7 @@ import { Modal } from "./Modal" import { Checkbox } from "./Checkbox" import { Tabs } from "./Tabs" import { Radio } from "./Radio" +import { Select } from "./Select" import { Switch } from "./Switch" import { Input } from "./Input" import { @@ -20,7 +21,6 @@ import { formLabelDefaultTheme, headingDefaultTheme, menuDefaultTheme, - selectDefaultTheme, spinnerDefaultTheme, tableDefaultTheme, } from "./components.utils" @@ -44,7 +44,7 @@ export default { Menu: menuDefaultTheme, Modal, Radio, - Select: selectDefaultTheme, + Select, Spinner: spinnerDefaultTheme, Switch, Table: tableDefaultTheme, diff --git a/src/components/BaseStories/Select.stories.tsx b/src/components/BaseStories/Select.stories.tsx new file mode 100644 index 00000000000..10c48132a51 --- /dev/null +++ b/src/components/BaseStories/Select.stories.tsx @@ -0,0 +1,44 @@ +import * as React from "react" +import { Select as SelectComponent, VStack } from "@chakra-ui/react" +import { Meta, StoryObj } from "@storybook/react" + +const selectData = [ + { label: "Ethereum", value: "eth" }, + { label: "Bitcoin", value: "bit" }, + { label: "Dogecoin", value: "doge" }, +] + +type SelectType = typeof SelectComponent + +const meta: Meta = { + title: "Atoms / Form / Select", + component: SelectComponent, +} + +export default meta + +type Story = StoryObj + +export const Select: Story = { + args: { + minW: "223px", + }, + render: (args) => ( + + + {selectData.map(({ label, value }) => ( + + ))} + + + {selectData.map(({ label, value }) => ( + + ))} + + + ), +} From 2dbc09e7329a0278a0f1b51fcbc30cb560c4dd71 Mon Sep 17 00:00:00 2001 From: tylerapfledderer Date: Wed, 12 Apr 2023 23:36:10 -0400 Subject: [PATCH 019/186] revert(deps): remove zag deps --- package.json | 2 - yarn.lock | 156 +-------------------------------------------------- 2 files changed, 2 insertions(+), 156 deletions(-) diff --git a/package.json b/package.json index bed89b0c1f8..eb0b65bc67e 100644 --- a/package.json +++ b/package.json @@ -18,8 +18,6 @@ "@formatjs/intl-numberformat": "^6.1.4", "@mdx-js/mdx": "^1.6.5", "@mdx-js/react": "^1.6.5", - "@zag-js/react": "^0.3.12", - "@zag-js/select": "^0.2.1", "algoliasearch": "^4.3.0", "axios": "^0.21.2", "browser-lang": "^0.1.0", diff --git a/yarn.lock b/yarn.lock index 3ae07ad64e7..1730121b732 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2408,18 +2408,6 @@ resolved "https://registry.yarnpkg.com/@fal-works/esbuild-plugin-global-externals/-/esbuild-plugin-global-externals-2.1.2.tgz#c05ed35ad82df8e6ac616c68b92c2282bd083ba4" integrity sha512-cEee/Z+I12mZcFJshKcCqC8tuX5hG3s+d+9nZ3LabqKF1vKdF41B92pJVCBggjAGORAeOzyyDDKrZwIkLffeOQ== -"@floating-ui/core@^1.2.4": - version "1.2.5" - resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.2.5.tgz#612f0d203e6f647490d572c7b798eebac9e3cf54" - integrity sha512-qrcbyfnRVziRlB6IYwjCopYhO7Vud750JlJyuljruIXcPxr22y8zdckcJGsuOdnQ639uVD1tTXddrcH3t3QYIQ== - -"@floating-ui/dom@1.2.5": - version "1.2.5" - resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.2.5.tgz#c9ec259a24ce0958b1ea29674df4eee4455361a9" - integrity sha512-+sAUfpQ3Frz+VCbPCqj+cZzvEESy3fjSeT/pDWkYCWOBXYNNKZfuVsHuv8/JO2zze8+Eb/Q7a6hZVgzS81fLbQ== - dependencies: - "@floating-ui/core" "^1.2.4" - "@formatjs/ecma402-abstract@1.11.4": version "1.11.4" resolved "https://registry.yarnpkg.com/@formatjs/ecma402-abstract/-/ecma402-abstract-1.11.4.tgz#b962dfc4ae84361f9f08fbce411b4e4340930eda" @@ -5529,47 +5517,6 @@ dependencies: tslib "^2.4.0" -"@zag-js/anatomy@0.1.4": - version "0.1.4" - resolved "https://registry.yarnpkg.com/@zag-js/anatomy/-/anatomy-0.1.4.tgz#61c5434eaa4e2a8fd2e09ac6fc22b83a74e46052" - integrity sha512-Xc5QmQwY0W3VdkukYVaoujuCmgf0Y2ZbXhIBi0CJ0d8wWRwjkphhJu8l9kDyX4ElpyzvExYbrpTuQoI4BspaVQ== - -"@zag-js/core@0.2.12": - version "0.2.12" - resolved "https://registry.yarnpkg.com/@zag-js/core/-/core-0.2.12.tgz#22f4217bc583f12bc3e071c54ad43b7f42eea74a" - integrity sha512-XAcB9BorwetDljwLQeFHrTeBpw7jQUSKNj1zfy+TU/ZmQ9JVaKSDLO0JdKAy05lJIT7jKpjOkGB3g5tt+mT79w== - dependencies: - "@zag-js/store" "0.2.8" - klona "2.0.6" - -"@zag-js/dismissable@0.2.6": - version "0.2.6" - resolved "https://registry.yarnpkg.com/@zag-js/dismissable/-/dismissable-0.2.6.tgz#eedac5fbd1511a356396053807000281044d35cd" - integrity sha512-ra72EJySeKRuVaUj/m/OiMFq32dAkVY8dD387EhhSZejN0GLUQlKfZG4/3Mq6j4mm71N1Nig0epGZ6o1LSxDIA== - dependencies: - "@zag-js/dom-event" "0.0.1" - "@zag-js/dom-query" "0.1.4" - "@zag-js/interact-outside" "0.2.6" - "@zag-js/utils" "0.3.4" - -"@zag-js/dom-event@0.0.1": - version "0.0.1" - resolved "https://registry.yarnpkg.com/@zag-js/dom-event/-/dom-event-0.0.1.tgz#a6864a582a3e318349577e2ab2aca5d0aef495cb" - integrity sha512-oRDWn/31JUwTc9nIUG/Ingug6FNBkhXUnd2dh3vEcqfk+NVHPZ9Lgx5tauiEDyiRKeWr9PS5GJpBQVNc2YDo3Q== - dependencies: - "@zag-js/text-selection" "0.0.1" - "@zag-js/types" "0.3.4" - -"@zag-js/dom-query@0.1.4": - version "0.1.4" - resolved "https://registry.yarnpkg.com/@zag-js/dom-query/-/dom-query-0.1.4.tgz#942602800d81f2d38264ce1e879831329e51a6a1" - integrity sha512-s2q18k3z3ABAkySc6xK1NLPVIdgZGTLSZxok7yzpCYoywEeCnFvP6K63Q4ONElk74XgO7Eq8KMzIj702LDS+Mg== - -"@zag-js/element-rect@0.3.0": - version "0.3.0" - resolved "https://registry.yarnpkg.com/@zag-js/element-rect/-/element-rect-0.3.0.tgz#af8c6680bb34b6f6dba06b1ac7919b01d09f5d95" - integrity sha512-P3bdcfE5Bk3Bm7qhs8lPDykgWNYJeMgyqa+3Z93QPCH9cXsg76O0OrhkK3kWruHzT/f+sVXDDZ1yEUxxgLCRFg== - "@zag-js/element-size@0.3.2": version "0.3.2" resolved "https://registry.yarnpkg.com/@zag-js/element-size/-/element-size-0.3.2.tgz#ebb76af2a024230482406db41344598d1a9f54f4" @@ -5580,100 +5527,6 @@ resolved "https://registry.yarnpkg.com/@zag-js/focus-visible/-/focus-visible-0.2.2.tgz#56233480ca1275d3218fb2e10696a33d1a6b9e64" integrity sha512-0j2gZq8HiZ51z4zNnSkF1iSkqlwRDvdH+son3wHdoz+7IUdMN/5Exd4TxMJ+gq2Of1DiXReYLL9qqh2PdQ4wgA== -"@zag-js/form-utils@0.2.5": - version "0.2.5" - resolved "https://registry.yarnpkg.com/@zag-js/form-utils/-/form-utils-0.2.5.tgz#0f8e6cfa36560735a1f7e9d2dca651db8be43310" - integrity sha512-aqdj+M4lvczDITrfkZqQxGkfHbFn084ONRkDylaPNx8xQKoRbsy+crDga10QDOUkgSMtVOB8XZ+VyJHQAzRErQ== - dependencies: - "@zag-js/mutation-observer" "0.0.1" - -"@zag-js/interact-outside@0.2.6": - version "0.2.6" - resolved "https://registry.yarnpkg.com/@zag-js/interact-outside/-/interact-outside-0.2.6.tgz#9c6add221e15760e3c607bf3ab1e2b14b7ba77b5" - integrity sha512-4Q3ij2aDYwcGkJmlyxIq+lq3J9gF2hjMJGAIYFC6AOfN/SCivkPFlq3zabCZUSZrzPYwggMVL6GdUI+bTAE4Iw== - dependencies: - "@zag-js/dom-event" "0.0.1" - "@zag-js/dom-query" "0.1.4" - "@zag-js/tabbable" "0.1.1" - "@zag-js/utils" "0.3.4" - -"@zag-js/mutation-observer@0.0.1": - version "0.0.1" - resolved "https://registry.yarnpkg.com/@zag-js/mutation-observer/-/mutation-observer-0.0.1.tgz#55fb919b9c2cf07fb9255caea5ae698b82d8df18" - integrity sha512-HasPzt6LyVWsu1jwx3lFNKuV3nlaJQ918rU1wUnhqMD8ZVSKvNBxCoz0NswiKZWTR/6eNwFwvHrewJiWKXivrw== - -"@zag-js/popper@0.2.7": - version "0.2.7" - resolved "https://registry.yarnpkg.com/@zag-js/popper/-/popper-0.2.7.tgz#0e9d741edb3c10e140fbe9ef252f78f2ccda5580" - integrity sha512-ruWgwZXYt+hEhMamjuQ1J/UdQsRazB0t4eajatgb9ei9YPtFDxEmXf3UegeWkhMTMfZdTTZEozmtrzcflzAmKQ== - dependencies: - "@floating-ui/dom" "1.2.5" - "@zag-js/dom-query" "0.1.4" - "@zag-js/element-rect" "0.3.0" - "@zag-js/utils" "0.3.4" - -"@zag-js/react@^0.3.12": - version "0.3.12" - resolved "https://registry.yarnpkg.com/@zag-js/react/-/react-0.3.12.tgz#641cdee856ad27ca7291de722ac6121c0783d78c" - integrity sha512-IkGcZMCoU1ahJMlZ5Y0r1rrftmw9DUFW213qifveYr7Y1FX0vKfeMq5rbhI5+hrwcnJfgUSsFs3lQ8fwxVT+RA== - dependencies: - "@zag-js/core" "0.2.12" - "@zag-js/store" "0.2.8" - "@zag-js/types" "0.3.4" - proxy-compare "2.5.0" - -"@zag-js/select@^0.2.1": - version "0.2.1" - resolved "https://registry.yarnpkg.com/@zag-js/select/-/select-0.2.1.tgz#b88ca85fc7847aa9df9c50ce173fc9a2462096ae" - integrity sha512-JmxCbkFdyfScrywJnuVm6XFHMEfXuP7Pcn2mI3UpUu7lYEkckDw+K3KHHbB6cNEmeHNiAFGAK5jul27/XxUetg== - dependencies: - "@zag-js/anatomy" "0.1.4" - "@zag-js/core" "0.2.12" - "@zag-js/dismissable" "0.2.6" - "@zag-js/dom-event" "0.0.1" - "@zag-js/dom-query" "0.1.4" - "@zag-js/form-utils" "0.2.5" - "@zag-js/mutation-observer" "0.0.1" - "@zag-js/popper" "0.2.7" - "@zag-js/tabbable" "0.1.1" - "@zag-js/types" "0.3.4" - "@zag-js/utils" "0.3.4" - "@zag-js/visually-hidden" "0.0.1" - -"@zag-js/store@0.2.8": - version "0.2.8" - resolved "https://registry.yarnpkg.com/@zag-js/store/-/store-0.2.8.tgz#b7b477c56e688043ed3f1c7a8ebb12cb6e994639" - integrity sha512-QgBnbYjb5jvcTt0+JCoPJ9YKM9vP1/RR78mkT6fWCIM0N8hnZu4MzQPVKxiopxZ8XIrDbUjFWlJLzL83uiYv2g== - dependencies: - proxy-compare "2.5.0" - -"@zag-js/tabbable@0.1.1": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@zag-js/tabbable/-/tabbable-0.1.1.tgz#5cfeb336c72e408b54a22e05471867ded7698e65" - integrity sha512-wvGE8pLZW1U1u15Gdk8NXLFmPhBePhBVcuG/eJ/bb3FpCh+oX2hJAANxlDCJrGN4ticGyTwJNYG1XOYaf6ZEGA== - -"@zag-js/text-selection@0.0.1": - version "0.0.1" - resolved "https://registry.yarnpkg.com/@zag-js/text-selection/-/text-selection-0.0.1.tgz#7eeeb32a23d4936d3a4f1c1f5d5bbc03cbf462cb" - integrity sha512-l8Im0FkMw63BPXocHRbtFgMIz3SkVpc4HI/S/wV0FqKgWMzOZzd/avHljCNfoXyhjhKauwR5xPivAwsOcye8CA== - -"@zag-js/types@0.3.4": - version "0.3.4" - resolved "https://registry.yarnpkg.com/@zag-js/types/-/types-0.3.4.tgz#9443590d80d4bad8861fcee1e0b1939611964c5c" - integrity sha512-KkZOMNqFZA0TaVF70O6WIRJPWTcDyRQjhXLDkLVfo99gwJdsC1bMZWfjrCiR8g1CfzvCyGNSWzdArIgzTJVEMA== - dependencies: - csstype "3.1.1" - -"@zag-js/utils@0.3.4": - version "0.3.4" - resolved "https://registry.yarnpkg.com/@zag-js/utils/-/utils-0.3.4.tgz#3efc22fbddf97a5190ba444c6a74e52f4c6bbcfe" - integrity sha512-Wz6OsvGsteCmu8uGot5H/xj0QpUzXlmAlDw+d2Lnqz1Y3uWcq36r6EPWfH15HXJXdEDuCameAmdOruZ0s/SVjA== - -"@zag-js/visually-hidden@0.0.1": - version "0.0.1" - resolved "https://registry.yarnpkg.com/@zag-js/visually-hidden/-/visually-hidden-0.0.1.tgz#7ac8c463ff16c7011e67036f2a007fd25d8024b8" - integrity sha512-wEhubtraCJOPFh3aPcidQWXF7a9O1TG1I48blpGt3XEI9brwpp7Gjjvus5uGkH00s+WziEudy1dv2B0HOTexNA== - abortcontroller-polyfill@^1.1.9: version "1.7.5" resolved "https://registry.yarnpkg.com/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.5.tgz#6738495f4e901fbb57b6c0611d0c75f76c485bed" @@ -8052,7 +7905,7 @@ csso@^4.2.0: dependencies: css-tree "^1.1.2" -csstype@3.1.1, csstype@^3.0.11, csstype@^3.0.2: +csstype@^3.0.11, csstype@^3.0.2: version "3.1.1" resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.1.tgz#841b532c45c758ee546a11d5bd7b7b473c8c30b9" integrity sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw== @@ -12780,7 +12633,7 @@ kleur@^3.0.3: resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== -klona@2.0.6, klona@^2.0.4: +klona@^2.0.4: version "2.0.6" resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.6.tgz#85bffbf819c03b2f53270412420a4555ef882e22" integrity sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA== @@ -15498,11 +15351,6 @@ proxy-addr@~2.0.7: forwarded "0.2.0" ipaddr.js "1.9.1" -proxy-compare@2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/proxy-compare/-/proxy-compare-2.5.0.tgz#0387c5e4d283ba9b1c0353bb20def4449b06bbd2" - integrity sha512-f1us0OsVAJ3tdIMXGQx2lmseYS4YXe4W+sKF5g5ww/jV+5ogMadPt+sIZ+88Ga9kvMJsrRNWzCrKPpr6pMWYbA== - proxy-from-env@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" From d28849a5920911f18f324e7dcd5b1bc34a870eda Mon Sep 17 00:00:00 2001 From: tylerapfledderer Date: Thu, 13 Apr 2023 14:35:51 -0400 Subject: [PATCH 020/186] chore(theme/component.utils): remove unused variable --- src/@chakra-ui/gatsby-plugin/components/components.utils.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/@chakra-ui/gatsby-plugin/components/components.utils.ts b/src/@chakra-ui/gatsby-plugin/components/components.utils.ts index 16321fc9c14..39c3e101e9a 100644 --- a/src/@chakra-ui/gatsby-plugin/components/components.utils.ts +++ b/src/@chakra-ui/gatsby-plugin/components/components.utils.ts @@ -78,7 +78,6 @@ export function defineMergeStyles( export const _notDisabled = "&:not([data-disabled], [disabled])" -const INPUT_TRIGGER_DISABLE_COLOR = "--input-trigger-disable-color" const $inputTriggerDisableColor = cssVar("input-trigger-disable-color") export const commonInputTriggerStyles = { From 2ffc5c65b44b36e17faf0eaf4d8157137bcb68cd Mon Sep 17 00:00:00 2001 From: tylerapfledderer Date: Thu, 20 Apr 2023 21:13:12 -0400 Subject: [PATCH 021/186] style(theme/Select): define hover color for icon --- src/@chakra-ui/gatsby-plugin/components/Select.ts | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/@chakra-ui/gatsby-plugin/components/Select.ts b/src/@chakra-ui/gatsby-plugin/components/Select.ts index 81204d3614d..6d960a657f0 100644 --- a/src/@chakra-ui/gatsby-plugin/components/Select.ts +++ b/src/@chakra-ui/gatsby-plugin/components/Select.ts @@ -1,9 +1,5 @@ import { selectAnatomy } from "@chakra-ui/anatomy" -import { - createMultiStyleConfigHelpers, - cssVar, - defineStyle, -} from "@chakra-ui/react" +import { createMultiStyleConfigHelpers, cssVar } from "@chakra-ui/react" import { defineMergeStyles, selectDefaultTheme } from "./components.utils" const { defineMultiStyleConfig, definePartsStyle } = @@ -33,9 +29,15 @@ const baseStyleField = defineMergeStyles(selectDefaultTheme.baseStyle?.field, { }, }) +const baseStyleIcon = defineMergeStyles(selectDefaultTheme.baseStyle?.icon, { + _peerHover: { + color: "primary", + }, +}) + const baseStyle = definePartsStyle({ field: baseStyleField, - icon: selectDefaultTheme.baseStyle?.icon, + icon: baseStyleIcon, }) const variantOutline = definePartsStyle({ From 6051e08f6c9cb2b890f661d731880d1fa013e829 Mon Sep 17 00:00:00 2001 From: tylerapfledderer Date: Thu, 20 Apr 2023 21:37:28 -0400 Subject: [PATCH 022/186] feat(components/Select): build custom select component --- .../Select.stories.tsx | 23 ++---- src/components/Select/index.tsx | 81 +++++++++++++++++++ 2 files changed, 89 insertions(+), 15 deletions(-) rename src/components/{BaseStories => Select}/Select.stories.tsx (52%) create mode 100644 src/components/Select/index.tsx diff --git a/src/components/BaseStories/Select.stories.tsx b/src/components/Select/Select.stories.tsx similarity index 52% rename from src/components/BaseStories/Select.stories.tsx rename to src/components/Select/Select.stories.tsx index 10c48132a51..e749b95b8db 100644 --- a/src/components/BaseStories/Select.stories.tsx +++ b/src/components/Select/Select.stories.tsx @@ -1,6 +1,7 @@ import * as React from "react" -import { Select as SelectComponent, VStack } from "@chakra-ui/react" +import { VStack } from "@chakra-ui/react" import { Meta, StoryObj } from "@storybook/react" +import SelectComponent from "./" const selectData = [ { label: "Ethereum", value: "eth" }, @@ -22,23 +23,15 @@ type Story = StoryObj export const Select: Story = { args: { minW: "223px", + options: selectData, + onChange(selectedOption) { + console.log(selectedOption) + }, }, render: (args) => ( - - {selectData.map(({ label, value }) => ( - - ))} - - - {selectData.map(({ label, value }) => ( - - ))} - + + ), } diff --git a/src/components/Select/index.tsx b/src/components/Select/index.tsx new file mode 100644 index 00000000000..fc9b7306c7b --- /dev/null +++ b/src/components/Select/index.tsx @@ -0,0 +1,81 @@ +import * as React from "react" +import { + Select as ChakraSelect, + SelectProps as ChakraSelectProps, + ThemingProps, +} from "@chakra-ui/react" + +interface SelectProps + extends Omit, + Pick, "variant"> { + defaultValue?: { label: string; value: string; [x: string]: any } + onChange(selectedOption: any | ""): void + placeholder?: string + options: Record[] +} + +const Select = (props: SelectProps) => { + const { options, defaultValue, placeholder, onChange, ...rest } = props + + const [selectedOption, setSelectedOption] = React.useState( + defaultValue?.value + ) + + const flatObject = options + .map((option) => { + if (Object.hasOwn(option, "options")) { + return option.options + } + + return option + }) + .flat() + + const handleOnChange: React.ChangeEventHandler = (e) => { + const selectedValue = e.target.value + const isPlaceholder = selectedValue === "" + + setSelectedOption(selectedValue) + + const selectedOptionData = flatObject.find( + (option) => option.value === selectedValue + ) + + if (!selectedOptionData && !isPlaceholder) return + + onChange(selectedOptionData ?? "") + } + + return ( + + {options.map((option, idx) => { + return Object.hasOwn(option, "options") ? ( + + {option.options.map(({ label, value }) => ( + + ))} + + ) : ( + + ) + })} + + ) +} + +export default Select From e7688d3fa422a585a3059fa08333386850f27175 Mon Sep 17 00:00:00 2001 From: tylerapfledderer Date: Thu, 20 Apr 2023 21:37:49 -0400 Subject: [PATCH 023/186] refactor: apply custom Select component --- src/components/EthExchanges.tsx | 13 +- src/components/FindWallet/WalletTable.tsx | 216 ++++-------------- src/components/Layer2/Layer2Onboard.tsx | 62 ++--- .../Staking/StakingLaunchpadWidget.tsx | 14 +- 4 files changed, 75 insertions(+), 230 deletions(-) diff --git a/src/components/EthExchanges.tsx b/src/components/EthExchanges.tsx index e7c257f8385..ef8a6fbcfa5 100644 --- a/src/components/EthExchanges.tsx +++ b/src/components/EthExchanges.tsx @@ -8,7 +8,7 @@ import CardList from "./CardList" import Link from "./Link" import Emoji from "./OldEmoji" import Translation from "./Translation" -import { StyledSelect as Select } from "./SharedStyledComponents" +import Select from "./Select" import { getLocaleTimestamp } from "../utils/time" import { trackCustomEvent } from "../utils/matomo" @@ -98,10 +98,6 @@ const Disclaimer = styled.p` margin-bottom: 0; ` -const StyledSelect = styled(Select)` - max-width: 640px; -` - const NoResults = ({ children }) => ( @@ -714,13 +710,12 @@ const EthExchanges = () => { - {!hasSelectedCountry && ( diff --git a/src/components/FindWallet/WalletTable.tsx b/src/components/FindWallet/WalletTable.tsx index 574d57b05f5..ce1548acc76 100644 --- a/src/components/FindWallet/WalletTable.tsx +++ b/src/components/FindWallet/WalletTable.tsx @@ -9,7 +9,7 @@ import { useTranslation } from "gatsby-plugin-react-i18next" import ButtonLink from "../ButtonLink" import Icon from "../Icon" import Link from "../Link" -import { StyledSelect as Select } from "../SharedStyledComponents" +import Select from "../Select" import Tooltip from "../Tooltip" import Translation from "../Translation" @@ -144,101 +144,6 @@ const Wallet = styled(Grid)` } ` -// https://react-select.com/styles#using-classnames -// Pass menuIsOpen to component to debug -const StyledSelect = styled(Select)` - .react-select__control { - border: 1px solid ${(props) => props.theme.colors.text}; - cursor: pointer; - font-size: 0.9rem; - padding-right: 0.3rem; - transition: 0.5s all; - svg { - fill: ${(props) => props.theme.colors.text}; - transition: 0.5s all; - } - - .react-select__value-container { - .react-select__single-value { - color: ${(props) => props.theme.colors.text}; - } - } - - .react-select__indicators { - .react-select__indicator-separator { - background: none; - } - .react-select__indicator { - color: ${(props) => props.theme.colors.text}; - padding: 0; - } - } - - &:hover { - background: ${(props) => props.theme.colors.primary}; - cursor: pointer; - border-color: ${(props) => props.theme.colors.primary}; - color: ${(props) => props.theme.colors.background}; - transition: 0.5s all; - svg { - fill: ${(props) => props.theme.colors.background}; - transition: 0.5s all; - } - - .react-select__value-container { - .react-select__single-value { - color: ${(props) => props.theme.colors.background}; - } - } - - .react-select__indicators { - .react-select__indicator-separator { - background: none; - } - .react-select__indicator { - color: ${(props) => props.theme.colors.text}; - } - } - } - } - - .react-select__control--is-focused { - border: 1px solid ${(props) => props.theme.colors.primary}; - background: ${(props) => props.theme.colors.primary}; - svg { - fill: ${(props) => props.theme.colors.background}; - transition: 0.5s all; - } - - .react-select__value-container { - .react-select__single-value { - color: ${(props) => props.theme.colors.background}; - } - } - - .react-select__indicators { - background: ${(props) => props.theme.colors.primary}; - .react-select__value-container { - .react-select__single-value { - color: ${(props) => props.theme.colors.background}; - } - } - - .react-select__indicators { - .react-select__indicator { - color: ${(props) => props.theme.colors.background}; - } - } - } - } - - @media (max-width: ${(props) => props.theme.breakpoints.s}) { - .react-select__control { - padding: 0; - } - } -` - const FlexInfo = styled.div` display: flex; gap: 1rem; @@ -613,15 +518,6 @@ const WalletTable = ({ data, filters, walletData }) => { return { ...wallet, moreInfo: false, key: wallet.image_name } }) ) - const [firstFeatureSelect, setFirstFeatureSelect] = useState( - featureDropdownItems[14] - ) - const [secondFeatureSelect, setSecondFeatureSelect] = useState( - featureDropdownItems[1] - ) - const [thirdFeatureSelect, setThirdFeatureSelect] = useState( - featureDropdownItems[9] - ) const updateMoreInfo = (key) => { const temp = [...walletCardData] @@ -714,16 +610,6 @@ const WalletTable = ({ data, filters, walletData }) => { ) }) - const filteredFeatureDropdownItems = [...featureDropdownItems].filter( - (item) => { - return ( - item.label !== firstFeatureSelect.label && - item.label !== secondFeatureSelect.label && - item.label !== thirdFeatureSelect.label - ) - } - ) - /** * * @param selectedOption selected dropdown option @@ -756,6 +642,38 @@ const WalletTable = ({ data, filters, walletData }) => { }) } + const [firstFeatureSelect, setFirstFeatureSelect] = useState( + featureDropdownItems[14] + ) + const [secondFeatureSelect, setSecondFeatureSelect] = useState( + featureDropdownItems[1] + ) + const [thirdFeatureSelect, setThirdFeatureSelect] = useState( + featureDropdownItems[9] + ) + + const featureSelectGroup: { + featureSelect: DropdownOption + setFn: React.Dispatch> + col: ColumnClassName + }[] = [ + { + featureSelect: firstFeatureSelect, + setFn: setFirstFeatureSelect, + col: firstCol, + }, + { + featureSelect: secondFeatureSelect, + setFn: setSecondFeatureSelect, + col: secondCol, + }, + { + featureSelect: thirdFeatureSelect, + setFn: setThirdFeatureSelect, + col: thirdCol, + }, + ] + const WalletMoreInfo = ({ wallet, filters, idx }) => { const walletHasFilter = (filterKey) => { return wallet[filterKey] === true @@ -959,57 +877,23 @@ const WalletTable = ({ data, filters, walletData }) => {

)} - - { - updateDropdown(selectedOption, setFirstFeatureSelect, firstCol) - }} - defaultValue={firstFeatureSelect} - isSearchable={false} - /> - - - { - updateDropdown(selectedOption, setSecondFeatureSelect, secondCol) - }} - defaultValue={secondFeatureSelect} - isSearchable={false} - /> - - - { - updateDropdown(selectedOption, setThirdFeatureSelect, thirdCol) - }} - defaultValue={thirdFeatureSelect} - isSearchable={false} - /> - + {featureSelectGroup.map(({ featureSelect, setFn, col }) => ( + + { + onChange={(selectedOption: Layer2Option | "") => { if (selectedOption === "") return setSelectedL2(undefined) trackCustomEvent({ eventCategory: `Selected layer 2 to bridge to`, @@ -335,7 +335,9 @@ const Layer2Onboard: React.FC = ({ options: [...cexOnboardOptions], }, ]} - onChange={(selectedOption) => { + onChange={( + selectedOption: ExchangeOption | CexOnboardOption | "" + ) => { if (selectedOption === "") { setSelectedCexOnboard(undefined) setSelectedExchange(undefined) From c182c9901af26d748acb7208bd5126f2c4a36c31 Mon Sep 17 00:00:00 2001 From: tylerapfledderer Date: Thu, 27 Apr 2023 17:29:54 -0400 Subject: [PATCH 025/186] style(theme/Input): add transition props for Input side element --- src/@chakra-ui/gatsby-plugin/components/Input.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/@chakra-ui/gatsby-plugin/components/Input.ts b/src/@chakra-ui/gatsby-plugin/components/Input.ts index 816b5892325..2f284601309 100644 --- a/src/@chakra-ui/gatsby-plugin/components/Input.ts +++ b/src/@chakra-ui/gatsby-plugin/components/Input.ts @@ -50,6 +50,8 @@ const baseStyle = definePartsStyle((props) => { }, element: { fontSize: "xl", + transitionProperty: "common", + transitionDuration: "normal", _groupHover: { color: "primaryHover", }, From 02e11d682e9025f51a8493c2d43f6e358074934c Mon Sep 17 00:00:00 2001 From: tylerapfledderer Date: Thu, 27 Apr 2023 17:31:49 -0400 Subject: [PATCH 026/186] style(theme/Input): apply group hover style --- src/@chakra-ui/gatsby-plugin/components/Input.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/@chakra-ui/gatsby-plugin/components/Input.ts b/src/@chakra-ui/gatsby-plugin/components/Input.ts index 2f284601309..1a489a2447f 100644 --- a/src/@chakra-ui/gatsby-plugin/components/Input.ts +++ b/src/@chakra-ui/gatsby-plugin/components/Input.ts @@ -30,6 +30,9 @@ const baseStyle = definePartsStyle((props) => { boxShadow: "none", }, _hover: null, // override default + _groupHover: { + borderColor: "primaryHover", + }, _invalid: { borderColor: ec, boxShadow: "none", From 63e68e00032ab94701a72f59c26214f3b6d53e43 Mon Sep 17 00:00:00 2001 From: tylerapfledderer Date: Thu, 27 Apr 2023 17:37:32 -0400 Subject: [PATCH 027/186] refactor(Checkbox): remove custom component in favor of Chakra's default icon --- .../gatsby-plugin/components/Checkbox.ts | 5 +++ .../Checkbox.stories.tsx | 7 +++-- src/components/Checkbox/index.tsx | 31 ------------------- .../FindWallet/WalletFilterSidebar/index.tsx | 2 +- src/components/MatomoOptOut.tsx | 3 +- src/components/SelectableCard.tsx | 3 +- src/pages/staking/deposit-contract.tsx | 2 +- 7 files changed, 14 insertions(+), 39 deletions(-) rename src/components/{Checkbox => BaseStories}/Checkbox.stories.tsx (92%) delete mode 100644 src/components/Checkbox/index.tsx diff --git a/src/@chakra-ui/gatsby-plugin/components/Checkbox.ts b/src/@chakra-ui/gatsby-plugin/components/Checkbox.ts index 6a976640f88..b4ffac6492e 100644 --- a/src/@chakra-ui/gatsby-plugin/components/Checkbox.ts +++ b/src/@chakra-ui/gatsby-plugin/components/Checkbox.ts @@ -29,10 +29,15 @@ const baseStyleLabel = defineStyle({ ...commonLabelProps }) const baseStyleContainer = defineStyle({ ...commonContainerProps }) +const baseStyleIcon = defineStyle({ + boxSize: 2, +}) + const baseStyle = definePartsStyle({ container: baseStyleContainer, control: baseStyleControl, label: baseStyleLabel, + icon: baseStyleIcon, }) export const Checkbox = defineMultiStyleConfig({ diff --git a/src/components/Checkbox/Checkbox.stories.tsx b/src/components/BaseStories/Checkbox.stories.tsx similarity index 92% rename from src/components/Checkbox/Checkbox.stories.tsx rename to src/components/BaseStories/Checkbox.stories.tsx index 6769ba97cab..a5b2eda6885 100644 --- a/src/components/Checkbox/Checkbox.stories.tsx +++ b/src/components/BaseStories/Checkbox.stories.tsx @@ -1,7 +1,10 @@ import * as React from "react" -import { CheckboxGroup, VStack } from "@chakra-ui/react" +import { + CheckboxGroup, + Checkbox as CheckboxComponent, + VStack, +} from "@chakra-ui/react" import { Meta, StoryObj } from "@storybook/react" -import CheckboxComponent from "." type CheckboxType = typeof CheckboxComponent diff --git a/src/components/Checkbox/index.tsx b/src/components/Checkbox/index.tsx deleted file mode 100644 index 727ac8177c0..00000000000 --- a/src/components/Checkbox/index.tsx +++ /dev/null @@ -1,31 +0,0 @@ -import React from "react" -import { - Checkbox as ChakraCheckbox, - CheckboxIconProps, - CheckboxProps, - Icon, -} from "@chakra-ui/react" - -const CustomIcon = (props: CheckboxIconProps) => { - return ( - - - - ) -} - -export interface IProps extends CheckboxProps {} - -const Checkbox: React.FC = (props) => { - return } {...props} /> -} - -export default Checkbox diff --git a/src/components/FindWallet/WalletFilterSidebar/index.tsx b/src/components/FindWallet/WalletFilterSidebar/index.tsx index 119469c8fc8..2ea3bf6ac18 100644 --- a/src/components/FindWallet/WalletFilterSidebar/index.tsx +++ b/src/components/FindWallet/WalletFilterSidebar/index.tsx @@ -7,6 +7,7 @@ import { AccordionItem, AccordionPanel, Box, + Checkbox, GridItem, Heading, HStack, @@ -18,7 +19,6 @@ import { VStack, } from "@chakra-ui/react" import { uniqueId } from "lodash" -import Checkbox from "../../Checkbox" import { useWalletFilterSidebar } from "./useWalletFilterSidebar" import { trackCustomEvent } from "../../../utils/matomo" diff --git a/src/components/MatomoOptOut.tsx b/src/components/MatomoOptOut.tsx index 7130a263c99..edc2443613d 100644 --- a/src/components/MatomoOptOut.tsx +++ b/src/components/MatomoOptOut.tsx @@ -1,7 +1,6 @@ import React, { useState, useEffect } from "react" import { MATOMO_LS_KEY } from "../utils/matomo" -import { Flex, Text } from "@chakra-ui/react" -import Checkbox from "./Checkbox" +import { Flex, Checkbox, Text } from "@chakra-ui/react" export interface IProps {} diff --git a/src/components/SelectableCard.tsx b/src/components/SelectableCard.tsx index 3d5c50195d8..be9eeec949d 100644 --- a/src/components/SelectableCard.tsx +++ b/src/components/SelectableCard.tsx @@ -1,9 +1,8 @@ import React from "react" import styled from "@emotion/styled" +import { Checkbox } from "@chakra-ui/react" import Emoji from "./OldEmoji" -import Checkbox from "./Checkbox" - const StyledCard = styled.div` display: flex; flex-direction: column; diff --git a/src/pages/staking/deposit-contract.tsx b/src/pages/staking/deposit-contract.tsx index 8d1b7db4db4..4ab881f1e60 100644 --- a/src/pages/staking/deposit-contract.tsx +++ b/src/pages/staking/deposit-contract.tsx @@ -6,6 +6,7 @@ import { Box, Button, ButtonProps, + Checkbox, Flex, Heading, Img, @@ -16,7 +17,6 @@ import { import Breadcrumbs from "../../components/Breadcrumbs" import ButtonLink from "../../components/ButtonLink" import CardList from "../../components/CardList" -import Checkbox from "../../components/Checkbox" import CopyToClipboard from "../../components/CopyToClipboard" import Emoji from "../../components/Emoji" import InfoBanner from "../../components/InfoBanner" From 1b7642c0729d730ebcaaa2b96cb7afbee753ca9b Mon Sep 17 00:00:00 2001 From: tylerapfledderer Date: Thu, 27 Apr 2023 17:48:53 -0400 Subject: [PATCH 028/186] fix(Radio.stories): fix argTypes --- src/components/BaseStories/Radio.stories.tsx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/components/BaseStories/Radio.stories.tsx b/src/components/BaseStories/Radio.stories.tsx index f46e22a59a2..6325807ac7a 100644 --- a/src/components/BaseStories/Radio.stories.tsx +++ b/src/components/BaseStories/Radio.stories.tsx @@ -1,5 +1,5 @@ import * as React from "react" -import { RadioGroup, Radio as RadioComponent, Stack } from "@chakra-ui/react" +import { RadioGroup, Radio as RadioComponent, Flex } from "@chakra-ui/react" import { Meta, StoryObj } from "@storybook/react" type RadioType = typeof RadioComponent @@ -8,7 +8,7 @@ const meta: Meta = { title: "Atoms / Form / Radio", component: RadioComponent, argTypes: { - groupDir: { + flexDirection: { options: ["column", "row"], control: { type: "radio" }, }, @@ -27,11 +27,11 @@ type Story = StoryObj export const Radio: Story = { args: { - groupDir: "column", + flexDirection: "column", }, - render: ({ groupDir }) => ( + render: ({ flexDirection }) => ( - + defaultValue isDisabled @@ -45,7 +45,7 @@ export const Radio: Story = { isRequired - +
), } From e6ff1bed78627187ce51ae8abbf2ba3d23507a0e Mon Sep 17 00:00:00 2001 From: Ori Pomerantz Date: Tue, 2 May 2023 16:36:29 -0500 Subject: [PATCH 029/186] Create index.md --- .../guides/how-to-id-scam-tokens/index.md | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 src/content/guides/how-to-id-scam-tokens/index.md diff --git a/src/content/guides/how-to-id-scam-tokens/index.md b/src/content/guides/how-to-id-scam-tokens/index.md new file mode 100644 index 00000000000..7d9624f7f9e --- /dev/null +++ b/src/content/guides/how-to-id-scam-tokens/index.md @@ -0,0 +1,43 @@ +--- +title: How to identify scam tokens +description: A how to guide on how to avoid one of the common Ethereum scams +lang: en +--- + +# How to identify scam tokens + +This guide will teach you how to identify *scam tokens*, [ERC-20 tokens](https://ethereum.org/en/developers/docs/standards/tokens/erc-20/) that are created to mimic other tokens, typically for the sake of defrauding people. +For example, [Arbitrum](https://arbitrum.foundation/) has a governance token, `ARB`. You can see it on [their rollup](https://arbiscan.io/token/0x912ce59144191c1204e64559fe8253a0e49e6548), or on [the Ethereum mainnet](https://etherscan.io/address/0xb50721bcf8d664c30412cfbc6cf7a15145234ad1). But somebody also created a [scam token](https://etherscan.io/token/0xb047c8032b99841713b8e3872f06cf32beb27b82) that attempts to look like a wrapped version of the legitimate `ARB`. + + +## How do scam tokens work? + +The whole point of Ethereum is decentralization. This means that there is no central authority that can confiscate your assets or prevent you from deploying a smart contract. But it also means that scammers can deploy any smart contract they wish. +Specifically, just because Arbitrum deployed a contract that uses the symbol `ARB`, doesn't mean that other people can't also deploy a contract that uses the exact same symbol, or a similar one. And whoever writes the contract gets to set what the contract will do. + + +## Appearing legitimate + +There are several tricks that scam token creator pull to appear legitimate. They can do those, because they write the smart contract that implements the scam token. This means it can produce any effect they want. + +- **Legitimate name and symbol**. As mentioned before, ERC-20 contracts can hae the same symbol and name as other ERC-20 contracts. You cannot count on those fields for security. +- **Legitimate owners**. Scam tokens often airdrop significant balances to addresses that can be expected to be legitimate holders of the real token. + For example, lets look at `wARB` again. [About 16% of the tokens](https://etherscan.io/token/0xb047c8032b99841713b8e3872f06cf32beb27b82?a=0x1c8db745abe3c8162119b9ef2c13864cd1fdd72f) are held by an address whose public tag is [Arbitrum Foundation: Deployer](https://etherscan.io/address/0x1c8db745abe3c8162119b9ef2c13864cd1fdd72f). This is *not* a fake address, it really is the address that [deployed the real ARB contract on Ethereum mainnet](https://etherscan.io/tx/0x242b50ab4fe9896cb0439cfe6e2321d23feede7eeceb31aa2dbb46fc06ed2670). The ERC-20 balance of an address is part of the ERC-20 contract's storage, and can be specified by the contract to be whatever it wishes. +- **Legitimate transfers**. *Legitimate owners wouldn't pay to transfer a scam token around, so if there are transfers it must be legitimate, right?* Wrong. [`Transfer` events](https://eips.ethereum.org/EIPS/eip-20#transfer-1) are emitted by the ERC-20 contract. A scammer can easily write the contract in such a way it will emit those events, with any desired source and destination, at will. + +## Scammy UI + +Another trick that scammers pull is to direct users to user interfaces that entice them to sign bad transactions. For example, [this scam token](https://optimistic.etherscan.io/token/0x15992f382d8c46d667b10dc8456dc36651af1452) tried to direct users to `https://op-claim.xyz`. This probably used to host a scam, but the scammer has since then given up and stopped paying for web hosting. + + +## What can you trust? + +How do you protect yourself? How do you know that the token you're getting is legitimate? The most important rule is **check the contract address**. Legitimate tokens come from legitimate organizations. For example, for `ARB` [you can see the legitimate addresses here](https://docs.arbitrum.foundation/deployment-addresses#token). +Additionally, you can look at the size of liquidity pools. Scam tokens typically have tiny liquidity pools, if any, because the scammers don't want to risk real assets. For example, the `ARB` Uniswap pool holds over 300k$ as I'm writing this ([see here for the up to date value](https://info.uniswap.org/#/tokens/0xb50721bcf8d664c30412cfbc6cf7a15145234ad1)) and buying a small amount is not going to change the price: + +![Buying a legitimate token](uniswap-real) + +But if I try to buy `vARB`, even a tiny purchase would change the prince by over 90%: + +![Buying a scam token](uniswap-scam) + From ead5a8a6b5fc00c580d8ac9dd4cc6616a8776df1 Mon Sep 17 00:00:00 2001 From: Ori Pomerantz Date: Tue, 2 May 2023 16:36:49 -0500 Subject: [PATCH 030/186] Add files via upload --- .../how-to-id-scam-tokens/uniswap-real.png | Bin 0 -> 115848 bytes .../how-to-id-scam-tokens/uniswap-scam.png | Bin 0 -> 127725 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/content/guides/how-to-id-scam-tokens/uniswap-real.png create mode 100644 src/content/guides/how-to-id-scam-tokens/uniswap-scam.png diff --git a/src/content/guides/how-to-id-scam-tokens/uniswap-real.png b/src/content/guides/how-to-id-scam-tokens/uniswap-real.png new file mode 100644 index 0000000000000000000000000000000000000000..78688ca4750faa9058dd6cd5342542da51a3f0fa GIT binary patch literal 115848 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 literal 0 HcmV?d00001 diff --git a/src/content/guides/how-to-id-scam-tokens/uniswap-scam.png b/src/content/guides/how-to-id-scam-tokens/uniswap-scam.png new file mode 100644 index 0000000000000000000000000000000000000000..4bca1971af5586c7af09cb6166621edc00867e7c GIT binary patch literal 127725 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

T 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 Date: Tue, 2 May 2023 16:38:08 -0500 Subject: [PATCH 031/186] Update index.md --- src/content/guides/how-to-id-scam-tokens/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/content/guides/how-to-id-scam-tokens/index.md b/src/content/guides/how-to-id-scam-tokens/index.md index 7d9624f7f9e..c8c76c61b25 100644 --- a/src/content/guides/how-to-id-scam-tokens/index.md +++ b/src/content/guides/how-to-id-scam-tokens/index.md @@ -35,9 +35,9 @@ Another trick that scammers pull is to direct users to user interfaces that enti How do you protect yourself? How do you know that the token you're getting is legitimate? The most important rule is **check the contract address**. Legitimate tokens come from legitimate organizations. For example, for `ARB` [you can see the legitimate addresses here](https://docs.arbitrum.foundation/deployment-addresses#token). Additionally, you can look at the size of liquidity pools. Scam tokens typically have tiny liquidity pools, if any, because the scammers don't want to risk real assets. For example, the `ARB` Uniswap pool holds over 300k$ as I'm writing this ([see here for the up to date value](https://info.uniswap.org/#/tokens/0xb50721bcf8d664c30412cfbc6cf7a15145234ad1)) and buying a small amount is not going to change the price: -![Buying a legitimate token](uniswap-real) +![Buying a legitimate token](uniswap-real.id) But if I try to buy `vARB`, even a tiny purchase would change the prince by over 90%: -![Buying a scam token](uniswap-scam) +![Buying a scam token](uniswap-scam.id) From d7d841ae16242ff58247954f6a89e502d7846a9d Mon Sep 17 00:00:00 2001 From: Ori Pomerantz Date: Tue, 2 May 2023 16:39:15 -0500 Subject: [PATCH 032/186] Update index.md --- src/content/guides/how-to-id-scam-tokens/index.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/content/guides/how-to-id-scam-tokens/index.md b/src/content/guides/how-to-id-scam-tokens/index.md index c8c76c61b25..eb296ca6644 100644 --- a/src/content/guides/how-to-id-scam-tokens/index.md +++ b/src/content/guides/how-to-id-scam-tokens/index.md @@ -7,12 +7,14 @@ lang: en # How to identify scam tokens This guide will teach you how to identify *scam tokens*, [ERC-20 tokens](https://ethereum.org/en/developers/docs/standards/tokens/erc-20/) that are created to mimic other tokens, typically for the sake of defrauding people. + For example, [Arbitrum](https://arbitrum.foundation/) has a governance token, `ARB`. You can see it on [their rollup](https://arbiscan.io/token/0x912ce59144191c1204e64559fe8253a0e49e6548), or on [the Ethereum mainnet](https://etherscan.io/address/0xb50721bcf8d664c30412cfbc6cf7a15145234ad1). But somebody also created a [scam token](https://etherscan.io/token/0xb047c8032b99841713b8e3872f06cf32beb27b82) that attempts to look like a wrapped version of the legitimate `ARB`. ## How do scam tokens work? The whole point of Ethereum is decentralization. This means that there is no central authority that can confiscate your assets or prevent you from deploying a smart contract. But it also means that scammers can deploy any smart contract they wish. + Specifically, just because Arbitrum deployed a contract that uses the symbol `ARB`, doesn't mean that other people can't also deploy a contract that uses the exact same symbol, or a similar one. And whoever writes the contract gets to set what the contract will do. @@ -21,8 +23,11 @@ Specifically, just because Arbitrum deployed a contract that uses the symbol `AR There are several tricks that scam token creator pull to appear legitimate. They can do those, because they write the smart contract that implements the scam token. This means it can produce any effect they want. - **Legitimate name and symbol**. As mentioned before, ERC-20 contracts can hae the same symbol and name as other ERC-20 contracts. You cannot count on those fields for security. + - **Legitimate owners**. Scam tokens often airdrop significant balances to addresses that can be expected to be legitimate holders of the real token. + For example, lets look at `wARB` again. [About 16% of the tokens](https://etherscan.io/token/0xb047c8032b99841713b8e3872f06cf32beb27b82?a=0x1c8db745abe3c8162119b9ef2c13864cd1fdd72f) are held by an address whose public tag is [Arbitrum Foundation: Deployer](https://etherscan.io/address/0x1c8db745abe3c8162119b9ef2c13864cd1fdd72f). This is *not* a fake address, it really is the address that [deployed the real ARB contract on Ethereum mainnet](https://etherscan.io/tx/0x242b50ab4fe9896cb0439cfe6e2321d23feede7eeceb31aa2dbb46fc06ed2670). The ERC-20 balance of an address is part of the ERC-20 contract's storage, and can be specified by the contract to be whatever it wishes. + - **Legitimate transfers**. *Legitimate owners wouldn't pay to transfer a scam token around, so if there are transfers it must be legitimate, right?* Wrong. [`Transfer` events](https://eips.ethereum.org/EIPS/eip-20#transfer-1) are emitted by the ERC-20 contract. A scammer can easily write the contract in such a way it will emit those events, with any desired source and destination, at will. ## Scammy UI @@ -33,11 +38,12 @@ Another trick that scammers pull is to direct users to user interfaces that enti ## What can you trust? How do you protect yourself? How do you know that the token you're getting is legitimate? The most important rule is **check the contract address**. Legitimate tokens come from legitimate organizations. For example, for `ARB` [you can see the legitimate addresses here](https://docs.arbitrum.foundation/deployment-addresses#token). + Additionally, you can look at the size of liquidity pools. Scam tokens typically have tiny liquidity pools, if any, because the scammers don't want to risk real assets. For example, the `ARB` Uniswap pool holds over 300k$ as I'm writing this ([see here for the up to date value](https://info.uniswap.org/#/tokens/0xb50721bcf8d664c30412cfbc6cf7a15145234ad1)) and buying a small amount is not going to change the price: -![Buying a legitimate token](uniswap-real.id) +![Buying a legitimate token](uniswap-real.png) But if I try to buy `vARB`, even a tiny purchase would change the prince by over 90%: -![Buying a scam token](uniswap-scam.id) +![Buying a scam token](uniswap-scam.png) From 7faefd9d8aba70406511f991ecf2a40b4b35677f Mon Sep 17 00:00:00 2001 From: Ori Pomerantz Date: Tue, 2 May 2023 16:41:09 -0500 Subject: [PATCH 033/186] Update index.md --- src/content/guides/how-to-id-scam-tokens/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/content/guides/how-to-id-scam-tokens/index.md b/src/content/guides/how-to-id-scam-tokens/index.md index eb296ca6644..70a7fbc5ec1 100644 --- a/src/content/guides/how-to-id-scam-tokens/index.md +++ b/src/content/guides/how-to-id-scam-tokens/index.md @@ -41,9 +41,9 @@ How do you protect yourself? How do you know that the token you're getting is le Additionally, you can look at the size of liquidity pools. Scam tokens typically have tiny liquidity pools, if any, because the scammers don't want to risk real assets. For example, the `ARB` Uniswap pool holds over 300k$ as I'm writing this ([see here for the up to date value](https://info.uniswap.org/#/tokens/0xb50721bcf8d664c30412cfbc6cf7a15145234ad1)) and buying a small amount is not going to change the price: -![Buying a legitimate token](uniswap-real.png) +![Buying a legitimate token](./uniswap-real.png) But if I try to buy `vARB`, even a tiny purchase would change the prince by over 90%: -![Buying a scam token](uniswap-scam.png) +![Buying a scam token](./uniswap-scam.png) From 39da7a24f27a3e9d4bc0cf85e0bb216e9b2d4e36 Mon Sep 17 00:00:00 2001 From: Ori Pomerantz Date: Tue, 2 May 2023 16:45:51 -0500 Subject: [PATCH 034/186] Update index.md --- src/content/guides/index.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/content/guides/index.md b/src/content/guides/index.md index 6756672c044..ad20d999192 100644 --- a/src/content/guides/index.md +++ b/src/content/guides/index.md @@ -18,6 +18,8 @@ Do you want to start your Ethereum journey? There's a whole community of us expl 1. [How to revoke smart contract access to your crypto funds](/guides/how-to-revoke-token-access/) - If you suddenly see a transaction in your wallet that you did not initiate, this guide will teach you how to prevent that from happening again. +2. [How to identify scam tokens](/guides/how-to-id-scam-tokens/) - What are scam tokens, how do they make themselves look legitimate, and how to identify them to avoid the scam. + ## Using Ethereum 1. [How to bridge tokens to layer 2](/guides/how-to-use-a-bridge/) - Are Ethereum transactions too costly? Consider moving to Ethereum scaling solutions called layer 2s. From 2f88d699fed634aee0c4ce17b809c3b5c8a4a772 Mon Sep 17 00:00:00 2001 From: Ori Pomerantz Date: Tue, 2 May 2023 16:46:15 -0500 Subject: [PATCH 035/186] Update index.md --- src/content/guides/how-to-id-scam-tokens/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/guides/how-to-id-scam-tokens/index.md b/src/content/guides/how-to-id-scam-tokens/index.md index 70a7fbc5ec1..3651c890a4f 100644 --- a/src/content/guides/how-to-id-scam-tokens/index.md +++ b/src/content/guides/how-to-id-scam-tokens/index.md @@ -1,6 +1,6 @@ --- title: How to identify scam tokens -description: A how to guide on how to avoid one of the common Ethereum scams +description: What are scam tokens, how do they make themselves look legitimate, and how to identify them to avoid the scam. lang: en --- From 058be9db454db1dd64e28183926dbec99daa6b66 Mon Sep 17 00:00:00 2001 From: Ori Pomerantz Date: Wed, 3 May 2023 13:52:55 -0500 Subject: [PATCH 036/186] Minor wording changes --- src/content/guides/how-to-id-scam-tokens/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/content/guides/how-to-id-scam-tokens/index.md b/src/content/guides/how-to-id-scam-tokens/index.md index 3651c890a4f..ae0a3f2c325 100644 --- a/src/content/guides/how-to-id-scam-tokens/index.md +++ b/src/content/guides/how-to-id-scam-tokens/index.md @@ -22,7 +22,7 @@ Specifically, just because Arbitrum deployed a contract that uses the symbol `AR There are several tricks that scam token creator pull to appear legitimate. They can do those, because they write the smart contract that implements the scam token. This means it can produce any effect they want. -- **Legitimate name and symbol**. As mentioned before, ERC-20 contracts can hae the same symbol and name as other ERC-20 contracts. You cannot count on those fields for security. +- **Legitimate name and symbol**. As mentioned before, ERC-20 contracts can have the same symbol and name as other ERC-20 contracts. You cannot count on those fields for security. - **Legitimate owners**. Scam tokens often airdrop significant balances to addresses that can be expected to be legitimate holders of the real token. @@ -37,7 +37,7 @@ Another trick that scammers pull is to direct users to user interfaces that enti ## What can you trust? -How do you protect yourself? How do you know that the token you're getting is legitimate? The most important rule is **check the contract address**. Legitimate tokens come from legitimate organizations. For example, for `ARB` [you can see the legitimate addresses here](https://docs.arbitrum.foundation/deployment-addresses#token). +How do you protect yourself? How do you know that the token you're getting is legitimate? The most important rule is **check the contract address**. Legitimate tokens come from legitimate organizations, and you can see the contract addresses on the organization's web site. For example, [for `ARB` you can see the legitimate addresses here](https://docs.arbitrum.foundation/deployment-addresses#token). Additionally, you can look at the size of liquidity pools. Scam tokens typically have tiny liquidity pools, if any, because the scammers don't want to risk real assets. For example, the `ARB` Uniswap pool holds over 300k$ as I'm writing this ([see here for the up to date value](https://info.uniswap.org/#/tokens/0xb50721bcf8d664c30412cfbc6cf7a15145234ad1)) and buying a small amount is not going to change the price: From 50e38c7d8d0063ccf96ddc914265ece7e6326454 Mon Sep 17 00:00:00 2001 From: Ori Pomerantz Date: Wed, 3 May 2023 14:00:25 -0500 Subject: [PATCH 037/186] Delete uniswap-scam.png --- .../how-to-id-scam-tokens/uniswap-scam.png | Bin 127725 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 src/content/guides/how-to-id-scam-tokens/uniswap-scam.png diff --git a/src/content/guides/how-to-id-scam-tokens/uniswap-scam.png b/src/content/guides/how-to-id-scam-tokens/uniswap-scam.png deleted file mode 100644 index 4bca1971af5586c7af09cb6166621edc00867e7c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 127725 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

T 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 Date: Wed, 3 May 2023 14:00:42 -0500 Subject: [PATCH 038/186] Delete uniswap-real.png --- .../how-to-id-scam-tokens/uniswap-real.png | Bin 115848 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 src/content/guides/how-to-id-scam-tokens/uniswap-real.png diff --git a/src/content/guides/how-to-id-scam-tokens/uniswap-real.png b/src/content/guides/how-to-id-scam-tokens/uniswap-real.png deleted file mode 100644 index 78688ca4750faa9058dd6cd5342542da51a3f0fa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 115848 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 From acda347b26b6e6366448f4cd48d954df6874b743 Mon Sep 17 00:00:00 2001 From: Ori Pomerantz Date: Wed, 3 May 2023 14:01:16 -0500 Subject: [PATCH 039/186] Smaller image size --- .../how-to-id-scam-tokens/uniswap-real.png | Bin 0 -> 48065 bytes .../how-to-id-scam-tokens/uniswap-scam.png | Bin 0 -> 55267 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/content/guides/how-to-id-scam-tokens/uniswap-real.png create mode 100644 src/content/guides/how-to-id-scam-tokens/uniswap-scam.png diff --git a/src/content/guides/how-to-id-scam-tokens/uniswap-real.png b/src/content/guides/how-to-id-scam-tokens/uniswap-real.png new file mode 100644 index 0000000000000000000000000000000000000000..68304d730568a9d5d4031a4b807690743808824d GIT binary patch literal 48065 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 t|&qCBDJIF7keyE@}A?O$dTr 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 Date: Fri, 5 May 2023 09:20:02 -0400 Subject: [PATCH 040/186] refactor(theme/Input): update focus styling --- src/@chakra-ui/gatsby-plugin/components/Input.ts | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/@chakra-ui/gatsby-plugin/components/Input.ts b/src/@chakra-ui/gatsby-plugin/components/Input.ts index 1a489a2447f..fd4bfdeff82 100644 --- a/src/@chakra-ui/gatsby-plugin/components/Input.ts +++ b/src/@chakra-ui/gatsby-plugin/components/Input.ts @@ -10,7 +10,7 @@ const { defineMultiStyleConfig, definePartsStyle } = const baseStyle = definePartsStyle((props) => { const { - focusBorderColor: fc = "primary", + focusBorderColor: fc = "primaryHover", errorBorderColor: ec = "errorOutline", } = props @@ -21,12 +21,15 @@ const baseStyle = definePartsStyle((props) => { field: { borderColor: "body", borderRadius: "base", + outline: "3px solid transparent", _placeholder: { color: "disabled", opacity: 1, }, _focusVisible: { - borderColor: fc, + outlineColor: fc, + outlineOffset: "-1px", + border: "none", boxShadow: "none", }, _hover: null, // override default @@ -58,7 +61,7 @@ const baseStyle = definePartsStyle((props) => { _groupHover: { color: "primaryHover", }, - _peerFocus: { + _peerFocusVisible: { color: fc, _peerInvalid: { color: ec, From 8cbbc2eb293866d89c3c27f86beb3e59787bf1b8 Mon Sep 17 00:00:00 2001 From: tylerapfledderer Date: Fri, 5 May 2023 11:36:04 -0400 Subject: [PATCH 041/186] style(theme): apply base input theme to select --- .../gatsby-plugin/components/Input.ts | 4 +- .../gatsby-plugin/components/Select.ts | 38 +++++++++++-------- 2 files changed, 25 insertions(+), 17 deletions(-) diff --git a/src/@chakra-ui/gatsby-plugin/components/Input.ts b/src/@chakra-ui/gatsby-plugin/components/Input.ts index fd4bfdeff82..902996d3704 100644 --- a/src/@chakra-ui/gatsby-plugin/components/Input.ts +++ b/src/@chakra-ui/gatsby-plugin/components/Input.ts @@ -19,7 +19,7 @@ const baseStyle = definePartsStyle((props) => { inputDefaultTheme.variants?.outline(props), { field: { - borderColor: "body", + borderColor: "currentColor", borderRadius: "base", outline: "3px solid transparent", _placeholder: { @@ -46,7 +46,7 @@ const baseStyle = definePartsStyle((props) => { }, "&:not(:disabled)": { _hover: { - borderColor: "primaryHover", + color: "primary", }, _active: { bg: "backgroundHighlight", diff --git a/src/@chakra-ui/gatsby-plugin/components/Select.ts b/src/@chakra-ui/gatsby-plugin/components/Select.ts index 6d960a657f0..8ea12b08a82 100644 --- a/src/@chakra-ui/gatsby-plugin/components/Select.ts +++ b/src/@chakra-ui/gatsby-plugin/components/Select.ts @@ -1,32 +1,32 @@ import { selectAnatomy } from "@chakra-ui/anatomy" import { createMultiStyleConfigHelpers, cssVar } from "@chakra-ui/react" import { defineMergeStyles, selectDefaultTheme } from "./components.utils" +import { Input as inputTheme } from "./Input" + +const { baseStyle: inputBaseStyles } = inputTheme + +const baseFieldStyles = inputBaseStyles?.({} as never).field const { defineMultiStyleConfig, definePartsStyle } = createMultiStyleConfigHelpers(selectAnatomy.keys) -const $borderBaseWidth = cssVar("border-base-width") - const baseStyleField = defineMergeStyles(selectDefaultTheme.baseStyle?.field, { - [$borderBaseWidth.variable]: "1px", - borderColor: "currentColor", + ...baseFieldStyles, cursor: "pointer", py: 2, ps: 2, pe: 8, - _active: { - bg: "primaryLowContrast", - boxShadow: "none", - }, - _hover: { - boxShadow: "buttonHover", - color: "primary", - }, _focusVisible: { outline: "3px solid", outlineColor: "primaryHover", outlineOffset: "-1px", }, + "&:not(:disabled)": { + _hover: { + ...baseFieldStyles?.["&:not(:disabled)"], + boxShadow: "buttonHover", + }, + }, }) const baseStyleIcon = defineMergeStyles(selectDefaultTheme.baseStyle?.icon, { @@ -43,14 +43,22 @@ const baseStyle = definePartsStyle({ const variantOutline = definePartsStyle({ field: { borderRadius: "base", - borderWidth: $borderBaseWidth.reference, }, }) +const flushedBorderColor = "transparent !important" + const variantFlushed = definePartsStyle({ field: { - borderTopRadius: "base", - borderBottomWidth: $borderBaseWidth.reference, + borderBottomRadius: 0, + borderTopColor: flushedBorderColor, + borderInlineColor: flushedBorderColor, + "&:not(:disabled)": { + _hover: { + borderTopColor: flushedBorderColor, + borderInlineColor: flushedBorderColor, + }, + }, }, }) From fcd7f12c69ae5414aca94a1fd9b5ec1dfd59d01f Mon Sep 17 00:00:00 2001 From: tylerapfledderer Date: Fri, 5 May 2023 12:34:01 -0400 Subject: [PATCH 042/186] refactor(Radio): update story controls --- src/components/BaseStories/Radio.stories.tsx | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/components/BaseStories/Radio.stories.tsx b/src/components/BaseStories/Radio.stories.tsx index 6325807ac7a..aa046579cd6 100644 --- a/src/components/BaseStories/Radio.stories.tsx +++ b/src/components/BaseStories/Radio.stories.tsx @@ -23,21 +23,29 @@ const meta: Meta = { export default meta -type Story = StoryObj +type Story = StoryObj export const Radio: Story = { args: { flexDirection: "column", }, - render: ({ flexDirection }) => ( - + argTypes: { + value: { + options: ["checked", "disabled", "focusable", "read-only", "required"], + control: { + type: "radio", + }, + }, + }, + render: ({ flexDirection, value }) => ( + defaultValue isDisabled - isFocusable + isFocusable and disabled isReadOnly From 1739962ad203dc08901e7f4b72b3ffd67b4c4082 Mon Sep 17 00:00:00 2001 From: tylerapfledderer Date: Fri, 12 May 2023 14:03:33 -0400 Subject: [PATCH 043/186] refactor(theme): add new spacing tokens for button, input and select heights --- src/@chakra-ui/gatsby-plugin/components/Button.ts | 2 +- src/@chakra-ui/gatsby-plugin/components/Input.ts | 2 +- src/@chakra-ui/gatsby-plugin/components/Select.ts | 1 + src/@chakra-ui/gatsby-plugin/foundations/index.ts | 5 +++++ src/@chakra-ui/gatsby-plugin/foundations/spacing.ts | 6 ++++++ 5 files changed, 14 insertions(+), 2 deletions(-) create mode 100644 src/@chakra-ui/gatsby-plugin/foundations/spacing.ts diff --git a/src/@chakra-ui/gatsby-plugin/components/Button.ts b/src/@chakra-ui/gatsby-plugin/components/Button.ts index b07ac4e7d0d..e1f5c3a7232 100644 --- a/src/@chakra-ui/gatsby-plugin/components/Button.ts +++ b/src/@chakra-ui/gatsby-plugin/components/Button.ts @@ -113,7 +113,7 @@ export const Button = defineStyleConfig({ baseStyle, sizes: defineMergeStyles(defaultSizes, { md: { - h: "42px", + h: 10.5, }, }), variants: { diff --git a/src/@chakra-ui/gatsby-plugin/components/Input.ts b/src/@chakra-ui/gatsby-plugin/components/Input.ts index 902996d3704..4fbb4137b3c 100644 --- a/src/@chakra-ui/gatsby-plugin/components/Input.ts +++ b/src/@chakra-ui/gatsby-plugin/components/Input.ts @@ -86,7 +86,7 @@ const baseStyle = definePartsStyle((props) => { const size = { md: defineStyle({ - h: 10, + h: 10.5, px: 2, }), sm: defineStyle({ diff --git a/src/@chakra-ui/gatsby-plugin/components/Select.ts b/src/@chakra-ui/gatsby-plugin/components/Select.ts index 8ea12b08a82..f22dac53ed0 100644 --- a/src/@chakra-ui/gatsby-plugin/components/Select.ts +++ b/src/@chakra-ui/gatsby-plugin/components/Select.ts @@ -16,6 +16,7 @@ const baseStyleField = defineMergeStyles(selectDefaultTheme.baseStyle?.field, { py: 2, ps: 2, pe: 8, + h: 10.5, _focusVisible: { outline: "3px solid", outlineColor: "primaryHover", diff --git a/src/@chakra-ui/gatsby-plugin/foundations/index.ts b/src/@chakra-ui/gatsby-plugin/foundations/index.ts index d503cca827e..3b5804ad312 100644 --- a/src/@chakra-ui/gatsby-plugin/foundations/index.ts +++ b/src/@chakra-ui/gatsby-plugin/foundations/index.ts @@ -1,6 +1,7 @@ import colors from "./colors" import shadows from "./shadows" import typography from "./typography" +import spacing from "./spacing" // Check the following link to see all the possible options: // https://github.com/chakra-ui/chakra-ui/blob/main/packages/theme/src/foundations/index.ts @@ -8,6 +9,10 @@ const foundations = { colors, shadows, ...typography, + sizes: { + ...spacing, + }, + space: spacing, } export default foundations diff --git a/src/@chakra-ui/gatsby-plugin/foundations/spacing.ts b/src/@chakra-ui/gatsby-plugin/foundations/spacing.ts new file mode 100644 index 00000000000..b1c918a4759 --- /dev/null +++ b/src/@chakra-ui/gatsby-plugin/foundations/spacing.ts @@ -0,0 +1,6 @@ +const spacing = { + 7.5: "1.875rem", + 10.5: "2.625rem", +} + +export default spacing From bf0ecebb050d5f04c601a9f5063d65460272bcc5 Mon Sep 17 00:00:00 2001 From: tylerapfledderer Date: Fri, 12 May 2023 14:12:49 -0400 Subject: [PATCH 044/186] style(theme/input): update icon sizes --- src/@chakra-ui/gatsby-plugin/components/Input.ts | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/@chakra-ui/gatsby-plugin/components/Input.ts b/src/@chakra-ui/gatsby-plugin/components/Input.ts index 4fbb4137b3c..5198b8f4dcf 100644 --- a/src/@chakra-ui/gatsby-plugin/components/Input.ts +++ b/src/@chakra-ui/gatsby-plugin/components/Input.ts @@ -55,7 +55,7 @@ const baseStyle = definePartsStyle((props) => { }, }, element: { - fontSize: "xl", + fontSize: "2xl", transitionProperty: "common", transitionDuration: "normal", _groupHover: { @@ -90,7 +90,6 @@ const size = { px: 2, }), sm: defineStyle({ - fontSize: "sm", h: 8, px: 1, }), @@ -102,8 +101,11 @@ const sizes = { element: size.md, }), sm: definePartsStyle({ - field: size.sm, - element: size.sm, + field: { ...size.sm, fontSize: "sm" }, + element: { + ...size.sm, + fontSize: "xl", + }, }), } From 05c7471f6801655d01aac7710831ff6e28c7bfc7 Mon Sep 17 00:00:00 2001 From: tylerapfledderer Date: Fri, 12 May 2023 14:15:38 -0400 Subject: [PATCH 045/186] style(theme/input): trim line height --- src/@chakra-ui/gatsby-plugin/components/Input.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/@chakra-ui/gatsby-plugin/components/Input.ts b/src/@chakra-ui/gatsby-plugin/components/Input.ts index 5198b8f4dcf..b0c7513a047 100644 --- a/src/@chakra-ui/gatsby-plugin/components/Input.ts +++ b/src/@chakra-ui/gatsby-plugin/components/Input.ts @@ -22,6 +22,7 @@ const baseStyle = definePartsStyle((props) => { borderColor: "currentColor", borderRadius: "base", outline: "3px solid transparent", + lineHeight: 1, _placeholder: { color: "disabled", opacity: 1, From 84044dd86ad873742be23fc2ae7f70744e8d42b0 Mon Sep 17 00:00:00 2001 From: Pablo Pettinari Date: Fri, 12 May 2023 21:23:33 -0300 Subject: [PATCH 046/186] fix after merge --- src/components/Staking/WithdrawalCredentials.tsx | 2 +- src/pages/languages.tsx | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/components/Staking/WithdrawalCredentials.tsx b/src/components/Staking/WithdrawalCredentials.tsx index e1e27755abf..3a2476dd731 100644 --- a/src/components/Staking/WithdrawalCredentials.tsx +++ b/src/components/Staking/WithdrawalCredentials.tsx @@ -6,9 +6,9 @@ import { useTranslation } from "gatsby-plugin-react-i18next" import CopyToClipboard from "../CopyToClipboard" import Emoji from "../Emoji" import Translation from "../Translation" +import Input from "../Input" // Utilites import { trackCustomEvent } from "../../utils/matomo" -import Input from "../Input" interface Validator { validatorIndex: number diff --git a/src/pages/languages.tsx b/src/pages/languages.tsx index 4c11bc90a1b..d227fd75a1f 100644 --- a/src/pages/languages.tsx +++ b/src/pages/languages.tsx @@ -3,7 +3,6 @@ import { Flex, Heading, IconButton, - Input, LinkBox, LinkOverlay, Text, @@ -14,12 +13,12 @@ import React, { useState } from "react" import { MdClose } from "react-icons/md" import Link from "../components/Link" +import Input from "../components/Input" import PageMetadata from "../components/PageMetadata" import Translation from "../components/Translation" import { Language, languageMetadata } from "../utils/languages" import { TranslationKey } from "../utils/translations" -import Input from "../components/Input" const LanguagesPage = ({ location }: PageProps) => { const { t } = useTranslation() @@ -100,7 +99,7 @@ const LanguagesPage = ({ location }: PageProps) => { rightElement={ keyword !== "" && ( } + icon={} onClick={resetKeyword} position="absolute" insetInlineEnd={1} From a75f451c53994a400b9e113136696524685c1ffb Mon Sep 17 00:00:00 2001 From: Ori Pomerantz Date: Sat, 13 May 2023 17:46:15 -0500 Subject: [PATCH 047/186] Update index.md --- .../guides/how-to-id-scam-tokens/index.md | 30 +++++++++++++++---- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/src/content/guides/how-to-id-scam-tokens/index.md b/src/content/guides/how-to-id-scam-tokens/index.md index ae0a3f2c325..64d92d7f9fd 100644 --- a/src/content/guides/how-to-id-scam-tokens/index.md +++ b/src/content/guides/how-to-id-scam-tokens/index.md @@ -1,49 +1,69 @@ --- title: How to identify scam tokens -description: What are scam tokens, how do they make themselves look legitimate, and how to identify them to avoid the scam. +description: What are scam tokens, how do they make themselves look legitimate, and how to detect them to avoid the scam. lang: en --- # How to identify scam tokens +**ERC-20** + This guide will teach you how to identify *scam tokens*, [ERC-20 tokens](https://ethereum.org/en/developers/docs/standards/tokens/erc-20/) that are created to mimic other tokens, typically for the sake of defrauding people. +**Governance token** +**rollup** + For example, [Arbitrum](https://arbitrum.foundation/) has a governance token, `ARB`. You can see it on [their rollup](https://arbiscan.io/token/0x912ce59144191c1204e64559fe8253a0e49e6548), or on [the Ethereum mainnet](https://etherscan.io/address/0xb50721bcf8d664c30412cfbc6cf7a15145234ad1). But somebody also created a [scam token](https://etherscan.io/token/0xb047c8032b99841713b8e3872f06cf32beb27b82) that attempts to look like a wrapped version of the legitimate `ARB`. +**Wrapped versions of tokens that aren't ERC-20** ## How do scam tokens work? The whole point of Ethereum is decentralization. This means that there is no central authority that can confiscate your assets or prevent you from deploying a smart contract. But it also means that scammers can deploy any smart contract they wish. +**smartcontract** + Specifically, just because Arbitrum deployed a contract that uses the symbol `ARB`, doesn't mean that other people can't also deploy a contract that uses the exact same symbol, or a similar one. And whoever writes the contract gets to set what the contract will do. +### How do they make money from the scam? + +**Uniswap** +**Directing people to their own UI** + ## Appearing legitimate -There are several tricks that scam token creator pull to appear legitimate. They can do those, because they write the smart contract that implements the scam token. This means it can produce any effect they want. +There are several tricks that scam token creator pull to appear legitimate. They can do those, because they write the smart contract that implements the scam token. This means it can produce any effect they want from that contract. - **Legitimate name and symbol**. As mentioned before, ERC-20 contracts can have the same symbol and name as other ERC-20 contracts. You cannot count on those fields for security. - **Legitimate owners**. Scam tokens often airdrop significant balances to addresses that can be expected to be legitimate holders of the real token. For example, lets look at `wARB` again. [About 16% of the tokens](https://etherscan.io/token/0xb047c8032b99841713b8e3872f06cf32beb27b82?a=0x1c8db745abe3c8162119b9ef2c13864cd1fdd72f) are held by an address whose public tag is [Arbitrum Foundation: Deployer](https://etherscan.io/address/0x1c8db745abe3c8162119b9ef2c13864cd1fdd72f). This is *not* a fake address, it really is the address that [deployed the real ARB contract on Ethereum mainnet](https://etherscan.io/tx/0x242b50ab4fe9896cb0439cfe6e2321d23feede7eeceb31aa2dbb46fc06ed2670). The ERC-20 balance of an address is part of the ERC-20 contract's storage, and can be specified by the contract to be whatever it wishes. + +**What is a deployer** - **Legitimate transfers**. *Legitimate owners wouldn't pay to transfer a scam token around, so if there are transfers it must be legitimate, right?* Wrong. [`Transfer` events](https://eips.ethereum.org/EIPS/eip-20#transfer-1) are emitted by the ERC-20 contract. A scammer can easily write the contract in such a way it will emit those events, with any desired source and destination, at will. +**What is a Transfer event** + ## Scammy UI -Another trick that scammers pull is to direct users to user interfaces that entice them to sign bad transactions. For example, [this scam token](https://optimistic.etherscan.io/token/0x15992f382d8c46d667b10dc8456dc36651af1452) tried to direct users to `https://op-claim.xyz`. This probably used to host a scam, but the scammer has since then given up and stopped paying for web hosting. +Another trick that scammers pull is to direct users to user interfaces that entice them to sign bad transactions. For example, [this scam token](https://optimistic.etherscan.io/token/0x15992f382d8c46d667b10dc8456dc36651af1452) tried to direct users to `https://op-claim.xyz`. This probably used to host a scam, but since then the scammer must have given up and stopped paying for web hosting. -## What can you trust? +## Conclusion: What can you trust? How do you protect yourself? How do you know that the token you're getting is legitimate? The most important rule is **check the contract address**. Legitimate tokens come from legitimate organizations, and you can see the contract addresses on the organization's web site. For example, [for `ARB` you can see the legitimate addresses here](https://docs.arbitrum.foundation/deployment-addresses#token). +**Liquidity pools** + Additionally, you can look at the size of liquidity pools. Scam tokens typically have tiny liquidity pools, if any, because the scammers don't want to risk real assets. For example, the `ARB` Uniswap pool holds over 300k$ as I'm writing this ([see here for the up to date value](https://info.uniswap.org/#/tokens/0xb50721bcf8d664c30412cfbc6cf7a15145234ad1)) and buying a small amount is not going to change the price: +**Explain buying on Uniswap** + ![Buying a legitimate token](./uniswap-real.png) But if I try to buy `vARB`, even a tiny purchase would change the prince by over 90%: ![Buying a scam token](./uniswap-scam.png) - From 169b6d95bb972c4993b53328993cc211a0ef8022 Mon Sep 17 00:00:00 2001 From: Ori Pomerantz Date: Mon, 15 May 2023 17:43:15 -0500 Subject: [PATCH 048/186] Update index.md --- src/content/guides/how-to-id-scam-tokens/index.md | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/content/guides/how-to-id-scam-tokens/index.md b/src/content/guides/how-to-id-scam-tokens/index.md index 64d92d7f9fd..96a6c9da844 100644 --- a/src/content/guides/how-to-id-scam-tokens/index.md +++ b/src/content/guides/how-to-id-scam-tokens/index.md @@ -6,14 +6,13 @@ lang: en # How to identify scam tokens -**ERC-20** +One of the most common uses for Ethereum is for a group to create a tradable token, in a sense their own currency. These tokens typically follow a standard, [ERC-20](https://ethereum.org/en/developers/docs/standards/tokens/erc-20/). However, anywhere they are legitimate use cases that bring value, there are also criminals who try to steal that value for themselves. In this case, there are two way in which they are likely to do so: -This guide will teach you how to identify *scam tokens*, [ERC-20 tokens](https://ethereum.org/en/developers/docs/standards/tokens/erc-20/) that are created to mimic other tokens, typically for the sake of defrauding people. +- Try to sell you *scam tokens*, which look like the legitimate token you want to purchase, but are issued by the scammers and worthless. +- Try to direct you into their own user interface, where they attempt to trick you into signing transactions that give them your ETH, your real tokens, etc. -**Governance token** -**rollup** +To illustrate what scam tokens are, and how to identify them, we are going to look at [`wARB`](https://etherscan.io/token/0xb047c8032b99841713b8e3872f06cf32beb27b82). This token attempts to look like the legitimate [`ARB`](https://etherscan.io/address/0xb50721bcf8d664c30412cfbc6cf7a15145234ad1) token. -For example, [Arbitrum](https://arbitrum.foundation/) has a governance token, `ARB`. You can see it on [their rollup](https://arbiscan.io/token/0x912ce59144191c1204e64559fe8253a0e49e6548), or on [the Ethereum mainnet](https://etherscan.io/address/0xb50721bcf8d664c30412cfbc6cf7a15145234ad1). But somebody also created a [scam token](https://etherscan.io/token/0xb047c8032b99841713b8e3872f06cf32beb27b82) that attempts to look like a wrapped version of the legitimate `ARB`. **Wrapped versions of tokens that aren't ERC-20** From 177b457e12e9617d32ae0c9d09b42b6d6bf6b399 Mon Sep 17 00:00:00 2001 From: Ori Pomerantz Date: Mon, 15 May 2023 18:20:50 -0500 Subject: [PATCH 049/186] Update index.md --- .../guides/how-to-id-scam-tokens/index.md | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/src/content/guides/how-to-id-scam-tokens/index.md b/src/content/guides/how-to-id-scam-tokens/index.md index 96a6c9da844..4c8ec15039f 100644 --- a/src/content/guides/how-to-id-scam-tokens/index.md +++ b/src/content/guides/how-to-id-scam-tokens/index.md @@ -6,15 +6,31 @@ lang: en # How to identify scam tokens -One of the most common uses for Ethereum is for a group to create a tradable token, in a sense their own currency. These tokens typically follow a standard, [ERC-20](https://ethereum.org/en/developers/docs/standards/tokens/erc-20/). However, anywhere they are legitimate use cases that bring value, there are also criminals who try to steal that value for themselves. In this case, there are two way in which they are likely to do so: +One of the most common uses for Ethereum is for a group to create a tradable token, in a sense their own currency. These tokens typically follow a standard, [ERC-20](/developers/docs/standards/tokens/erc-20/). However, anywhere they are legitimate use cases that bring value, there are also criminals who try to steal that value for themselves. In this case, there are two way in which they are likely to do so: - Try to sell you *scam tokens*, which look like the legitimate token you want to purchase, but are issued by the scammers and worthless. - Try to direct you into their own user interface, where they attempt to trick you into signing transactions that give them your ETH, your real tokens, etc. To illustrate what scam tokens are, and how to identify them, we are going to look at [`wARB`](https://etherscan.io/token/0xb047c8032b99841713b8e3872f06cf32beb27b82). This token attempts to look like the legitimate [`ARB`](https://etherscan.io/address/0xb50721bcf8d664c30412cfbc6cf7a15145234ad1) token. + + +[Arbitrum](https://developer.arbitrum.io/intro/) is an organization that runs and manages an [optimistic rollup](/developers/docs/scaling/optimistic-rollups/). Initially Arbitrum was organized as a for-profit company, but they recently [started to decentralize](https://arbitrumfoundation.medium.com/arbitrum-the-next-phase-of-decentralization-e7f8b37b5226). As part of that process, they issued a tradeable [governance token](/dao/#token-based-membership). + + + + + +There is a convention in Ethereum that when an asset is not ERC-20 compliant we create a "wrapped" version of it with the name starting with `w`. So, for example, we have [`wBTC` for Bitcoin](https://wbtc.network/) and [`wETH` for Ether](https://cointelegraph.com/news/what-is-wrapped-ethereum-weth-and-how-does-it-work). + +It does not make sense to create a wrapped version of an ERC-20 token that is already on Ethereum, but scammers rely on the appearance of legitimacy rather than underlying reality. + + -**Wrapped versions of tokens that aren't ERC-20** ## How do scam tokens work? From 9b1a115af3fc50177de49a1da7eab8a5ddfa4604 Mon Sep 17 00:00:00 2001 From: Ori Pomerantz Date: Mon, 15 May 2023 18:46:50 -0500 Subject: [PATCH 050/186] Update index.md --- .../guides/how-to-id-scam-tokens/index.md | 27 +++++++++++-------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/src/content/guides/how-to-id-scam-tokens/index.md b/src/content/guides/how-to-id-scam-tokens/index.md index 4c8ec15039f..f4e4868d3fb 100644 --- a/src/content/guides/how-to-id-scam-tokens/index.md +++ b/src/content/guides/how-to-id-scam-tokens/index.md @@ -36,15 +36,16 @@ It does not make sense to create a wrapped version of an ERC-20 token that is al The whole point of Ethereum is decentralization. This means that there is no central authority that can confiscate your assets or prevent you from deploying a smart contract. But it also means that scammers can deploy any smart contract they wish. -**smartcontract** + + +[*Smart contracts*](/developers/docs/smart-contracts/) are the programs that run on top of the Ethereum blockchain. Each ERC-20 token, for example, is implemented as a smart contract. + + Specifically, just because Arbitrum deployed a contract that uses the symbol `ARB`, doesn't mean that other people can't also deploy a contract that uses the exact same symbol, or a similar one. And whoever writes the contract gets to set what the contract will do. -### How do they make money from the scam? - -**Uniswap** -**Directing people to their own UI** - ## Appearing legitimate @@ -54,13 +55,17 @@ There are several tricks that scam token creator pull to appear legitimate. They - **Legitimate owners**. Scam tokens often airdrop significant balances to addresses that can be expected to be legitimate holders of the real token. - For example, lets look at `wARB` again. [About 16% of the tokens](https://etherscan.io/token/0xb047c8032b99841713b8e3872f06cf32beb27b82?a=0x1c8db745abe3c8162119b9ef2c13864cd1fdd72f) are held by an address whose public tag is [Arbitrum Foundation: Deployer](https://etherscan.io/address/0x1c8db745abe3c8162119b9ef2c13864cd1fdd72f). This is *not* a fake address, it really is the address that [deployed the real ARB contract on Ethereum mainnet](https://etherscan.io/tx/0x242b50ab4fe9896cb0439cfe6e2321d23feede7eeceb31aa2dbb46fc06ed2670). The ERC-20 balance of an address is part of the ERC-20 contract's storage, and can be specified by the contract to be whatever it wishes. - -**What is a deployer** + For example, lets look at `wARB` again. [About 16% of the tokens](https://etherscan.io/token/0xb047c8032b99841713b8e3872f06cf32beb27b82?a=0x1c8db745abe3c8162119b9ef2c13864cd1fdd72f) are held by an address whose public tag is [Arbitrum Foundation: Deployer](https://etherscan.io/address/0x1c8db745abe3c8162119b9ef2c13864cd1fdd72f). This is *not* a fake address, it really is the address that [deployed the real ARB contract on Ethereum mainnet](https://etherscan.io/tx/0x242b50ab4fe9896cb0439cfe6e2321d23feede7eeceb31aa2dbb46fc06ed2670). The ERC-20 balance of an address is part of the ERC-20 contract's storage, and can be specified by the contract to be whatever the contract developer wishes. -- **Legitimate transfers**. *Legitimate owners wouldn't pay to transfer a scam token around, so if there are transfers it must be legitimate, right?* Wrong. [`Transfer` events](https://eips.ethereum.org/EIPS/eip-20#transfer-1) are emitted by the ERC-20 contract. A scammer can easily write the contract in such a way it will emit those events, with any desired source and destination, at will. +- **Legitimate transfers**. *Legitimate owners wouldn't pay to transfer a scam token around, so if there are transfers it must be legitimate, right?* Wrong. `Transfer` events are emitted by the ERC-20 contract. A scammer can easily write the contract in such a way it will emit those events, with any desired source and destination, at will. -**What is a Transfer event** + + +In theory a program running offchain can view all the transactions that affected a particular ERC-20 contract from its initial deployment, and use that to identify transfers. In practice, doing this would require too much network bandwidth and CPU power. To allow for simpler analysis, ERC-20 contracts are [required by the standard](https://eips.ethereum.org/EIPS/eip-20#transfer-1) to emit events tagged as transfers whenever tokens are transferred from one account to another. [Events](https://docs.alchemy.com/docs/deep-dive-into-eth_getlogs#what-are-logs-or-events) are written to the blockchain and indexed, which makes it a lot easier to obtain and analyse onchain data. + + ## Scammy UI From 8c05c3dbf169849dd447395573c1f610e78eca8e Mon Sep 17 00:00:00 2001 From: Ori Pomerantz Date: Sat, 20 May 2023 09:41:27 -0500 Subject: [PATCH 051/186] Update index.md --- src/content/guides/how-to-id-scam-tokens/index.md | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/content/guides/how-to-id-scam-tokens/index.md b/src/content/guides/how-to-id-scam-tokens/index.md index f4e4868d3fb..52da7600fa2 100644 --- a/src/content/guides/how-to-id-scam-tokens/index.md +++ b/src/content/guides/how-to-id-scam-tokens/index.md @@ -76,14 +76,12 @@ Another trick that scammers pull is to direct users to user interfaces that enti How do you protect yourself? How do you know that the token you're getting is legitimate? The most important rule is **check the contract address**. Legitimate tokens come from legitimate organizations, and you can see the contract addresses on the organization's web site. For example, [for `ARB` you can see the legitimate addresses here](https://docs.arbitrum.foundation/deployment-addresses#token). -**Liquidity pools** - -Additionally, you can look at the size of liquidity pools. Scam tokens typically have tiny liquidity pools, if any, because the scammers don't want to risk real assets. For example, the `ARB` Uniswap pool holds over 300k$ as I'm writing this ([see here for the up to date value](https://info.uniswap.org/#/tokens/0xb50721bcf8d664c30412cfbc6cf7a15145234ad1)) and buying a small amount is not going to change the price: - -**Explain buying on Uniswap** +Another option is to look at liquidity pool size on [Uniswap](https://uniswap.org/), one of the most common token swapping protocols. This protocol works using [liquidity pools](https://docs.uniswap.org/contracts/v2/concepts/core-concepts/pools), into which investors deposit their tokens in hope of a return from trading fees. Scam tokens typically have tiny liquidity pools, if any, because the scammers don't want to risk real assets. For example, the `ARB`/`ETH` Uniswap pool holds about a million dollars as I'm writing this ([see here for the up to date value](https://info.uniswap.org/#/pools/0x755e5a186f0469583bd2e80d1216e02ab88ec6ca)) and buying or selling a small amount is not going to change the price: ![Buying a legitimate token](./uniswap-real.png) -But if I try to buy `vARB`, even a tiny purchase would change the prince by over 90%: +But if I try to buy `wARB`, even a tiny purchase would change the prince by over 90%: ![Buying a scam token](./uniswap-scam.png) + +This is another piece of evidence that shows us `wARB` is not likely to be a legitimate token. From 66d83c8f7d24ab2b619dee02ae3d7ca13ce16c41 Mon Sep 17 00:00:00 2001 From: Ori Pomerantz Date: Sat, 20 May 2023 09:53:21 -0500 Subject: [PATCH 052/186] Update index.md --- .../guides/how-to-id-scam-tokens/index.md | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/content/guides/how-to-id-scam-tokens/index.md b/src/content/guides/how-to-id-scam-tokens/index.md index 52da7600fa2..90e9c17c139 100644 --- a/src/content/guides/how-to-id-scam-tokens/index.md +++ b/src/content/guides/how-to-id-scam-tokens/index.md @@ -6,9 +6,9 @@ lang: en # How to identify scam tokens -One of the most common uses for Ethereum is for a group to create a tradable token, in a sense their own currency. These tokens typically follow a standard, [ERC-20](/developers/docs/standards/tokens/erc-20/). However, anywhere they are legitimate use cases that bring value, there are also criminals who try to steal that value for themselves. In this case, there are two way in which they are likely to do so: +One of the most common uses for Ethereum is for a group to create a tradable token, in a sense their own currency. These tokens typically follow a standard, [ERC-20](/developers/docs/standards/tokens/erc-20/). However, anywhere there are legitimate use cases that bring value, there are also criminals who try to steal that value for themselves. In this case, there are two way in which they are likely to do so: -- Try to sell you *scam tokens*, which look like the legitimate token you want to purchase, but are issued by the scammers and worthless. +- Try to sell you *scam tokens*, which look like the legitimate token you want to purchase, but are issued by the scammers and worth nothing. - Try to direct you into their own user interface, where they attempt to trick you into signing transactions that give them your ETH, your real tokens, etc. To illustrate what scam tokens are, and how to identify them, we are going to look at [`wARB`](https://etherscan.io/token/0xb047c8032b99841713b8e3872f06cf32beb27b82). This token attempts to look like the legitimate [`ARB`](https://etherscan.io/address/0xb50721bcf8d664c30412cfbc6cf7a15145234ad1) token. @@ -17,7 +17,7 @@ To illustrate what scam tokens are, and how to identify them, we are going to lo title="What is `ARB`?" contentPreview=''> -[Arbitrum](https://developer.arbitrum.io/intro/) is an organization that runs and manages an [optimistic rollup](/developers/docs/scaling/optimistic-rollups/). Initially Arbitrum was organized as a for-profit company, but they recently [started to decentralize](https://arbitrumfoundation.medium.com/arbitrum-the-next-phase-of-decentralization-e7f8b37b5226). As part of that process, they issued a tradeable [governance token](/dao/#token-based-membership). +[Arbitrum](https://developer.arbitrum.io/intro/) is an organization that develops and manages [optimistic rollups](/developers/docs/scaling/optimistic-rollups/). Initially Arbitrum was organized as a for-profit company, but they recently [started to decentralize](https://arbitrumfoundation.medium.com/arbitrum-the-next-phase-of-decentralization-e7f8b37b5226). As part of that process, they issued a tradeable [governance token](/dao/#token-based-membership). @@ -27,7 +27,7 @@ contentPreview=''> There is a convention in Ethereum that when an asset is not ERC-20 compliant we create a "wrapped" version of it with the name starting with `w`. So, for example, we have [`wBTC` for Bitcoin](https://wbtc.network/) and [`wETH` for Ether](https://cointelegraph.com/news/what-is-wrapped-ethereum-weth-and-how-does-it-work). -It does not make sense to create a wrapped version of an ERC-20 token that is already on Ethereum, but scammers rely on the appearance of legitimacy rather than underlying reality. +It does not make sense to create a wrapped version of an ERC-20 token that is already on Ethereum. But scammers rely on the appearance of legitimacy rather than the underlying reality. @@ -40,11 +40,11 @@ The whole point of Ethereum is decentralization. This means that there is no cen title="What are smart contracts?" contentPreview=''> -[*Smart contracts*](/developers/docs/smart-contracts/) are the programs that run on top of the Ethereum blockchain. Each ERC-20 token, for example, is implemented as a smart contract. +[*Smart contracts*](/developers/docs/smart-contracts/) are the programs that run on top of the Ethereum blockchain. Every ERC-20 token, for example, is implemented as a smart contract. -Specifically, just because Arbitrum deployed a contract that uses the symbol `ARB`, doesn't mean that other people can't also deploy a contract that uses the exact same symbol, or a similar one. And whoever writes the contract gets to set what the contract will do. +Specifically, Arbitrum deployed a contract that uses the symbol `ARB`. But that doesn't stop other people from also deploying a contract that uses the exact same symbol, or a similar one. Whoever writes the contract gets to set what the contract will do. ## Appearing legitimate @@ -55,7 +55,9 @@ There are several tricks that scam token creator pull to appear legitimate. They - **Legitimate owners**. Scam tokens often airdrop significant balances to addresses that can be expected to be legitimate holders of the real token. - For example, lets look at `wARB` again. [About 16% of the tokens](https://etherscan.io/token/0xb047c8032b99841713b8e3872f06cf32beb27b82?a=0x1c8db745abe3c8162119b9ef2c13864cd1fdd72f) are held by an address whose public tag is [Arbitrum Foundation: Deployer](https://etherscan.io/address/0x1c8db745abe3c8162119b9ef2c13864cd1fdd72f). This is *not* a fake address, it really is the address that [deployed the real ARB contract on Ethereum mainnet](https://etherscan.io/tx/0x242b50ab4fe9896cb0439cfe6e2321d23feede7eeceb31aa2dbb46fc06ed2670). The ERC-20 balance of an address is part of the ERC-20 contract's storage, and can be specified by the contract to be whatever the contract developer wishes. + For example, lets look at `wARB` again. [About 16% of the tokens](https://etherscan.io/token/0xb047c8032b99841713b8e3872f06cf32beb27b82?a=0x1c8db745abe3c8162119b9ef2c13864cd1fdd72f) are held by an address whose public tag is [Arbitrum Foundation: Deployer](https://etherscan.io/address/0x1c8db745abe3c8162119b9ef2c13864cd1fdd72f). This is *not* a fake address, it really is the address that [deployed the real ARB contract on Ethereum mainnet](https://etherscan.io/tx/0x242b50ab4fe9896cb0439cfe6e2321d23feede7eeceb31aa2dbb46fc06ed2670). + + Because the ERC-20 balance of an address is part of the ERC-20 contract's storage, it can be specified by the contract to be whatever the contract developer wishes. It is also possible for a contract to forbid transfers so the legitimate users won't be able to get rid of those scam tokens. - **Legitimate transfers**. *Legitimate owners wouldn't pay to transfer a scam token around, so if there are transfers it must be legitimate, right?* Wrong. `Transfer` events are emitted by the ERC-20 contract. A scammer can easily write the contract in such a way it will emit those events, with any desired source and destination, at will. @@ -69,7 +71,7 @@ In theory a program running offchain can view all the transactions that affected ## Scammy UI -Another trick that scammers pull is to direct users to user interfaces that entice them to sign bad transactions. For example, [this scam token](https://optimistic.etherscan.io/token/0x15992f382d8c46d667b10dc8456dc36651af1452) tried to direct users to `https://op-claim.xyz`. This probably used to host a scam, but since then the scammer must have given up and stopped paying for web hosting. +Another trick that scammers pull is to direct users to user interfaces that entice them to sign bad transactions. For example, [this scam token](https://optimistic.etherscan.io/token/0x15992f382d8c46d667b10dc8456dc36651af1452) tried to direct users to `https://op-claim.xyz`. This link probably used to host a scam. It doesn't anymore, probably because the scammer has given up and stopped paying for web hosting. ## Conclusion: What can you trust? From 36a26c65d321ca05c8201449f414933ffb0a90d2 Mon Sep 17 00:00:00 2001 From: Ori Pomerantz Date: Sat, 20 May 2023 10:21:06 -0500 Subject: [PATCH 053/186] Formatting fix --- src/content/guides/how-to-id-scam-tokens/index.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/content/guides/how-to-id-scam-tokens/index.md b/src/content/guides/how-to-id-scam-tokens/index.md index 90e9c17c139..e0c90983d31 100644 --- a/src/content/guides/how-to-id-scam-tokens/index.md +++ b/src/content/guides/how-to-id-scam-tokens/index.md @@ -14,7 +14,7 @@ One of the most common uses for Ethereum is for a group to create a tradable tok To illustrate what scam tokens are, and how to identify them, we are going to look at [`wARB`](https://etherscan.io/token/0xb047c8032b99841713b8e3872f06cf32beb27b82). This token attempts to look like the legitimate [`ARB`](https://etherscan.io/address/0xb50721bcf8d664c30412cfbc6cf7a15145234ad1) token. [Arbitrum](https://developer.arbitrum.io/intro/) is an organization that develops and manages [optimistic rollups](/developers/docs/scaling/optimistic-rollups/). Initially Arbitrum was organized as a for-profit company, but they recently [started to decentralize](https://arbitrumfoundation.medium.com/arbitrum-the-next-phase-of-decentralization-e7f8b37b5226). As part of that process, they issued a tradeable [governance token](/dao/#token-based-membership). @@ -22,10 +22,10 @@ contentPreview=''> -There is a convention in Ethereum that when an asset is not ERC-20 compliant we create a "wrapped" version of it with the name starting with `w`. So, for example, we have [`wBTC` for Bitcoin](https://wbtc.network/) and [`wETH` for Ether](https://cointelegraph.com/news/what-is-wrapped-ethereum-weth-and-how-does-it-work). +There is a convention in Ethereum that when an asset is not ERC-20 compliant we create a "wrapped" version of it with the name starting with w. So, for example, we have [wBTC for Bitcoin](https://wbtc.network/) and [wETH for Ether](https://cointelegraph.com/news/what-is-wrapped-ethereum-weth-and-how-does-it-work). It does not make sense to create a wrapped version of an ERC-20 token that is already on Ethereum. But scammers rely on the appearance of legitimacy rather than the underlying reality. @@ -40,7 +40,7 @@ The whole point of Ethereum is decentralization. This means that there is no cen title="What are smart contracts?" contentPreview=''> -[*Smart contracts*](/developers/docs/smart-contracts/) are the programs that run on top of the Ethereum blockchain. Every ERC-20 token, for example, is implemented as a smart contract. +[Smart contracts](/developers/docs/smart-contracts/) are the programs that run on top of the Ethereum blockchain. Every ERC-20 token, for example, is implemented as a smart contract. From 734fb3405b65b4e271533077ee424a6596dba994 Mon Sep 17 00:00:00 2001 From: Ori Pomerantz Date: Wed, 24 May 2023 20:37:48 -0500 Subject: [PATCH 054/186] Apply suggestions from code review Co-authored-by: Paul Wackerow <54227730+wackerow@users.noreply.github.com> --- .../guides/how-to-id-scam-tokens/index.md | 20 +++++++++---------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/src/content/guides/how-to-id-scam-tokens/index.md b/src/content/guides/how-to-id-scam-tokens/index.md index e0c90983d31..bb1c2c24df7 100644 --- a/src/content/guides/how-to-id-scam-tokens/index.md +++ b/src/content/guides/how-to-id-scam-tokens/index.md @@ -4,7 +4,7 @@ description: What are scam tokens, how do they make themselves look legitimate, lang: en --- -# How to identify scam tokens +# How to identify scam tokens {#how-to-identify-scam-tokens} One of the most common uses for Ethereum is for a group to create a tradable token, in a sense their own currency. These tokens typically follow a standard, [ERC-20](/developers/docs/standards/tokens/erc-20/). However, anywhere there are legitimate use cases that bring value, there are also criminals who try to steal that value for themselves. In this case, there are two way in which they are likely to do so: @@ -25,14 +25,14 @@ contentPreview=''> title="Why is the scam token called wARB?" contentPreview=''> -There is a convention in Ethereum that when an asset is not ERC-20 compliant we create a "wrapped" version of it with the name starting with w. So, for example, we have [wBTC for Bitcoin](https://wbtc.network/) and [wETH for Ether](https://cointelegraph.com/news/what-is-wrapped-ethereum-weth-and-how-does-it-work). +There is a convention in Ethereum that when an asset is not ERC-20 compliant we create a "wrapped" version of it with the name starting with "w". So, for example, we have wBTC for bitcoin and wETH for ether. -It does not make sense to create a wrapped version of an ERC-20 token that is already on Ethereum. But scammers rely on the appearance of legitimacy rather than the underlying reality. +It does not make sense to create a wrapped version of an ERC-20 token that is already on Ethereum, but scammers rely on the appearance of legitimacy rather than the underlying reality. -## How do scam tokens work? +## How do scam tokens work? {#how-do-scam-tokens-work} The whole point of Ethereum is decentralization. This means that there is no central authority that can confiscate your assets or prevent you from deploying a smart contract. But it also means that scammers can deploy any smart contract they wish. @@ -40,14 +40,13 @@ The whole point of Ethereum is decentralization. This means that there is no cen title="What are smart contracts?" contentPreview=''> -[Smart contracts](/developers/docs/smart-contracts/) are the programs that run on top of the Ethereum blockchain. Every ERC-20 token, for example, is implemented as a smart contract. +Smart contracts are the programs that run on top of the Ethereum blockchain. Every ERC-20 token, for example, is implemented as a smart contract. Specifically, Arbitrum deployed a contract that uses the symbol `ARB`. But that doesn't stop other people from also deploying a contract that uses the exact same symbol, or a similar one. Whoever writes the contract gets to set what the contract will do. - -## Appearing legitimate +## Appearing legitimate {#appearing-legitimate} There are several tricks that scam token creator pull to appear legitimate. They can do those, because they write the smart contract that implements the scam token. This means it can produce any effect they want from that contract. @@ -65,14 +64,13 @@ There are several tricks that scam token creator pull to appear legitimate. They title="What are `Transfer` events?" contentPreview=''> -In theory a program running offchain can view all the transactions that affected a particular ERC-20 contract from its initial deployment, and use that to identify transfers. In practice, doing this would require too much network bandwidth and CPU power. To allow for simpler analysis, ERC-20 contracts are [required by the standard](https://eips.ethereum.org/EIPS/eip-20#transfer-1) to emit events tagged as transfers whenever tokens are transferred from one account to another. [Events](https://docs.alchemy.com/docs/deep-dive-into-eth_getlogs#what-are-logs-or-events) are written to the blockchain and indexed, which makes it a lot easier to obtain and analyse onchain data. +In theory a program running off-chain can view all the transactions that affected a particular ERC-20 contract from its initial deployment, and use that to identify transfers. In practice, doing this would require too much network bandwidth and CPU power. To allow for simpler analysis, ERC-20 contracts are required by the standard to emit events tagged as transfers whenever tokens are transferred from one account to another. Events are written to the blockchain and indexed, which makes it a lot easier to obtain and analyze on-chain data. -## Scammy UI - -Another trick that scammers pull is to direct users to user interfaces that entice them to sign bad transactions. For example, [this scam token](https://optimistic.etherscan.io/token/0x15992f382d8c46d667b10dc8456dc36651af1452) tried to direct users to `https://op-claim.xyz`. This link probably used to host a scam. It doesn't anymore, probably because the scammer has given up and stopped paying for web hosting. +## Scammy appearing website {#scammy-appearing-website} +Another trick that scammers pull is to direct users to user interfaces that entice them to sign bad transactions. For example, one scam token ([view on explorer](https://optimistic.etherscan.io/token/0x15992f382d8c46d667b10dc8456dc36651af1452)) tried to direct users to `https://op-claim.xyz`. This link probably used to host a scam. It doesn't anymore, probably because the scammer has given up and stopped paying for web hosting. ## Conclusion: What can you trust? From 7a5fe4cca3a0e176e42f64d4e86a42ed0ee43096 Mon Sep 17 00:00:00 2001 From: Ori Pomerantz Date: Wed, 24 May 2023 20:38:34 -0500 Subject: [PATCH 055/186] Update src/content/guides/how-to-id-scam-tokens/index.md Co-authored-by: Paul Wackerow <54227730+wackerow@users.noreply.github.com> --- src/content/guides/how-to-id-scam-tokens/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/guides/how-to-id-scam-tokens/index.md b/src/content/guides/how-to-id-scam-tokens/index.md index bb1c2c24df7..034c56caf1c 100644 --- a/src/content/guides/how-to-id-scam-tokens/index.md +++ b/src/content/guides/how-to-id-scam-tokens/index.md @@ -17,7 +17,7 @@ To illustrate what scam tokens are, and how to identify them, we are going to lo title="What is ARB?" contentPreview=''> -[Arbitrum](https://developer.arbitrum.io/intro/) is an organization that develops and manages [optimistic rollups](/developers/docs/scaling/optimistic-rollups/). Initially Arbitrum was organized as a for-profit company, but they recently [started to decentralize](https://arbitrumfoundation.medium.com/arbitrum-the-next-phase-of-decentralization-e7f8b37b5226). As part of that process, they issued a tradeable [governance token](/dao/#token-based-membership). +Arbitrum is an organization that develops and manages optimistic rollups. Initially Arbitrum was organized as a for-profit company, but they recently started to decentralize. As part of that process, they issued a tradeable governance token. From 22272a9b697174fbf0479b9ad623264f6b772f47 Mon Sep 17 00:00:00 2001 From: Ori Pomerantz Date: Wed, 24 May 2023 20:52:41 -0500 Subject: [PATCH 056/186] Update index.md --- src/content/guides/how-to-id-scam-tokens/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/content/guides/how-to-id-scam-tokens/index.md b/src/content/guides/how-to-id-scam-tokens/index.md index 034c56caf1c..8c83cf8eaf0 100644 --- a/src/content/guides/how-to-id-scam-tokens/index.md +++ b/src/content/guides/how-to-id-scam-tokens/index.md @@ -17,7 +17,7 @@ To illustrate what scam tokens are, and how to identify them, we are going to lo title="What is ARB?" contentPreview=''> -Arbitrum is an organization that develops and manages optimistic rollups. Initially Arbitrum was organized as a for-profit company, but they recently started to decentralize. As part of that process, they issued a tradeable governance token. +Arbitrum is an organization that develops and manages optimistic rollups. Initially Arbitrum was organized as a for-profit company, but then took steps to decentralize. As part of that process, they issued a tradeable governance token. @@ -61,7 +61,7 @@ There are several tricks that scam token creator pull to appear legitimate. They - **Legitimate transfers**. *Legitimate owners wouldn't pay to transfer a scam token around, so if there are transfers it must be legitimate, right?* Wrong. `Transfer` events are emitted by the ERC-20 contract. A scammer can easily write the contract in such a way it will emit those events, with any desired source and destination, at will. In theory a program running off-chain can view all the transactions that affected a particular ERC-20 contract from its initial deployment, and use that to identify transfers. In practice, doing this would require too much network bandwidth and CPU power. To allow for simpler analysis, ERC-20 contracts are required by the standard to emit events tagged as transfers whenever tokens are transferred from one account to another. Events are written to the blockchain and indexed, which makes it a lot easier to obtain and analyze on-chain data. From ea9c429847f6aa7ba8b1b806ced504206de3879e Mon Sep 17 00:00:00 2001 From: Ori Pomerantz Date: Wed, 24 May 2023 21:21:07 -0500 Subject: [PATCH 057/186] Update index.md --- .../guides/how-to-id-scam-tokens/index.md | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/content/guides/how-to-id-scam-tokens/index.md b/src/content/guides/how-to-id-scam-tokens/index.md index 8c83cf8eaf0..d556c81df19 100644 --- a/src/content/guides/how-to-id-scam-tokens/index.md +++ b/src/content/guides/how-to-id-scam-tokens/index.md @@ -72,16 +72,20 @@ In theory a program running off-chain can view all the transactions that affecte Another trick that scammers pull is to direct users to user interfaces that entice them to sign bad transactions. For example, one scam token ([view on explorer](https://optimistic.etherscan.io/token/0x15992f382d8c46d667b10dc8456dc36651af1452)) tried to direct users to `https://op-claim.xyz`. This link probably used to host a scam. It doesn't anymore, probably because the scammer has given up and stopped paying for web hosting. -## Conclusion: What can you trust? +## How can you protect yourself? {#how-can-you-protect-yourself} -How do you protect yourself? How do you know that the token you're getting is legitimate? The most important rule is **check the contract address**. Legitimate tokens come from legitimate organizations, and you can see the contract addresses on the organization's web site. For example, [for `ARB` you can see the legitimate addresses here](https://docs.arbitrum.foundation/deployment-addresses#token). +1. **Check the contract address**. Legitimate tokens come from legitimate organizations, and you can see the contract addresses on the organization's web site. For example, [for `ARB` you can see the legitimate addresses here](https://docs.arbitrum.foundation/deployment-addresses#token). -Another option is to look at liquidity pool size on [Uniswap](https://uniswap.org/), one of the most common token swapping protocols. This protocol works using [liquidity pools](https://docs.uniswap.org/contracts/v2/concepts/core-concepts/pools), into which investors deposit their tokens in hope of a return from trading fees. Scam tokens typically have tiny liquidity pools, if any, because the scammers don't want to risk real assets. For example, the `ARB`/`ETH` Uniswap pool holds about a million dollars as I'm writing this ([see here for the up to date value](https://info.uniswap.org/#/pools/0x755e5a186f0469583bd2e80d1216e02ab88ec6ca)) and buying or selling a small amount is not going to change the price: +2. **Real tokens have liquidity**. Another option is to look at liquidity pool size on [Uniswap](https://uniswap.org/), one of the most common token swapping protocols. This protocol works using [liquidity pools](https://docs.uniswap.org/contracts/v2/concepts/core-concepts/pools), into which investors deposit their tokens in hope of a return from trading fees. Scam tokens typically have tiny liquidity pools, if any, because the scammers don't want to risk real assets. For example, the `ARB`/`ETH` Uniswap pool holds about a million dollars as I'm writing this ([see here for the up to date value](https://info.uniswap.org/#/pools/0x755e5a186f0469583bd2e80d1216e02ab88ec6ca)) and buying or selling a small amount is not going to change the price: -![Buying a legitimate token](./uniswap-real.png) + ![Buying a legitimate token](./uniswap-real.png) -But if I try to buy `wARB`, even a tiny purchase would change the prince by over 90%: + But if I try to buy `wARB`, even a tiny purchase would change the prince by over 90%: -![Buying a scam token](./uniswap-scam.png) + ![Buying a scam token](./uniswap-scam.png) -This is another piece of evidence that shows us `wARB` is not likely to be a legitimate token. + This is another piece of evidence that shows us `wARB` is not likely to be a legitimate token. + +3. **Look in Etherscan**. A lot of scam tokens have already been identified as such, and are [marked in Etherscan](https://info.etherscan.com/etherscan-token-reputation/). While Etherscan is not authoritative source of truth (it is the nature of decentralized networks that there can't be an authoritative source for legitimacy), tokens that are identified by Etherscan as scams are likely to be scams. + + ![Scam token in Etherscan](./etherscan-scam.png) From 66c5eddeaaa11bfc87b26161881ddab254508fc0 Mon Sep 17 00:00:00 2001 From: Ori Pomerantz Date: Wed, 24 May 2023 21:31:00 -0500 Subject: [PATCH 058/186] Add files via upload --- .../how-to-id-scam-tokens/etherscan-scam.png | Bin 0 -> 216866 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/content/guides/how-to-id-scam-tokens/etherscan-scam.png diff --git a/src/content/guides/how-to-id-scam-tokens/etherscan-scam.png b/src/content/guides/how-to-id-scam-tokens/etherscan-scam.png new file mode 100644 index 0000000000000000000000000000000000000000..5a51583f7474d041efac01bdcc47abe59261b516 GIT binary patch literal 216866 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

pwbA$buwR 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

P`Hbq;qC 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 Qe*j Date: Wed, 24 May 2023 22:22:53 -0500 Subject: [PATCH 059/186] Update index.md --- src/content/guides/how-to-id-scam-tokens/index.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/content/guides/how-to-id-scam-tokens/index.md b/src/content/guides/how-to-id-scam-tokens/index.md index d556c81df19..0a09fbca786 100644 --- a/src/content/guides/how-to-id-scam-tokens/index.md +++ b/src/content/guides/how-to-id-scam-tokens/index.md @@ -89,3 +89,13 @@ Another trick that scammers pull is to direct users to user interfaces that enti 3. **Look in Etherscan**. A lot of scam tokens have already been identified as such, and are [marked in Etherscan](https://info.etherscan.com/etherscan-token-reputation/). While Etherscan is not authoritative source of truth (it is the nature of decentralized networks that there can't be an authoritative source for legitimacy), tokens that are identified by Etherscan as scams are likely to be scams. ![Scam token in Etherscan](./etherscan-scam.png) + + +## Conclusion {#conclusion} + +As long as there is value in the world, there are going to be scammers who attempt to steal it for themselves, and in a decentralized world there is nobody to protect you except for yourself. Hopefully, you remember these points to help tell the legitimate tokens from the scams: + +- Scam tokens impersonate legitimate tokens, they can use the same name, symbol, etc. +- Scam tokens *cannot* use the same contract address. +- The best source for the address of the legitimate token is the organization whose token it is. +- Failing that, you can use popular, trusted applications such as [Uniswap](https://app.uniswap.org/#/swap) and [Etherscan](https://etherscan.io/). From 7e32e0267f8990d1ef50a5493f0fd96df82851d5 Mon Sep 17 00:00:00 2001 From: Pablo Pettinari Date: Thu, 25 May 2023 15:28:39 -0300 Subject: [PATCH 060/186] remove hover color and make border color transparent to avoid flickering --- src/@chakra-ui/gatsby-plugin/components/Input.ts | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/@chakra-ui/gatsby-plugin/components/Input.ts b/src/@chakra-ui/gatsby-plugin/components/Input.ts index b0c7513a047..93f05b13a26 100644 --- a/src/@chakra-ui/gatsby-plugin/components/Input.ts +++ b/src/@chakra-ui/gatsby-plugin/components/Input.ts @@ -30,7 +30,7 @@ const baseStyle = definePartsStyle((props) => { _focusVisible: { outlineColor: fc, outlineOffset: "-1px", - border: "none", + borderColor: "transparent", boxShadow: "none", }, _hover: null, // override default @@ -46,9 +46,6 @@ const baseStyle = definePartsStyle((props) => { opacity: 1, }, "&:not(:disabled)": { - _hover: { - color: "primary", - }, _active: { bg: "backgroundHighlight", borderColor: "primaryHighContrast", From b0a2b830142301d1260d4430fdd1958e8be79311 Mon Sep 17 00:00:00 2001 From: Pablo Pettinari Date: Thu, 25 May 2023 15:28:59 -0300 Subject: [PATCH 061/186] add input disabled variant --- src/components/Input/Input.stories.tsx | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/components/Input/Input.stories.tsx b/src/components/Input/Input.stories.tsx index 17fbe872e9c..b0e3ba5f33b 100644 --- a/src/components/Input/Input.stories.tsx +++ b/src/components/Input/Input.stories.tsx @@ -45,6 +45,11 @@ export const ElementVariations: Story = { } placeholder="input text" /> } placeholder="input text" /> + } + placeholder="input text" + isDisabled + /> ), } From 2c2aaad79baf59eb3692fa4cb90ecc5a06b777cc Mon Sep 17 00:00:00 2001 From: Pablo Pettinari Date: Thu, 25 May 2023 16:44:17 -0300 Subject: [PATCH 062/186] fixes related to new Select component after merge update --- src/components/EthExchanges/index.tsx | 17 +- .../FindWallet/WalletTable/index.tsx | 199 +++++------------- .../FindWallet/WalletTable/useWalletTable.tsx | 3 +- src/components/Layer2/Layer2Onboard.tsx | 48 ++--- .../Staking/StakingLaunchpadWidget.tsx | 11 +- 5 files changed, 68 insertions(+), 210 deletions(-) diff --git a/src/components/EthExchanges/index.tsx b/src/components/EthExchanges/index.tsx index 17443bf9d0d..51032d3bf69 100644 --- a/src/components/EthExchanges/index.tsx +++ b/src/components/EthExchanges/index.tsx @@ -1,11 +1,11 @@ import React from "react" -import { Box, Center, chakra, Flex, Heading, Text } from "@chakra-ui/react" +import { Box, Center, Flex, Heading, Text } from "@chakra-ui/react" import CardList from "../CardList" import Link from "../Link" import Emoji from "../Emoji" import Translation from "../Translation" -import { StyledSelect as Select } from "../SharedStyledComponents" +import Select from "../Select" import { ChildOnlyProp } from "../../types" import { useEthExchanges } from "./use-eth-exchanges" @@ -43,12 +43,6 @@ const EmptyStateText = (props: ChildOnlyProp) => ( ) -const StyledSelect = chakra(Select, { - baseStyle: { - maxW: "container.sm", - }, -}) - const NoResults = ({ children }) => ( @@ -96,13 +90,12 @@ const EthExchanges = () => { - {!hasSelectedCountry && ( diff --git a/src/components/FindWallet/WalletTable/index.tsx b/src/components/FindWallet/WalletTable/index.tsx index 6f0b3f09a97..6333d2d1a7f 100644 --- a/src/components/FindWallet/WalletTable/index.tsx +++ b/src/components/FindWallet/WalletTable/index.tsx @@ -2,12 +2,10 @@ import React, { ReactNode } from "react" import { GatsbyImage } from "gatsby-plugin-image" import { useTranslation } from "gatsby-plugin-react-i18next" -import Select from "react-select" import { MdExpandLess, MdExpandMore } from "react-icons/md" import { FaDiscord, FaGlobe, FaTwitter } from "react-icons/fa" import { Box, - chakra, Flex, FlexProps, forwardRef, @@ -27,6 +25,7 @@ import { // Components import Link, { IProps as LinkProps } from "../../Link" import { WalletMoreInfo } from "./WalletMoreInfo" +import Select from "../../Select" // Icons import { @@ -35,7 +34,11 @@ import { } from "../../icons/staking" // Utils -import { useWalletTable } from "./useWalletTable" +import { + useWalletTable, + type ColumnClassName, + type DropdownOption, +} from "./useWalletTable" import { trackCustomEvent } from "../../../utils/matomo" import { getImage } from "../../../utils/image" import { WalletData } from "../../../data/wallets/wallet-data" @@ -139,91 +142,6 @@ const Wallet = forwardRef((props, ref) => ( /> )) -const ChakraSelect = chakra((props: { className?: string }) => ( - { + updateDropdown(selectedOption, setFn, col) + }} + defaultValue={featureSelect} + /> + + ))} {filteredWallets.map((wallet, idx) => { const deviceLabels: Array = [] diff --git a/src/components/FindWallet/WalletTable/useWalletTable.tsx b/src/components/FindWallet/WalletTable/useWalletTable.tsx index 5a24ede7496..7c2ba903c30 100644 --- a/src/components/FindWallet/WalletTable/useWalletTable.tsx +++ b/src/components/FindWallet/WalletTable/useWalletTable.tsx @@ -1,4 +1,3 @@ -import * as React from "react" import { Icon } from "@chakra-ui/react" import { useState } from "react" import { WalletTableProps } from "." @@ -32,7 +31,7 @@ export interface DropdownOption { icon: typeof Icon } -type ColumnClassName = "firstCol" | "secondCol" | "thirdCol" +export type ColumnClassName = "firstCol" | "secondCol" | "thirdCol" type UseWalletTableProps = Pick & { t: (x: string) => string diff --git a/src/components/Layer2/Layer2Onboard.tsx b/src/components/Layer2/Layer2Onboard.tsx index d27cdf1208e..61a8cedbbb7 100644 --- a/src/components/Layer2/Layer2Onboard.tsx +++ b/src/components/Layer2/Layer2Onboard.tsx @@ -4,13 +4,11 @@ import React, { useState } from "react" import { useTranslation } from "gatsby-plugin-react-i18next" import { Box, - chakra, Flex, Heading, Img, ListItem, SimpleGrid, - Stack, Text, UnorderedList, } from "@chakra-ui/react" @@ -47,19 +45,6 @@ const TwoColumnContent = (props: ChildOnlyProp) => ( /> ) -const ChakraSelect = chakra((props: { className?: string }) => ( - {!hasSelectedCountry && ( diff --git a/src/components/FindWallet/WalletTable/index.tsx b/src/components/FindWallet/WalletTable/index.tsx index 0256775485e..f8e7be0751a 100644 --- a/src/components/FindWallet/WalletTable/index.tsx +++ b/src/components/FindWallet/WalletTable/index.tsx @@ -2,10 +2,12 @@ import React, { ReactNode } from "react" import { GatsbyImage } from "gatsby-plugin-image" import { useTranslation } from "gatsby-plugin-react-i18next" +import Select from "react-select" import { MdExpandLess, MdExpandMore } from "react-icons/md" import { FaDiscord, FaGlobe, FaTwitter } from "react-icons/fa" import { Box, + chakra, Flex, FlexProps, forwardRef, @@ -25,7 +27,6 @@ import { // Components import Link, { IProps as LinkProps } from "../../Link" import { WalletMoreInfo } from "./WalletMoreInfo" -import Select from "../../Select" // Icons import { @@ -34,11 +35,7 @@ import { } from "../../icons/staking" // Utils -import { - useWalletTable, - type ColumnClassName, - type DropdownOption, -} from "./useWalletTable" +import { useWalletTable } from "./useWalletTable" import { trackCustomEvent } from "../../../utils/matomo" import { getImage } from "../../../utils/image" import { WalletData } from "../../../data/wallets/wallet-data" @@ -142,6 +139,91 @@ const Wallet = forwardRef((props, ref) => ( /> )) +const ChakraSelect = chakra((props: { className?: string }) => ( + { - updateDropdown(selectedOption, setFn, col) - }} - defaultValue={featureSelect} - /> - - ))} + + + {t("page-find-wallet-choose-features")} + + { + updateDropdown(selectedOption, setFirstFeatureSelect, firstCol) + }} + defaultValue={firstFeatureSelect} + isSearchable={false} + /> + + + { + updateDropdown(selectedOption, setSecondFeatureSelect, secondCol) + }} + defaultValue={secondFeatureSelect} + isSearchable={false} + /> + + + { + updateDropdown(selectedOption, setThirdFeatureSelect, thirdCol) + }} + defaultValue={thirdFeatureSelect} + isSearchable={false} + /> + {filteredWallets.map((wallet, idx) => { const deviceLabels: Array = [] diff --git a/src/components/Layer2/Layer2Onboard.tsx b/src/components/Layer2/Layer2Onboard.tsx index 61a8cedbbb7..7cb438e955d 100644 --- a/src/components/Layer2/Layer2Onboard.tsx +++ b/src/components/Layer2/Layer2Onboard.tsx @@ -4,11 +4,13 @@ import React, { useState } from "react" import { useTranslation } from "gatsby-plugin-react-i18next" import { Box, + chakra, Flex, Heading, Img, ListItem, SimpleGrid, + Stack, Text, UnorderedList, } from "@chakra-ui/react" @@ -17,7 +19,7 @@ import { import ButtonLink from "../ButtonLink" import Link from "../Link" import Translation from "../Translation" -import Select from "../Select" +import { StyledSelect as Select } from "../SharedStyledComponents" // Data import { @@ -45,6 +47,19 @@ const TwoColumnContent = (props: ChildOnlyProp) => ( /> ) +const ChakraSelect = chakra((props: { className?: string }) => ( + { - if (selectedOption === "") return setSelectedL2(undefined) + onChange={(selectedOption: Layer2Option) => { trackCustomEvent({ eventCategory: `Selected layer 2 to bridge to`, eventAction: `Clicked`, - eventName: `${selectedOption?.l2.name} bridge selected`, - eventValue: `${selectedOption?.l2.name}`, + eventName: `${selectedOption.l2.name} bridge selected`, + eventValue: `${selectedOption.l2.name}`, }) - setSelectedL2(selectedOption?.l2) + setSelectedL2(selectedOption.l2) }} + placeholder={t("layer-2-onboard-wallet-input-placeholder")} /> - + {/* RightDescription */}

@@ -260,26 +288,24 @@ const Layer2Onboard: React.FC = ({ {/* RightSelect */} - From a75e2d52a68163213831b197d1de1bd44573a537 Mon Sep 17 00:00:00 2001 From: Pablo Pettinari Date: Fri, 23 Jun 2023 16:51:10 -0300 Subject: [PATCH 142/186] migrate run a node page --- src/pages/run-a-node.tsx | 673 +++++++++++++++++---------------------- 1 file changed, 289 insertions(+), 384 deletions(-) diff --git a/src/pages/run-a-node.tsx b/src/pages/run-a-node.tsx index 3d01c4e7873..a40f05c3548 100644 --- a/src/pages/run-a-node.tsx +++ b/src/pages/run-a-node.tsx @@ -1,10 +1,19 @@ // Libraries -import React, { ReactNode } from "react" +import React, { ComponentProps, ReactNode } from "react" import { graphql, PageProps } from "gatsby" import { GatsbyImage } from "gatsby-plugin-image" import { useTranslation } from "gatsby-plugin-react-i18next" -import styled from "@emotion/styled" -import { type Icon as ChakraIcon } from "@chakra-ui/react" +import { + Box, + BoxProps, + Center, + CenterProps, + Flex, + FlexProps, + Img, + Text, + type Icon as ChakraIcon, +} from "@chakra-ui/react" // Assets import Dappnode from "../assets/run-a-node/dappnode.svg" @@ -26,368 +35,248 @@ import PageHero from "../components/PageHero" import PageMetadata from "../components/PageMetadata" import Translation from "../components/Translation" import { - Content, Divider, - Page, InfoGrid, Width60, Width40, } from "../components/SharedStyledComponents" import ExpandableCard from "../components/ExpandableCard" import ExpandableInfo from "../components/ExpandableInfo" -import Emoji from "../components/OldEmoji" +import Emoji from "../components/Emoji" import Link from "../components/Link" import ButtonLink from "../components/ButtonLink" import FeedbackCard from "../components/FeedbackCard" -import Icon from "../components/Icon" // Utils -import { TranslationKey } from "../utils/translations" -import { scrollIntoView } from "../utils/scrollIntoView" import { getImage } from "../utils/image" -// Styles -const GappedPage = styled(Page)` - gap: 4rem; - @media (max-width: ${({ theme }) => theme.breakpoints.l}) { - gap: 3rem; - } - * { - scroll-margin-top: 5.5rem; - } -` - -const GappedContent = styled(Content)` - display: flex; - flex-direction: column; - gap: 3rem; - padding: 1rem 4rem; - @media (max-width: ${({ theme }) => theme.breakpoints.l}) { - gap: 2rem; - padding: 1rem 2rem; - } - @media (max-width: ${({ theme }) => theme.breakpoints.m}) { - padding: 1rem 0; - } -` - -const HeroContainer = styled.div` - background: ${({ theme }) => theme.colors.runNodeGradient}; - width: 100%; -` - -const Hero = styled(PageHero)` - padding-bottom: 2rem; -` - -const TwoColumnContent = styled.div` - display: flex; - justify-content: space-between; - align-items: center; - margin-bottom: 2rem; - gap: 2rem; - @media (max-width: ${({ theme }) => theme.breakpoints.l}) { - flex-direction: column; - align-items: flex-start; - margin-left: 0rem; - margin-right: 0rem; - } -` - -const SplitContent = styled.div` - display: flex; - align-items: center; - gap: 2rem; - - @media (max-width: ${({ theme }) => theme.breakpoints.m}) { - width: 100%; - flex-direction: column-reverse; - } -` - -const Column = styled.div` - flex: 1; -` - -const ResponsiveButtonLink = styled(ButtonLink)` - gap: 1rem; - padding-left: 2rem; - padding-right: 2rem; - - &:hover { - svg { - fill: ${({ theme }) => theme.colors.buttonColor}; - transform: scale(1.15); - transition: 0.1s; - } - } - @media (max-width: ${({ theme }) => theme.breakpoints.s}) { - width: 100%; - justify-content: center; - } -` - -const Highlight = styled(Content)<{ backgroundColor: string }>` - display: flex; - justify-content: center; - align-items: center; - background: ${({ theme, backgroundColor }) => theme.colors[backgroundColor]}; - border: 1px solid #dadada; - box-sizing: border-box; - border-radius: 4px; - padding: 2rem 6rem; - color: ${({ theme }) => theme.colors.text}; - position: relative; - isolation: isolate; - svg { - margin: 0 0 0 2rem; - } - &:nth-of-type(even) { - flex-direction: row-reverse; - svg { - margin: 0 2rem 0 0; - } - } - @media (max-width: ${({ theme }) => theme.breakpoints.m}) { - padding: 2rem; - flex-direction: column-reverse; - &:nth-of-type(even) { - flex-direction: column-reverse; - svg { - margin: 0 0 2rem; - } - } - svg { - margin: 0 0 2rem; - } - } - &::after { - content: ""; - position: absolute; - inset: 0; - z-index: -1; - background: inherit; - filter: blur(1rem); - } -` - -const SoftwareHighlight = styled(Highlight)`` - -const ColumnFill = styled.div` - line-height: 2; - box-sizing: border-box; - flex: 1; - ul { - list-style: none; - } - @media (max-width: ${({ theme }) => theme.breakpoints.m}) { - width: 100%; - } -` - -const ColumnNarrow = styled.div` - box-sizing: border-box; - display: flex; - inset: auto; - justify-content: center; - align-items: center; - @media (max-width: ${({ theme }) => theme.breakpoints.m}) { - width: 100%; - } -` - -const FlexContent = styled(Content)` - display: flex; - flex-direction: column; -` - -const Flex = styled.div` - display: flex; - gap: 2rem; - @media (max-width: ${({ theme }) => theme.breakpoints.l}) { - flex-direction: column; - } -` - -const MarginFlex = styled(Flex)` - margin: 3rem 0; -` - -const Container = styled.div` - background: ${({ theme }) => theme.colors.grayBackground}; - border: 1px solid #d1d1d1; - box-sizing: border-box; - border-radius: 5px; - color: ${({ theme }) => theme.colors.text}; - padding: 0 2rem; -` - -const BuildBox = styled(Container)` - background: ${({ theme }) => theme.colors.preBackground}; - flex: 1; - padding: 2rem; - @media (max-width: ${({ theme }) => theme.breakpoints.m}) { - flex-direction: column; - } - - & > p:last-of-type { - margin-bottom: 2rem; - } -` - -const BuildBoxSpace = styled(BuildBox)` - display: flex; - flex-direction: column; - justify-content: space-between; - &:hover { - transform: scale(1.02); - transition: transform 0.1s; - } -` - -const FullyLoaded = styled(Container)` - display: flex; - flex-direction: column; - justify-content: space-between; - line-height: 200%; - padding: 2rem; - flex: 1; - p { - font-size: 110%; - } - code { - font-weight: 600; - line-height: 125%; - } - @media (max-width: ${({ theme }) => theme.breakpoints.l}) { - button { - width: fit-content; - padding-left: 2rem; - padding-right: 2rem; - } - } - @media (max-width: ${({ theme }) => theme.breakpoints.s}) { - button { - width: 100%; - } - } - &:hover { - transition: transform 0.1s; - transform: scale(1.02); - } -` - -const SvgTitle = styled.div` - display: flex; - gap: 1rem; - align-items: center; -` - -const ButtonContainer = styled.div` - display: flex; - gap: 1rem; - margin-top: auto; - @media (max-width: ${({ theme }) => theme.breakpoints.l}) { - flex-direction: column; - } -` - -const DappNodeButtonLink = styled(ResponsiveButtonLink)` - background-color: #007dfc; - span { - color: ${({ theme }) => theme.colors.white}; - } - &:hover { - background-color: #0077be; - box-shadow: 4px 4px 0 0 rgba(#007dfc, 0.47); - } -` - -const AvadoButtonLink = styled(ResponsiveButtonLink)` - background-color: #37822e; - span { - color: ${({ theme }) => theme.colors.white}; - } - &:hover { - background-color: #2e6d2e; - box-shadow: 4px 4px 0 0 rgba(#37822e, 0.47); - } -` - -const StyledEmoji = styled(Emoji)` - margin-right: 1rem; -` - -const BuildContainer = styled(Container)` - flex: 1; - padding: 2rem; - border-radius: none; - border: none; - background: none; - @media (max-width: ${({ theme }) => theme.breakpoints.m}) { - padding: 2rem 0; - } -` - -const ScrollButtonSecondary = styled.button` - text-decoration: none; - display: inline-block; - padding: 0.5rem 2rem; - margin-top: 1rem; - font-size: 1rem; - border-radius: 0.25em; - text-align: center; - cursor: pointer; - - color: ${({ theme }) => theme.colors.text}; - border: 1px solid ${({ theme }) => theme.colors.text}; - background-color: transparent; - &:hover { - color: ${({ theme }) => theme.colors.primary}; - border: 1px solid ${({ theme }) => theme.colors.primary}; - box-shadow: ${({ theme }) => theme.colors.cardBoxShadow}; - } - &:active { - background-color: ${({ theme }) => - theme.colors.secondaryButtonBackgroundActive}; - } - &:hover { - transition: transform 0.1s; - transform: scale(1.05); - } -` - -const DiscordIcon = styled(Icon)` - fill: ${({ theme }) => theme.colors.buttonColor}; -` - -const StakingCalloutContainer = styled(SplitContent)` - background: linear-gradient( - 262.78deg, - rgba(152, 186, 249, 0.25) 0%, - rgba(207, 177, 251, 0.25) 53.12%, - rgba(151, 252, 246, 0.25) 100% - ); - width: 100%; - padding: 2rem; - gap: 5rem; - @media (max-width: ${({ theme }) => theme.breakpoints.m}) { - flex-direction: column; - gap: 3rem; - } -` - -const Leslie = styled(GatsbyImage)` - transform: scaleX(-1) scale(1.15) translateX(2rem); - @media (max-width: ${({ theme }) => theme.breakpoints.l}) { - transform: scaleX(-1) translateY(-3rem); - } -` - -const StrongParagraph = styled.p` - font-size: 150%; - font-weight: 600; -` +import type { ChildOnlyProp } from "../types" +import Button from "../components/Button" +import { FaDiscord } from "react-icons/fa" + +const GappedPage = (props: ChildOnlyProp) => ( + +) + +const GappedContent = (props: ChildOnlyProp) => ( + +) + +const HeroContainer = (props: ChildOnlyProp) => ( + +) + +const Content = (props: ChildOnlyProp) => ( + +) + +const TwoColumnContent = (props: ChildOnlyProp) => ( + +) + +const SplitContent = (props: FlexProps) => ( + +) + +const Column = (props: ChildOnlyProp) => + +const SoftwareHighlight = (props: CenterProps) => ( +
+) + +const ColumnFill = (props: ChildOnlyProp) => ( + +) + +const ColumnNarrow = (props: ChildOnlyProp) => ( + +) + +const FlexContent = (props: ChildOnlyProp) => ( + +) + +const FlexContainer = (props: FlexProps) => ( + +) + +const MarginFlex = (props: ChildOnlyProp) => ( + +) + +const Container = (props: FlexProps) => ( + +) + +const BuildBox = (props: ComponentProps) => ( + p:last-of-type": { + mb: 8, + }, + }} + {...props} + /> +) + +const BuildBoxSpace = (props: ChildOnlyProp) => ( + +) + +const FullyLoaded = (props: ChildOnlyProp) => ( + +) + +const SvgTitle = (props: ChildOnlyProp) => ( + +) + +const ButtonContainer = (props: ChildOnlyProp) => ( + +) + +const DappNodeButtonLink = (props: ComponentProps) => ( + +) + +const AvadoButtonLink = (props: ComponentProps) => ( + +) + +const BuildContainer = (props: ChildOnlyProp) => ( + +) + +const StakingCalloutContainer = (props: ChildOnlyProp) => ( + +) + +const StrongParagraph = (props: BoxProps) => ( + +) interface RunANodeCard { image: typeof ChakraIcon @@ -499,7 +388,9 @@ const RunANodePage = ({ data }: PageProps) => { description={t("page-run-a-node-meta-description")} /> - + + + @@ -591,14 +482,17 @@ const RunANodePage = ({ data }: PageProps) => {

- +

- +

@@ -615,12 +509,7 @@ const RunANodePage = ({ data }: PageProps) => {
- - -

- -

-
+ ) @@ -628,9 +517,17 @@ const RunANodePage = ({ data }: PageProps) => { alt={t("page-run-a-node-glyph-alt-dappnode")} /> + +

+ +

+
- +

@@ -664,7 +561,7 @@ const RunANodePage = ({ data }: PageProps) => {

- +

@@ -697,7 +594,7 @@ const RunANodePage = ({ data }: PageProps) => {

- +

@@ -715,11 +612,9 @@ const RunANodePage = ({ data }: PageProps) => {

- scrollIntoView("build-your-own")} - > + @@ -741,7 +636,7 @@ const RunANodePage = ({ data }: PageProps) => { - +

@@ -808,7 +703,7 @@ const RunANodePage = ({ data }: PageProps) => { - + @@ -823,7 +718,7 @@ const RunANodePage = ({ data }: PageProps) => {

- +

@@ -853,22 +748,22 @@ const RunANodePage = ({ data }: PageProps) => {

- - +
-
+
- +

@@ -880,13 +775,15 @@ const RunANodePage = ({ data }: PageProps) => {

- - + } + to="https://discord.gg/c28an8dA5k" + > - - + + - + @@ -930,7 +827,15 @@ const RunANodePage = ({ data }: PageProps) => { - +

@@ -940,15 +845,15 @@ const RunANodePage = ({ data }: PageProps) => {

- + - +

- +

@@ -962,7 +867,7 @@ const RunANodePage = ({ data }: PageProps) => {

- +

From 0a20383ab7c1af184d26d6278ba2ff1bea906e93 Mon Sep 17 00:00:00 2001 From: Pablo Pettinari Date: Fri, 23 Jun 2023 16:57:53 -0300 Subject: [PATCH 143/186] migrate shared components --- src/pages-conditional/what-is-ethereum.tsx | 6 ++++-- src/pages/run-a-node.tsx | 18 +++++++----------- src/templates/staking.tsx | 2 +- 3 files changed, 12 insertions(+), 14 deletions(-) diff --git a/src/pages-conditional/what-is-ethereum.tsx b/src/pages-conditional/what-is-ethereum.tsx index 551e963982b..c75f042802b 100644 --- a/src/pages-conditional/what-is-ethereum.tsx +++ b/src/pages-conditional/what-is-ethereum.tsx @@ -111,9 +111,11 @@ const TwoColumnContent = (props: FlexProps) => ( const Section = (props: BoxProps) => -const Width60 = (props: ChildOnlyProp) => +export const Width60 = (props: ChildOnlyProp) => ( + +) -const Width40 = (props: ChildOnlyProp) => ( +export const Width40 = (props: ChildOnlyProp) => (

) diff --git a/src/pages/run-a-node.tsx b/src/pages/run-a-node.tsx index a40f05c3548..b311f6ec228 100644 --- a/src/pages/run-a-node.tsx +++ b/src/pages/run-a-node.tsx @@ -14,6 +14,7 @@ import { Text, type Icon as ChakraIcon, } from "@chakra-ui/react" +import { FaDiscord } from "react-icons/fa" // Assets import Dappnode from "../assets/run-a-node/dappnode.svg" @@ -34,25 +35,22 @@ import { import PageHero from "../components/PageHero" import PageMetadata from "../components/PageMetadata" import Translation from "../components/Translation" -import { - Divider, - InfoGrid, - Width60, - Width40, -} from "../components/SharedStyledComponents" import ExpandableCard from "../components/ExpandableCard" import ExpandableInfo from "../components/ExpandableInfo" import Emoji from "../components/Emoji" import Link from "../components/Link" import ButtonLink from "../components/ButtonLink" import FeedbackCard from "../components/FeedbackCard" +import Button from "../components/Button" +import { InfoGrid } from "../templates/staking" +import { Width40, Width60 } from "../pages-conditional/what-is-ethereum" // Utils import { getImage } from "../utils/image" import type { ChildOnlyProp } from "../types" -import Button from "../components/Button" -import { FaDiscord } from "react-icons/fa" + +const Divider = () => const GappedPage = (props: ChildOnlyProp) => ( ( ) -const Content = (props: ChildOnlyProp) => ( - -) +const Content = (props: BoxProps) => const TwoColumnContent = (props: ChildOnlyProp) => ( ( /> ) -const InfoGrid = (props: ChildOnlyProp) => ( +export const InfoGrid = (props: ChildOnlyProp) => ( Date: Fri, 23 Jun 2023 17:12:29 -0300 Subject: [PATCH 144/186] replace all html tags with chakra tags --- src/pages/run-a-node.tsx | 399 +++++++++++++++++++++------------------ 1 file changed, 213 insertions(+), 186 deletions(-) diff --git a/src/pages/run-a-node.tsx b/src/pages/run-a-node.tsx index b311f6ec228..6ae0848ed5f 100644 --- a/src/pages/run-a-node.tsx +++ b/src/pages/run-a-node.tsx @@ -10,8 +10,12 @@ import { CenterProps, Flex, FlexProps, + Heading, + HeadingProps, Img, + ListItem, Text, + UnorderedList, type Icon as ChakraIcon, } from "@chakra-ui/react" import { FaDiscord } from "react-icons/fa" @@ -274,6 +278,29 @@ const StrongParagraph = (props: BoxProps) => ( ) +const H2 = (prop: HeadingProps) => ( + +) + +const H3 = (prop: HeadingProps) => ( + +) + +const H4 = (prop: ChildOnlyProp) => ( + +) + interface RunANodeCard { image: typeof ChakraIcon title: string @@ -392,27 +419,27 @@ const RunANodePage = ({ data }: PageProps) => { -

+

-

-

+

+

-

-

+

+ -

-

+ +

-

-

+

+ -

-

+ +

-

-

+ + -

+
@@ -431,15 +458,15 @@ const RunANodePage = ({ data }: PageProps) => { background="runNodeGradient2" forceOpen > -

+ -

-

+ + -

-

+ + -

+ @@ -447,9 +474,9 @@ const RunANodePage = ({ data }: PageProps) => { -

+

-

+ {whyRunANodeCards.map(({ image, title, preview, body, alt }, idx) => { return ( @@ -474,24 +501,24 @@ const RunANodePage = ({ data }: PageProps) => { -

+

-

+ -

+ -

-

- + + + - -

+ + @@ -514,9 +541,9 @@ const RunANodePage = ({ data }: PageProps) => { /> -

+ -

+
@@ -525,12 +552,12 @@ const RunANodePage = ({ data }: PageProps) => { flexDirection={{ base: "column-reverse", md: "row" }} > -

+ -

-

+ + -

+
) => {
-

+

-

-

+ + -

-

+ + -

+ -
-

+ +

-

-

+

+ -

-
    -
  • + + + -
  • -
  • + + -
  • -
  • - + + + - -
  • -
-
+ + + + @@ -588,26 +615,26 @@ const RunANodePage = ({ data }: PageProps) => {
-
-

+ +

-

-

+

+ -

-
    -
  • + + + -
  • -
  • + + -
  • -
  • + + -
  • -
-
+ + + @@ -616,9 +643,9 @@ const RunANodePage = ({ data }: PageProps) => {
-

+

-

+ @@ -627,77 +654,77 @@ const RunANodePage = ({ data }: PageProps) => { // @ts-ignore alt={t("page-run-a-node-glyph-alt-hardware")} /> -

+

-

+
-

+

-

-
    -
  • -

    + + + + -

    -

    + + -

    -

    + + -

    -
  • -
  • -

    + + + + -

    -

    - - + + + + - - -

    -
  • -
+ + + + +
-

+

-

-
    -
  • + + + -

    - + + - -

    -
  • -
  • + + + + -

    - + + - -

    -
  • -
  • + + + + -

    - + + - -

    -
  • -
+ + + +
@@ -709,21 +736,21 @@ const RunANodePage = ({ data }: PageProps) => { // @ts-ignore alt={t("page-run-a-node-glyph-alt-software")} /> -

+

-

+ -
-

+ +

-

-

+

+ -

-
+ + @@ -732,25 +759,25 @@ const RunANodePage = ({ data }: PageProps) => {
-
-

+ +

-

-

+

+ -

-

+ + -

-
+ + - + - +
@@ -761,15 +788,15 @@ const RunANodePage = ({ data }: PageProps) => { -

+

-

-

+ + -

-

+ + -

+ } @@ -789,34 +816,34 @@ const RunANodePage = ({ data }: PageProps) => {
-

+

-

-
    -
  • + + + {" "} -{" "} - + - -
  • -
  • + + + -
  • -
  • + + {" "} -{" "} - + - -
  • -
+ + +
@@ -834,12 +861,12 @@ const RunANodePage = ({ data }: PageProps) => { />
-

+

-

-

+ + -

+ @@ -848,56 +875,56 @@ const RunANodePage = ({ data }: PageProps) => {
-

+

-

-

+ + -

-

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

-

+ +

-

-

+ + -

-
    -
  • + + + {" "} -{" "} - + - -
  • -
  • + + + {" "} -{" "} - + - -
  • -
  • + + + {" "} -{" "} - + - -
  • -
+ + +
From 44c5de71c6c540b7bc04a652857686c187eafa78 Mon Sep 17 00:00:00 2001 From: Pablo Pettinari Date: Fri, 23 Jun 2023 18:35:45 -0300 Subject: [PATCH 145/186] use input theme styles --- src/pages/languages.tsx | 22 ---------------------- 1 file changed, 22 deletions(-) diff --git a/src/pages/languages.tsx b/src/pages/languages.tsx index df054757b26..c32d9449282 100644 --- a/src/pages/languages.tsx +++ b/src/pages/languages.tsx @@ -93,18 +93,7 @@ const LanguagesPage = ({ location }: PageProps) => { w="clamp(min(400px, 100%), 50%, 600px)" > setKeyword(e.target.value)} @@ -122,17 +111,6 @@ const LanguagesPage = ({ location }: PageProps) => { ) } /> - {keyword !== "" && ( - } - onClick={resetKeyword} - position="absolute" - insetInlineEnd={1} - aria-label={t("clear")} - variant="icon" - _hover={{ svg: { fill: "primary.base" } }} - /> - )} {translationsCompleted.map((lang) => { From 0fdaa92e48baa61e59b902fbf48f6eb3ee1180bc Mon Sep 17 00:00:00 2001 From: Pablo Pettinari Date: Fri, 23 Jun 2023 19:14:06 -0300 Subject: [PATCH 146/186] remove custom styles from old input implementations --- .../FindWallet/WalletFilterSidebar/index.tsx | 1 - src/components/MeetupList.tsx | 8 +------ .../Staking/WithdrawalCredentials.tsx | 3 --- src/pages/staking/deposit-contract.tsx | 21 +++---------------- 4 files changed, 4 insertions(+), 29 deletions(-) diff --git a/src/components/FindWallet/WalletFilterSidebar/index.tsx b/src/components/FindWallet/WalletFilterSidebar/index.tsx index 3cb7290ee87..0c8eabefc54 100644 --- a/src/components/FindWallet/WalletFilterSidebar/index.tsx +++ b/src/components/FindWallet/WalletFilterSidebar/index.tsx @@ -235,7 +235,6 @@ const WalletFilterSidebar: React.FC = ({ isChecked={ restProps.filters[option.filterKey!] } - size="md" width="full" onChange={handleClick} > diff --git a/src/components/MeetupList.tsx b/src/components/MeetupList.tsx index 85e846f643a..3dd038f1149 100644 --- a/src/components/MeetupList.tsx +++ b/src/components/MeetupList.tsx @@ -77,15 +77,9 @@ const MeetupList: React.FC = () => { return ( {/* hidden for attachment to input only */} diff --git a/src/components/Staking/WithdrawalCredentials.tsx b/src/components/Staking/WithdrawalCredentials.tsx index a5b7f3dc535..ca3cb6449ec 100644 --- a/src/components/Staking/WithdrawalCredentials.tsx +++ b/src/components/Staking/WithdrawalCredentials.tsx @@ -140,14 +140,11 @@ const WithdrawalCredentials: FC = () => { setState({ ...state, @@ -375,13 +370,8 @@ const DepositContractPage = ({ setState({ ...state, @@ -392,13 +382,8 @@ const DepositContractPage = ({ setState({ ...state, From 9c8dd05b1fd054bbad13d2d8772b08c9ab46a120 Mon Sep 17 00:00:00 2001 From: Dan Vogel Date: Sun, 25 Jun 2023 16:21:30 -0400 Subject: [PATCH 147/186] Fix spelling in danksharding explanation --- src/content/roadmap/danksharding/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/roadmap/danksharding/index.md b/src/content/roadmap/danksharding/index.md index 746273e024b..8636bf7f668 100644 --- a/src/content/roadmap/danksharding/index.md +++ b/src/content/roadmap/danksharding/index.md @@ -31,7 +31,7 @@ Rollups post commitments to their transaction data on-chain and also make the ac ### How is blob data verified? {#how-are-blobs-verified} -Rollups post the transactions they execute in data blobs. They also post a "commitment" to the data. They do this by fitting a polynomial function to the data. This function can then be evaluated at various points. For example, if we define an extremely simply function `f(x) = 2x-1` then we can evaluate this function for `x = 1`, `x = 2`, `x = 3` giving the results `1, 3, 5`. A prover applies the same function to the data and evaluates it at the same points. If the original data is changed, the function will not be identical, and therefore neither are the values evaluated at each point. In reality, the commitment and proof are more complicated because they are wrapped in cryptographic functions. +Rollups post the transactions they execute in data blobs. They also post a "commitment" to the data. They do this by fitting a polynomial function to the data. This function can then be evaluated at various points. For example, if we define an extremely simple function `f(x) = 2x-1` then we can evaluate this function for `x = 1`, `x = 2`, `x = 3` giving the results `1, 3, 5`. A prover applies the same function to the data and evaluates it at the same points. If the original data is changed, the function will not be identical, and therefore neither are the values evaluated at each point. In reality, the commitment and proof are more complicated because they are wrapped in cryptographic functions. ### What is KZG? {#what-is-kzg} From 369ad339d77e9d49afc69ddb82c0696f223c4194 Mon Sep 17 00:00:00 2001 From: Buttaa Date: Mon, 26 Jun 2023 11:02:12 +0200 Subject: [PATCH 148/186] fix ethpool data --- src/data/staking-products.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/data/staking-products.json b/src/data/staking-products.json index 9137923aa0a..f159bd9044a 100644 --- a/src/data/staking-products.json +++ b/src/data/staking-products.json @@ -466,14 +466,14 @@ "hasBugBounty": false, "isTrustless": false, "isPermissionless": false, - "pctMajorityExecutionClient": null, + "pctMajorityExecutionClient": 0, "pctMajorityConsensusClient": 0, "isSelfCustody": true, "platforms": ["Browser"], "ui": ["GUI"], "socials": { - "discord": "https://discord.io/ethermine", - "twitter": "https://twitter.com/ethermine_org" + "discord": "https://discord.io/ethpool", + "twitter": "https://twitter.com/ethpool_staking" }, "matomo": { "eventCategory": "StakingProductCard", From a3770f7a2d74be9c5b172d62a5750d58e0185d21 Mon Sep 17 00:00:00 2001 From: Pablo Pettinari Date: Mon, 26 Jun 2023 09:23:48 -0300 Subject: [PATCH 149/186] remove redirect that is already generated automatically by the code --- redirects.json | 4 ---- 1 file changed, 4 deletions(-) diff --git a/redirects.json b/redirects.json index 5e4a27fe380..785c04ada39 100644 --- a/redirects.json +++ b/redirects.json @@ -255,10 +255,6 @@ "fromPath": "/upgrades", "toPath": "/en/roadmap" }, - { - "fromPath": "/quizzes", - "toPath": "/en/quizzes/" - }, { "fromPath": "/*/upgrades", "toPath": "/:splat/roadmap" From 4e75acc60132b1c3466b849ebd44f056502367a1 Mon Sep 17 00:00:00 2001 From: Pablo Pettinari Date: Mon, 26 Jun 2023 10:52:20 -0300 Subject: [PATCH 150/186] migrate roadmap template --- src/templates/roadmap.tsx | 377 ++++++++++-------------------------- src/templates/use-cases.tsx | 16 +- 2 files changed, 108 insertions(+), 285 deletions(-) diff --git a/src/templates/roadmap.tsx b/src/templates/roadmap.tsx index 8cfeea47381..bdb8c61070e 100644 --- a/src/templates/roadmap.tsx +++ b/src/templates/roadmap.tsx @@ -3,23 +3,23 @@ import { graphql, PageProps } from "gatsby" import { MDXRenderer } from "gatsby-plugin-mdx" import { GatsbyImage } from "gatsby-plugin-image" import { MDXProvider } from "@mdx-js/react" -import styled from "@emotion/styled" import { + Box, + chakra, Flex, ListItem, - Stack, + Show, + SimpleGrid, Text, UnorderedList, + useToken, Wrap, WrapItem, } from "@chakra-ui/react" import Button from "../components/Button" - import ButtonLink from "../components/ButtonLink" -import ButtonDropdown, { - List as ButtonDropdownList, -} from "../components/ButtonDropdown" +import { List as ButtonDropdownList } from "../components/ButtonDropdown" import Card from "../components/Card" import ImageCard from "../components/ImageCard" import ExpandableCard from "../components/ExpandableCard" @@ -40,272 +40,85 @@ import TableOfContents, { } from "../components/TableOfContents" import FeedbackCard from "../components/FeedbackCard" import SectionNav from "../components/SectionNav" -import { - Divider, - Paragraph, - Header1, - InfoGrid, -} from "../components/SharedStyledComponents" -import Emoji from "../components/OldEmoji" +import Emoji from "../components/Emoji" import YouTube from "../components/YouTube" import Breadcrumbs from "../components/Breadcrumbs" import RoadmapActionCard from "../components/Roadmap/RoadmapActionCard" import RoadmapImageContent from "../components/Roadmap/RoadmapImageContent" +import { + Page, + InfoColumn, + ContentContainer, + InfoTitle, + MobileButton, + H1, + H2, + H3, + Pre, + StyledButtonDropdown, + MobileButtonDropdown, + Title, + Divider, + Paragraph, +} from "./use-cases" import { isLangRightToLeft, TranslationKey } from "../utils/translations" -import { Context } from "../types" import { Lang } from "../utils/languages" import { getImage } from "../utils/image" -const Page = styled.div` - display: flex; - justify-content: space-between; - width: 100%; - margin: 0 auto 4rem; - - @media (min-width: ${(props) => props.theme.breakpoints.l}) { - padding-top: 4rem; - } - @media (max-width: ${(props) => props.theme.breakpoints.l}) { - flex-direction: column; - } -` - -const InfoColumn = styled.aside` - display: flex; - flex-direction: column; - position: sticky; - top: 6.25rem; /* account for navbar */ - height: calc(100vh - 80px); - flex: 0 1 330px; - margin: 0 2rem; - @media (max-width: ${(props) => props.theme.breakpoints.l}) { - display: none; - } -` - -const MobileButton = styled.div` - @media (max-width: ${(props) => props.theme.breakpoints.l}) { - background: ${(props) => props.theme.colors.background}; - box-shadow: 0 -1px 0px ${(props) => props.theme.colors.border}; - width: 100%; - bottom: 0; - position: sticky; - padding: 2rem; - z-index: 99; - margin-bottom: 0rem; - } -` - -// Apply styles for classes within markdown here -const ContentContainer = styled.article` - flex: 1 1 ${(props) => props.theme.breakpoints.l}; - position: relative; - padding: 2rem; - padding-top: 0rem; - p:first-of-type { - margin-top: 0; - } - - .featured { - padding-left: 1rem; - margin-left: -1rem; - border-left: 1px dotted ${(props) => props.theme.colors.primary}; - } - - .citation { - p { - color: ${(props) => props.theme.colors.text200}; - } - } -` - -const Pre = styled.pre` - max-width: 100%; - overflow-x: scroll; - background-color: ${(props) => props.theme.colors.preBackground}; - border-radius: 0.25rem; - padding: 1rem; - border: 1px solid ${(props) => props.theme.colors.preBorder}; - white-space: pre-wrap; -` - -const InfoTitle = styled.h2` - font-size: 3rem; - font-weight: 700; - text-align: right; - margin-top: 0rem; - @media (max-width: ${(props) => props.theme.breakpoints.l}) { - text-align: left; - font-size: 2.5rem - display: none; - } -` - -const H2 = styled.h2` - font-size: 2rem; - font-weight: 700; - margin-top: 4rem; - - a { - display: none; - } - - /* Anchor tag styles */ - - a { - position: relative; - display: initial; - opacity: 0; - margin-left: -1.5em; - padding-right: 0.5rem; - font-size: 1rem; - vertical-align: middle; - &:hover { - display: initial; - fill: ${(props) => props.theme.colors.primary}; - opacity: 1; - } - } - - &:hover { - a { - display: initial; - fill: ${(props) => props.theme.colors.primary}; - opacity: 1; - } - } -` - -const H3 = styled.h3` - font-size: 1.5rem; - font-weight: 700; - - a { - display: none; - } - - /* Anchor tag styles */ - - a { - position: relative; - display: initial; - opacity: 0; - margin-left: -1.5em; - padding-right: 0.5rem; - font-size: 1rem; - vertical-align: middle; - &:hover { - display: initial; - fill: ${(props) => props.theme.colors.primary}; - opacity: 1; - } - } - - &:hover { - a { - display: initial; - fill: ${(props) => props.theme.colors.primary}; - opacity: 1; - } - } -` - -const CardGrid = styled.div` - display: grid; - grid-template-columns: repeat(2, 1fr); - - gap: 2rem; - h3 { - margin-top: 0; - } - - @media (max-width: ${(props) => props.theme.breakpoints.m}) { - grid-template-columns: repeat(1, 1fr); - margin: auto; - } -` - -const Title = styled.h1` - font-size: 2.5rem; - font-weight: 700; - margin-top: 1rem; -` - -const SummaryPoint = styled.li` - color: ${(props) => props.theme.colors.text300}; -` - -const StyledButtonDropdown = styled(ButtonDropdown)` - margin-bottom: 2rem; - display: flex; - justify-content: flex-end; - text-align: center; - @media (min-width: ${(props) => props.theme.breakpoints.s}) { - align-self: flex-end; - } -` - -const MobileButtonDropdown = styled(StyledButtonDropdown)` - margin-bottom: 0rem; - display: none; - @media (max-width: ${(props) => props.theme.breakpoints.l}) { - display: block; - } -` - -const Container = styled.div` - position: relative; - overflow-x: hidden; -` - -const HeroContainer = styled.div` - display: flex; - align-items: center; - padding: 3rem 2rem; - background: ${({ theme }) => theme.colors.layer2Gradient}; - @media (max-width: ${(props) => props.theme.breakpoints.l}) { - flex-direction: column; - max-height: 100%; - padding-left: 0; - padding-right: 0; - margin-bottom: 2em; - } -` - -const Image = styled(GatsbyImage)` - flex: 1 1 100%; - background-repeat: no-repeat; - right: 0; - bottom: 0; - @media (max-width: ${({ theme }) => theme.breakpoints.l}) { - width: 100%; - height: 100%; - max-width: 538px; - overflow: initial; - align-self: center; - margin: 0; - } -` - -const MobileTableOfContents = styled(TableOfContents)` - position: relative; - z-index: 2; -` - -const TitleCard = styled.div` - padding: 2rem; - display: flex; - flex-direction: column; - justify-content: flex-start; - width: 100%; -` +import type { ChildOnlyProp, Context } from "../types" + +const CardGrid = (props: ChildOnlyProp) => ( + +) + +const HeroContainer = (props: ChildOnlyProp) => ( + +) + +const HeroImage = chakra(GatsbyImage, { + baseStyle: { + alignSelf: { + base: "center", + lg: "normal", + }, + bgRepeat: "no-repeat", + flex: "1 1 100%", + right: 0, + bottom: 0, + width: "full", + height: "full", + overflow: "initial", + maxW: { + base: "538px", + lg: "full", + }, + }, +}) + +const TitleCard = (props: ChildOnlyProp) => ( + +) // Note: you must pass components to MDXProvider in order to render them in markdown files // https://www.gatsbyjs.com/plugins/gatsby-plugin-mdx/#mdxprovider const components = { a: Link, - h1: Header1, + h1: H1, h2: H2, h3: H3, p: Paragraph, @@ -322,7 +135,6 @@ const components = { Card, CardGrid, ImageCard, - InfoGrid, Divider, SectionNav, Pill, @@ -339,6 +151,8 @@ const RoadmapPage = ({ data: { pageData: mdx }, location, }: PageProps) => { + const lgBreakpoint = useToken("breakpoints", "lg") + if (!mdx?.frontmatter) throw new Error( "Staking page template query does not return expected values" @@ -402,7 +216,7 @@ const RoadmapPage = ({ } return ( - + @@ -439,9 +253,14 @@ const RoadmapPage = ({ })} )} - + - {mdx.frontmatter.alt - - - {mdx.frontmatter.title} - - {tocItems && ( - - )} - + + + + {mdx.frontmatter.title} + + {tocItems && ( + + )} + + {mdx.body} - - - + + + + + - + ) } diff --git a/src/templates/use-cases.tsx b/src/templates/use-cases.tsx index c5840f331d6..e6b8e8944b5 100644 --- a/src/templates/use-cases.tsx +++ b/src/templates/use-cases.tsx @@ -62,19 +62,19 @@ const commonHeadingProps: HeadingProps = { lineHeight: 1.4, } -const H1 = (props: HeadingProps) => ( +export const H1 = (props: HeadingProps) => ( ) -const H2 = (props: HeadingProps) => ( +export const H2 = (props: HeadingProps) => ( ) -const H3 = (props: HeadingProps) => ( +export const H3 = (props: HeadingProps) => ( ) -const H4 = (props: HeadingProps) => ( +export const H4 = (props: HeadingProps) => ( ( /> ) -const Divider = () => +export const Divider = () => -const Pre = (props: ChildOnlyProp) => ( +export const Pre = (props: ChildOnlyProp) => ( ( /> ) -const Paragraph = (props: ChildOnlyProp) => ( +export const Paragraph = (props: ChildOnlyProp) => ( ) @@ -170,7 +170,7 @@ const TitleCard = (props: ChildOnlyProp) => { ) } -const Title = (props: ChildOnlyProp) =>

+export const Title = (props: ChildOnlyProp) =>

const HeroImage = chakra(GatsbyImage, { baseStyle: { From 0e9041042c5ce743655f948f7d9eca646090c0c1 Mon Sep 17 00:00:00 2001 From: Leo <3853621+leoelz@users.noreply.github.com> Date: Mon, 26 Jun 2023 13:49:13 -0300 Subject: [PATCH 151/186] Update index.md "tab completion" reffers to the feature that completes a word by pressing the tab key, and the translation was about the literal translation of "tab" reffering to tabbed windows --- .../tutorials/a-developers-guide-to-ethereum-part-one/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/translations/es/developers/tutorials/a-developers-guide-to-ethereum-part-one/index.md b/src/content/translations/es/developers/tutorials/a-developers-guide-to-ethereum-part-one/index.md index 4406420880c..8393286cd1e 100644 --- a/src/content/translations/es/developers/tutorials/a-developers-guide-to-ethereum-part-one/index.md +++ b/src/content/translations/es/developers/tutorials/a-developers-guide-to-ethereum-part-one/index.md @@ -84,7 +84,7 @@ En este tutorial, trabajaremos solo con el intérprete de Python. No crearemos n -Primero, instale [IPython](https://ipython.org/) para tener un entorno fácil de usar para explorar. IPython ofrece el autocompletado de pestañas —entre otras características—, haciendo mucho más fácil ver qué es posible con Web3.py. +Primero, instale [IPython](https://ipython.org/) para tener un entorno fácil de usar para explorar. IPython ofrece el autocompletado mediante la tecla de tabulación —entre otras características—, haciendo mucho más fácil ver qué es posible con Web3.py. ```bash pip install ipython From cb5534a0292227c9d3d1baab768adc07cdccc030 Mon Sep 17 00:00:00 2001 From: Aleksey Lisun Date: Mon, 26 Jun 2023 22:46:19 +0300 Subject: [PATCH 152/186] docs: correct `viem` description Co-authored-by: Joseph Cook <33655003+jmcook1186@users.noreply.github.com> --- .../developers/docs/programming-languages/javascript/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/developers/docs/programming-languages/javascript/index.md b/src/content/developers/docs/programming-languages/javascript/index.md index 26b72265556..38020cbe3bd 100644 --- a/src/content/developers/docs/programming-languages/javascript/index.md +++ b/src/content/developers/docs/programming-languages/javascript/index.md @@ -20,7 +20,7 @@ You can use these libraries to interact with smart contracts on Ethereum so it's - [Web3.js](https://web3js.readthedocs.io/) - [Ethers.js](https://docs.ethers.io/) _– includes Ethereum wallet implementation and utilities in JavaScript and TypeScript._ -- [viem](https://viem.sh) – a TypeScript Interface for Ethereum that provides low-level stateless primitives for interacting with Ethereum. An alternative to ethers.js and web3.js with a focus on reliability, efficiency, and excellent developer experience. +- [viem](https://viem.sh) – a TypeScript Interface for Ethereum that provides low-level stateless primitives for interacting with Ethereum. ### Smart contracts {#smart-contracts} From 874e735c2ad7ac2d1823aeff4e9f4c224610758c Mon Sep 17 00:00:00 2001 From: Pablo Pettinari Date: Mon, 26 Jun 2023 17:51:44 -0300 Subject: [PATCH 153/186] support colocated files --- plugins/gatsby-remark-fix-static-urls/index.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/plugins/gatsby-remark-fix-static-urls/index.js b/plugins/gatsby-remark-fix-static-urls/index.js index 48c16332c72..506f4f64213 100644 --- a/plugins/gatsby-remark-fix-static-urls/index.js +++ b/plugins/gatsby-remark-fix-static-urls/index.js @@ -1,3 +1,4 @@ +const fs = require("fs") const path = require("path") const visitWithParents = require("unist-util-visit-parents") const isRelativeUrl = require("is-relative-url") @@ -39,7 +40,10 @@ module.exports = ({ markdownNode, markdownAST }) => { return } - node.url = path.join(relativePath, node.url) + // only modify the paths for those files doesn't exist in the current folder + if (!fs.existsSync(path.join(fileAbsoluteDir, node.url))) { + node.url = path.join(relativePath, node.url) + } } }) From eb0ee0b0e3fe369b4b41fce8acce7d968665f75e Mon Sep 17 00:00:00 2001 From: Pablo Pettinari Date: Mon, 26 Jun 2023 17:51:58 -0300 Subject: [PATCH 154/186] add translated image example --- src/content/translations/es/web3/web3.png | Bin 0 -> 140201 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/content/translations/es/web3/web3.png diff --git a/src/content/translations/es/web3/web3.png b/src/content/translations/es/web3/web3.png new file mode 100644 index 0000000000000000000000000000000000000000..82a4bab8615f194207934dc4302b2c05708bfdaf GIT binary patch literal 140201 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�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 Date: Mon, 26 Jun 2023 15:56:10 -0600 Subject: [PATCH 155/186] Update src/content/contributing/design/adding-design-resources/index.md --- .../contributing/design/adding-design-resources/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/contributing/design/adding-design-resources/index.md b/src/content/contributing/design/adding-design-resources/index.md index f32bb195d9a..468354d315b 100644 --- a/src/content/contributing/design/adding-design-resources/index.md +++ b/src/content/contributing/design/adding-design-resources/index.md @@ -4,7 +4,7 @@ description: Guidelines and requirements to ensure quality of design materials o lang: en --- -Anybody can suggest new design materials to the [Design and UX in web3](/developers/docs/design-and-ux/). +Anybody can suggest new design materials to the [Design and UX in web3 page](/developers/docs/design-and-ux/). Be aware that the focus of this page is on providing user value to aspiring web3 designers. The design section is not there to advertise your services, products, or platforms. From ebe0b412d8471d914dc66a4552afca9cf31cdeae Mon Sep 17 00:00:00 2001 From: Corwin Smith Date: Mon, 26 Jun 2023 16:29:12 -0600 Subject: [PATCH 156/186] add link to /contributing and fix markdown --- .../design/adding-design-resources/index.md | 53 +++++++++++++------ src/content/contributing/index.md | 1 + 2 files changed, 37 insertions(+), 17 deletions(-) diff --git a/src/content/contributing/design/adding-design-resources/index.md b/src/content/contributing/design/adding-design-resources/index.md index 468354d315b..4666100ad8e 100644 --- a/src/content/contributing/design/adding-design-resources/index.md +++ b/src/content/contributing/design/adding-design-resources/index.md @@ -13,36 +13,55 @@ To ensure that we maintain a high standard of information and promote valuable i ## Research Studies and Dashboards {#Research-studies} 1. Sound Methodology -- The methodology should clearly define how the data was collected. -- The number of participants involved in the research should be stated. -- The research methods employed should be described. + +a. The methodology should clearly define how the data was collected. + +b. The number of participants involved in the research should be stated. + +c. The research methods employed should be described. + 2. Relevance to Web3 Designers and Common Design Use Cases -- The topic of the research should be relevant to web3 designers and address common design use cases. -3. Focus on delivering insights -- The primary objective of the text should be sharing insights rather than promoting a specific project or company. - +a. The topic of the research should be relevant to web3 designers and address common design use cases. + +3. Focus on delivering insights + +a. The primary objective of the text should be sharing insights rather than promoting a specific project or company. + ## Articles {#Articles} 1. Relevance to Web3 Designers/Researchers and Common Web3 Design Use Cases - - The topic of the article should be pertinent to web3 designers and researchers, focusing on common web3 design use cases. + +a. The topic of the article should be pertinent to web3 designers and researchers, focusing on common web3 design use cases. + 2. Basic Writing Quality - - The article should be free of grammar and spelling mistakes. - - Emphasis should be placed on delivering key insights and learnings. - - The writing should be concise and to the point. + +a. The article should be free of grammar and spelling mistakes. + +b. Emphasis should be placed on delivering key insights and learnings. + +c. The writing should be concise and to the point. + 3. Goal of the Text - - The primary goal of the article should be sharing insights rather than promoting a particular project or company. +a. The primary goal of the article should be sharing insights rather than promoting a particular project or company. ## Communities / DAOs {#Communities-and-DAOs} 1. Website must clearly indicate how to join the DAO/Community + 2. Clear Benefits of Membership - - The benefits of becoming a member should be prominently displayed. - - **Examples**: receiving feedback on work, accessing job opportunities or bounties, sharing design and research insights. + +a. The benefits of becoming a member should be prominently displayed. + +**Examples**: receiving feedback on work, accessing job opportunities or bounties, sharing design and research insights. + 3. Active and Vibrant Communication on Discord - - The Discord community should exhibit lively and engaged communication. - - Moderators should be actively involved in maintaining the community and facilitating discussions. - - The community should demonstrate a track record of valuable and productive conversations within the last two weeks. + +a. The Discord community should exhibit lively and engaged communication. + +b. Moderators should be actively involved in maintaining the community and facilitating discussions. + +c. The community should demonstrate a track record of valuable and productive conversations within the last two weeks. By adhering to these criteria, we aim to foster a thriving and knowledge-sharing environment within our community. We believe that this white listing policy will ensure that our users have access to reliable, relevant, and insightful resources. Thank you for your understanding and cooperation in maintaining the quality of content within our platform. diff --git a/src/content/contributing/index.md b/src/content/contributing/index.md index 25c8bbf4f1c..740fc269500 100644 --- a/src/content/contributing/index.md +++ b/src/content/contributing/index.md @@ -46,6 +46,7 @@ The ethereum.org website, like Ethereum more broadly, is an open-source project. - [Suggest a project for our DeSci page](/contributing/adding-desci-projects/) _- Add a project built on Ethereum that contributes to decentralized science_ - [Quizzes](/contributing/quizzes/) _- Add, update, and delete quiz question banks for a relevant page_ +- [Suggest a design resource](/contributing/design/adding-design-resources/) _- Add, update, and delete helpful design resources_ _Any questions?_ 🤔 Reach out on our [Discord server](https://discord.gg/CetY6Y4) From fbcb4d79572a6ea0970dfa67fc695721d72dd3dd Mon Sep 17 00:00:00 2001 From: Corwin Smith Date: Mon, 26 Jun 2023 20:58:24 -0600 Subject: [PATCH 157/186] Update src/intl/ja/page-layer-2.json --- src/intl/ja/page-layer-2.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/intl/ja/page-layer-2.json b/src/intl/ja/page-layer-2.json index ccd12fa4271..0a059dd340f 100644 --- a/src/intl/ja/page-layer-2.json +++ b/src/intl/ja/page-layer-2.json @@ -57,7 +57,7 @@ "layer-2-dyor-3": "L2BEATへ移動", "layer-2-use-layer-2-title": "レイヤー2を使う", "layer-2-use-layer-2-1": "レイヤー2がなぜ必要か、またレイヤー2の仕組みを理解したところで、さっそく使ってみましょう。", - "layer-2-contract-accounts": "注: ブリッジしてレイヤー2を使用する場合、イーサリアムメインネットと同様、ご自身がEOAアカウント(単一の秘密鍵のみがアカウントを制御するアカウント)のアドレス管理をすることに留意することが重要です。ただし、Gnosis SafeArgentなどのコントラクトアカウントを使用している場合は、コントラクトアカウントをレイヤー2上のアドレスに再デプロイするまで、レイヤー2上でこのアドレスを制御することはできません。ブリッジ、またはコントラクトアカウントへ送金を行う際、コントラクトアカウントのアドレスを制御していない場合は、資金が失われるおそれがあります。", + "layer-2-contract-accounts": "注: ブリッジしてレイヤー2を使用する場合、イーサリアムメインネットと同様、ご自身がEOAアカウント(単一の秘密鍵のみがアカウントを制御するアカウント)のアドレス管理をすることに留意することが重要です。ただし、SafeArgentなどのコントラクトアカウントを使用している場合は、コントラクトアカウントをレイヤー2上のアドレスに再デプロイするまで、レイヤー2上でこのアドレスを制御することはできません。ブリッジ、またはコントラクトアカウントへ送金を行う際、コントラクトアカウントのアドレスを制御していない場合は、資金が失われるおそれがあります。", "layer-2-use-layer-2-generalized-title": "汎用レイヤー2", "layer-2-use-layer-2-generalized-1": "汎用レイヤー2は、イーサリアムと同じように動作しますが、より安価です。イーサリアムのレイヤー1でできることは、すべてレイヤー2でもできます。多くの分散型アプリ(Dapp)はすでにこれらのネットワークに移行し始めています。また、メインネットにデプロイせずに、レイヤー2に直接デプロイしているアプリもあります。\n", "layer-2-use-layer-2-application-specific-title": "アプリケーション特化型レイヤー2", From a72884a4ec7d06993bae85e39a4dc189e43159b8 Mon Sep 17 00:00:00 2001 From: Corwin Smith Date: Mon, 26 Jun 2023 21:16:01 -0600 Subject: [PATCH 158/186] Update src/content/contributing/translation-program/resources/index.md --- src/content/contributing/translation-program/resources/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/contributing/translation-program/resources/index.md b/src/content/contributing/translation-program/resources/index.md index 2a2830f9320..122e8c09c93 100644 --- a/src/content/contributing/translation-program/resources/index.md +++ b/src/content/contributing/translation-program/resources/index.md @@ -44,7 +44,7 @@ To keep up-to-date with the latest Translation Program progress, you can follow ## Office hours for translators {#office-hours} -We have office hours for translators on the second Wednesday of every month. These are held in the #office-hours voice channel on the [ethereum.org Discord](https://discord.gg/Sfz7jqpBWU), where you can also find the exact times and additional details. +We have office hours for translators on the second Wednesday of every month. These are held in the #office-hours voice channel on the [ethereum.org Discord](/discord/), where you can also find the exact times and additional details. Office hours allow our translators to ask questions about the translation process, provide feedback on the program, share their ideas, or just chat with the core ethereum.org team. Finally, we want to use these calls to communicate recent developments with the Translation Program and share key tips and instructions with our contributors. From dd4ad8881559db064a9390a4b5efa4d06b666450 Mon Sep 17 00:00:00 2001 From: Joshua <62268199+minimalsm@users.noreply.github.com> Date: Tue, 27 Jun 2023 14:07:16 +0100 Subject: [PATCH 159/186] Update Arabic (ar) Essentials and Use Cases buckets --- .../ar/decentralized-identity/index.md | 185 +++++++++ src/content/translations/ar/defi/index.md | 352 ++++++++++++++++++ src/content/translations/ar/desci/index.md | 138 +++++++ .../translations/ar/smart-contracts/index.md | 94 +++++ .../translations/ar/social-networks/index.md | 119 ++++++ src/intl/ar/page-wallets-find-wallet.json | 88 ++++- src/intl/ar/page-wallets.json | 4 +- src/intl/ar/page-what-is-ethereum.json | 35 +- 8 files changed, 1001 insertions(+), 14 deletions(-) create mode 100644 src/content/translations/ar/decentralized-identity/index.md create mode 100644 src/content/translations/ar/defi/index.md create mode 100644 src/content/translations/ar/desci/index.md create mode 100644 src/content/translations/ar/smart-contracts/index.md create mode 100644 src/content/translations/ar/social-networks/index.md diff --git a/src/content/translations/ar/decentralized-identity/index.md b/src/content/translations/ar/decentralized-identity/index.md new file mode 100644 index 00000000000..af743ba8b19 --- /dev/null +++ b/src/content/translations/ar/decentralized-identity/index.md @@ -0,0 +1,185 @@ +--- +title: الهوية اللامركزية +description: ما هي الهُوِيَّة اللامركزية، ولماذا هي مهمة؟ +lang: ar +template: use-cases +emoji: ":id:" +sidebarDepth: 2 +image: ../../../../assets/eth-gif-cat.png +summaryPoint1: جعلت أنظمة الهُوِيَّة التقليدية من إصدار المعرفات الخاصة بك، وصيانتها، والتحكم فيها، عملية مركزية. +summaryPoint2: حيث تغني الهُوِيَّة اللامركزية عن الاعتماد على أطراف ثالثة مركزية. +summaryPoint3: بفضل العملات الرقمية، أصبح لدى المستخدمين الآن الأدوات اللازمة لإصدار معرفات الهوية والمصادقات الخاصة بهم، والاحتفاظ بها، والتحكم فيها مرة أخرى. +--- + +تعزز الهُوِيَّة بشكل افتراضي جميع جوانب حياتك اليومية. إن استخدام الخدمات على الإنترنت، وفتح حساب بنكي، والتصويت في الانتخابات، وشراء الممتلكات، وتأمين وظيفة، كل هذه الأمور تتطلب إثبات هويتك. + +ومع ذلك، فإن نظم إدارة الهُوِيَّة التقليدية تعتمد منذ وقت طويل على وسطاء مركزيين يقومون بإصدار معرفات هويتك و [ومصادقاتك](#what-are-attestations)، والاحتفاظ بها، والتحكم فيها. مما يعني أنه لا يمكنك التحكم في المعلومات المتصلة بهويتك، أو تحديد مَن لديه حق الوصول إلى معلومات تحديد الهوية الشخصية (PII)، وصلاحيات وصول هذه الأطراف. + +لحل هذه المشاكل، لدينا أنظمة هُوِيَّة لامركزية مبنية على سلاسل الكتل العامة مثل إثيريوم. تتيح الهُوِيَّة اللامركزية للأفراد إدارة المعلومات المتصلة بهوياتهم. مع حلول الهوية اللامركزية، _تستطيع_ إنشاء معرفات، والمطالبة بمصادقاتك والاحتفاظ بها دون الاعتماد على السلطات المركزية، مثل مقدمي الخدمات أو الحكومات. + +## ما هي الهوية؟ {#what-is-identity} + +الهوية تعني إحساس الفرد بنفسه، وهو ما تحدده خصائص فريدة. كما تشير الهُوِيَّة إلى كيان _ الفرد_، أي كائن بشري متميز. كما قد تشير الهُوِيَّة إلى كيانات أخرى غير بشرية، مثل منظمة أو سلطة. + +## ما هي المعرّفات؟ {#what-are-identifiers} + +المعرف هو معلومة تعمل كمؤشر على هُوِيَّة أو هويات محددة. تشمل المعرّفات الشائعة ما يلي: + +- الاسم +- رقم الضمان الاجتماعي/رقم معرف الضريبة +- رقم الهاتف الجوال +- تاريخ ومكان الميلاد +- بيانات اعتماد الهوية الرقمية، مثل عناوين البريد الإلكتروني، أسماء المستخدمين، الصور الرمزية + +وهذه الأمثلة التقليدية لمعرفات الهوية يتم إصدارها، والاحتفاظ بها، والتحكم فيها بواسطة كيانات مركزية. تحتاج إلى إذن من حكومتك لتغيير اسمك، أو من منصة التواصل الاجتماعي لتغيير معرفك. + +## ما هي المصادقات؟ {#what-are-attestations} + +المصادقة هي مطالبة مقدمة من كيان بشأن كيان آخر. إذا كنت تعيش في الولايات المتحدة، فرخصة القيادة التي أصدرتها لك إدارة المركبات (كيان ما)، هي مصادقة لك (كيان آخر) بأنه من المسموح لك بشكل قانوني أن تقود سيارة. + +وتختلف المصادقات عن المعرفات. المصادقة _تحتوي على_ معرفات تشير إلى هُوِيَّة معينة، وتمثل مطالبة بسمة متعلقة بهذه الهُوِيَّة. لذلك، فإن رخصة القيادة تتضمن معرفات (الاسم، تاريخ الميلاد، العنوان) ولكنها أيضا مصادقة على حقك القانوني في القيادة. + +### ما هي المعرّفات اللامركزية؟ {#what-are-decentralized-identifiers} + +تعتمد المعرفات التقليدية مثل اسمك القانوني أو عنوان بريدك الإلكتروني على أطراف ثالثة - الحكومات ومقدمي خدمات البريد الإلكتروني. أما المعرّفات اللامركزية (DID) فهي مختلفة - فلا يصدرها أو يديرها أو يتحكم فيها أي كيان مركزي. + +ويقوم الأفراد بإصدار معرفات الهوية اللامركزية، والاحتفاظ بها، والتحكم فيها. [حساب إثيريوم](/developers/docs/accounts/) هو مثال على معرف لامركزي. يمكنك إنشاء العدد الذي تريده من الحسابات دون إذن من أي شخص ودون الحاجة لتخزينها في سجل مركزي. + +يتم تخزين معرّفات الهوية اللامركزية على دفاتر الأستاذ الموزعة (سلاسل الكتل) أو شبكات الأقران. هذا يجعل المعرفات اللامركزية (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) لكيان ما. يستخدم تشفير المفتاح العام في شبكات سلسلة الكتل للتحقق من هُوِيَّة المستخدم وإثبات ملكية الأصول الرقمية. + +بعض معرّفات الهوية اللامركزية، مثل حساب إثيريوم، يوفر مفاتيح عامة وخاصة. يعرف المفتاح العام المتحكم في الحساب، بينما المفاتيح الخاصة يمكنها توقيع وفك تشفير الرسائل لهذا الحساب. يوفر معرف المفتاح العام الإثباتات اللازمة لتوثيق الكيانات ومنع انتحال الشخصية أو استخدام هويات مزيفة، باستخدام [توقيعات التشفير](https://andersbrownworth.com/blockchain/public-private-keys/) للتحقق من جميع المطالبات. + +### 2. مخازن البيانات اللامركزية {#decentralized-datastores} + +تعمل سلسلة الكتل كسجل بيانات يمكن التحقق منه: مستودع مفتوح وموثوق به ولا مركزي للمعلومات. إن وجود سلسلة الكتل العامة يزيل الحاجة إلى تخزين المعرفات في سجلات مركزية. + +وفي حال احتاج أي شخص إلى تأكيد صلاحية معرِّف لامركزي، فيمكنه البحث عن المفتاح العمومي المرتبط به على سلسلة الكتل. وهذا يختلف عن المعرفات التقليدية التي تتطلب أطرافًا ثالثة للتوثيق. + +## كيف يمكن للمعرِّفات و المصادقات اللامركزية أن تمكِّن من تحقيق الهوية اللامركزية؟ {#how-decentralized-identifiers-and-attestations-enable-decentralized-identity} + +الهوية اللامركزية هي الفكرة القائلة بأن المعلومات المتصلة بالهوية ينبغي أن تكون ذاتية التحكم وأن تكون خاصة ومحمولة، على أن تكون المعرفات والمصادقات اللامركزية هي كتل البناء الأساسية. + +في سياق الهوية اللامركزية، فإن المصادقات (المعروفة أيضًا باسم [بيانات الاعتمادات القابلة للتحقق](https://www.w3.org/TR/vc-data-model/)) هي مطالبات مضادة للتلاعب، ويمكن التحقق من تشفيرها، وتقدمها جهة الإصدار. كل مصادقة أو بيانات اعتماد قابلة للتحقق منها، صادرة من كيان (منظمة مثلًا)، تكون مرتبطة بالهوية اللامركزية (DID) لديها. + +نظرًا لأن الهويات اللامركزية (DID) تكون مخزنة على سلسلة الكتل، يمكن لأي شخص التحقق من المصادقة من خلال التحقق من الهوية اللامركزية لجهة الإصدار على إثيريوم. تعمل سلسلة كتل إثيريوم بشكل أساسي كدليل عالمي يمكنه التحقق من الهويات اللامركزية (DID) المرتبطة بكيانات معينة. + +وجود المعرفات اللامركزية هو السبب في أن المصادقات ذاتية التحكم ويمكن التحقق منها. وحتى لو لم تعد جهة الإصدار موجودة، فإن صاحبها لديه دائمًا الدليل على مصدر الشهادة وصحتها. + +كما أن المعرفات اللامركزية أمر بالغ الأهمية لحماية خصوصية المعلومات الشخصية من خلال الهوية اللامركزية. فمثلًا، إذا قدم شخص ما دليلًا على مصادقة ما (رخصة قيادة)، لا يحتاج الطرف المتحقق إلى فحص صحة المعلومات في الدليل. بدلًا من ذلك، لا يحتاج المتحقق إلا إلى ضمانات مشفرة لصحة المصادقة وهوية المؤسسة المصدرة لها لتحديد ما إذا كان الدليل صحيحا. + +## أنواع المصادقات في الهوية اللامركزية {#types-of-attestations-in-decentralized-identity} + +تختلف كيفية تخزين المعلومات المتعلقة بالمصادقة وكيفية استرجاعها في نظام الهوية المستند إلى إثيريوم عن الإدارة التقليدية للهوية. وفيما يلي نظرة عامة على مختلف النُهج المتبعة في إصدار المصادقات وتخزينها والتحقق منها في نظم الهوية اللامركزية: + +### مصادقات خارج السلسلة {#off-chain-attestations} + +يتمثل أحد المخاوف المتعلقة بتخزين المصادقات في السلسلة في أنها قد تحتوي على معلومات يرغب الأفراد في الحفاظ على خصوصيتها. الطبيعة العامة لسلسلة كتل إثيريوم تجعلها غير جذابة لتخزين مثل هذه المصادقات. + +لذا يكمن الحل في إصدار مصادقات، يحتفظ بها المستخدمون خارج سلسلة في المحافظ الرقمية، ولكنها موقّعة بهوية لامركزية من الجهة المصدِّرة ومخزنة على السلسلة. هذه المصادقات مشفرة [كرموز JSON Web مميزة](https://en.wikipedia.org/wiki/JSON_Web_Token) وتحتوي على التوقيع الرقمي للجهة المصدِّرة - وهو ما يسمح بسهولة التحقق من المطالبات من خارج السلسلة. + +هذا سيناريو افتراضي لشرح المصادقات خارج السلسلة: + +1. تُصدِر الجامعة (الجهة المصدِّرة) شهادة (شهادة أكاديمية رقمية)، وتوقعها بالمفاتيح الخاصة بها، ثم تصدر هذه الشهادة إلى Bob (صاحب الهوية). + +2. فيما بعد يتقدم Bob للحصول على وظيفة ويرغب في إثبات مؤهلاته الأكاديمية لصاحب عمل، ولذلك فهو يشارك الشهادة من محفظته المتنقلة. وعندئذ يمكن للشركة (المتحقق) أن تؤكد صحة هذه المصادقة بالتحقق من الهوية اللامركزية (DID) للجهة المصدرة (أي مفتاحها العمومي على إثيريوم). + +### المصادقات خارج السلسلة مع الوصول المستمر {#offchain-attestations-with-persistent-access} + +بموجب هذا الترتيب، تُحوّل المصادقات إلى ملفات JSON وتُخّزن خارج السلسلة (بشكل مثالي على [منصة تخزين سحابية لامركزية](/developers/docs/storage/) ، مثل IPFS أو Swarm). ومع ذلك، يُخزن [هاش](/glossary/#hash) لملف JSON ضمن السلسلة، ثم يُربط مع الهوية اللامركزية عبر سجل على السلسلة. ويمكن أن تكون الهوية اللامركزية مرتبطة بالجهة المصدرة للمصادقة أو الجهة المستلمة لها. + +هذا النهج يمكّن المصادقات من الحصول على استمرارية قائمة على سلسلة الكتل، مع الحفاظ على معلومات المطالبات مشفرة وقابلة للتحقق منها. كما أنه يسمح بالكشف الانتقائي لأن حامل المفتاح الخاص يستطيع فك تشفير المعلومات. + +### المصادقات ضمن السلسلة {#onchain-attestations} + +المصادقات ضمن السلسلة موجودة في [العقود الذكية](/developers/docs/smart-contracts/) على سلسلة كتل إثيريوم. العقد الذكي (بصفته سجلًا) سيضع خريطة للمصادقة على معرف لامركزي مناظر (مفتاح عام) ضمن السلسلة. + +إليك مثال عملي لشرح كيفية عمل المصادقات ضمن السلسلة: + +1. تخطط شركة (XYZ Corp) لبيع أسهم الملكية باستخدام عقد ذكي ولكنها تريد فقط المشترين الذين قد أكملوا التحقق من خلفيتهم. + +2. يمكن لشركة XYZ Corp أن يتم لديها فحص الخلفية لإصدار المصادقات ضمن السلسلة على إثيريوم. تشهد هذه المصادقة بأن شخصًا ما قد اجتاز عملية التحقق من الخلفية دون الكشف عن أي معلومات شخصية. + +3. العقد الذكي لبيع الأسهم يمكنه التحقق من عقد التسجيل لمعرفة هويات المشترين الذين تم فحصهم، ممكنًا العقد الذكي من تحديد من يُسمح له بشراء الأسهم أم لا. + +### الرموز المميزة الثابتة والهوية {#soulbound} + +[الرموز المميزة الثابتة](https://vitalik.ca/general/2022/01/26/soulbound.html) (NFTs) غير القابلة للتحويل يمكن استخدامها لجمع معلومات فريدة من نوعها في محفظة معينة. مما يخلق بطريقة فعالة هوية فريدة ضمن السلسلة مرتبطة بعنوان معين على إثيريوم يمكن أن يشمل الرموز المميزة التي تمثل الإنجازات ( مثل الانتهاء من بعض الدورات التدريبية على الإنترنت أو اجتياز حد أدنى للنتيجة في اللعبة) أو المشاركة المجتمعية. + +## فوائد الهوية اللامركزية {#benefits-of-decentralized-identity} + +1. تؤدي الهوية اللامركزية إلى زيادة التحكم الفردي على المعلومات المحددة للهوية. يمكن التحقق من المعرفات والمصادقات اللامركزية دون الاعتماد على السلطات المركزية وخدمات الأطراف الثالثة. + +2. تسهل الحلول اللامركزية للهوية طريقة موثوقة وسلسة وتحمي الخصوصية للتحقق من هوية المستخدم وإدارتها. + +3. تستفيد الهوية اللامركزية من تكنولوجيا سلاسل الكتل التي تؤسس الثقة بين مختلف الأطراف وتوفر ضمانات تشفير لإثبات صحة المصادقات. + +4. الهوية اللامركزية تجعل بيانات الهوية متنقلة. يخزن المستخدمون المصادقات والمعرفات في محفظة محمولة ويمكنهم مشاركتها مع أي طرف يختارونه. لا تخزن المعرفات والمصادقات اللامركزية في قاعدة بيانات مقفلة للمنظمة المصدرة. + +5. ينبغي للهوية اللامركزية أن تعمل بشكل جيد مع تكنولوجيات المعرفة الصفرية التي ستمكن الأفراد من إثبات امتلاكهم لشيء ما، أو إثبات فعلهم لعمل ما دون الكشف عن ماهية هذا الشيء. يمكن أن يصبح ذلك وسيلة قوية للجمع بين الثقة والخصوصية فيما يتعلق بتطبيقات مثل التصويت. + +6. تمكن الهوية اللامركزية آليات مكافحة 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/) حينئذ بتمكين الخوادم لتأكيد حساب المستخدم في إثيريوم والحصول على المصادقة المطلوبة من عنوان الحساب الخاص بهم. وهذا يعني أنه يمكن للمستخدمين الوصول إلى المنصات والمواقع دون الحاجة إلى حفظ كلمات المرور الطويلة وتحسين تجربة المستخدمين على الإنترنت. + +### ٢. مصادقة KYC {#kyc-authentication} + +يتطلب استخدام العديد من الخدمات على الإنترنت أن يقدم الأفراد مصادقات وبيانات اعتماد، مثل رخصة قيادة أو جواز سفر وطني. لكن هذا النهج يثير مشكلات عدّة لأن معلومات المستخدمين الخاصة يمكن أن تتعرض للخطر، ولأن مقدمي الخدمات لا يستطيعون التحقق من صحة المصادقات. + +تسمح الهويّة اللامركزية للشركات بتجنب العمليات التقليدية [ اعرف زبونك (KYC)](https://en.wikipedia.org/wiki/Know_your_customer) والتحقق من هويات المستخدم عن طريق بيانات الاعتماد القابلة للتحقق. مما يقلل من تكلفة إدارة شؤون الهوية ويحول دون استخدام الوثائق المزورة. + +### 3. التصويت و المجتمعات على الإنترنت {#voting-and-online-communities} + +يشكل التصويت على الإنترنت ووسائل التواصل الاجتماعي تطبيقين جديدين للهوية اللامركزية. يُعد التصويت على الإنترنت عرضة للتلاعب، ولا سيما إذا كانت الجهات الفاعلة الخبيثة تنشئ هويات مزيفة للتصويت. يُمكن أن يؤدي الطلب من الأفراد تقديم مصادقات ضمن السلسلة إلى تحسين نزاهة عمليات التصويت على الإنترنت. + +كما يمكن للهوية اللامركزية أن تساعد على إنشاء مجتمعات على الإنترنت خالية من الحسابات المزورة. فعلى سبيل المثال، قد يتعين على كل مستخدم أن يوثق هويته باستخدام نظام هوية ضمن السلسلة، مثل دائرة أسماء إثيريوم، مما يقلل من إمكانية وجود البوتات. + +### 4. الحماية من Sybil {#sybil-protection} + +تشير هجمات Sybil إلى أن أفراد يخدعون النظام بإيهامه أنهم أشخاص عديدون بهدف زيادة نفوذهم. [تطبيقات طلب المنح](https://gitcoin.co/grants/) التي تستخدم [التصويت الرباعي](https://www.radicalxchange.org/concepts/plural-voting/) معرضة لهجمات Sybil لأن قيمة المنحة تزداد عندما يصوت المزيد من الأفراد لها. مما يحفز المستخدمين على تقسيم مساهماتهم عبر العديد من الهويات. تساعد الهويات اللامركزية على منع ذلك بزيادة العبء على كل مشارك لإثبات أنه إنسان بالفعل وليس بوت، على الرغم من أنه لا يتطلب في كثير من الأحيان الكشف عن معلومات خاصة محددة. + +## استخدام الهوية اللامركزية {#use-decentralized-identity} + +هناك العديد من المشاريع الطموحة التي تستخدم إثريوم كأساس لحلول الهوية اللامركزية: + +- **[خدمة اسم إثيريوم (ENS)](https://ens.domains/)** - _نظام تسمية لامركزي ضمن السلسلة، ومعرّفات مقروءة آليا، مثل عناوين محفظة إثيريوم، و محتوى الهاش، والبيانات الوصفية._ +- **[SpruceID](https://www.spruceid.com/)** - _مشروع للهوية اللامركزية يسمح للمستخدمين بالتحكم في الهوية الرقمية مع حسابات إثيريوم وملفات ENS بدلا من الاعتماد على خدمات طرف ثالث._ +- **[خدمة مصادقة إثيريوم (EAS)](https://attest.sh/)** - _دفتر الأستاذ/البروتوكول اللامركزي لعمل المصادقات ضمن السلسلة أو خارج السلسلة بخصوص أي شيء._ +- **[إثبات الإنسانية](https://www.proofofhumanity.id)** - _إثبات الإنسانية (أو poH) هو نظام للتحقق من الهوية الاجتماعية مبني على إثيريوم._ +- **[BrightID](https://www.brightid.org/)** - _ شبكة الهوية الاجتماعية اللامركزية مفتوحة المصدر تسعى إلى إصلاح التحقق من الهوية من خلال إنشاء مخطط اجتماعي وتحليله._ +- **[ جواز إثبات الشخصية](https://proofofpersonhood.com/)** - _مجمع للهوية الرقمية اللامركزية_ + +## قراءة إضافية {#further-reading} + +### مقالات {#articles} + +- [حالات استخدام سلسلة الكتل: سلسلة الكتل في الهوية الرقمية](https://consensys.net/blockchain-use-cases/digital-identity/) — _ConsenSys_ +- [ما هو إثريوم ERC725؟ Self-Sovereign Identity Management on the Blockchain](https://cryptoslate.com/what-is-erc725-self-sovereign-identity-management-on-the-blockchain/) — _Sam Town_ - إدارة الهُوِيَّة ذات السيادة الذاتية على سلسلة الكتل +- [How Blockchain Could Solve the Problem of Digital Identity](https://time.com/6142810/proof-of-humanity/) — _Andrew R. Chow_ - كيف يمكن لسلسلة الكتل أن تحل مشكلة الهُوِيَّة الرقمية +- [What Is Decentralized Identity And Why Should You Care? (ما هي الهوية اللامركزية ولماذا عليك أن تهتم بها؟)](https://web3.hashnode.com/what-is-decentralized-identity) — _إيمانويل أووسيكا_ - + +### مقاطع الفيديو {#videos} + +- [الهوية اللامركزية (جلسة Bonus ديم Livestream)](https://www.youtube.com/watch?v=ySHNB1za_SE&t=539s) - _فيديو تفسيري عظيم عن الهوية اللامركزية من تقديم أندرياس أنتونوبولوس_ +- [تسجيل الدخول باستخدام إثيريوم والهوية اللامركزية مع Ceramic، وIDX، وReact و 3ID Connect](https://www.youtube.com/watch?v=t9gWZYJxk7c) - _درس تعليمي على يوتيوب عن بناء نظام لإدارة الهوية لإنشاء، وقراءة، وتحديث الملف الشخصي للمستخدم باستخدام محفظة إثيريوم من تقديم نادر دابيت_ +- [BrightID - الهوية اللامركزية على إثيريوم](https://www.youtube.com/watch?v=D3DbMFYGRoM) - _حلقة تسجيلات Bankless تناقش BrightID، حل لا مركزي للهوية لإثيريوم_ +- [الانترنت خارج السلسلة: الهوية لامركزية & وبيانات الاعتماد التي يمكن التحقق منها](https://www.youtube.com/watch?v=EZ_Bb6j87mg) — EthDenver 2022 عرض من إيفين ماكملين + +### المجتمعات {#communities} + +- [ERC-725 Alliance on GitHub](https://github.com/erc725alliance) — _داعمو معيار ERC725 لإدارة الهوية على سلسلة كتل إثيريوم_ +- [خادم SpruceID Discord](https://discord.com/invite/Sf9tSFzrnt) — _مجتمع للمتحمسين والمبرجمين الذين يعملون على تسجيل الدخول من خلال إثيريوم _ +- [Veramo Labs](https://discord.gg/sYBUXpACh4) - _مجتمع من المبرجمين يساهم في بناء إطار عمل للبيانات القابلة للتحقق منها للتطبيقات_ diff --git a/src/content/translations/ar/defi/index.md b/src/content/translations/ar/defi/index.md new file mode 100644 index 00000000000..8333492c416 --- /dev/null +++ b/src/content/translations/ar/defi/index.md @@ -0,0 +1,352 @@ +--- +title: التمويل اللامركزي (DeFi) +description: نظرة عامة حول التمويل اللامركزي على إثيريوم +lang: ar +template: use-cases +emoji: ":money_with_wings:" +image: ../../../../assets/use-cases/defi.png +alt: شعار إثيريوم مصنوع من قطع الليجو. +sidebarDepth: 2 +summaryPoint1: "• بديل عالمي مفتوح عن النظام المالي الحالي." +summaryPoint2: المنتجات التي تسمح لك بالاقتراض، والادخار، والاستثمار، والتجارة، والمزيد. +summaryPoint3: استنادًا إلى التكنولوجيا مفتوحة المصدر التي يمكن لأي شخص أن يبرمج باستخدامها. +--- + +التمويل اللامركزى نظام مالي عالمي مفتوح تم بناؤه لعصر الإنترنت - وهو بديل لنظام غامض، يخضع للتحكم الصارم، ومتوحد بواسطة بنية تحتية وعمليات دامت عقودا من الزمن. وهو يمنحك التحكم والاطلاع الكامل على أموالك. كما يمنحك فرصة للتعامل مع الأسواق العالمية و بدائل للعملة المحلية أو الخيارات المصرفية لديك. منتجات التمويل اللامركزي DeFi تتيح الخدمات المالية لأي شخص لديه اتصال بالإنترنت وهي مملوكة ومصانة بشكل أساسي من قبل مستخدميها. حتى الآن تدفقت عملات رقمية بقيمة عشرات المليارات من الدولارات عبر تطبيقات DeFi التي تنمو كل يوم. + +## ما هو التمويل اللامركزي؟ {#what-is-defi} + +التمويل اللامركزي هو مصطلح إجمالي للمنتجات والخدمات المالية التي يمكن الوصول إليها بواسطة أي شخص يمكنه استخدام إثيريوم - أي شخص لديه اتصال بالإنترنت. مع التمويل اللامركزي، الأسواق مفتوحة دائمًا ولا توجد سلطات مركزية يمكنها منع المدفوعات أو منعك من الوصول إلى أي شيء. الخدمات التي كانت بطيئة سابقًا ومعرضة لخطر الخطأ البشري، أصبحت تلقائية وأكثر أمانًا الآن بعد أن تم التعامل معها بواسطة رمز يمكن لأي شخص فحصه والتحقق منه. + +هناك اقتصاد رقمي مزدهر، حيث يمكنك الإقراض، والاقتراض، والبيع/الشراء، وكسب الفائدة، والمزيد. استخدم الأرجنتينيون المتمرسون في مجال التشفير التمويل اللامركزي للهروب من التضخم المعوق. بدأت الشركات في دفع أجور موظفيها في الوقت الفعلي. حتى أن بعض الناس اقترضوا وسددوا قروضًا بملايين الدولارات دون الحاجة إلى أي هوية شخصية. + + + +## التمويل اللامركزي مقابل التمويل التقليدي {#defi-vs-tradfi} + +واحدة من أفضل الطرق لمعرفة إمكانات التمويل اللامركزي هي فهم المشاكل الموجودة اليوم. + +- لا يتم منح بعض الأشخاص حق إعداد حساب مصرفي أو استخدام الخدمات المالية. +- يمكن أن يؤدي عدم الوصول إلى الخدمات المالية إلى منع الأشخاص من أن يصبحوا مؤهلين للتوظيف. +- يمكن للخدمات المالية أن تمنعك من الحصول على مدفوعاتك. +- تعتبر بياناتك الشخصية من الرسوم الخفية للخدمات المالية. +- يمكن للحكومات والمؤسسات المركزية إغلاق الأسواق حسب الرغبة. +- غالبًا ما تقتصر ساعات التداول على ساعات العمل في منطقة زمنية محددة. +- يمكن أن تستغرق تحويلات الأموال أيامًا بسبب العمليات البشرية الداخلية. +- هناك علاوة على الخدمات المالية لأن المؤسسات الوسيطة بحاجة إلى اقتطاعها. + +### مقارنة {#defi-comparison} + +| DeFi | التمويل التقليدي | +| --------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | +| أنت تملك أموالك. | أموالك تحتجزها الشركات. | +| أنت تتحكم في أين تذهب أموالك وكيف يتم إنفاقها. | عليك أن تثق في أن الشركات لا تسيء إدارة أموالك، مثل إقراض المقترضين المحفوفين بالمخاطر. | +| يتم تحويل الأموال في غضون دقائق. | قد تستغرق المدفوعات أيامًا بسبب العمليات اليدوية. | +| نشاط المعاملة مجهول الهوية. | يرتبط النشاط المالي ارتباطًا وثيقًا بهويتك. | +| التمويل اللامركزي مفتوح لأي شخص. | يجب عليك التقدم بالطلب لاستخدام الخدمات المالية. | +| الأسواق مفتوحة دائمًا. | الأسواق تغلق لأن الموظفين يحتاجون إلى فترات راحة. | +| إنها مبنية على الشفافية - يمكن لأي شخص الاطلاع على بيانات المنتج وفحص كيفية عمل النظام. | المؤسسات المالية عبارة عن دفاتر مغلقة: لا يمكنك أن تطلب الاطلاع على سجل قروضها، وسجل أصولها المدارة، وما إلى ذلك. | + + + استكشف تطبيقات التمويل اللامركزي + + +## لقد بدأت مع عملة بيتكوين... {#bitcoin} + +من نواح عدة، كانت عملة بيتكوين أول تطبيق للتمويل اللامركزي. تتيح لك عملة بيتكوين بالفعل امتلاك القيمة والتحكم فيها وإرسالها إلى أي مكان حول العالم. وهي تفعل ذلك بواسطة تقديم طريقة لعدد كبير من الأشخاص، الذين لا يثقون ببعضُهم البعض، كي يوافقوا على سجل الحسابات دون الحاجة لوسيط موثوق. عملة بيتكوين مفتوحة لأي شخص ولا أحد يملك سلطة تغيير قواعده. قواعد عملة بيتكوين، مثل الندرة والانفتاح، مكتوبة في التكنولوجيا. وهي لا تشبه التمويل التقليدي حيث يمكن للحكومات طباعة المال مما يقلل قيمة مدخراتك، أو يمكن للشركات إغلاق الأسواق. + +إثيريوم يستند على هذه المبادئ. كما هو الحال مع عملة بيتكوين، فإن القواعد لا يمكن أن تتغير عليكم والجميع يمكنه الوصول. لكنها أيضا تجعل هذه الأموال الرقمية قابلة للبرمجة، باستخدام [العقود الذكية](/glossary#smart-contract)، وبالتالي ستتمكن من الذهاب إلى ما هو أبعد من التخزين وإرسال القيمة. + + + +## الأموال القابلة للبرمجة {#programmable-money} + +يبدو هذا غريبًا... "لماذا أريد برمجة مالي"؟ ومع ذلك، فهذه ميزة افتراضية للرموز على إثيريوم. يمكن لأي شخص برمجة المنطق في المدفوعات. لذا يمكنك الحصول على تحكم وأمان عملة بيتكوين فضلاً عن الخدمات التي تقدمها المؤسسات المالية. هذا يتيح لك القيام بأشياء مع العملات الرقمية لا يمكنك القيام بها مع عملة بيتكوين مثل الإقراض والاقتراض، وجدولة المدفوعات، والاستثمار في صناديق الفهرسة والمزيد. + + +
استكشف اقتراحاتنا لتطبيقات التمويل اللامركزي التي يمكن تجربتها إذا كنت جديداً على إثيريوم.
+ + استكشف النظام المالي اللامركزي (DeFi) + +
+ +## ما الذي يمكنك أن تفعله بالتمويل اللامركزي؟ {#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} + +تقلبات العملات الرقمية هي مشكلة بالنسبة لكثير من المنتجات المالية والإنفاق العام. قام مجتمع التمويل اللامركزي بحل هذه المشكلة بواسطة العملات المستقرة. تبقى قيمتها مرتبطة بأصل آخر، عادةً يكون عملة شائعة مثل الدولارات. + +عملات مثل Dai أو USDC لديها قيمة تظل في حدود بضع سنتات قليلة من الدولار. ما يجعلها مثالية للكسب أو البيع بالتجزئة. وقد استخدم كثير من الناس في أمريكا اللاتينية العملات المستقرة كوسيلة لحماية مدخراتهم في وقت يتسم بقدر كبير من عدم اليقين إزاء عملاتهم الصادرة عن الحكومات. + + + المزيد حول العملات المستقرة + + + + +### الاقتراض {#lending} + +يأتي اقتراض الأموال من مقدمي الخدمات اللامركزية في نوعين رئيسيين. + +- النظراء: ويعني أن المقترض سيقترض من مقرض معين مباشرة. +- ويقوم المقرضون على أساس التجميع بتوفير أموال (سيولة) لمجمع يمكن للمقترضين الاقتراض منه. + + + اطلع على تطبيقات الاقتراض اللامركزية + + +هناك العديد من المزايا لاستخدام المقرض اللامركزي... + +#### الاقتراض مع الخصوصية {#borrowing-privacy} + +اليوم، تتمحور عملية إقراض واقتراض الأموال حول الأفراد المعنيين. تحتاج البنوك قبل إقراض الأموال إلى معرفة ما إذا كان من المرجح أن تسدده. + +يعمل الإقراض اللامركزي دون أن يضطر أي من الطرفين إلى تحديد هويته. بدلا من ذلك، يجب على المقترض أن يقدم ضمانة احتياطية يحصل عليها المقرض تلقائيًا إذا لم يسدد قرضه. قد يقبل بعض المقرضين بـ NFT كضمان إضافي. NFT هي صكوك لأصل فريد، لوحة فنية مثلًا. [المزيد حول NFT](/nft/) + +هذا يسمح لك باقتراض المال دون شيكات ائتمانية أو تسليم معلومات خاصة. + +#### الوصول إلى الصناديق العالمية {#access-global-funds} + +عندما تتعامل مع مقرض لامركزي تحصل على الأموال المودعة من جميع أنحاء العالم، ليس فقط الأموال الموجودة في عهدة بنك أو مؤسسة محددة. مما يجعل الحصول على القروض أيسر ويحسن معدلات الفائدة. + +#### الكفاءات الضريبية {#tax-efficiencies} + +يتيح الاقتراض إمكانية الوصول إلى الأموال التي تحتاجها دون الحاجة إلى بيع ETH الخاص بك (حدث خاضع للضريبة). بدلاً من ذلك، يمكنك استخدام ETH كضمانة إضافية للحصول على قرض بالعملة المستقرة. مما يعطيك التدفق النقدي الذي تحتاجه ويسمح لك بالحفاظ على ETH. العملات المستقرة هي رموز مميزة أكثر جدوى عندما نحتاج إلى النقود لأنها لا تتقلب في القيمة مثل ETH. [المزيد حول العملات المستقرة](#stablecoins) + +#### القروض السريعة {#flash-loans} + +القروض السريعة هي نموذج تجريبي أكثر للإقراض اللامركزي الذي يسمح بالاقتراض دون ضمانة إضافية أو دون تقديم أي معلومات شخصية. + +فهي ليست متاحة على نطاق واسع للأشخاص غير التقنيين الآن، ولكنها تشير إلى ما قد يكون ممكنا للجميع في المستقبل. + +حيث تعمل على أساس أن القرض يؤخذ ويسدد في إطار نفس المعاملة. وفي حال عدم إمكانية الرد، فإن المعاملة تعود كما لو لم يحدث أي شيء نهائيًا. + +ويتم الاحتفاظ بالصناديق المستخدمة عادةً في مجمعات للسيولة (مجمعات كبيرة من الصناديق تستخدم في الاقتراض). وفي حال لم تكن هذه الصناديق مستخدمة في لحظة محددة، فإن ذلك يتيح فرصة لشخص ما لاقتراض هذه الصناديق. والقيام بالأعمال التجارية بها، ثم ردها بالكامل حرفيًا في نفس الوقت الذي تم فيه الاقتراض. + +وهذا يعني أن الكثير من المنطق يجب أن يكون متضمنًا في معاملة مشبوهة للغاية. ومن الأمثلة البسيطة على ذلك شخص يأخذ قرضًا سريعًا لاقتراض كم كبير من أصل بسعر واحد حتى يتمكن من بيعه في بورصة مختلفة بسعر أعلى. + +لذلك سيحدث ضمن المعاملة الواحدة ما يلي: + +- فلنفترض أنك اقترضت المبلغ X من $asset بسعر 1.00 دولار من البورصة A +- ثم بعت الكم X من $asset في البورصة B بسعر 1.10 دولار +- ثم رددت القرض إلى البورصة A +- وبذلك تكون حققت أرباحًا مخصوم منها رسم المعاملة + +في حال انخفضت توريدات البورصة B فجأةً، ولم يتمكن المستخدم من الشراء بما يكفي لتغطية القرض الأصلي، فببساطة ستفشل المعاملة. + +لكن لتتمكن من القيام بالمثال المذكور أعلاه في عالم التمويل التقليدي، ستحتاج إلى مبلغ هائل من المال. ولا يتاح هذا النوع من استراتيجيات كسب الأموال إلا لمن لديهم ثروات قائمة. القروض السريعة مثال على مستقبل لا يكون فيه وجود المال شرطًا مسبقًا ضرورياً لكسب المال. + +[المزيد حول القروض السريعة](https://aave.com/flash-loans/) + + + +### ابدأ بالكسب مع العملات الرقمية {#saving} + +#### الإقراض {#lending} + +يمكنك كسب فائدة على العملات الرقمية عن طريق إقراضها ثم ستشاهد أموالك تنمو مباشرة. حاليًا معدلات الفائدة أعلى بكثير مما قد تحصل عليه من البنوك المحلية (لو كنت محظوظًا بما يكفي لكي تتمكن من الوصول لأحدها). مثلا: + +- فلنفترض أنك أقرضت 100 Dai، [وهي عملة تابعة](/stablecoins/)، إلى منتج مثل Aave. +- تحصل على 100 Aave Dai (aDai) وهو رمز مميز يمثل قرض Dai الذي منحته. +- ستزيد قيمة aDai لديك بناءً على معدلات الفائدة ويمكنك أن ترى رصيدك ينمو في محفظتك. اعتمادا على APR، سيظهر رصيد محفظتك مثل 100.1234 بعد بضعة أيام أو حتى ساعات! +- ثم يمكنك سحب مبلغ من Dai القياسي يعادل رصيد aDai الخاص بك في أي وقت. + + + اطلع على التطبيقات اللامركزية للإقراض + + +#### يانصيب دون خسارة {#no-loss-lotteries} + +اليانصيب دون خسارة، مثل PoolTogether هي طريقة جديدة ممتعة ومبتكرة لتوفير المال. + +- أنت تشتري 100 بطاقة باستخدام 100 رمز مميز من عملة Dai. +- وتتلقى 100 plDai تمثل 100 بطاقة. +- لو تم سحب إحدى بطاقاتك باعتبارها الفائزة، فإن رصيدك من plDai سيزداد بمقدار مبلغ مجمع الجائزة. +- إذا لم تفُز، سيتم ترحيل الـ 100 plDai الخاصة بك إلى سحب الأسبوع القادم. +- ثم يمكنك سحب مبلغ من Dai القياسي بحيث يعادل رصيدك من plDai في أي وقت. + +ينشأ مجمع الجوائز من خلال جميع الفوائد التي يولدها إقراض ودائع البطاقات كما هو الحال في مثال الإقراض أعلاه. + + + جرب PoolTogether + + + + +### تبادل الرموز المميزة {#swaps} + +يوجد الآلاف من الرموز المميزة على إثيريوم. تسمح لك البورصات اللامركزية (DEXs) بتجارة الرموز المميزة المختلفة متى أردت. لن تفقد أبدًا التحكم في أصولك. هذا يشبه تغيير العملات عند زيارة بلد مختلف. لكن الفرق هو أن نسخة التمويل اللامركزي لا تغلق أبدًا. ما يعني أن أسواق \تعمل بنظام 24/7، لمدة 365 يومًا في السنة، مع ضمانات تكنولوجية تتيح إمكانية دائمة لوجود شخص يقبل المتاجرة. + +على سبيل المثال، إذا كنت ترغب في استخدام اليانصيب دون خسارة PoolTogether (الموصوف أعلاه)، فستحتاج إلى رمز مميز مثل Dai أو USDC. تسمح لك هذا البورصات اللامركزية باستبدال عملة ETH مقابل هذه الرموز المميزة واستردادها لاحقًا عندما تنتهي. + + + اطلع على بورصات الرموز المميزة + + + + +### التجارة المتقدمة {#trading} + +هناك خيارات أكثر تقدماً للمتداولين الذين يفضلون تحكمًا أكبر. تداول الأوامر المحدودة، والتداول المستمر، والتداول الهامشي والمزيد كلها ممكنة. مع التداول اللامركزي ستتمكن من الوصول إلى السيولة العالمية، حيث الأسواق لا تغلق أبدًا، ولديك تحكم دائم بأصولك. + +فعندما تُستخدم البورصة المركزية، عليك أن تودع أصولك قبل التداول، وأن تثق بأن هذه البورصات ستعتني بالأصول. عندما تكون أصولك مودعة، فهي معرضة للخطر لأن البورصات المركزية هي أهداف جذابة للقراصنة. + + + اطلع على التطبيقات اللامركزية للتداول + + + + +### تنمية محفضتك {#investing} + +هناك منتجات لإدارة الأموال على إثيريوم تحاول تنمية حافظتك على أساس استراتيجية من اختيارك. بشكل تلقائي ومفتوح للجميع، ولا يحتاج إلى مدير بشري يقتطع جزءًا من أرباحك. + +ومن الأمثلة الجيدة على ذلك [DeFi Pluse Index fund (DPI)](https://defipulse.com/blog/defi-pulse-index/). هذا صندوق يعيد توازن الرصيد تلقائيًا لضمان أن حافظتك دائمًا تتضمن [أعلى عملات التمويل اللامركزي عن طريق رأسمالية السوق](https://www.coingecko.com/en/defi). لا تحتاج أبدًا إلى إدارة أي من التفاصيل ويمكنك السحب من الصندوق متى ما رغبت. + + + شاهد التطبيقات اللامركزية للاستثمار + + + + +### تمويل الأفكار الخاصة بك {#crowdfunding} + +إثيريوم هو منصة مثالية للتمويل الجماعي: + +- يمكن للممولين المحتملين أن يأتوا من أي مكان - إثيريوم ورموزها المميزة مفتوحة لأي شخص، في أي مكان في العالم. +- إنه يتمتع بالشفافية بحيث يستطيع جامعو الأموال أن يثبتوا مقدار الأموال التي تم جمعها. يمكنك حتى تتبع كيفية إنفاق هذه الأموال لاحقًا وفق الخط المحدد. +- ويمكن لجامعي الأموال إعداد الأموال تلقائيًا، على سبيل المثال، إذا كان هناك موعد نهائي محدد وحد أدنى للمبلغ لم يتم الوفاء به. + + + اطلع على التطبيقات اللامركزية لجمع الأموال + + +#### التمويل الرباعي {#quadratic-funding} + +إن إثيريوم عبارة عن برنامج مفتوح المصدر وحتى الآن قد تم تمويل جزء كبير من العمل من جانب المجتمع. وقد أدى هذا إلى نمو نموذج جديد مثير للاهتمام لجمع الأموال: التمويل الرباعي. هذا لديه القدرة على تحسين الطريقة التي نمول بها جميع أنواع السلع العامة في المستقبل. + +يضمن التمويل الرباعي أن المشاريع التي تتلقى أكبر قدر من التمويل هي تلك ذات الطلب الأكثر تفرداً. بمعنى آخر ، المشاريع التي تهدف إلى تحسين حياة معظم الناس. إليك كيف يعمل: + +1. هناك مجمع مماثل من الأموال المتبرع بها. +2. تبدأ جولة من التمويل العام. +3. يمكن أن يشير الناس لحاجتهم لمشروع ما بالتبرع له ببعض المال. +4. وبمجرد انتهاء الجولة، يوزع المجمع المماثل على المشاريع. ويحصل أولئك الذين لديهم أكثر طلب فريد على أعلى مبلغ من المجمع المماثل. + +وهذا يعني أن المشروع A مع 100 تبرع بـ 1 دولار، يمكن أن ينتهي به الأمر إلى الحصول على تمويل أكثر من المشروع B مع تبرع واحد قدره 10.000 دولار (اعتمادًا على حجم المجمع المماثل). + +[المزيد حول التمويل الرباعي](https://wtfisqf.com) + + + +### التأمين {#insurance} + +يهدف التأمين اللامركزي إلى جعل التأمين أرخص، وأسرع في الدفع، وأكثر شفافية. ومع المزيد من الأتمتة، تصبح تغطية التأمين ميسورة التكلفة و تغدو المدفوعات أسرع بكثير. والبيانات المستخدمة للبت في المطالبات تتمتع بشفافية تامة. + +يمكن لمنتجات إثيريوم، حالها حال جميع البرامج، أن تعاني من الأخطاء والاستغلال. لذا فإن الكثير من منتجات التأمين الموجودة في المجال تركز على حماية مستخدميها من فقدان أموالهم. إلا أن هناك مشاريع بدأت في بناء تغطية لكل ما يمكن للحياة أن تفاجئنا به. ومن الأمثلة الجيدة على ذلك غطاء Etherisc's Crop الذي يهدف إلى [حماية صغار المزارعين في كينيا من الجفاف والفيضانات](https://blog.etherisc.com/etherisc-teams-up-with-chainlink-to-deliver-crop-insurance-in-kenya-137e433c29dc). ويمكن للتأمين اللامركزي أن يوفر تغطية أرخص للمزارعين الذين يواجهون أسعارًا باهظة في التأمين التقليدي. + + + اطلع على تطبيقات التأمين اللامركزية + + + + +### المجمعون ومديرو الحافظات المالية {#aggregators} + +مع الكثير من الأحداث، ستحتاج إلى طريقة لتتبع جميع استثماراتك، وقروضك، وتداولاتك. هناك مجموعة من المنتجات التي تسمح لك بتنسيق جميع أنشطة التمويل اللامركزي الخاصة بك من مكان واحد. هذا ما تمتاز به البنية المفتوحة للتمويل اللامركزي. يمكن للفرق بناء واجهات تتيح لك الاطلاع على أرصدتك عبر المنتجات، كما يمكنك استخدام ميزاتها أيضًا. قد تجد هذا مفيدًا وأنت تستكشف المزيد حول التمويل اللامركزي. + + + اطلع على التطبيقات اللامركزية للحافظة + + + + +## كيف يعمل التمويل اللامركزي؟ {#how-defi-works} + +يستخدم التمويل اللامركزي العملات الرقمية والعقود الذكية لتوفير خدمات لا تحتاج إلى وسطاء. تعمل المؤسسات المالية، في العالم المالي المعاصر، بصفتها ضامنة للمعاملات. مما يمنح هذه المؤسسات قوة هائلة لأن الأموال تتدفق من خلالها. إضافةً إلى أن المليارات من الأشخاص حول العالم لا يمكنهم حتى إنشاء حساب بنكي. + +في نظام التمويل اللامركزي، يحل العقد الذكي محل المؤسسة المالية في المعاملة. العقد الذكي هو نوع من حساب إثيريوم يمكنه أن يحتفظ بالأموال وإرسالها/استردادها بناءً على شروط معينة. لا يمكن لأحد أن يغير هذا العقد الذكي عندما يكون نشطًا - حيث سيعمل دائمًا كما هو مبرمج. + +العقد المبرم لتقديم بدل مالي أو مصروف جيب، يمكن برمجته لإرسال أموال من الحساب A إلى الحساب B كل يوم جمعة. وسوف يفعل ذلك دائمًا طالما توفرj الأموال المطلوبة لدى الحساب A. ولا يمكن لأحد تغيير العقد، وإضافة الحساب C كمستلم بهدف سرقة الأموال. + +كما أن العقود علنية فأي شخص يمكنه تدقيقها ومراجعتها. وهذا يعني أن العقود السيئة ستخضع غالبًا لتدقيق المجتمع بسرعة كبيرة. + +وهذا يعني أن هناك حاجة حالية إلى الثقة في الأعضاء التقنيين في مجتمع إثيريوم الذين يستطيعون قراءة الكود. المجتمع القائم على المصدر المفتوح يساعد على إبقاء المبرمجين تحت المراقبة، ولكن هذه الحاجة ستتضاءل بمرور الوقت كلما أصبحت قراءة العقود الذكية أسهل، وتم تطوير طرق أخرى لإثبات موثوقية النص البرمجي. + +## إثيريوم والتمويل اللامركزي {#ethereum-and-defi} + +يعد إثيريوم الأساس المثالي للتمويل اللامركزي لعدة أسباب: + +- لا أحد يملك إثيريوم أو العقود الذكية التي تعتمد عليه - وهذا يمنح الجميع فرصة لاستخدام التمويل اللامركزي. وهذا يعني أيضًا أنه لا يمكن لأحد أن يغير القواعد بالنسبة لك. +- منتجات التمويل اللامركزي كلها تتحدث نفس اللغة خلف الكواليس: إثيريوم. وبالتالي يعني أن العديد من المنتجات تعمل معًا بسلاسة. يمكنك إقراض الرموز المميزة للعملات على إحدى المنصات وتداول الرموز المميزة ذات الفائدة في سوق مختلفة باستخدام تطبيق مختلف تمامًا. هذا كأن تكون قادرًا على تحويل نقاط الولاء في البنك الخاص بك إلى أموال. +- توجد الرموز المميزة والعملات الرقمية ضمن بناء إثيريوم، السجل المشترك - الذي يحافظ على تتبع المعاملات والملكية هو أحد ميزات إثيريوم. +- يسمح إثيريوم بحرية مالية كاملة - معظم المنتجات لن تحتجز أموالك أبدًا، مما يتيح لك حرية التحكم بها. + +يمكنك التفكير في التمويل اللامركزي ضمن طبقات: + +1. سلسلة الكتل - يحتوي إثيريوم على تاريخ المعاملات وحالة الحسابات. +2. الأصول - عملة [ETH](/eth/) والرموز المميزة الأخرى (العملات). +3. البروتوكولات - [عقود ذكية](/glossary/#smart-contract) التي تقدم وظيفة، على سبيل المثال خدمة تسمح بالإقراض اللامركزي للأصول. +4. [التطبيقات](/dapps/) - المنتجات التي نستخدمها لإدارة البروتوكولات والوصول إليها. + +## بناء التمويل اللامركزي {#build-defi} + +التمويل اللامركزي هو حركة مفتوحة المصدر. بروتوكولات التمويل اللامركزي وتطبيقاته كلها مفتوحة للفحص، والتفكير، والإبداع. بسبب هذا التركيب المتراكب كطبقات (تشترك جميعها في نفس سلسلة الكتل والأصول الأساسية)، يمكن مزج البروتوكولات ومطابقتها لفتح فرص كثيرة فريدة. + + + المزيد حول بناء التطبيقات اللامركزية + + +## قراءة إضافية {#futher-reading} + +### بيانات التمويل اللامركزي {#defi-data} + +- [DeFi Prime](https://defiprime.com/) +- [DeFi Llama](https://defillama.com/) +- [DeFi Rate](https://defirate.com/) + +### مقالات التمويل اللامركزي {#defi-articles} + +- [A beginner's guide to DeFi](https://blog.coinbase.com/a-beginners-guide-to-decentralized-finance-defi-574c68ff43c4) – _Sid Coelho-Prabhu, January 6 2020_ - (دليل المبتدئين لتعلم التمويل اللامركزي) + +### مقاطع الفيديو {#videos} + +- [Finematics - decentralized finance education](https://finematics.com/) – _Videos on DeFi_ - تعليم التمويل اللامركزي +- [المؤجل](https://www.youtube.com/playlist?list=PLaDcID4s1KronHMKojfjwiHL0DdQEPDcq) - _أساسيات ديفي: كل شيء تحتاج إلى معرفته للبدء به في هذه المساحة المحفزة أحياناً_ +- [Whiteboard Crypto](https://youtu.be/17QRFlml4pA) _What is DeFi?_ - ماهو التمويل اللامركزي + +### المجتمعات {#communities} + +- [خادم DeFi Llama Discord](https://discord.gg/buPFYXzDDd) +- [خادم DeFi Pulse Discord](https://discord.gg/Gx4TCTk) diff --git a/src/content/translations/ar/desci/index.md b/src/content/translations/ar/desci/index.md new file mode 100644 index 00000000000..eeccfbfe630 --- /dev/null +++ b/src/content/translations/ar/desci/index.md @@ -0,0 +1,138 @@ +--- +title: لا مركزية العلوم (DeSci) +description: نظرة عامة على العلوم اللامركزية على إثيريوم +lang: ar +template: use-cases +emoji: ":microscope:" +sidebarDepth: 2 +image: ../../../../assets/future_transparent.png +alt: "" +summaryPoint1: نظام عالمي ومفتوح بديل للنظام العلمي الحالي. +summaryPoint2: تتيح التكنولوجيا للعلماء جمع التمويل وإجراء التجارب، ومشاركة البيانات، ونشر النتائج، والمزيد. +summaryPoint3: يعتمد على حركة العلوم المفتوحة. +--- + +## ما المقصود بالعلوم اللامركزية (DeSci)؟ {#what-is-desci} + +العلوم اللامركزية (DeSci) هي حركة تهدف إلى بناء بنية تحتية عامة لتمويل، وإنشاء، ومراجعة، واعتماد، وتخزين، ونشر المعرفة العلمية بشكل منصف وعادل باستخدام حزمة Web3. + +تهدف العلوم اللامركزية إلى خلق بيئة تشجع العلماء على مشاركة أبحاثهم بشكل مفتوح والحصول على الاعتماد لعملهم في حين يسمح لأي شخص بالوصول إلى الأبحاث والمساهمة فيها بسهولة. تعمل العلوم اللامركزية على فكرة أن المعرفة العلمية يجب أن تكون متاحة للجميع وأن عملية البحث العلمي يجب أن تكون شفافة. تقوم العلوم اللامركزية بخلق نموذج للبحث العلمي أكثر وتوزيعا وعدم مركزية، مما يجعله أكثر مقاومة للرقابة والتحكم من جانب السلطات المركزية. تأمل العلوم اللامركزية في خلق بيئة حيث يمكن للأفكار الجديدة وغير التقليدية أن تزدهر من خلال عدم مركزية الوصول إلى التمويل، والأدوات العلمية، وقنوات الاتصال. + +تسمح العلوم اللامركزية بمصادر تمويل أكثر تنوعًا (من [DAOs](/dao/)، [التبرعات الرباعية](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531) إلى التمويل الجماعي والمزيد)، وتوفر وصولًا أسهل إلى البيانات والطرق، وعن طريق توفير حوافز لإعادة التكرار. + +### جوان بينيت - حركة العلوم اللامركزية + + + +## كيف تحسن العلوم اللامركزية من العلوم {#desci-improves-science} + +قائمة غير كاملة للمشكلات الرئيسية في العلوم وكيف يمكن للعلوم المركزية المساعدة في معالجة هذه المشكلات + +| **العلوم اللامركزية** | **العلوم التقليدية** | +| ----------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------ | +| يُحدد توزيع الأموال بواسطة الجمهور باستخدام آليات مثل التبرعات الرباعية أو DAOs. | تقوم مجموعات صغيرة ومغلقة ومركزية بالتحكم في توزيع الأموال. | +| أنت تتعاون مع زملائك من جميع أنحاء العالم في فرق ديناميكية. | تقوم منظمات التمويل والمؤسسات الوطنية بتقييد عمليات التعاون. | +| القرارات المتعلقة بالتمويل تتم على الإنترنت وبشفافية. تم استكشاف آليات تمويل جديدة. | يتم اتخاذ القرارات بعد وقت طويل وبشكل محدود في الشفافية. يتواجد القليل من آليات التمويل. | +| تصبح مشاركة خدمات المختبرات أسهل وأكثر شفافية باستخدام المبادئ الأساسية لـ Web3. | تتم مشاركة موارد المختبر بطريقة بطيئة وغير شفافة في كثير من الأحيان. | +| يمكن تطوير نماذج جديدة للنشر تستخدم المبادئ الأساسية لـ Web3 للثقة، والشفافية، والوصول العالمي. | أنت تنشر من خلال مسارات معتمدة يتم الإقرار كثيرا بأنها غير فعالة ومتحيزة ومستغلة. | +| يمكنك كسب رموز مميزة وسمعة عند مراجعة أعمال النظراء. | عملك في مراجعة النظراء غير مدفوع، مما ينتفع به ناشرون يسعون للربح. | +| أنت تملك الملكية الفكرية (IP) التي تنتجها وتوزعها وفقًا لشروط شفافة. | مؤسستك الوطنية تمتلك الملكية الفكرية (IP) التي تنتجها. الوصول إلى الملكية الفكرية IP ليس شفافًا. | +| مشاركة جميع أبحاثك، بما في ذلك بيانات الجهود غير ناجحة، عن طريق وضع جميع الخطوات على السلسلة. | تعني التحيز في النشر أن الباحثين أكثر عرضة لمشاركة التجارب التي حققت نتائج ناجحة. | + +## إثيريوم والعلوم اللامركزية {#ethereum-and-desci} + +سيحتاج نظام العلوم اللامركزي إلى أمان قوي، وتكاليف مادية ومعاملات أدنى، ونظام بيئي غني لتطوير التطبيقات. يوفر إثيريوم كل ما يلزم لبناء حزمة أدوات العلوم اللامركزية. + +## حالات استخدام العلوم اللامركزية {#use-cases} + +تبني العلوم اللامركزية مجموعة أدوات علمية لإدخال أكاديميات Web3 إلى العالم الرقمي. فيما يلي عينات من حالات الاستخدام التي يمكن توفيرها من خلال Web3 للمجتمع العلمي. + +### النشر {#publishing} + +نشر العلوم يعد مشكلة معروفة نظرًا لأنه يتم إدارته من جانب دور النشر التي تعتمد على العمل المجاني من العلماء، والمراجعين، والمحررين، لإنتاج الأوراق العلمية ولكنها تفرض رسوم نشر باهظة. الجمهور، الذي يدفع عادة بشكل غير مباشر للعمل وتكاليف النشر من خلال الضرائب، لا يستطيع عادة الوصول إلى نفس العمل دون الدفع للناشر مرة أخرى. تكون الرسوم الكلية لنشر أوراق العلوم الفردية في كثير من الأحيان بين خمسة أرقام ($USD)، مما يقوض مفهوم المعرفة العلمية [كصالح عام](https://www.econlib.org/library/Enc/PublicGoods.html) بينما يولد أرباحًا هائلة لمجموعة صغيرة من الناشرين. + +توجد منصات حرة ومفتوحة الوصول على شكل خوادم مسودات المقالات العلمية، [مثل ArXiv](https://arxiv.org/). ومع ذلك، تفتقر هذه المنصات إلى مراقبة الجودة، و[آليات مكافحة sybil](https://csrc.nist.gov/glossary/term/sybil_attack)، ولا تتعقب بشكل عام المقاييس على مستوى المقالة، مما يعني أنها تستخدم عادةً فقط للإعلان عن العمل قبل تقديمه إلى ناشر تقليدي. يجعل SciHub أيضًا الأوراق المنشورة مجانية الوصول إليها، ولكن ليس بشكل قانوني، وفقط بعد أن يكون الناشرون قد أخذوا بالفعل مدفوعاتهم وأحاطوا العمل بتشريع صارم لحقوق النشر. يترك هذا فجوة حرجة للأوراق العلمية والبيانات التي يمكن الوصول إليها مع آلية شرعية مضمنة ونموذج حافز. أدوات بناء مثل هذا النظام موجودة في Web3. + +### قابلية إعادة الإنتاج والتكرار {#reproducibility-and-replicability} + +القابلية لإعادة الإنتاج والتكرار هي أسس الاكتشاف العلمي الجيد. + +- يمكن تحقيق نتائج قابلة لإعادة الإنتاج عدة مرات متتالية بواسطة نفس الفريق باستخدام نفس المنهجية. +- يمكن تحقيق نتائج قابلة للتكرار بواسطة مجموعة مختلفة باستخدام نفس الإعداد التجريبي. + +يمكن لأدوات Web3 الأصلية أن تضمن أن إعادة الإنتاج والتكرار هما أساس الاكتشاف. يمكننا دمج علم الجودة في النسيج التكنولوجي للأوساط الأكاديمية. يوفر Web3 القدرة على إنشاء مصادقات لكل مكون من مكونات التحليل: البيانات الأولية، والمحرك الحسابي، ونتائج التطبيق. يكمن جمال أنظمة إجماع الآراء في أنه عند إنشاء شبكة موثوقة للحفاظ على هذه المكونات، يمكن أن يكون كل مشارك في الشبكة مسؤولاً عن إعادة إنتاج الحساب والتحقق من صحة كل نتيجة. + +### التمويل {#funding} + +النموذج القياسي الحالي لتمويل العلوم هو أن الأفراد أو مجموعات العلماء يقدمون طلبات مكتوبة إلى وكالة التمويل. تقوم لجنة صغيرة من الأفراد الموثوق بهم بتقييم الطلبات ثم إجراء مقابلات مع المرشحين قبل منح الأموال لجزء صغير من المتقدمين. بصرف النظر عن خلق الاختناقات التي تؤدي في بعض الأحيان إلى سنوات من الانتظار بين التقدم للحصول على منحة وتلقيها، من المعروف أن هذا النموذج معرض بشكل كبير للتحيزات والمصالح الذاتية وسياسات لجنة المراجعة. + +أظهرت الدراسات أن لجان مراجعة المنح تقوم بعمل ضعيف في اختيار المقترحات عالية الجودة، لأن المقترحات نفسها المقدمة إلى اللجان المختلفة لها نتائج مختلفة تمامًا. نظرًا لأن التمويل أصبح أكثر ندرة، فقد تركز على مجموعة أصغر من كبار الباحثين الذين لديهم مشاريع أكثر تحفظًا من الناحية الفكرية. وقد أدى التأثير إلى خلق مشهد تمويل شديد التنافسية، مما أدى إلى ترسيخ الحوافز الضارة وخنق الابتكار. + +Web3 لديه القدرة على تعطيل نموذج التمويل المعطل هذا من خلال تجربة نماذج الحوافز المختلفة التي طورتها DAOs وWeb3 على نطاق واسع. [تمويل السلع العامة بأثر رجعي](https://medium.com/ethereum-optimism/retroactive-public-goods-funding-33c9b7d00f0c)، [التمويل الرباعي](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531)، [حوكمة DAO](https://www.antler.co/blog/daos-and-web3-governance) و[هياكل الحوافز الرمزية](https://cdixon.org/2017/05/27/crypto-tokens-a-breakthrough-in-open-network-design) هي بعض أدوات Web3 التي يمكن أن تحدث ثورة في تمويل العلوم. + +### ملكية الملكية الفكرية وتطويرها {#ip-ownership} + +تُعد الملكية الفكرية (IP) مشكلة كبيرة في العلوم التقليدية: من الركود في الجامعات أو عدم استخدامها في مجال التكنولوجيا الحيوية، إلى صعوبة تقدير قيمتها. ومع ذلك، فإن ملكية الأصول الرقمية (مثل البيانات أو المقالات العلمية) هي شيء تقوم به Web3 بشكل جيد للغاية باستخدام [رموز غير قابلة للاستبدال (NFTs)](/nft/). + +بالطريقة نفسها التي يمكن بها لـ NFTs تمرير إيرادات المعاملات المستقبلية إلى المنشئ الأصلي، يمكنك إنشاء سلاسل إحالة قيمة شفافة لمكافأة الباحثين أو الهيئات الحاكمة (مثل DAOs) أو حتى الأشخاص الذين يتم جمع بياناتهم. + +يمكن أيضًا أن يعمل [IP-NFTs](https://medium.com/molecule-blog/ip-nfts-for-researchers-a-new-biomedical-funding-paradigm-91312d8d92e6) كمفتاح لمستودع بيانات لامركزي للتجارب البحثية التي يتم إجراؤها، وإدخاله في NFT و [DeFi](/defi/) توظيف المدخرات (من التجزئة إلى تجمعات الإقراض وتقييم القيمة). كما أنه يسمح للكيانات الموجودة في السلسلة مثل DAOs مثل [VitaDAO](https://www.vitadao.com/) بإجراء بحث مباشر على السلسلة. قد يلعب ظهور الرموز [غير القابلة للتحويل "الثابتة"](https://vitalik.ca/general/2022/01/26/soulbound.html) أيضًا دورًا مهمًا في العلوم اللامركزية من خلال السماح للأفراد بإثبات خبرتهم وبيانات اعتمادهم المرتبطة بعنوان إثيريوم الخاص بهم. + +### تخزين البيانات والوصول إليها والهندسة المعمارية {#data-storage} + +يمكن جعل البيانات العلمية أكثر سهولة في الوصول إليها باستخدام أنماط Web3، كما أن التخزين الموزع يمكّن البحث من النجاة من الأحداث الكارثية. + +يجب أن تكون نقطة البداية نظامًا يمكن الوصول إليه بواسطة أية هوية لامركزية تحمل بيانات الاعتماد المناسبة التي يمكن التحقق منها. يتيح ذلك نسخ البيانات الحساسة بشكل آمن بواسطة الأطراف الموثوقة، مما يتيح مقاومة التكرار والرقابة، وإعادة إنتاج النتائج، وحتى قدرة أطراف متعددة على التعاون وإضافة بيانات جديدة إلى مجموعة البيانات. إن طرق الحوسبة السرية مثل [الحوسبة على البيانات](https://7wdata.be/predictive-analytics/compute-to-data-using-blockchain-to-decentralize-data-science-and-ai-with-the-ocean-protocol) توفر آليات وصول بديلة لتكرار البيانات الخام، مما يؤدي إلى إنشاء بيئات بحث موثوق بها للبيانات الأكثر حساسية. إن بيئات البحث الموثوقة [تم الاستشهاد بها بواسطة](https://medium.com/weavechain/whats-in-store-for-the-future-of-healthcare-data-b6398745fbbb) كحل يواجه المستقبل لخصوصية البيانات والتعاون من خلال إنشاء نظام بيئي حيث يمكن للباحثين العمل بأمان مع البيانات في الموقع باستخدام بيئات موحدة لمشاركة النص البرمجي والممارسات. + +تدعم حلول بيانات Web3 المرنة السيناريوهات المذكورة أعلاه وتوفر الأساس للعلم المفتوح حقًا، حيث يمكن للباحثين إنشاء سلع عامة دون أذونات الوصول أو الرسوم. تم تحسين حلول البيانات العامة لـ Web3 مثل IPFS وArweave وFilecoin لتحقيق اللامركزية. dClimate، على سبيل المثال، يوفر وصولاً شاملاً إلى بيانات المناخ والطقس، بما في ذلك من محطات الطقس، والنماذج المناخية التنبؤية. + +## شارك {#get-involved} + +استكشف المشاريع وانضم إلى مجتمع العلوم اللامركزية. + +- [DeSci.Global: الأحداث العالمية وتقويم اللقاءات](https://desci.global) +- [سلسلة الكتل Science Telegram](https://t.me/BlockchainForScience) +- [Molecule: موّل واحصل على تمويل لمشاريعك البحثية](https://discover.molecule.to/) +- [VitaDAO: تلقي التمويل من خلال اتفاقيات البحث المدعومة للأبحاث طويلة العمر](https://www.vitadao.com/) +- [ResearchHub: انشر نتيجة علمية وانخرط في محادثة مع نظرائك](https://www.researchhub.com/) +- [LabDAO: إدماج البروتين في الحاسوب](https://alphafodl.vercel.app/) +- [dClimate API: الاستعلام عن البيانات المناخية التي تم جمعها من قبل مجتمع لامركزي](https://api.dclimate.net/) +- [DeSci Foundation: منشئ أداة نشر العلوم اللامركزية](https://descifoundation.org/) +- [DeSci.World: متجر شامل يتيح للمستخدمين عرض العلوم اللامركزية والتفاعل معها](https://desci.world) +- [Fleming Protocol: اقتصاد بيانات مفتوحة المصدر يغذي اكتشاف الطب الحيوي التعاوني](https://medium.com/@FlemingProtocol/a-data-economy-for-patient-driven-biomedical-innovation-9d56bf63d3dd) +- [OceanDAO: DAO يحكم التمويل للعلوم المتعلقة بالبيانات](https://oceanprotocol.com/dao) +- [Opscientia: فتح تدفقات عمل العلوم اللامركزية](https://opsci.io/research/) +- [LabDAO: إدماج البروتين في الحاسوب](https://alphafodl.vercel.app/) +- [Bio.xyz: احصل على تمويل لمشروع DAO للتكنولوجيا الحيوية، أو مشروع العلوم اللامركزية الخاص بك](https://www.molecule.to/) +- [ResearchHub: انشر نتيجة علمية وانخرط في محادثة مع نظرائك](https://www.researchhub.com/) +- [VitaDAO: تلقي التمويل من خلال اتفاقيات البحث المدعومة للأبحاث طويلة العمر](https://www.vitadao.com/) +- [Fleming Protocol: اقتصاد بيانات مفتوحة المصدر يغذي اكتشاف الطب الحيوي التعاوني](https://medium.com/@FlemingProtocol/a-data-economy-for-patient-driven-biomedical-innovation-9d56bf63d3dd) +- [معمل الاستدلال النشط](https://www.activeinference.org/) +- [CureDAO: منصة الصحة الدقيقة المملوكة للمجتمع](https://docs.curedao.org/) +- [IdeaMarkets: تمكين المصداقية العلمية اللامركزية](https://ideamarket.io/) + +نحن نرحب بقائمة من اقتراحات المشاريع الجديدة - يرجى إلقاء نظرة على [سياسة القائمة](/contributing/adding-desci-projects/) للبدء! + +## قراءة إضافية {#further-reading} + +- [DeSci Wiki بواسطة جوسلين بيرل وألترارير](https://docs.google.com/document/d/1aQC6zn-eXflSmpts0XGE7CawbUEHwnL6o-OFXO52PTc/edit#) +- [دليل للتكنولوجيا الحيوية اللامركزية بقلم جوسلين بيرل لمستقبل a16z](https://future.a16z.com/a-guide-to-decentralized-biotech/) +- [حالة العلوم اللامركزية](https://gitcoin.co/blog/desci-the-case-for-decentralised-science/) +- [دليل إلى العلوم اللامركزية](https://future.com/what-is-decentralized-science-aka-desci/) +- [موارد العلوم اللامركزية](https://www.vincentweisser.com/decentralized-science) +- [Molecule's Biopharma IP-NFTs - وصف تقني](https://molecule.to/blog/molecules-biopharma-ip-nfts-a-technical-description) +- [بناء أنظمة علمية غير موثوقة بقلم جون ستار](https://medium.com/@jringo/building-systems-of-trustless-science-1cd2d072f673) +- [ظهور DAOs للتكنولوجيا الحيوية](https://molecule.to/blog/the-emergence-of-biotech-daos) +- [بول كولهاس - DeSci: The Future of Decentralized Science (بودكاست)](https://anchor.fm/andrew-steinwold/episodes/Paul-Kohlhaas---DeSci-The-Future-of-Decentralized-Science---Zima-Red-ep-117-e1h683a) +- [أنطولوجيا الاستدلال النشط للعلوم اللامركزية: من صنع الحواس إلى المشاع المعرفي](https://zenodo.org/record/6320575) +- [العلوم اللامركزية: مستقبل البحث بواسطة صامويل أكينوشو](https://lucidsamuel.medium.com/desci-the-future-of-research-b76cfc88c8ec) +- [التمويل العلمي (الخاتمة: العلوم الامركزية وأوليات التشفير الجديدة) بواسطة ناديا](https://nadia.xyz/science-funding) +- [اللامركزية تعطل تطوير الأدوية](https://medium.com/id-theory/decentralisation-is-disrupting-drug-development-28b5ba5d447f) + +### مقاطع الفيديو {#videos} + +- [ما هي العلوم اللامركزية؟](https://www.youtube.com/watch?v=-DeMklVWNdA) +- [محادثة بين فيتاليك بوتيرين والعالم أوبري دي جراي حول تقاطع الأبحاث طويلة العمر والتشفير](https://www.youtube.com/watch?v=x9TSJK1widA) +- [النشر العلمي معطل. هل يستطيع Web3 إصلاح ذلك؟](https://www.youtube.com/watch?v=WkvzYgCvWj8) +- [خوان بينيت - العلوم اللامركزية، المختبرات المستقلة وعلم البيانات واسعة النطاق](https://www.youtube.com/watch?v=zkXM9H90g_E) +- [سيباستيان برونماير - كيف يمكن للعلوم اللامركزية تحويل الأبحاث الطبية الحيوية ورأس المال الاستثماري](https://www.youtube.com/watch?v=qB4Tc3FcVbM) diff --git a/src/content/translations/ar/smart-contracts/index.md b/src/content/translations/ar/smart-contracts/index.md new file mode 100644 index 00000000000..e587d7a834d --- /dev/null +++ b/src/content/translations/ar/smart-contracts/index.md @@ -0,0 +1,94 @@ +--- +title: العقود الذكية +description: مقدمة غير تقنية للعقود الذكية +lang: ar +--- + +# مدخل إلى العقود الذكية {#introduction-to-smart-contracts} + +العقود الذكية هي لبنات البناء الأساسية [لتطبيقات إثيريوم](/dapps/). وهي برامج حاسوبية مخزنة على سلسلة الكتل تسمح بتحويل العقود التقليدية إلى عقود رقمية موازية. تتبع العقود الذكية المنطق بصرامة - وتتبع هيكلية 'إذا تحقق هذا الشرط، إذن افعل هذه العملية'. وبالتالي فإنها تعمل بالضبط وفقًا للمنطق البرمجي التي بُنيت عليه و لا يمكن تعديلها. + +وقد صاغ نيك سزابو مصطلح "العقد الذكي". حيث كتب في عام 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). + +لقد تصور نيك سزابو سوقًا رقميًا مبنيًا على هذه العمليات التلقائية والآمنة والمشفرة. كحيز يمكن أن تتم فيه المعاملات المالية والأعمال التجارية بغنى عن الوسطاء و دون الاعتماد على الثقة بين الأطراف. جاءت اليوم عقود إثيريوم الذكية لتجعل هذه الفكرة قابلة للتطبيق. + +## ما هي العقود؟ {#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} + +- [How Smart Contracts Will Change the World - (كيف ستغير العقود الذكية العالم)](https://www.youtube.com/watch?v=pA6CGuXEKtQ) +- [Smart Contracts: The Blockchain Technology That Will Replace Lawyers - (العقود الذكية: تقنية سلاسل الكتل التي ستحل محل المحامين)](https://blockgeeks.com/guides/smart-contracts/) +- [Smart contracts for developers - (العقود الذكية للمبرمجين)](/developers/docs/smart-contracts/) +- [Learn to write smart-contracts - (تعلم كتابة العقود الذكية)](/developers/learning-tools/) +- [Mastering Ethereum - What is a Smart Contract (إتقان إثيريوم - ما هو العقد الذكي؟)](https://github.com/ethereumbook/ethereumbook/blob/develop/07smart-contracts-solidity.asciidoc#what-is-a-smart-contract) diff --git a/src/content/translations/ar/social-networks/index.md b/src/content/translations/ar/social-networks/index.md new file mode 100644 index 00000000000..dccceb9cf57 --- /dev/null +++ b/src/content/translations/ar/social-networks/index.md @@ -0,0 +1,119 @@ +--- +title: الشبكات الاجتماعية اللامركزية +description: نظرة عامة على الشبكات الاجتماعية اللامركزية على إثيريوم +lang: ar +template: use-cases +emoji: ":mega:" +sidebarDepth: 2 +image: ../../../../assets/ethereum-learn.png +summaryPoint1: منصات قائمة على سلسلة الكتل للتفاعل الاجتماعي وإنشاء المحتوى وتوزيعه. +summaryPoint2: إن شبكات التواصل الاجتماعي اللامركزية تحمي خصوصية المستخدمين وتعزز أمن البيانات. +summaryPoint3: الرموز المميزة و NFTs تنشئ أساليب جديدة لتحويل المحتوى إلى أموال. +--- + +تلعب الشبكات الاجتماعية دورًا محوريًا في تواصلنا وتفاعلاتنا اليومية. غير أن التحكم المركزي بهذه المنصات يسبب مشاكل كثيرة منها: خرق البيانات، وتوقف الخوادم، وإلغاء المنصات، والرقابة، وانتهاكات الخصوصية نتيجة بعض المقايضات التي تجريها منصات التواصل الاجتماعي أحيانًا. لمواجهة هذه القضايا، يقوم المبرمجون ببناء شبكات اجتماعية على إثيريوم. يمكن للشبكات الاجتماعية اللامركزية أن تصلح العديد من مشاكل منصات التواصل الاجتماعي التقليدية، و تحسن تجرِبة المستخدم العامة. + +## ما هي الشبكات الاجتماعية اللامركزية؟ {#what-are-decentralized-social-networks} + +الشبكات الاجتماعية اللامركزية هي منصات قائمة على سلسلة الكتل، تسمح للمستخدمين بتبادل المعلومات فضلًا عن نشر المحتوى وتوزيعه على الجمهور. نظرًا لأن هذه التطبيقات تعمل على سلسلة الكتل، فهي قادرة على أن تكون لامركزية ومقاومة للرقابة والتحكم المفرط. + +توجد العديد من الشبكات الاجتماعية اللامركزية كبدائل لخدمات وسائل التواصل الاجتماعي الموجودة، مثل Facebook، وLinkedIn، وTwitter، وMedium. ولكن لدى الشبكات الاجتماعية القائمة على سلسلة الكتل مجموعة من السمات تُميزها عن المنصات الاجتماعية التقليدية. + +### كيف تعمل شبكات التواصل الاجتماعية اللامركزية؟ {#decentralized-social-networks-overview} + +الشبكات الاجتماعية اللامركزية هي فئة من [التطبيقات اللامركزية](/dapps/)-أي التطبيقات المدعومة [بالعقود الذكية](/developers/docs/smart-contracts/) المنشورة على سلسلة الكتل. يعمل النص البرمجي للعقد الذكي كواجهة خلفية لهذه التطبيقات ويحدد منطق أعمالها. + +تعتمد منصات التواصل الاجتماعي التقليدية على قواعد البيانات لتخزين معلومات المستخدم، والنص البرمجي، وأشكال أخرى من البيانات. ولكن هذا يؤدي لنقطة ضعف ويسبب مخاطر كبيرة. على سبيل المثال، خوادم Fecabook السخيفة [انفصلت لعدة ساعات](https://www.npr.org/2021/10/05/1043211171/facebook-instagram-whatsapp-outage-business-impact) في العام الماضي، فقطعت المستخدمين عن المنصة. + +توجد شبكات اجتماعية لامركزية على شبكة من النظراء تتألف من آلاف العُقد حول العالم. حتى لو توقفت بعض العقد، فإن الشبكة ستعمل دون انقطاع، مما يجعل التطبيقات مقاومة للفشل أو انقطاع الاتصال. + +باستخدام نظم تخزين لامركزية مثل [نظام الملفات InterPlanetary](https://ipfs.io/)، فإن الشبكات الاجتماعية المبنية على إثيريوم يمكن أن تحمي معلومات المستخدم من الاستغلال والاستخدام الخبيث. لن يتمكن أحد من بيع معلوماتك الشخصية إلى المعلنين، ولن يتمكن القراصنة من سرقة بياناتك الخاصة. + +العديد من المنصات الاجتماعية القائمة على سلسلة الكتل لديها رموز مميزة اصلية تعمل على تحويل المحتوى إلى نقود في غياب إيرادات الترويج. يمكن للمستخدمين شراء هذه الرموز المميزة للوصول إلى ميزات محددة، أو إكمال عمليات الشراء داخل التطبيق، أو مكافأة منشئي المحتوى المفضلين لديهم. + +## فوائد الشبكات الاجتماعية اللامركزية {#benefits} + +1. الشبكات الاجتماعية اللامركزية مقاومة للرقابة ومفتوحة للجميع. وبالتالي لا يمكن حظر المستخدمين، أو إزالتهم، أو تقييدهم لسبب تعسفي. + +2. تبنى الشبكات الاجتماعية اللامركزية على القيم والمُثل مفتوحة المصدر، وتتيح للعموم الاطلاع والتحقق من النص البرمجي للمصدر. ويمكن للشبكات الاجتماعية القائمة على سلاسل الكتل مواءمة مصالح المستخدمين ومبتكري المنصات الاجتماعية، عن طريق إلغاء تنفيذ الخوارزميات المبهمة الشائعة في وسائل التواصل الاجتماعي التقليدية. + +3. تلغي الشبكات الاجتماعية اللامركزية دور "الوسيط". منشئو المحتوى لديهم ملكية مباشرة لمحتوياتهم، ويشاركون مباشرة مع المتابِعين، والمشجعين، والمشترين، والأطراف الأخرى، وليس بينهم سوى عقد ذكي. + +4. كما هو الحال مع التطبيقات اللامركزية التي تعمل على شبكة إثيريوم، التي تدعمها شبكة عُقد عالمية بين النظراء، فإن الشبكات الاجتماعية اللامركزية هي أقل عرضة لتوقف عمل الخادم وانقطاع الخدمة. + +5. توفر المنصات الاجتماعية اللامركزية لمنشئي المحتوى إطارًا محسنًا لتحويل المحتوى إلى نقود عن طريق الرموز غير القابلة للاستبدال (NFT)، والمدفوعات المشفرة في التطبيقات، وغيرها. + +6. توفر الشبكات الاجتماعية اللامركزية للمستخدمين مستوىً عالٍ من الخصوصية وإخفاء الهوية. فمثلًا، يمكن لأي أحد أن يسجل دخوله إلى شبكة اجتماعية قائمة على إثيريوم باستخدام ملف تعريف ENS (عنوان خادم إثيريوم) أو محفظة إثيريوم، دون أن يضطر إلى مشاركة معلومات معرفة للشخصية، مثل الأسماء، أو عناوين البريد الإلكتروني، إلخ. + +7. تعتمد الشبكات الاجتماعية اللامركزية على التخزين اللامركزي، وليس على قواعد بيانات مركزية، وهي تُعد أفضل بكثير لحماية بيانات المستخدم. + +## الشبكات الاجتماعية اللامركزية على إثيريوم {#ethereum-social-networks} + +أصبحت شبكة إثيريوم الأداة المفضلة للمبرمجين لإنشاء وسائل تواصل إجتماعي لامركزية بسبب شعبية رموزها المميزة (ERC-20/ERC-721) وقاعدة مستخدميها الضخمة. وفيما يلي بعض الأمثلة على الشبكات الاجتماعية القائمة على إثيريوم: + +### Peepeth {#peepeth} + +[Peepeth](https://peepeth.com/) وهي منصة شبيهة بـ Twitter مخصصة للتدوينات القصيرة. تعمل على سلسلة كتل إثيريوم وتستخدم IPFS لتخزين بيانات المستخدم. + +يمكن للمستخدمين إرسال رسائل قصيرة تسمى "Peeps"، لا يمكن حذفها أو تعديلها. يمكنك جمع المال أو تقديمه لأي شخص على المنصة بعملة الإثير (ETH) دون ترك التطبيق. + +### Mirror {#mirror} + +[Mirror](https://mirror.xyz/) هي منصة تدوين قائمة على Web3 تهدف أن تكون لامركزية ومملوكة للمستخدم. يمكن للمستخدمين القراءة والكتابة مجانًا على Mirror من خلال ربط محافظهم بها بسهولة. يمكن للمستخدمين أيضا جمع التدوينات، والاشتراك لدى المدونين المفضلين لديهم. + +تُخزن المشاركات المنشورة على Mirror للأبد في Arweave، وهي منصة تخزين لامركزية، ويمكن اعتبارها [كرموز مميوة غير قابلة للاستبدال](/nft/) المعروفة بـ NFTs للتويتات. يمكن للكُتّاب إنشاء تدوينات NFT مجانًا تمامًا، ويتم التجميع على الطبقة 2 من إثيريوم - مما يجعل المعاملات رخيصة وسريعة وصديقة للبيئة. + +### MINDS {#minds} + +[MINDS](https://www.minds.com/) هي إحدى أكثر المنصات الاجتماعية اللامركزية استخدامًا. وهي تعمل مثل Facebook وقد لاقت إقبال ملايين المستخدمين بالفعل. + +يستعمل المستخدمون الرمز المميز ERC-20 الأصلي للمنصة $MIND لدفع ثمن العناصر. يمكن للمستخدمين أيضًا كسب عملات $MIND المميزة من خلال نشر المحتوى العام، والمساهمة في النظام، وإحالة الآخرين إلى المنصة. + +## الشبكات الاجتماعية التقليدية لـ Web2 على إثيريوم {#web2-social-networks-and-ethereum} + +المنصات الاجتماعية الأصلية على Web3 ليست المنصات الوحيدة التي تحاول دمج تقنية سلاسل الكتل في وسائل التواصل الاجتماعي. تخطط العديد من منصات التواصل المركزية أيضًا لدمج شبكة إثيريوم في بنيتها التحتية: + +### Reddit {#reddit} + +تبنت منصة Reddit [ نقاط المجتمع](https://cointelegraph.com/news/reddit-to-reportedly-tokenize-karma-points-and-onboard-500m-new-users)، بواسطة [الرموز المميزة ERC-20](/developers/docs/standards/tokens/erc-20/) التي يمكن للمستخدمين أن يكسبوها عن طريق نشر محتوى مميز، والإسهام في المجتمعات عبر الإنترنت (subreddits). يمكنك استبدال هذه الرموز المميزة ضمن subreddit [للحصول على امتيازات ومزايا حصرية](https://www.reddit.com/community-points/). في هذا المشروع، تعمل شركة Reddit مع Arbitrum، وهي إحدى أنواع [الطبقة 2](/layer-2/) لحزم المعاملات المصممة لتوسيع معاملات إثيريوم. + +البرنامج نشط بالفعل مع العملة الرقمية من Subreddit [التي تشغل نسختها من نقاط المجتمع المُسماة"Moons"](https://www.reddit.com/r/CryptoCurrency/wiki/moons_wiki). وحسب الوصف الرسمي لـ Moons فهي "مكافآت يجنيها الناشرون، والمعلقون، والمنسقون مقابل مساهماتهم على subreddit". ولأن هذه الرموز المميزة موجودة على سلسلة الكتل (يستلمها المستخدمون على محافظهم)، فهي مستقلة عن Reddit ولا يمكن أخذها بعيدًا. + +بعد الانتهاء من مرحلة تجريبية على شبكة التجريب Rinkeby، أصبحت نقاط مجتمع Reddit الآن على [Arbitrum Nova](https://nova.arbitrum.io/)، وهي سلسلة كتلة تجمع خصائص [سلسلة جانبية](/developers/docs/scaling/sidechains/) و[تجميع متفائل](/developers/docs/scaling/optimistic-rollups/). بالإضافة إلى استخدام نقاط المجتمع لفتح الميزات الخاصة، يمكن للمستخدمين أيضًا الاتجار بها للحصول على المال في منصات التداول. كما أن كمية نقاط المجتمع التي يملكها المستخدم تحدد تأثيره على عملية صنع القرار داخل المجتمع. + +### Twitter {#twitter} + +في يناير/كانون ثاني 2021، أطلق Twitter Blue[ ميزة دعم لـ NFTs](https://mashable.com/article/twitter-blue-nft-profile-picture)، مما سمح للمستخدمين بربط محافظهم، وأتاح لهم عرض صور حساباتهم الشخصية كـ NFTs. وفي وقت كتابة هذا التقرير، فإن شركة التواصل الاجتماعي [أعلنت عن خطط](https://www.theverge.com/2021/8/16/22627435/twitter-bluesky-lead-jay-graber-decentralized-social-web) لإنشاء شبكة اجتماعية لامركزية في المستقبل. + +### Instagram {#instagram} + +في مايو/أيار 2022، أعلن [Instgram عن دعمه لـ NFTs](https://about.instagram.com/blog/announcements/instagram-digital-collectibles) على إثيريوم وPolygon. يمكن للمستخدمين نشر NFTs مباشرة على Instagram عن طريق الاتصال بمحفظة إثيريوم الخاصة بهم. + +## استخدام الشبكات الاجتماعية اللامركزية {#use-decentralized-social-networks} + +- **[Status.im](https://status.im/)** - _ Status هو تطبيق محادثة آمن ومفتوح المصدر، ويستخدم بروتوكول للنظراء، والتشفير من النهاية إلى النهاية لحماية رسائلك من تجسس الأطراف الثالثة._ +- **[Mirror.xyz](https://mirror.xyz/)** - _ Mirror هي منصة لامركزية النشر مملوكة للمستخدم مبنية على إثيريوم للمستخدمين لحشد الأفكار، وتحويل المحتوى إلى نقود، وبناء مجتمعات عالية القيمة._ +- **[بروتوكول Lens](https://lens.xyz/)** - _بروتوكول Lens هو مخطط اجتماعي لامركزي قابل للتعميم يساعد المبدعين على امتلاك محتواهم الخاص أينما يذهبون في العالم الرقمي للإنترنت اللامركزي._ +- **[Farcaster](https://farcaster.xyz/)** - _Farcaster هي شبكة اجتماعية لامركزية بدرجة كافية. إنه بروتوكول مفتوح يمكنه دعم العديد من العملاء، تمامًا مثل البريد الإلكتروني._ + +## قراءة إضافية {#further-reading} + +### المقالات {#articles} + +- [Decentralizing social media: a guide to the web3 social stack (وسائل التواصل الاجتماعي اللامركزية: دليل إلى حزمة Web3 الاجتماعية)](https://www.coinbase.com/blog/decentralizing-social-media-a-guide-to-the-web3-social-stack) - _صفقات قاعدة العملات_ +- [Social Networks Are the Next Big Decentralization Opportunity (الشبكات الاجتماعية هي االفرصة الكبرى القادمة للامركزية)](https://www.coindesk.com/tech/2021/01/22/social-networks-are-the-next-big-decentralization-opportunity/) — _بنبن جيرتزل_ +- [Web3 holds the promise of decentralized, community-powered social networks (يبشر Web3 بشبكات اجتماعية لامركزية مدعومة من المجتمع](https://venturebeat.com/2022/02/26/web3-holds-the-promise-of-decentralized-community-powered-social-networks/) - _سوميت جوش_ +- [An Overview of the Blockchain Social Media Landscape (نظرة عامة على وسائل التواصل الاجتماعي لسلسلة الكتلة](https://www.gemini.com/cryptopedia/blockchain-social-media-decentralized-social-media) — _Gemini Cryptopedia_ +- [Sufficient Decentralization for Social Networks (لامركزية كافية للشبكات الاجتماعية](https://www.varunsrinivasan.com/2022/01/11/sufficient-decentralization-for-social-networks) _فارون سرينيفاسان_ + +### مقاطع الفيديو {#videos} + +- [Decentralized Social Media Explained (شرح وسائل التواصل اللامركزية)](https://www.youtube.com/watch?v=UdT2lpcGvcQ) — _Coinmarketcap_ +- [DeSo Blockchain Wants to Decentralize Social Media (سلسلة كتلة DeSo تسعى لإلغاء مركزية وسائل التواصل)](https://www.youtube.com/watch?v=SG2HUiVp0rE) — _Bloomberg Technology_ +- [The Future of Decentralized Social Media (مستقبل وسائل التواصل اللامركزية)w/ Balaji Srinivasan, Vitalik Buterin, Juan Benet](https://www.youtube.com/watch?v=DTxE9KV3YrE) — _ETHGlobal_ + +### المجتمعات {#communities} + +- [خادم خلاف Status](https://discord.com/invite/3Exux7Y) +- [خادم خلاف Mirror](https://discord.com/invite/txuCHcE8wV) +- [r/CryptoCurrency subreddit](https://www.reddit.com/r/CryptoCurrency/) diff --git a/src/intl/ar/page-wallets-find-wallet.json b/src/intl/ar/page-wallets-find-wallet.json index 19eed25072e..581c5df7fb1 100644 --- a/src/intl/ar/page-wallets-find-wallet.json +++ b/src/intl/ar/page-wallets-find-wallet.json @@ -7,10 +7,88 @@ "page-find-wallet-meta-title": "العثور على محفظة إثيريوم", "page-find-wallet-title": "البحث عن محفظة", "page-find-wallet-try-removing": "حاول إزالة ميزة أو اثنين", + "page-find-wallet-choose-to-compare": "اختر للمقارنة", "page-stake-eth": "تجميد عملات إثير", - "page-find-wallet-swaps": "مبادلات الرموز اللامركزية", - "page-find-wallet-swaps-desc": "التجارة بين إثير والرموز الأخرى مباشرة من محفظتك.", - "page-find-wallet-multisig": "حسابات التوقيع المتعدد", - "page-find-wallet-multisig-desc": "لمزيد من الأمان، تتطلب المحافظ متعددة التوقيع أكثر من حساب واحد لتفويض معاملات معينة.", - "page-find-wallet-showing": "عرض " + "page-find-wallet-open-source": "مفتوح المصدر", + "page-find-wallet-open-source-desc": "البرمجيات مفتوحة المصدر تتيح لأي شخص تدقيق سلامة التطبيق وأمنه", + "page-find-wallet-self-custody": "Self custody", + "page-find-wallet-non-custodial": "المحافظ الساخنة", + "page-find-wallet-non-custodial-desc": "المحافظ التي لا تتحكم في مفاتيحك الخاصة", + "page-find-wallet-hardware-wallet-support": "دعم محفظة الأجهزة", + "page-find-wallet-hardware-wallet-support-desc": "المحافظ التي تستطيع الاتصال بمحفظة الأجهزة للحصول على أمان أفضل", + "page-find-wallet-walletconnect": "WalletConnect", + "page-find-wallet-walletconnect-desc": "المحافظ التي تدعم WalletConnect للاتصال بالتطبيقات اللامركزية", + "page-find-wallet-rpc-importing": "استيراد RPC", + "page-find-wallet-rpc-importing-desc": "المحافظ التي تدعم نقاط نهاية RPC المخصصة للاتصال بعقد أو شبكات مختلفة", + "page-find-wallet-nft-support": "دعم NFT", + "page-find-wallet-nft-support-desc": "المحافظ التي تدعم عرض NFT الخاصة بك والتفاعل معها", + "page-find-wallet-connect-to-dapps": "الاتصال بالتطبيقات اللامركزية", + "page-find-wallet-connect-to-dapps-desc": "المحافظ التي تتصل بالتطبيقات المبنية على شبكة إيثيريوم", + "page-find-wallet-staking": "تجميد العملات", + "page-find-wallet-staking-desc": "حصة ETH مباشرة من المحفظة", + "page-find-wallet-swaps": "المبادلات", + "page-find-wallet-swaps-desc": "مبادلة رموز ERC-20 مباشرة في المحفظة", + "page-find-wallet-layer-2": "الطبقة ٢", + "page-find-wallet-layer-2-desc": "المحافظ التي تدعم طبقة إثيريوم 2s", + "page-find-wallet-gas-fee-customization": "تخصيص رسم الغاز", + "page-find-wallet-gas-fee-customization-desc": "تخصيص مبالغ الغاز الخاصة بك (رسم أساسي، ورسم الأولوية، ورسم الحد الأقصى)", + "page-find-wallet-ens-support": "دعم ENS", + "page-find-wallet-ens-support-desc": "المحافظ التي تدعم خدمة اسم الإيثيريوم (ENS)", + "page-find-wallet-token-importing": "استيراد الرمز المميز", + "page-find-wallet-token-importing-desc": "قم باستيراد أي رمز ERC-20 مميز لاستخدامه في المحفظة", + "page-find-wallet-fee-optimization": "تحسين الرسم", + "page-find-wallet-fee-optimization-desc": "دعم معاملات النوع 2 لرسوم الغاز المحسّنة، واسترداد رسم الغاز غير المستخدم", + "page-find-wallet-buy-crypto": "شراء العملات المشفرة", + "page-find-wallet-buy-crypto-desc": "شراء العملات المشفرة باستخدام العملات الورقية مباشرة في المحفظة \n *ملاحظة: قد يكون شراء العملات المشفرة محددًا بالمنطقة", + "page-find-wallet-sell-for-fiat": "بيع مقابل العملات الورقية", + "page-find-wallet-sell-for-fiat-desc": "بيع العملات المشفرة مقابل العملات الورقية مباشرة في المحفظة \n *ملاحظة: قد يكون سحب العملات المشفرة محددًا بالمنطقة", + "page-find-wallet-multisig": "متعدد التوقيعات (Multisig)", + "page-find-wallet-multisig-desc": "المحافظ التي تتطلب توقيعات متعددة لتفويض معاملة", + "page-find-wallet-social-recovery": "التعافي الاجتماعي", + "page-find-wallet-social-recovery-desc": "محافظ تسمح للأوصياء بتغيير مفتاح التوقيع لمحافظ العقد الذكي", + "page-find-wallet-token-support": "دعم الرمز المميز", + "page-find-wallet-features": "الخصائص", + "page-find-wallet-security": "الأمن", + "page-find-wallet-smart-contract": "Smart contract", + "page-find-wallet-check-out": "Check out", + "page-find-wallet-info-updated-on": "تم تحديث المعلومات في", + "page-find-wallet-showing-all-wallets": "عرض جميع المحافظ", + "page-find-wallet-showing": "عرض ", + "page-find-wallet-wallets": "المحافظ الإلكترونية", + "page-find-wallet-iOS": "iOS", + "page-find-wallet-android": "أندرويد", + "page-find-wallet-linux": "لينكس", + "page-find-wallet-macOS": "macOS", + "page-find-wallet-windows": "ويندوز", + "page-find-wallet-chromium": "الكروميوم", + "page-find-wallet-firefox": "فايرفوكس", + "page-find-wallet-hardware": "معدات الجهاز", + "page-find-wallet-hardware-desc": "محافظ الأجهزة", + "page-find-wallet-new-to-crypto-title": "جديد في العملات المشفرة", + "page-find-wallet-new-to-crypto-desc": "أنت مستخدم لأول مرة تبحث عن محفظتك الأولى", + "page-find-wallet-nfts-title": "NFTs", + "page-find-wallet-nfts-desc": "أنت شخص يهتم بـ NFT وتريد محفظة مع دعم NFT", + "page-find-wallet-hodler-title": "هودلر", + "page-find-wallet-hodler-desc": "أنت شخص لديه رموز مميزة ولا تريد لمسها", + "page-find-wallet-finance-title": "التمويل", + "page-find-wallet-finance-desc": "أنت شخص يستخدم DeFi وتريد محفظة تتيح لك الاتصال بتطبيقات DeFi", + "page-find-wallet-developer-title": "مبرمج", + "page-find-wallet-developer-desc": "أنت مبرمج وتحتاج إلى محفظة للمساعدة في تطوير واختبار التطبيقات اللامركزية", + "page-find-wallet-persona-desc": "اختر الملف الشخصي الذي يتطابق مع نوع المستخدم الخاص بك وقم بتصفية قائمة المحفظة", + "page-find-wallet-filters": "عوامل التصفية", + "page-find-wallet-active": "نشط", + "page-find-wallet-profile-filters": "عوامل تصفية الملف الشخصي", + "page-find-wallet-feature-filters": "عوامل تصفية الميزات", + "page-find-wallet-footnote-1": "المحافظ المدرجة في هذه الصفحة ليست مصادقات رسمية، ويتم توفيرها للأغراض الإعلامية فقط.", + "page-find-wallet-footnote-2": "تم توفير أوصافها من خلال مشاريع المحفظة نفسها.", + "page-find-wallet-footnote-3": "نحن نضيف منتجات إلى هذه الصفحة استنادًا إلى معايير في سياسة الإدراج لدينا. إذا كنت تريد منا إضافة محفظة، قم بطرح استفسار في GitHub.", + "page-find-wallet-mobile": "جوال", + "page-find-wallet-mobile-desc": "محافظ مع تطبيقات الجوال", + "page-find-wallet-desktop": "سطح المكتب", + "page-find-wallet-desktop-desc": "محافظ مع تطبيقات سطح المكتب", + "page-find-wallet-browser": "المتصفح", + "page-find-wallet-browser-desc": "محافظ مع ملحقات المتصفح", + "page-find-wallet-device": "جهاز", + "page-find-choose-to-compare": "اختر للمقارنة", + "page-find-wallet-choose-features": "اختر الميزات" } diff --git a/src/intl/ar/page-wallets.json b/src/intl/ar/page-wallets.json index 1280bea0de2..0140ba0eb86 100644 --- a/src/intl/ar/page-wallets.json +++ b/src/intl/ar/page-wallets.json @@ -61,5 +61,7 @@ "page-wallets-your-ethereum-account": "حساب الإثيريوم الخاص بك", "page-wallets-your-ethereum-account-desc": "محفظتك هي نافذتك في حساب إيثيريوم الخاص بك - رصيدك، وتاريخ معاملاتك وأكثر. ولكن يمكنك تغيير موفري المحفظة في أي وقت.", "page-wallets-your-login": "تسجيل الدخول الخاص بك لتطبيقات إثيريوم", - "page-wallets-your-login-desc": "تتيح لك محفظتك الاتصال بأي تطبيق لامركزي باستخدام حساب إثيريوم الخاص بك. إنه مثل تسجيل الدخول الذي يمكنك استخدامه عبر العديد من التطبيقات اللامركزية." + "page-wallets-your-login-desc": "تتيح لك محفظتك الاتصال بأي تطبيق لامركزي باستخدام حساب إثيريوم الخاص بك. إنه مثل تسجيل الدخول الذي يمكنك استخدامه عبر العديد من التطبيقات اللامركزية.", + "additional-reading-how-to-register-an-ethereum-account": "كيفية \"تسجيل\" حساب إثيريوم", + "additional-reading-how-to-use-a-wallet": "كيفية استخدام محفظة" } diff --git a/src/intl/ar/page-what-is-ethereum.json b/src/intl/ar/page-what-is-ethereum.json index 94839f93ced..534d2030c81 100644 --- a/src/intl/ar/page-what-is-ethereum.json +++ b/src/intl/ar/page-what-is-ethereum.json @@ -32,23 +32,23 @@ "page-what-is-ethereum-cryptocurrency-tab-title": "لماذا تسمى بالعملة الرقمية؟", "page-what-is-ethereum-cryptocurrency-tab-content": "تستخدم سلاسل الكتل تقنيات التشفير للتأكد من أن أموالك آمنة. وقد استخدمت تقنيات مماثلة في الصناعات المصرفية لضمان أمن المعاملات النقدية لسنوات عديدة. لذا يمكنك أن تقول أن العملات الرقمية لديها مستوى من الأمان البنكي.", "page-what-is-ethereum-summary-title": "ملخص", - "page-what-is-ethereum-summary-desc-1": "إيثيريوم هي تكنولوجيا لبناء التطبيقات والمنظمات وحيازة الأصول والمعاملات والاتصالات دون أن تخضع لرقابة سلطة مركزية. ليس هناك حاجة لتسليم جميع بياناتك الشخصية لاستخدام الإيثيريوم - يمكنك التحكم في بياناتك الخاصة وما يتم مشاركته. لدى إيثيريوم عملة رقمية خاصة بها، Ether، والتي تستخدم لدفع ثمن أنشطة معينة على شبكة إيثيريوم.", + "page-what-is-ethereum-summary-desc-1": "إثيريوم هي شبكة مكونة من العديد من المجتمعات، ومجموعة من الأدوات التي تمكّن الأشخاص من التعامل والتواصل دون أن يخضعوا لسيطرة من سلطة مركزية. ليس هناك حاجة لتسليم جميع تفاصيلك الشخصية لاستخدام إثيريوم، يمكنك الاحتفاظ بالتحكم في بياناتك الخاصة وما يتم مشاركته. لدى إثيريوم عملة رقمية خاصة بها، Ether، والتي تستخدم لدفع ثمن أنشطة معينة على شبكة إثيريوم.", "page-what-is-ethereum-summary-desc-2": "لا تزال مرتبكًا؟ لنشرح كل شيء خطوة بخطوة.", "page-what-is-ethereum-what-is-crypto-title": "ما العملة الرقمية؟", "page-what-is-ethereum-what-is-crypto-desc-1": "العملات المشفرة (اختصار للعملة الرقمية) هي شكل جديد من الأموال الرقمية المدعومة بالتشفير.", "page-what-is-ethereum-what-is-crypto-desc-2": "بدأ كل ذلك في عام 2008 مع عملة بيتكوين. يمكنك استخدامها لإرسال الأموال لأي شخص في أي مكان في العالم. ما جعل العملات المشفرة مختلفة عن التحويلات المصرفية العادية أو غيرها من الخدمات المالية مثل Paypal أو Alipay هو أنه لا يوجد وسيط لأول مرة.", "page-what-is-ethereum-what-is-crypto-desc-3": "مهلًا، من الوسيط؟", - "page-what-is-ethereum-what-is-crypto-desc-4": "الرجل الوسيط هو سلطة مركزية مثل المصرف أو جهة حكومية تتدخل في صفقة بين المرسل والمتلقي. لديهم سلطة مراقبة الصفقات أو الرِّقابة عليها أو الرجوع عنها ويمكنهم تقاسم البيانات الحساسة التي يجمعوها عنك مع أطراف ثالثة. غالبًا ما تفرض أيضًا الخدمات المالية التي يمكنك الوصول إليها.", + "page-what-is-ethereum-what-is-crypto-desc-4": "الوسيط هو سلطة مركزية مثل البنك أو الحكومة، تتدخل في معاملة بين المرسل والمتلقي. ولديها القدرة على مراقبة المعاملات، أو الرقابة عليها، أو التراجع عنها، ويمكنها مشاركة البيانات الحساسة التي تجمعها عنك مع أطراف ثالثة. وغالبًا ما تملي أيضًا الخدمات المالية التي يمكنك الوصول إليها.", "page-what-is-ethereum-what-is-crypto-desc-5": "تختلف الأمور مع العملات المشفرة.المعاملات تربط المرسل والمتلقي مباشرةدون الحاجة إلى التعامل مع أي سلطة مركزية. لن يتمكن أي طرف آخر من الوصول إلى أموالك ولا يستطيع أحد أن يخبرك عن الخِدْمَات التي يمكنك استخدامها. بسبب تِقَانَة سلاسل الكتل التي تعمل عليها العملات الرقمية.", "page-what-is-ethereum-btc-eth-diff-title": "ما الفرق بين الإيثيريوم وعملة بيتكوين؟", "page-what-is-ethereum-btc-eth-diff-1": "تم إطلاق الإثيريوم في عام 2015، وهو مستوحى من فكرة عملة بيتكوين، مع بعض الاختلافات الكبيرة.", "page-what-is-ethereum-btc-eth-diff-2": "كلاهما يسمح لك باستخدام المال الرقمي دون اللجوء لموفري الدفع أو البنوك. لكن الإيثيريوم قابل للبرمجة، لذا يمكنك استخدامه أيضًا في بناء ونشر التطبيقات اللامركزية على شبكته.", - "page-what-is-ethereum-btc-eth-diff-3": "الإيثيريوم قابل للبرمجة ما يعني أنه يمكنك إنشاء تطبيقات تستخدم سلسلة الكتل لتخزين البيانات أو التحكم في ما يمكن أن يفعله تطبيقك. هذا يؤدي إلى سلسلة الكتل ذات الغرض العام التي يمكن برمجتها لفعل أي شيء. بما أنه لا يوجد حدود لما يمكن أن يفعله الإيثيريوم، فإنه يسمح بالابتكار العظيم أن يحدث على شبكة الإيثيريوم.", + "page-what-is-ethereum-btc-eth-diff-3": "تمكننا عملة بيتكوين من إرسال رسائل أساسية لبعضنا البعض حول ما نعتقد أنه ذو قيمة. إن تأسيس القيمة دون سلطة هو أمر قوي بالفعل. توسع إيثريوم من هذه الإمكانية: بدلاً من مجرد الرسائل، يمكنك كتابة أي برنامج عام، أو عقد. وليس هناك حد لنوع العقود التي يمكن إنشاؤها والاتفاق عليها، ومن ثم يحدث ابتكار كبير على شبكة إيثيريوم.", "page-what-is-ethereum-btc-eth-diff-4": "بينما عملة بيتكوين هي فقط شبكة دفع، فإن الإيثيريوم يشبه سوق الخِدْمَات المالية، الألعاب، والشبكات الاجتماعية والتطبيقات الأخرى الذي تحترم خصوصيتك ولا يمكن أن تراقبك.", "page-what-is-ethereum-what-can-eth-do-title": "ما الذي يمكن للإيثيريوم أن يفعله؟", "page-what-is-ethereum-why-would-i-use-ethereum-title": "لماذا يجب أن أستخدم الإيثيريوم؟", "page-what-is-ethereum-why-would-i-use-ethereum-1": "إذا كنت قد أرسلت أموالًا إلى الخارج (أو تخطط لذالك)، أو اضطرت إلى القلق بشأن مستقبل أصولك بسبب قوى خارجية خارجة عن سيطرتك حيث تعيش، أو يجب تحمل القيود والرسوم العديدة التي تفرضها المؤسسات المالية التقليدية على المعاملات اليومية، قد تكون مهتمًا بما تقدمه العملات الرقمية.", - "page-what-is-ethereum-why-would-i-use-ethereum-2": "ضع في اعتبارك أن الإيثيريوم لا يزال جديدًا، وسيتم الكشف عن كثير من الأسباب الأخرى لاستخدامه مع التطور ومرور الوقت.", + "page-what-is-ethereum-why-would-i-use-ethereum-2": "إذا كنت مهتمًا بطرق أكثر مرونة وانفتاحًا وجديرة بالثقة لتأسيس القيمة ومشاركتها، فإن إثيريوم هي الخيار الأمثل لك. إثيريوم هي قصة كتبناها جميعًا، لذا تعال واكتشف العوالم المذهلة التي يمكننا أن نبنيها معًا.", "page-what-is-ethereum-slide-1-title": "المدفوعات عبر الحدود أرخص وأسرع", "page-what-is-ethereum-slide-1-desc-1": "العملات التابعة هي نوع جديد من العملات الرقمية التي تعتمد على أصل أكثر استقرارًا كأساس لقيمتها. ويرتبط معظمها بدولار الولايات المتحدة ثَمّ تحافظ على قيمة تلك العملة. وتسمح لنظام دفع عالمي رخيص للغاية ومستقر. تم بناء العديد من العملات التابعة الحالية على شبكة الإيثيريوم.", "page-what-is-ethereum-slide-1-desc-2": "وتبسِّط الإيثيريوم والعملات التابعة عملية إرسال الأموال إلى الخارج. وكثيرًا ما يستغرق نقل الأموال عبر العالم بضع دقائق فحسب. على عكس عدد أيام العمل أو حتى الأسابيع التي قد يستغرقها البنك العادي، ولجزء من السعر. وبالإضافة إلى ذلك، لا يوجد رسم إضافي لإجراء معاملة عالية القيمة، وهناك قيود صفرية على مكان أو سبب إرسال أموالك.", @@ -84,15 +84,34 @@ "page-what-is-ethereum-criminal-activity-desc-2": "تستخدم العملات المشفّرة بنسبة أقل بكثير من العملات الورقيّة لغايات إجراميّة وفقًا لنتائج تقرير حديث صادر عن اليوروبول، وكالة الاتحاد الأوروبي للتعاون في مجال تطبيق القانون:", "page-what-is-ethereum-criminal-activity-desc-3": "\"يبدو أن استخدام العملات الرقمية في الأنشطة غير المشروعة لا يشكّل إلّا جزء صغير فقط من الاقتصاد الكلّي للعملة الرقمية، كما يبدو أنه صغير نسبيًّا مقارنة بكميّة الأرصدة غير المشروعة الموجودة بالنظام المالي التقليدي.\"", "page-what-is-ethereum-energy-title": "ما عن استهلاك شبكة الإيثيريوم للطاقة؟", - "page-what-is-ethereum-energy-desc-1": "تستخدم شبكة الإيثريوم حاليًا آلية إثبات العمل لتأكيد المعاملات وهذه الآلية تستهلك كميّة كبيرة من الطاقة. ستخضع إيثريوم في الأشهر القادمة (الربع الثالث/الربع الرابع 2022) لأكبر تحديث في تاريخها الذي سيحوّل آلية عمل الشبكة في تأكيد المعاملات إلى آلية إثبات الحصّة التي ستقلّل كثيرًا من التأثير البيئيالذي تحدثه آلية إثبات العمل.", - "page-what-is-ethereum-energy-desc-2": "سيقلّل هذا التحديث الطاقة المطلوبة لتأمين شبكة الإيثيريوم بحوالي 99.95%، مما يساهم في تكوينشبكة أكثر أمنًا مع تكلفة كربون أقل كثيرًا. هذا سيجعل من إيثيريوم سلسلة كتل قليلة المساهمة في إصدار الكربون بشكل جدّي بينما تقوم في نفس الوقت بتعزيز أمنها وقابليتها للتوسّع.", + "page-what-is-ethereum-energy-desc-1": "في 15 سبتمبر/أيلول 2022، اجتازت إثيريوم ترقية الدمج التي انتقلت بإثيريوم من إثبات العمل إلى إثبات الحصة.", + "page-what-is-ethereum-energy-desc-2": "كانت عملية الدمج هي أكبر ترقية لإثيريوم و قللت من طاقة الاستهلاك المطلوبة لتأمين إثيريوم بنسبة 99.95%، مما ساهم في إنشاء شبكة أكثر أمنا من أجل تكلفة كربونية أقل بكثير. تعد إثيريوم الآن سلسلة كتل منخفضة الكربون بينما تقوم بتعزيز أمنها و قابليتها للتوسع.", "page-what-is-ethereum-more-on-energy-consumption": "للمزيد حول استهلاك الطاقة", - "page-what-is-ethereum-energy-consumption-chart-legend": "الاستهلاك السنوي للطاقة مقدّرًا بتيراواط/بالسنة", + "page-what-is-ethereum-energy-consumption-chart-legend": "الاستهلاك السنوي للطاقة مقدّرًا بتيرا واط ساعة/السنة", + "energy-consumption-chart-global-data-centers-label": "المراكز العالمية للبيانات", + "energy-consumption-gold-mining-cbeci-label": "Gold mining", + "energy-consumption-chart-btc-pow-label": "بيتكوين PoW", + "energy-consumption-chart-netflix-label": "نتفلكس", + "energy-consumption-chart-eth-pow-label": "بيتكوين ETH", + "energy-consumption-chart-gaming-us-label": "الألعاب في الولايات المتحدة", + "energy-consumption-chart-paypal-label": "بابيال", + "energy-consumption-chart-eth-pos-label": "ETH PoS", "page-what-is-ethereum-the-merge-update": "تحديث دمج", "page-what-is-ethereum-additional-reading": "قراءة مزيد", "page-what-is-ethereum-week-in-ethereum": "أسبوع من أخبار الإيثريوم", "page-what-is-ethereum-week-in-ethereum-desc": "-رسالة إخبارية أسبوعية تغطي التطورات الرئيسية عبر النظام البيئي.", + "page-what-is-ethereum-kernel-dreamers": "Kernel", + "page-what-is-ethereum-kernel-dreamers-desc": "حلم إثيريوم", "page-what-is-ethereum-atoms-institutions-blockchains": "الذرات والمؤسسات وسلاسل الكتل", "page-what-is-ethereum-atoms-institutions-blockchains-desc": "-لماذا سلاسل الكتل مهمة؟", - "page-what-is-ethereum-ethereum-in-numbers-title": "إيثيريوم بالأرقام" + "page-what-is-ethereum-ethereum-in-numbers-title": "إيثيريوم بالأرقام", + "adoption-chart-column-now-label": "الآن", + "adoption-chart-investors-label": "المستثمرون", + "adoption-chart-developers-label": "المبرمجون", + "adoption-chart-companies-label": "الشركات", + "adoption-chart-artists-label": "الفنانون", + "adoption-chart-musicians-label": "الموسيقيون", + "adoption-chart-writers-label": "الكُتّاب", + "adoption-chart-gamers-label": "اللاعبون", + "adoption-chart-refugees-label": "اللاجئون" } From b99d4a06e8e7b2a1d3d0f8c5d639b5438d6e083a Mon Sep 17 00:00:00 2001 From: Pablo Pettinari Date: Tue, 27 Jun 2023 10:15:37 -0300 Subject: [PATCH 160/186] Revert "add translated image example" This reverts commit eb0ee0b0e3fe369b4b41fce8acce7d968665f75e. --- src/content/translations/es/web3/web3.png | Bin 140201 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 src/content/translations/es/web3/web3.png diff --git a/src/content/translations/es/web3/web3.png b/src/content/translations/es/web3/web3.png deleted file mode 100644 index 82a4bab8615f194207934dc4302b2c05708bfdaf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 140201 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�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 Date: Tue, 27 Jun 2023 14:21:24 +0100 Subject: [PATCH 161/186] Update Azerbaijani (az) Homepage and Exploring buckets --- src/content/translations/az/nft/index.md | 356 +++++++++++++++++++++++ src/intl/az/common.json | 27 +- src/intl/az/page-dapps.json | 213 ++++++++++++++ src/intl/az/page-stablecoins.json | 153 +++++++++- src/intl/az/template-usecase.json | 11 + 5 files changed, 755 insertions(+), 5 deletions(-) create mode 100644 src/content/translations/az/nft/index.md create mode 100644 src/intl/az/template-usecase.json diff --git a/src/content/translations/az/nft/index.md b/src/content/translations/az/nft/index.md new file mode 100644 index 00000000000..7d1c20f54c6 --- /dev/null +++ b/src/content/translations/az/nft/index.md @@ -0,0 +1,356 @@ +--- +title: Bir-birini əvəz edə bilməyən nişanlar (NFT) +description: Ethereum-da NFT-lərə ümumi baxış +lang: az +template: use-cases +emoji: ":frame_with_picture:" +sidebarDepth: 2 +image: ../../../../assets/infrastructure_transparent.png +alt: Holoqram ilə görüntülənən bir Eth loqosu. +summaryPoint1: Ethereum əsaslı aktiv kimi bənzərsiz hər şeyi təmsil etmək üçün bir yol. +summaryPoint2: NFT-lər məzmun yaradıcılarına əvvəlkindən daha çox güc verir. +summaryPoint3: Ethereum blokçeynində ağıllı müqavilələr ilə təchiz edilmişdir. +--- + +NFT-lər hazırda rəqəmsal sənət və kolleksiya dünyasını fırtınaya bürüyüb. Rəqəmsal sənətçilər yeni kripto auditoriyasına böyük satışlar sayəsində həyatlarının dəyişdiyini görürlər. Məşhurlar da fanatları ilə əlaqə yaratmaq üçün yeni fürsət tapdıqları üçün qoşulurlar. Ancaq rəqəmsal sənət NFT-lərdən istifadə etməyin yalnız bir yoludur. Həqiqətən, onlar rəqəmsal və ya fiziki aləmdə bir obyekt üçün sənəd kimi hər hansı bir unikal aktivin mülkiyyətini təmsil etmək üçün istifadə edilə bilər. + +Andy Warhol 90-cı illərin sonlarında anadan olsaydı, yəqin ki, Campbell's Soup-nu NFT kimi zərb edərdi. Nike-ın Ethereum-da Jordans seriyasını qoyması yalnız vaxt məsələsidir. Və bir gün avtomobilinizə sahib olmaq NFT ilə sübut edilə bilər. + +## NFT nədir? {#what-are-nfts} + +NFT-lər unikal əşyaların sahibliyini təmsil etmək üçün istifadə edə biləcəyimiz tokenlərdir. İncəsənət, kolleksiya əşyaları, hətta daşınmaz əmlak kimi şeyləri tokenləşdirməyə imkan verirlər. Aktivin mülkiyyəti Ethereum blokçeyni ilə təmin edilir – heç kim sahiblik qeydini dəyişdirə və ya yeni NFT-ni kopyalaya/yapışdıra bilməz. + +NFT bir-birini əvəz edə bilməyən nişanə deməkdir. Qeyri-işlək, mebel, mahnı faylı və ya kompüteriniz kimi şeyləri təsvir etmək üçün istifadə edə biləcəyiniz iqtisadi termindir. Bu əşyalar digər əşyalarla əvəz edilə bilməz, çünki onların unikal xüsusiyyətləri var. + +Digər tərəfdən, dəyişdirilə bilən elementlər dəyişdirilə bilər, çünki onların unikal xüsusiyyətlərini deyil, dəyəri onları müəyyən edir. Məsələn, ETH və ya dollarlar dəyişdirilə bilər, çünki 1 ETH / $1 USD başqa 1 ETH / $1 USD ilə dəyişdirilə bilər. + + + +## Aktivlərin interneti {#internet-of-assets} + +NFT-lər və Ethereum bu gün internetdə mövcud olan bəzi problemləri həll edir. Hər şey daha rəqəmsallaşdıqca, fiziki elementlərin çatışmazlıq, unikallıq və mülkiyyət sübutu kimi xüsusiyyətlərini təkrarlamağa ehtiyac var. Rəqəmsal əşyaların çox vaxt yalnız məhsullarının kontekstində işlədiyini qeyd etmək olmaz. Məsələn, siz satın aldığınız iTunes mp3-ü yenidən sata bilməzsiniz və ya bazar mövcud olsa belə, bir şirkətin loyallıq xallarını başqa platformanın krediti ilə dəyişə bilməzsiniz. + +Bu gün çoxumuzun istifadə etdiyi internetlə müqayisədə NFT interneti necə görünür... + +### Müqayisə {#nft-comparison} + +| NFT interneti | İnternet bu gün | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| NFT-lər rəqəmsal olaraq unikaldır, heç bir iki NFT eyni deyil. | .mp3 və ya .jpg kimi faylın surəti orijinal ilə eynidir. | +| Hər bir NFT-nin sahibi olmalıdır və bu, ictimai qeyddədir və hər kəsin təsdiq etməsi asandır. | Rəqəmsal əşyaların mülkiyyət qeydləri qurumlar tərəfindən idarə olunan serverlərdə saxlanılır – yeganə seçiminiz onlara etibar etməkdir. | +| NFT-lər Ethereum istifadə edərək qurulmuş hər şeyə uyğun gəlir. Tədbir üçün NFT bileti hər Ethereum bazarında tamamilə fərqli bir NFT üçün satıla bilər. Bir sənət əsərini biletə dəyişə bilərsiniz! | Rəqəmsal elementləri olan şirkətlər öz infrastrukturlarını qurmalıdırlar. Məsələn, tədbirlər üçün rəqəmsal biletlər verən proqram öz bilet mübadiləsini qurmalı olacaq. | +| Məzmun yaradıcıları işlərini hər yerdə sata və qlobal bazara çıxa bilərlər. | Yaradıcılar istifadə etdikləri platformaların infrastrukturuna və paylanmasına etibar edirlər. Bunlar çox vaxt istifadə şərtlərinə və coğrafi məhdudiyyətlərə məruz qalır. | +| Yaradıcılar öz işləri üzərində sahiblik hüquqlarını saxlaya və birbaşa satış qonorarı tələb edə bilərlər. | Musiqi axını xidmətləri kimi platformalar satışdan əldə edilən gəlirin böyük hissəsini özündə saxlayır. | +| Maddələr maraqlı yollarla istifadə edilə bilər. Məsələn, mərkəzləşdirilməmiş kreditdə girov kimi rəqəmsal sənət əsərlərindən istifadə edə bilərsiniz. | | + +### NFT nümunələri {#nft-examples} + +NFT dünyası nisbətən yenidir. Nəzəri olaraq, NFT-lərin əhatə dairəsi sübut edilə bilən mülkiyyətə ehtiyacı olan unikal olan hər şeydir. NFTS anlayışını başa düşməyə kömək etmək üçün bu gün mövcud olan bəzi NFT nümunələri bunlardır: + +- [Unikal rəqəmsal sənət əsəri](https://foundation.app/artworks) +- [Məhdud buraxılışlı moda xəttində unikal tenis ayaqqabısı](https://www.metagrail.co/auctions/91cf83fb-3477-4155-aae8-6dcb9b853397) +- [Oyundaxili element](https://market.decentraland.org/) +- [İnşa](https://zora.co/0x517bab7661C315C63C6465EEd1b4248e6f7FE183/145) +- [Rəqəmsal kolleksiya](https://www.larvalabs.com/cryptopunks/details/1) +- [Domen adı](https://app.ens.domains/name/ethereum.eth) +- [Tədbirə və ya kupona giriş imkanı verən bilet](https://www.yellowheart.io/) +- [Real dünya malları alın](https://www.tangible.store/) +- [Fraksiyalı daşınmaz əmlak](https://realt.co/) +- [Dərəcə Sertifikatlar](https://www.degreecert.com/) +- [NFT vasitəsilə musiqi qonorarı](https://opulous.org/) +- [Qazanmaq üçün hərəkət edin](https://yeticoineth.com/about.html) +- [Rəqəmsal şəxsiyyət](https://photochromic.io/) + +### ethereum.org nümunələri {#ethereum-org-examples} + +Biz töhfə verənlərə geri qaytarmaq üçün NFT-lərdən istifadə edirik və hətta öz NFT domen adımız da var. + +#### POAP-lar (İştirak protokolunun sübutu) {#poaps} + +Ethereum.org-a töhfə versəniz, POAP NFT-ni tələb edə bilərsiniz. Bunlar tədbirdə iştirak etdiyinizi sübut edən kolleksiyalardır. Bəzi kriptovalyuta görüşləri öz tədbirlərinə bilet forması kimi POAP-lardan istifadə etdilər. [Töhfə haqqında daha çox məlumat](/contributing/#poap). + +![ethereum.org POAP](./poap.png) + +#### ethereum.eth {#ethereum-dot-eth} + +Bu veb-saytın NFT-lər tərəfindən dəstəklənən alternativ domen adı var, **ethereum.eth**. Bizim `.org` ünvanımız mərkəzləşdirilmiş şəkildə domen adı sistemi (DNS) provayderi tərəfindən idarə olunur, halbuki ethereum`.eth` Ethereum Ad Xidməti (ENS) vasitəsilə Ethereum-da qeydiyyatdan keçib. Və bizə məxsusdur və idarə olunur. [ENS qeydimizi yoxlayın](https://app.ens.domains/name/ethereum.eth) + +[ENS haqqında daha çox](https://app.ens.domains) + +## NFT-lər necə işləyir? {#how-nfts-work} + +NFT-lər DAI və ya LINK kimi ERC-20 tokenlərindən fərqlidir ki, hər bir fərdi token tamamilə unikaldır və bölünmür. NFT-lər Ethereum-un blokçeynindən ictimai kitab kimi istifadə etməklə izlənilə bilən istənilən unikal rəqəmsal məlumat parçasına sahiblik təyin etmək və ya iddia etmək imkanı verir. NFT rəqəmsal obyektlərdən rəqəmsal və ya qeyri-rəqəmsal aktivlərin təsviri kimi hazırlanır. Məsələn, NFT aşağıdakıları təmsil edə bilər: + +- Rəqəmsal sənət: + - GİFlər + - Kolleksiyalar + - Musiqi + - Videolar +- Real Dünya Elementləri: + - Avtomobil sənədləri + - Real dünya tədbirlərinə biletlər + - Tokenləşdirilmiş fakturalar + - Hüquqi sənədlər + - İmzalar +- Yaradıcı olmaq üçün daha çox seçim! + +NFT-lərə sahiblik başqa heç bir tokenin təkrarlaya bilmədiyi unikal ID və metadata vasitəsilə idarə olunur. NFT-lər sahibliyi təyin edən və NFT-lərin ötürülməsini idarə edən ağıllı müqavilələr vasitəsilə hazırlanır. Kimsə NFT yaratdıqda və ya zərb edəndə, [ERC-721](/developers/docs/standards/tokens/erc-721/) kimi müxtəlif standartlara uyğun gələn ağıllı müqavilələrdə saxlanılan kodu icra edir. Bu məlumat NFT-nin idarə olunduğu blokçeynə əlavə edilir. Zərb prosesi, yüksək səviyyədən keçdiyi aşağıdakı addımlardan ibarətdir: + +- Yeni blok yaradılması +- Məlumatın təsdiqlənməsi +- Blokçeynə məlumatların qeyd edilməsi + +NFT-lərin bəzi özəl xüsusiyyətləri var: + +- Zərb olunan hər bir tokenin bir Ethereum ünvanı ilə birbaşa əlaqəli olan unikal identifikatoru var. +- Onlar 1:1 nisbətində digər tokenlərlə birbaşa əvəz edilə bilməz. Məsələn, 1 ETH başqa bir ETH ilə eynidir. NFT-lərdə belə deyil. +- Hər bir tokenin sahibi var və bu məlumat asanlıqla yoxlanıla bilər. +- Onlar Ethereum-da yaşayırlar və istənilən Ethereum əsaslı NFT bazarında alınıb satıla bilərlər. + +Başqa sözlə, əgər NFT-yə _sahibisinizsə_: + +- Siz asanlıqla ona sahib olduğunuzu sübut edə bilərsiniz. + - NFT-yə sahib olduğunuzu sübut etmək, hesabınızda ETH-nin olduğunu kimi sübut etməyə çox bənzəyir. + - Məsələn, deyək ki, siz NFT aldınız və unikal tokenin mülkiyyəti ümumi ünvanınız vasitəsilə pulqabıya köçürülür. + - Token rəqəmsal faylın surətinizin orijinal olduğunu sübut edir. + - Şəxsi açarınız orijinalın sahibliyini sübut edir. + - Məzmun yaradıcısının açıq açarı həmin xüsusi rəqəmsal artefakt üçün orijinallıq sertifikatı kimi xidmət edir. + - Yaradıcıların açıq açarı əslində token tarixinin daimi hissəsidir. Yaradıcının açıq açarı nümayiş etdirə bilər ki, sizdə olan token müəyyən bir şəxs tərəfindən yaradılıb və beləliklə, onun bazar dəyərinə töhfə verir (saxtakarlığa qarşı). + - NFT-yə sahib olduğunuzu sübut etmək barədə düşünməyin başqa bir yolu, ünvanın arxasındakı şəxsi açara sahib olduğunuzu sübut etmək üçün mesajlar imzalamaqdır. + - Yuxarıda qeyd edildiyi kimi, şəxsi açarınız orijinalın mülkiyyətinin sübutudur. Bu, həmin ünvanın arxasındakı şəxsi açarların NFT-ni idarə etdiyini bildirir. + - İmzalanmış mesaj şəxsi açarlarınızı heç kimə açıqlamadan və beləliklə də NFT-yə sahib olduğunuzu sübut edən sübut kimi istifadə edilə bilər! +- Heç kim onu heç bir şəkildə manipulyasiya edə bilməz. +- Siz onu sata bilərsiniz və bəzi hallarda bu, orijinal yaradıcının yenidən satış qonorarı qazanacaq. +- Və ya aktivinizin Ethereum-dakı pulqabı tərəfindən qorunduğunu bilə-bilə rahat istirahət edərək onu əbədi saxlaya bilərsiniz. + +Siz NFT yaratdığınız zaman: + +- Asanlıqla müəllif olduğunuzu sübut edə bilərsiniz. +- Onun nadirliyini seçə bilərsiniz. +- Hər satışdan pay ala bilərsiniz. +- Onu NFT marketlərində və ya digər insanlara sata bilərsiniz. Sizə heç bir platformada əngəl yoxdur və aracı olacaq birinə ehtiyac duymayacaqsınız. + +### Qıtlıq {#scarcity} + +NFT-nin yaradıcısı aktivlərinin qıtlığına qərar verir. + +Məsələn, bir idman tədbirinə bilet düşünün. Tədbirin təşkilatçısı neçə bilet satacağını seçə bildiyi kimi, NFT-nin yaradıcısı da neçə replikanın mövcudluğuna qərar verə bilər. Bəzən bunlar 5000 Ümumi Qəbul biletləri kimi dəqiq replikalardır. Bəzən çox oxşar, lakin hər biri bir qədər fərqli olan bir neçə zərb edilir, məsələn, təyin edilmiş oturacaqlı bilet. Başqa bir halda, yaradıcı yalnız birinin xüsusi nadir kolleksiya kimi zərb edildiyi NFT yaratmaq istəyə bilər. + +Bu hallarda, hər bir NFT hələ də yalnız bir sahibi ilə unikal identifikatora (ənənəvi "biletdəki" ştrix kod kimi) malik olacaq. NFT-nin nəzərdə tutulan çatışmazlığı əhəmiyyətlidir və yaradıcıdan asılıdır. Yaradıcı çatışmazlıq yaratmaq üçün hər bir NFT-ni tamamilə unikal etmək niyyətində ola bilər və ya bir neçə min replika istehsal etmək üçün səbəbləri ola bilər. Unutmayın ki, bu məlumatların hamısı açıqdır. + +### Qonorarlar {#royalties} + +Bəzi NFT-lər satıldıqda müəlliflərinə avtomatik olaraq qonorar ödəyəcəklər. Bu hələ inkişaf etməkdə olan bir konsepsiyadır, lakin ən güclülərindən biridir. [EulerBeats Originals](https://eulerbeats.com/)-ın orijinal sahibləri NFT hər dəfə satıldıqda 8% royalti qazanırlar. Və [Foundation](https://foundation.app) və [Zora](https://zora.co/) kimi bəzi platformalar öz sənətçiləri üçün qonorarları dəstəkləyirlər. + +Bu, tamamilə avtomatikdir, ona görə də yaradıcılar sadəcə oturub qonorar qazana bilərlər, çünki işləri şəxsdən şəxsə satılır. Hazırda qonorarları müəyyən etməkdə əl ilə hesablanır və dəqiqlik yoxdur – bir çox yaradıcılar layiq olduqları pulu almırlar. Əgər NFT-nizdə ona proqramlaşdırılmış bir royalti varsa, heç vaxt əldən verməyəcəksiniz. + +## NFT-lər nə üçün istifadə olunur? {#nft-use-cases} + +Ethereum-da NFT-lər üçün daha yaxşı işlənmiş istifadə halları və baxışları haqqında daha çox məlumat buradadır. + +- [Rəqəmsal məzmun](#nfts-for-creators) +- [Oyun elementləri](#nft-gaming) +- [Domen adları](#nft-domains) +- [Fiziki elementlər](#nft-physical-items) +- [İnvestisiya və girov](#nfts-and-defi) +- [Tokenqeytinq](#tokengating) + + + +### Yaradıcılar üçün qazancın artırılması {#nfts-for-creators} + +Bu gün NFT-lərin ən böyük istifadəsi rəqəmsal məzmun sahəsindədir. Çünki bu gün həmin sənaye yaxşı işləmir. Məzmun yaradıcıları qazanclarının və qazanc potensialının platformalar tərəfindən udulduğunu görürlər. + +Sosial şəbəkədə əsər dərc edən bir sənətçi, sənətçilərin izləyicilərinə reklam satan platforma üçün pul qazanır. Bunun müqabilində ifşa alırlar, lakin ifşa hesabları ödəmir. + +NFT-lər yeni yaradıcı iqtisadiyyatı gücləndirir, burada yaradıcılar onların məzmununa sahiblik hüququnu ictimailəşdirmək üçün istifadə etdikləri platformalara təhvil vermirlər. Mülkiyyət məzmunun özündədir. + +Məzmunu satdıqda, vəsait birbaşa onlara gedir. Əgər yeni sahib NFT-ni satarsa, orijinal yaradıcı hətta avtomatik olaraq qonorar ala bilər. Bu, hər dəfə satıldıqda zəmanət verilir, çünki yaradıcının ünvanı token metadatasının bir hissəsidir – dəyişdirilə bilməyən metadata. + + +
Öz NFT sənətinizi/kolleksiyalarınızı kəşf edin, alın və ya yaradın...
+ + NFT sənətini araşdırın + +
+ +#### Kopyalama/yapışdırma problemi {#nfts-copy-paste} + +Şübhə edənlər tez-tez NFT-lərin "lal" olduqlarını, ümumiyyətlə NFT sənət əsərinin ekran görüntüsünü çəkdikləri bir şəkil ilə birlikdə gündəmə gətirirlər. "Bax, indi o görüntü məndə pulsuzdur!" lovğalıqla deyirlər. + +Yaxşı, bəli. Bəs Pikassonun Guernica-nın şəklini axtarmaq sizi çox milyon dollarlıq sənət tarixinin qürurlu yeni sahibi edirmi? + +Nəhayət, real bir şeyə sahib olmaq bazarın etdiyi qədər dəyərlidir. Bir məzmun parçası ekranda nə qədər çox tutulsa, paylaşılsa və ümumiyyətlə istifadə edilərsə, bir o qədər dəyər qazanır. + +Doğrulana bilən real bir şeyə sahib olmaq həmişə yoxdan daha çox dəyərə malik olacaqdır. + + + +### Oyun potensialının artırılması {#nft-gaming} + +NFT-lər oyun tərtibatçıları tərəfindən böyük maraq gördü. NFT-lər oyundaxili əşyalar üçün sahiblik qeydlərini təqdim edə, oyundaxili iqtisadiyyatları gücləndirə və oyunçulara bir sıra faydalar gətirə bilər. + +Bir çox adi oyunlarda siz oyununuzda istifadə etmək üçün əşyalar ala bilərsiniz. Amma əgər həmin əşya NFT idisə, oyunu bitirdikdən sonra onu satmaqla pulunuzu geri qaytara bilərsiniz. Bu maddə daha arzuolunan olarsa, hətta qazanc əldə edə bilərsiniz. + +Oyun tərtibatçıları üçün - NFT-nin emitentləri kimi - hər hansı bir maddə açıq bazarda yenidən satıldıqda qonorar qazana bilərdilər. Bu, həm oyunçuların, həm də tərtibatçıların təkrar NFT bazarından qazandıqları daha qarşılıqlı faydalı biznes modeli yaradır. + +Bu həm də o deməkdir ki, tərtibatçılar artıq oyunu dəstəkləmirlərsə, topladığınız əşyalar sizə qalır. + +Nəticədə oyunda əldə etdiyiniz elementlər oyunların özündən çox yaşaya bilər. Bir oyun artıq mövcud olmasa belə, elementlər həmişə sizin nəzarətinizdə olacaq. Bu o deməkdir ki, oyundaxili elementlər rəqəmsal yaddaşa çevrilir və oyundan kənarda dəyərə malikdir. + +Virtual reallıq oyunu olan Decentraland hətta sizə uyğun gördüyünüz kimi istifadə edə biləcəyiniz virtual torpaq sahələrini təmsil edən NFT-ləri almağa imkan verir. + + +
NFT-lər tərəfindən dəstəklənən Ethereum oyunlarına baxın...
+ + NFT oyunlarını araşdırın + +
+ + + +### Ethereum ünvanlarını daha yaddaqalan etmək {#nft-domains} + +Ethereum Ad Xidməti Ethereum ünvanınızı `mywallet.eth` kimi daha asan yadda qalan adla təmin etmək üçün NFT-lərdən istifadə edir. Bu o deməkdir ki, kimsədən sizə ETH göndərməsini `0x123456789.....` əvəzinə `mywallet.eth` vasitəsilə göndərə bilərsiniz. + +Bu, bir IP ünvanını daha yaddaqalan edən veb-sayt domen adına oxşar şəkildə işləyir. Və domenlər kimi, ENS adları da adətən uzunluğa və uyğunluğa əsaslanan dəyərə malikdir. ENS ilə mülkiyyətin ötürülməsini asanlaşdırmaq üçün domen reyestrinə ehtiyacınız yoxdur. Bunun əvəzinə siz ENS adlarınızı NFT bazarında ticarət edə bilərsiniz. + +ENS adınız ola bilər: + +- Kriptovalyutanı və digər NFT-ləri əldə edin. +- [ethereum.eth](https://ethereum.eth.link) kimi mərkəzləşdirilməmiş veb-sayta işarə edin. [Veb-saytınızın mərkəzsizləşdirilməsi haqqında daha çox məlumat](https://docs.ipfs.io/how-to/websites-on-ipfs/link-a-domain/#domain-name-service-dns) +- E-poçt ünvanları və Twitter tutacaqları kimi profil məlumatları daxil olmaqla istənilən ixtiyari məlumatı saxlayın. + + + +### Fiziki elementlər {#nft-physical-items} + +Fiziki əşyaların tokenizasiyası hələ rəqəmsal həmkarları qədər inkişaf etməmişdir. Ancaq daşınmaz əmlakın tokenizasiyasını, bənzərsiz moda əşyalarını və daha çoxunu araşdıran çoxlu layihələr var. + +NFT-lər əslində mülkiyyət sənədləri olduğundan, bir gün siz ETH-dən istifadə edərək avtomobil və ya ev ala bilərsiniz və əvəzində (eyni əməliyyatda) sənədi NFT kimi ala bilərsiniz. İşlər getdikcə yüksək texnologiyaya çevrildikcə, Ethereum cüzdanınızın avtomobilinizin və ya evinizin açarına çevrildiyi dünyanı təsəvvür etmək çətin deyil – sahibliyin kriptoqrafik sübutu ilə qapınızın kilidi açılır. + +Avtomobillər və Ethereum-da təmsil olunan əmlak kimi qiymətli aktivlərlə, NFT-ləri mərkəzləşdirilməmiş kreditlərdə girov kimi istifadə edə bilərsiniz. Nağd pul və ya kriptovalyuta ilə zəngin deyilsinizsə, lakin dəyərli fiziki əşyalarınız varsa, bu xüsusilə faydalıdır. [DeFi haqqında daha çox məlumat](/defi/) + + + +### NFT-lər və DeFi {#nfts-and-defi} + +NFT dünyası və [mərkəzləşdirilməmiş maliyyə (DeFi)](/defi/) dünyası bir sıra maraqlı üsullarla birlikdə işləməyə başlayır. + +#### NFT-dəstəklənən kreditlər {#nft-backed-loans} + +Girovdan istifadə edərək borc götürməyə imkan verən DeFi proqramları var. Məsələn, 5000 DAI ([stablecoin](/stablecoins/)) borc ala bilmək üçün 10 ETH-ni girov qoyursunuz. Bu, borc verənin geri ödənilməsinə zəmanət verir - borcalan DAI-ni geri qaytarmazsa, girov borc verənə göndərilir. Bununla belə, hər kəsin girov kimi istifadə etmək üçün kifayət qədər kriptovalyutası yoxdur. + +Layihələr əvəzinə NFT-ləri girov kimi istifadə edərək araşdırmağa başlayırlar. Təsəvvür edin ki, siz vaxtilə nadir bir CryptoPunk NFT aldınız – onlar bugünkü qiymətlərlə 1000 dollar ala bilərlər. Bunu girov kimi qoymaqla siz eyni qayda dəsti ilə kredit əldə edə bilərsiniz. DAI-ni geri qaytarmasanız, CryptoPunk borc verənə girov olaraq göndəriləcək. Bu, nəticədə NFT kimi işarələdiyiniz hər şeylə işləyə bilər. + +Və bu Ethereum üçün çətin deyil, çünki hər iki dünya (NFT və DeFi) eyni infrastrukturu paylaşır. + +#### Fraksiyalı mülkiyyət {#fractional-ownership} + +NFT yaradıcıları həmçinin öz NFT üçün "paylar" yarada bilərlər. Bu, investorlara və azarkeşlərə hər şeyi satın almadan NFT-nin bir hissəsinə sahib olmaq imkanı verir. Bu, həm NFT həmkarları və kolleksiyaçılar üçün daha çox imkanlar əlavə edir. + +- Fraksiyalaşdırılmış NFT-lər yalnız [NFT bazarlarında](/dapps?category=collectibles) deyil, Uniswap kimi [DEX-lərdə](/defi/#dex) satıla bilər. Bu, daha çox alıcı və satıcı deməkdir. +- NFT-nin ümumi qiyməti onun fraksiyalarının qiyməti ilə müəyyən edilə bilər. +- Önəm verdiyiniz əşyalara sahib olmaq və onlardan qazanc əldə etmək üçün daha çox imkanınız var. NFT-lərə sahib olmaqdan qiymət almaq daha çətindir. + +Bu hələ eksperimentaldır, lakin siz aşağıdakı mübadilələrdə fraksiya NFT sahibliyi haqqında daha çox öyrənə bilərsiniz: + +- [NIFTEX](https://landing.niftex.com/) +- [NFTX](https://gallery.nftx.org/) + +Nəzəri olaraq, bu, Pikassonun bir parçasına sahib olmaq kimi şeylər etmək imkanını açacaq. Siz Picasso NFT-nin səhmdarı olacaqsınız, yəni gəlirin bölüşdürülməsi kimi məsələlərdə söz sahibi olacaqsınız. Çox güman ki, bir gün tezliklə NFT-nin bir hissəsinə sahib olmaq sizi həmin aktivi idarə etmək üçün mərkəzləşdirilməmiş muxtar təşkilata (DAO) daxil edəcək. + +Bunlar, bir aktivin qlobal səhmdarları kimi kənar şəxslərə digər insanlara etibar etmədən təhlükəsiz şəkildə koordinasiya etməyə imkan verən Ethereum tərəfindən dəstəklənən təşkilatlardır. Çünki qrupun razılığı olmadan bir qəpik də xərclənə bilməz. + +Qeyd etdiyimiz kimi, bu, inkişaf edən bir məkandır. NFT-lər, DAO-lar fraksiyalaşdırılmış tokenlər müxtəlif sürətlə inkişaf edir. Lakin onların bütün infrastrukturu mövcuddur və asanlıqla birlikdə işləyə bilər, çünki hamısı eyni dildə danışır: Ethereum. Beləliklə, bu məkana baxın. + +[More on DAOs](/dao/) + +### Orijinallıq sertifikatları {#certificates} + +Universitet dərəcələri üçün saxta sertifikatlar təklif edən şirkətlərin NFT-lərin mübarizə apara biləcəyi milyard dollarlıq sənaye olduğu bildirilir. NFT-lər kiminsə dərəcə etimadnaməsini yoxlamaq üçün təhlükəsiz və sürətli bir yol ola bilər. + +[Cənubi Koreyada bir universitet artıq NFT kimi dərəcə sertifikatları verir](https://forkast.news/headlines/south-korea-nfts-graduates-hoseo/). NFTs inzibati xidmətlərə çıxışı yaxşılaşdıracaq və dərəcənin saxtalaşdırılmasının və ya dəyişdirilməsinin qarşısını alacaq. [İrlandiyadakı Trinity Business School (TBS) də 2023-cü ildən NFT təklif etməyi planlaşdırır](https://trinitynews.ie/2022/04/business-school-to-offer-degree-nfts/). + + + +### Tokenqeytinq {#tokengating} + +Tokenqeytinq bir şeyə girişi məhdudlaşdırmaq və girişin kilidini açmaq üçün NFT-lərdən istifadə etmək üsuludur. Bunlar platformadan asılı olaraq çox dəyişə bilər, lakin məşhur nümunələr qapalı məzmun, şəxsi söhbət serverləri və e-ticarət dünyasında eksklüziv məhsullardır. + +Tokengating edən platforma tələb olunan NFT-yə sahib olduğunuzu sübut etmək üçün sizdən pulqabını birləşdirməyi istəyəcək. Əgər sizə lazım olan NFT varsa, giriş əldə edəcəksiniz. Əks halda, şey qapalı qalacaq. NFT-lər unikallığına görə bunu etmək üçün əla bir yoldur - əşyanı əldə etmək üçün saxta sahiblik edə bilməzsiniz. + +NFT-lər unikallığına görə bunu etmək üçün əla bir yoldur - əşyanı əldə etmək üçün saxta sahiblik edə bilməzsiniz. Sahib olduğunuz tək bir NFT tamamilə fərqli veb-saytlar və tətbiqlərdə qapalı məzmunu, şəxsi söhbət serverlərini və eksklüziv məhsulların kilidini aça bilər. + +NFT-lərin zərb edilməsi və paylanması icma nəsli və ya icmanın rəqəmsallaşdırılması ilə əlaqədardırsa, tokenqating cəmiyyətin tərbiyəsi ilə bağlıdır. O, NFT-lərin daha çox üzvlük və ya sadiqlik üçün bir vasitə kimi istifadə edildiyini və onunla gələn mükafatları etibarlı şəkildə çatdırmaq üçün əla bir yol olduğunu görür. + +#### Examples + +- [Collab.land](https://collab.land/) tokenqeyt Discord çat serverləri və ya Telegram qrupları +- [Kilidi açma protokolu](https://unlock-protocol.com/) tokenqeytinq üçün protokoldur +- [Shopify](https://help.shopify.com/en/manual/products/digital-service-product/nfts) tacirlərə məhsullara və endirimlərə giriş imkanı verən tətbiqlərin artan siyahısına malikdir + + + +## Ethereum və NFT-lər {#ethereum-and-nfts} + +Ethereum NFT-lərin bir sıra səbəblərə görə işləməsini mümkün edir: + +- Tranzaksiya tarixçəsi və token metadata açıq şəkildə yoxlana bilər – sahiblik tarixçəsini sübut etmək asandır. +- Tranzaksiya təsdiq edildikdən sonra, sahibliyi "oğurlamaq" üçün həmin məlumatları manipulyasiya etmək demək olar ki, mümkün deyil. +- Ticarət NFT-ləri kompensasiya olaraq böyük endirimlər götürə bilən platformalara ehtiyac duymadan həmyaşıdlar arasında baş verə bilər. +- Bütün Ethereum məhsulları eyni “backend”i paylaşır. Başqa sözlə, bütün Ethereum məhsulları bir-birini asanlıqla başa düşə bilər - bu, NFT-ləri məhsullar arasında portativ edir. Siz bir məhsul üçün NFT alıb digərində asanlıqla sata bilərsiniz. Yaradıcı olaraq NFT-lərinizi eyni vaxtda birdən çox məhsulda siyahıya sala bilərsiniz – hər bir məhsulda ən müasir sahiblik məlumatı olacaq. +- Ethereum heç vaxt aşağı düşmür, yəni tokenləriniz həmişə satıla bilər. + +## NFT-lərin ətraf mühitə təsiri {#environmental-impact-nfts} + +NFT-lərin yaradılması və ötürülməsi sadəcə Ethereum əməliyyatlarıdır - pul çıxarmaq, almaq, dəyişdirmək və ya NFT-lərlə qarşılıqlı əlaqə birbaşa enerji sərf etmir. [Birləşmə](/roadmap/merge) olduğundan, Ethereum aşağı enerjili blokçeyndir, yəni NFT-lərdən istifadənin ətraf mühitə təsiri cüzidir. + +[Ethereum-un enerji istehlakı haqqında ətraflı](/energy-consumption/). + +### Bunu NFT-lərdə günahlandırmayın {#nft-qualities} + +Bütün NFT ekosistemi işləyir, çünki Ethereum mərkəzləşdirilməmiş və təhlükəsizdir. + +Mərkəzləşdirilməmiş o deməkdir ki, siz və hər kəs nəyəsə sahib olduğunuzu təsdiqləyə bilər. Hamısı öz qaydalarını istədiyi zaman tətbiq edə bilən üçüncü tərəfə etibar etmədən və ya qəyyumluq vermədən. Bu, həm də NFT-nin bir çox müxtəlif məhsul və bazarlarda daşına bilən olması deməkdir. + +Təhlükəsiz deməkdir ki, heç kim NFT-nizi kopyalaya/yapışdıra və ya oğurlaya bilməz. + +Ethereum-un bu keyfiyyətləri rəqəmsal olaraq unikal əşyalara sahib olmağı və məzmununuz üçün ədalətli qiymət əldə etməyi mümkün edir. Ethereum aktivləri ['proof-of-stake'](/developers/docs/consensus-mechanisms/pos) ehtiva edən mərkəzləşdirilməmiş konsensus mexanizmindən istifadə edərək qoruyur. Bu, zəncirə əməliyyatlar blokunu kimin əlavə edə biləcəyini müəyyən etmək üçün aşağı karbonlu bir üsuldur və enerji tutumlu alternativdən daha təhlükəsiz hesab olunur,['proof-of-work'](/developers/docs/consensus-mechanisms/pow). NFT-lər yüksək enerji xərcləri ilə əlaqələndirilmişdir, çünki Ethereum əvvəllər iş sübutu ilə təmin edilirdi. Bu artıq doğru deyil. + +#### NFT-lərin zərb edilməsi {#minting-nfts} + +Bir NFT zərb edəndə bir neçə şey baş verməlidir: + +- O, blokçeynində aktiv kimi təsdiqlənməlidir. +- Sahibin hesab balansı həmin aktivi daxil etmək üçün yenilənməlidir. Bu, onun daha sonra alqı-satqısına və ya yoxlanıla bilən şəkildə "sahibi" olmasına imkan verir. +- Yuxarıdakıları təsdiqləyən əməliyyatlar bloka əlavə edilməli və zəncirdə "ölümsüzləşdirilməlidir". +- Blok şəbəkədəki hər kəs tərəfindən "düzgün" olaraq təsdiqlənməlidir. Bu konsensus vasitəçilərə ehtiyacı aradan qaldırır, çünki şəbəkə sizin NFT-nin mövcudluğu və sizə aid olması ilə razılaşır. Və zəncirdədir ki, hər kəs onu yoxlaya bilsin. Bu, Ethereum-un NFT yaradıcılarına qazanclarını artırmaqda köməklik edən üsullardan biridir. + +Bütün bu tapşırıqlar blok istehsalçıları və validatorlar tərəfindən yerinə yetirilir. Blok təklif edənlər NFT əməliyyatınızı bloka əlavə edir və onu şəbəkənin qalan hissəsinə yayımlayır. Validatorlar əməliyyatın etibarlı olub olmadığını yoxlayır və sonra onu verilənlər bazalarına əlavə edirlər. Validatorların vicdanla hərəkət etdiyinə əmin olmaq üçün bir çox kripto-iqtisadi təşviqlər mövcuddur. Əks halda, hər kəs yenicə zərb etdiyiniz NFT-yə sahib olduqlarını iddia edə və fırıldaqçılıq yolu ilə sahibliyi ötürə bilər. + +#### NFT təhlükəsizliyi {#nft-security} + +Ethereum-un təhlükəsizliyi hissə sübutundan gəlir. Sistem zərərli hərəkətləri iqtisadi cəhətdən dayandırmaq üçün nəzərdə tutulmuşdur və bu, Ethereum-u müdaxiləyə davamlı edir. NFT-ləri mümkün edən budur. NFT əməliyyatınızı ehtiva edən blok tamamlandıqdan sonra onu dəyişdirmək təcavüzkarın milyonlarla ETH-yə başa gələcək. Ethereum proqramını işlədən hər kəs dərhal NFT-yə vicdansız müdaxiləni aşkar edə biləcək və pis aktyor iqtisadi cəhətdən cəzalandırılacaq və işdən çıxarılacaq. + +NFT-lərlə bağlı təhlükəsizlik məsələləri çox vaxt fişinq fırıldaqları, ağıllı müqavilə zəiflikləri və ya istifadəçi səhvləri (məsələn, şəxsi açarların təsadüfən ifşa edilməsi kimi) ilə əlaqədardır ki, bu da pul kisəsinin təhlükəsizliyini NFT sahibləri üçün kritik edir. + + + Təhlükəsizlik haqqında daha çox + + +## NFT ilə qurun {#build-with-nfts} + +Əksər NFT-lər [ERC-721](/developers/docs/standards/tokens/erc-721/) kimi tanınan ardıcıl standartdan istifadə etməklə qurulur. Bununla belə, baxmaq istəyə biləcəyiniz başqa standartlar da var. [ERC-1155](/developers/docs/standards/tokens/erc-1155/) standartı, xüsusilə də oyunlarda faydalı olan yarı ötürülmüş tokenlərə imkan verir. Və daha yaxınlarda, NFT-lərin zərb edilməsini daha səmərəli etmək üçün [EIP-2309](https://eips.ethereum.org/EIPS/eip-2309) təklif edilmişdir. Bu standart sizə bir əməliyyatda istədiyiniz qədər pul köçürməyə imkan verir! + +## Further reading {#further-reading} + +- [Kripto sənəti məlumatları](https://cryptoart.io/data) – Richard Chen, avtomatik yenilənir +- [OpenSea: the NFT Bible](https://opensea.io/blog/guides/non-fungible-tokens/) – _Devin Fizner, 10 yanvar 2020_ +- [NFT-lər üçün yeni başlayanlar üçün bələdçi](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) – _Linda Xie, yanvar 2020_ +- [Metaverse haqqında bilmək lazım olan hər şey](https://foundation.app/blog/enter-the-metaverse)– _Foundation komandası, foundation.app_ +- [Xeyr, CryptoArtists Planetə Zərər Etmir](https://medium.com/superrare/no-cryptoartists-arent-harming-the-planet-43182f72fc61) +- [Ethereum's energy consumption](/energy-consumption/) +- [Ethereum NFT API-ləri](https://www.alchemy.com/list-of/nft-apis-on-ethereum) - _Kimya_ + + diff --git a/src/intl/az/common.json b/src/intl/az/common.json index cea153e02c8..b67298f5eaa 100644 --- a/src/intl/az/common.json +++ b/src/intl/az/common.json @@ -13,6 +13,7 @@ "community-hub": "İcma mərkəzi", "community-menu": "İcma Menyusu", "contact": "Əlaqə", + "content-standardization": "Məzmun standartlaşdırılması", "contributing": "Töhfələr", "contributors": "Töhfəçilər", "contributors-thanks": "Bu səhifədə əməyi olan hər kəsə - təşəkkür edirik!", @@ -28,7 +29,24 @@ "developers": "Tərtibatçılar", "developers-home": "Tərtibatçıların Ana Səhifəsi", "docs": "Sənədlər", + "docsearch-to-select": "Seçmək", + "docsearch-to-navigate": "Naviqasiya", + "docsearch-to-close": "Bağlamaq", + "docsearch-search-by": "Axtar:", + "docsearch-start-recent-searches-title": "Ən son", + "docsearch-start-no-recent-searches": "Son axtarışlar yoxdur", + "docsearch-start-save-recent-search": "Bu axtarışı yadda saxlayın", + "docsearch-start-remove-recent-search": "Bu axtarışı tarixçədən silin", + "docsearch-start-favorite-searches": "Seçilmiş", + "docsearch-start-remove-favorite-search": "Bu axtarışı seçilmişdən silin", + "docsearch-no-results-text": "Nəticə yoxdur:", + "docsearch-no-results-suggested-query": "Axtarmağa çalışın:", + "docsearch-no-results-missing": "İnanırsınız ki, bu sorğu nəticə verməlidir?", + "docsearch-no-results-missing-link": "Bizə bildirin.", + "docsearch-error-title": "Nəticələri əldə etmək mümkün deyil", + "docsearch-error-help": "Şəbəkə bağlantınızı yoxlayın.", "documentation": "Sənədləşdirmə", + "down": "Aşağı", "ecosystem": "Ekosistem", "edit-page": "Səhifəni redaktə et", "ef-blog": "Ethereum Fondu üzrə Bloq", @@ -69,7 +87,6 @@ "get-started": "Başla", "grants": "Qrantlar", "grant-programs": "Ekosistem dəstək proqramları", - "guides-and-resources": "İcma üzrə təlimat və resurslar", "guides": "Bələdçilər", "guides-hub": "Bələdçi mərkəzi", "history-of-ethereum": "Ethereumun tarixi", @@ -93,6 +110,7 @@ "layer-2": "2-ci Qrup", "learn": "Öyrən", "learn-by-coding": "Kodlaşdırma yolu ilə öyrən", + "learn-hub": "Öyrənmə mərkəzi", "learn-menu": "Menyunu öyrən", "learn-more": "Daha ətraflı", "less": "Daha az", @@ -124,6 +142,7 @@ "rollup-component-technology-and-risk-summary": "Texnologiya və risk icmalı", "scaling": "Ölçəkləmə", "search": "Axtarış", + "search-ethereum-org": "Ethereum.org-da axtarın", "secret-leader-election": "Gizli lider seçimi", "search-box-blank-state-text": "Axtarış et!", "search-eth-address": "Bu, Ethereum ünvanına bənzəyir. Biz ünvanlar üçün xüsusi məlumat təqdim etmirik. Gərəkli məlumatları blok tədqiqatçılarında tapmağa çalışın, məsələn:", @@ -140,7 +159,9 @@ "skip-to-main-content": "Əsas məzmuna keç", "smart-contracts": "Ağıllı müqavilələr", "stablecoins": "Stabil koinlər", + "stake-eth": "ETH-ni steyk", "staking": "Steykinq", + "style-guide": "Style guide", "solo": "Solo steykinq", "saas": "Bir xidmət kimi steykinq", "pools": "Birləşdirilmiş steykinq", @@ -157,6 +178,7 @@ "translation-banner-no-bugs-dont-show-again": "Bir daha göstərmə", "try-using-search": "Axtardığınızı tapmaq üçün axtarışdan istifadə etməyə çalışın və ya", "tutorials": "Təlimatlar", + "up": "Yuxarı", "use-ethereum": "Ethereum istifadə et", "use-ethereum-menu": "Ethereum menyusunu istifadə et", "user-experience": "İstifadəçi təcrübəsi", @@ -176,5 +198,6 @@ "yes": "Bəli", "zero-knowledge-proofs": "Sıfır bilik verməklə isbat protokolu", "ethereum-roadmap": "Ethereum planlama xəritəsi", - "page-index-meta-title": "Əsas səhifə" + "page-index-meta-title": "Home", + "page-developers-aria-label": "Developers' Menu" } diff --git a/src/intl/az/page-dapps.json b/src/intl/az/page-dapps.json index 9f8a3e0e2bb..33a5a76ba3f 100644 --- a/src/intl/az/page-dapps.json +++ b/src/intl/az/page-dapps.json @@ -1,4 +1,217 @@ { + "page-dapps-1inch-logo-alt": "1inch loqosu", + "page-dapps-dexguru-logo-alt": "DexGuru loqosu", + "page-dapps-aave-logo-alt": "Aave loqosu", + "page-dapps-add-button": "MT təklif edin", + "page-dapps-add-title": "MT əlavə edin", + "page-dapps-audius-logo-alt": "Audius loqosu", + "page-dapps-augur-logo-alt": "Augur loqosu", + "page-dapps-axie-infinity-logo-alt": "Axie Infinity loqosu", + "page-dapps-balancer-logo-alt": "Balancer loqosu", + "page-dapps-brave-logo-alt": "Brave loqosu", + "page-dapps-category-arts": "İncəsənət və moda", + "page-dapps-category-browsers": "Brauzerlər", + "page-dapps-category-collectibles": "Rəqəmsal kolleksiyalar", + "page-dapps-category-competitive": "Müsabiqə", + "page-dapps-category-computing": "Developer tools", + "page-dapps-category-dex": "Token mübadilələri", + "page-dapps-category-investments": "İnvestisiyalar", + "page-dapps-category-lending": "Kredit vermək və borc vermək", + "page-dapps-category-lottery": "Kraudfanding", + "page-dapps-category-marketplaces": "Bazar yerləri", + "page-dapps-category-music": "Musiqi", + "page-dapps-category-payments": "Ödənişlər", + "page-dapps-category-insurance": "Sığorta", + "page-dapps-category-portfolios": "Portfoliolar", + "page-dapps-category-trading": "Ticarət və proqnoz bazarları", + "page-dapps-category-utilities": "Infrastruktur", + "page-dapps-category-worlds": "Virtual dünyalar", + "page-dapps-choose-category": "Kateqoriya seçin", + "page-dapps-collectibles-benefits-1-description": "İncəsənət Ethereum-da tokenləşdirildikdə, sahiblik hamının görməsi üçün sübut edilə bilər. Sənət əsərinin yaradılışından indiki sahibinə qədər olan səyahətini izləyə bilərsiniz. Bu, saxtakarlığın qarşısını alır.", + "page-dapps-collectibles-benefits-1-title": "Mülkiyyət sübut olunur", + "page-dapps-collectibles-benefits-2-description": "Musiqi yayımlamaq və ya sənət əsərləri almaq üçün pul ödəmək sənətçilər üçün daha ədalətlidir. Ethereum ilə vasitəçilərə daha az ehtiyac var. Vasitəçilərə ehtiyac varsa, onların xərcləri o qədər də yüksək deyil, çünki platformaların şəbəkənin infrastrukturu üçün pul ödəməyə ehtiyacı yoxdur.", + "page-dapps-collectibles-benefits-2-title": "Yaradıcılar üçün daha ədalətli", + "page-dapps-collectibles-benefits-3-description": "Tokenləşdirilmiş kolleksiyalar platformaya deyil, Ethereum ünvanınıza bağlıdır. Beləliklə, siz oyundaxili elementlər kimi şeyləri təkcə oyunun özündə deyil, istənilən Ethereum bazarında sata bilərsiniz.", + "page-dapps-collectibles-benefits-3-title": "Kolleksiyalar sizinlə gedir", + "page-dapps-collectibles-benefits-4-description": "Sənətinizi təsdiqləmək və satmaq üçün alətlər və məhsullar artıq mövcuddur! Və tokenləriniz istənilən və bütün Ethereum kolleksiya platformalarında satıla bilər.", + "page-dapps-collectibles-benefits-4-title": "İnfrastruktur artıq hazırdır", + "page-dapps-collectibles-benefits-description": "Bunlar rəqəmsal sahibliyə, yaradıcılar üçün qazanc potensialını artırmağa və sevimli yaradıcılarınıza və onların işinə investisiya etməyin yeni yollarını ixtira etməyə yönəlmiş tətbiqlərdir.", + "page-dapps-collectibles-benefits-title": "mərkəzləşdirilməmiş kolleksiyalar və axın", + "page-dapps-collectibles-button": "İncəsənət və kolleksiyalar", + "page-dapps-collectibles-description": "Bunlar rəqəmsal sahibliyə, yaradıcılar üçün qazanc potensialını artırmağa və sevimli yaradıcılarınıza və onların işinə investisiya etməyin yeni yollarını ixtira etməyə yönəlmiş tətbiqlərdir.", + "page-dapps-collectibles-title": "Mərkəzləşdirilməmiş incəsənət və kolleksiyalar", + "page-dapps-compound-logo-alt": "Compound loqosu", + "page-dapps-cryptopunks-logo-alt": "CryptoPunks loqosu", + "page-dapps-cryptovoxels-logo-alt": "Cryptovoxels loqosu", + "page-dapps-dapp-description-1inch": "Ən yaxşı qiymətləri birləşdirərək yüksək qiymətdən qaçmağa kömək edir.", + "page-dapps-dapp-description-aave": "Faiz qazanmaq və istənilən vaxt geri çəkmək üçün tokenlərinizi borc verin.", + "page-dapps-dapp-description-async-art": "#ProgrammableArt yaradın, toplayın və mübadilə edin - rəqəmsal rəsmlər ümumi təsvirə təsir etmək üçün istifadə edə biləcəyiniz \"Laylara\" bölünür. Hər bir Master və Layer ERC721 tokenidir.", + "page-dapps-dapp-description-audius": "Mərkəzləşdirilməmiş axın platforması. Dinləyir = etiketlər deyil, yaradıcılar üçün pul.", + "page-dapps-dapp-description-augur": "İdman, iqtisadiyyat və digər dünya hadisələrinin nəticələrinə mərc edin.", + "page-dapps-dapp-description-axie-infinity": "Axies adlı ticarət və döyüş canlıları. Oynadıqca qazanın - mobil cihazlarda mövcuddur", + "page-dapps-dapp-description-balancer": "Balancer avtomatlaşdırılmış portfel meneceri və ticarət platformasıdır.", + "page-dapps-dapp-description-brave": "Baxış üçün tokenlər qazanın və onlarla sevimli yaradıcılarınızı dəstəkləyin.", + "page-dapps-dapp-description-cent": "NFT göndərməklə pul qazandığınız sosial şəbəkə.", + "page-dapps-dapp-description-compound": "Faiz qazanmaq və istənilən vaxt geri çəkmək üçün tokenlərinizi borc verin.", + "page-dapps-dapp-description-cryptopunks": "Ethereum-da ilk token kolleksiyalarından biri olan pankları alın, təklif edin və satışa təqdim edin.", + "page-dapps-dapp-description-cryptovoxels": "İncəsənət qalereyaları yaradın, mağazalar tikin və torpaq satın alın – Ethereum virtual dünyası.", + "page-dapps-dapp-description-dark-forest": "Sonsuz, prosedurla yaradılan, kriptoqrafik olaraq müəyyən edilmiş kainatda planetləri fəth edin.", + "page-dapps-dapp-description-decentraland": "Tədqiq edə biləcəyiniz virtual dünyada virtual torpaq toplayın, ticarət edin.", + "page-dapps-dapp-description-ens": "Ethereum ünvanları və mərkəzləşdirilməmiş saytlar üçün istifadəçi üçün uyğun adlar.", + "page-dapps-dapp-description-foundation": "Rəqəmsal sənət əsərlərinin unikal nəşrlərinə investisiya qoyun və digər alıcılarla elemetləri mübadilə edin.", + "page-dapps-dapp-description-gitcoin": "Açıq mənbəli proqram təminatı üzərində işləyərək kripto qazanın.", + "page-dapps-dapp-description-gitcoin-grants": "Gücləndirilmiş töhfələrlə Ethereum icma layihələri üçün kraudfanding", + "page-dapps-dapp-description-gods-unchained": "Strateji ticarət kartı oyunu. Real həyatda sata biləcəyiniz kartları oynayaraq qazanın.", + "page-dapps-dapp-description-golem": "Paylaşılan hesablama gücünə daxil olun və ya öz resurslarınızı icarəyə götürün.", + "page-dapps-dapp-description-radicle": "Vasitəçilər olmadan birəbir kod əməkdaşlığını təmin edin.", + "page-dapps-dapp-description-loopring": "Sürət üçün qurulmuş birəbir ticarət platforması.", + "page-dapps-dapp-description-marble-cards": "URL-lərə əsaslanan unikal rəqəmsal kartları yaradın və ticarət edin.", + "page-dapps-dapp-description-matcha": "Ən yaxşı qiymətləri tapmağınıza kömək etmək üçün bir çox mübadilələri axtarır.", + "page-dapps-dapp-description-nifty-gateway": "Ən yaxşı rəssamlardan, idmançılardan, brendlərdən və yaradıcılardan şəbəkəli şəkildə əsərləri satın alın.", + "page-dapps-dapp-description-oasis": "Ethereum stabilkoini olan Dai ilə ticarət edin, borc alın və qənaət edin.", + "page-dapps-dapp-description-opensea": "Məhdud sayda mal alın, satın, kəşf edin və mübadilə edin.", + "page-dapps-dapp-description-opera": "Brauzerinizdən tacirlərə, digər istifadəçilərə və proqramlara kripto göndərin.", + "page-dapps-dapp-description-poap": "Müxtəlif virtual və ya şəxsi tədbirlərdə olduğunuzu sübut edən NFT-ləri toplayın. Onlardan lotereyaya qoşulmaq, səs vermək, əməkdaşlıq etmək və ya sadəcə lovğalanmaq üçün istifadə edin.", + "page-dapps-dapp-description-polymarket": "Nəticələrə mərc. İnformasiya bazarlarında ticarət.", + "page-dapps-dapp-description-pooltogether": "Uduza bilməyəcəyiniz lotereya. Hər həftə mükafatlar.", + "page-dapps-dapp-description-index-coop": "Portfelinizə ən yaxşı DeFi tokenlərinə məruz qalma imkanı verən kripto indeks fondu.", + "page-dapps-dapp-description-nexus-mutual": "Sığorta şirkəti olmadan sığorta. Ağıllı müqavilə xətalarından və hakerlərdən qorunun.", + "page-dapps-dapp-description-etherisc": "Hər kəsin öz sığorta əhatəsini yaratmaq üçün istifadə edə biləcəyi mərkəzləşdirilməmiş sığorta şablonu.", + "page-dapps-dapp-description-zapper": "Portfelinizi izləyin və bir interfeysdən bir sıra DeFi məhsullarından istifadə edin.", + "page-dapps-dapp-description-zerion": "Portfelinizi idarə edin və sadəcə bazardakı hər bir DeFi aktivini qiymətləndirin.", + "page-dapps-dapp-description-rotki": "Məxfiliyinizə hörmət edən açıq mənbəli portfel izləmə, analitika, mühasibat uçotu və vergi hesabatı aləti.", + "page-dapps-dapp-description-krystal": "Bütün sevimli DeFi xidmətlərinə daxil olmaq üçün bir pəncərə.", + "page-dapps-dapp-description-rarible": "Tokenləşdirilmiş kolleksiya elmentləri yaradın, satın və alın.", + "page-dapps-dapp-description-sablier": "Real vaxtda pul axını.", + "page-dapps-dapp-description-superrare": "Rəqəmsal sənət əsərlərini birbaşa rəssamlardan və ya ikincil bazarlardan alın.", + "page-dapps-dapp-description-token-sets": "Avtomatik olaraq yenidən tarazlaşan kriptovalyuta investisiya strategiyaları.", + "page-dapps-dapp-description-tornado-cash": "Ethereum-da anonim əməliyyatlar göndərin.", + "page-dapps-dapp-description-uniswap": "Tokenləri sadəcə dəyişdirin və ya % mükafat üçün tokenlər təmin edin.", + "page-dapps-dapp-description-dexguru": "DeFi treyderləri üçün girova əsaslanmayan ticarət terminalı", + "page-dapps-docklink-dapps": "Intro to dapps", + "page-dapps-docklink-smart-contracts": "Ağıllı müqavilələr", + "page-dapps-dark-forest-logo-alt": "Dark Forest loqosu", + "page-dapps-decentraland-logo-alt": "Decentraland loqosu", + "page-dapps-index-coop-logo-alt": "Index Coop loqosu", + "page-dapps-nexus-mutual-logo-alt": "Nexus Mutual loqosu", + "page-dapps-etherisc-logo-alt": "Etherisc loqosu", + "page-dapps-zapper-logo-alt": "Zapper loqosu", + "page-dapps-zerion-logo-alt": "Zerion loqosu", + "page-dapps-rotki-logo-alt": "Rotki loqosu", + "page-dapps-krystal-logo-alt": "Krystal loqosu", + "page-dapps-desc": "Sınamaq üçün Ethereum tətbiqini tapın.", + "page-dapps-doge-img-alt": "Kompüterdən istifadə edən itin təsviri", + "page-dapps-editors-choice-dark-forest": "Planetləri fəth etmək üçün başqalarına qarşı oynayın və qabaqcıl Ethereum miqyası/məxfilik texnologiyasını sınayın. Bəlkə Ethereum ilə artıq tanış olanlar üçün.", + "page-dapps-editors-choice-description": "Ethereum.org komandasının hazırda sevdiyi bir neçə mərkəzləşdirilməmiş tətbiq var. Aşağıdakı daha çox mərkəzləşdirilməmiş tətbiqi araşdırın.", + "page-dapps-editors-choice-foundation": "Mədəniyyətə sərmayə qoyun. Bəzi inanılmaz rəssamların, musiqiçilərin və brendlərin unikal rəqəmsal sənət əsərlərini və modasını alın, mübadilə edin və satın.", + "page-dapps-editors-choice-header": "Redaktorların seçimləri", + "page-dapps-editors-choice-pooltogether": "İtkisiz lotereya üçün bilet alın. Hər həftə bütün bilet fondundan əldə edilən faiz bir şanslı qalibə göndərilir. İstədiyiniz zaman pulunuzu geri alın.", + "page-dapps-editors-choice-uniswap": "Tokenlərinizi asanlıqla dəyişdirin. Şəbəkədəki insanlarla token ticarətinə imkan verən icma sevimlisi.", + "page-dapps-ens-logo-alt": "Ethereum Name Service loqosu", + "page-dapps-explore-dapps-description": "Bir çox dapp hələ də eksperimentaldır, mərkəzləşdirilməmiş şəbəkələrin imkanlarını sınaqdan keçirir. Ancaq texnologiya, maliyyə, oyun və kolleksiya kateqoriyalarında bəzi uğurlu erkən köçürmələr var.", + "page-dapps-explore-dapps-title": "Dapps-ı araşdırın", + "page-dapps-features-1-description": "Ethereum-a yerləşdirildikdən sonra dapp kodu silinə bilməz. Və hər kəs mərkəzləşdirilməmiş tətbiq xüsusiyyətlərindən istifadə edə bilər. Mərkəzləşdirilməmiş tətbiqin arxasında olan komanda dağılsa belə, siz hələ də ondan istifadə edə bilərsiniz. Ethereum-da bir dəfə orada qalır.", + "page-dapps-features-1-title": "Sahibləri yoxdur", + "page-dapps-features-2-description": "Heç kim sizə mərkəzləşdirilməmiş tətbiqdən istifadə etməyinizi və ya əməliyyatlar göndərməyinizi bloklaya bilməz. Məsələn, Twitter Ethereum-da olsaydı, heç kim hesabınızı bloklaya bilməz və ya tvit yazmağınıza mane ola bilməzdi.", + "page-dapps-features-2-title": "Senzuradan azad", + "page-dapps-features-3-description": "Ethereum-da ETH olduğundan, ödənişlər Ethereum-a aiddir. Tərtibatçıların üçüncü tərəf ödəniş təminatçıları ilə inteqrasiyaya vaxt sərf etmələrinə ehtiyac yoxdur.", + "page-dapps-features-3-title": "Quraşdırılmış ödənişlər", + "page-dapps-features-4-description": "Mərkəzləşdirilməmiş tətbiq kodu açıqdır və standart olaraq uyğundur. Komandalar müntəzəm olaraq digər komandaların işlərindən istifadə edərək qururlar. İstifadəçilərə mərkəzləşdirilməmiş tətbiqdə tokenləri dəyişməyə icazə vermək istəyirsinizsə, sadəcə başqa bir mərkəzləşdirilməmiş tətbiq kodunu daxil edə bilərsiniz.", + "page-dapps-features-4-title": "Qoşmaq və oynamaq", + "page-dapps-features-5-description": "Əksər mərkəzləşdirilməmiş tətbiqlərdə real dünya şəxsiyyətinizi paylaşmağa ehtiyac yoxdur. Ethereum hesabınız sizin girişinizdir və sizə sadəcə pul kisəsi lazımdır.", + "page-dapps-features-5-title": "Bir anonim giriş", + "page-dapps-features-6-description": "Kriptoqrafiya hücumçuların sizin adınıza əməliyyatlar və digər mərkəzləşdirilməmiş tətbiq qarşılıqlı əlaqələrini saxtalaşdıra bilməyəcəyini təmin edir. Ethereum hesabınızla - adətən cüzdanınız vasitəsilə - mərkəzləşdirilməmiş tətbiq hərəkətlərinə icazə verirsiniz ki, etimadnamələriniz təhlükəsiz olsun.", + "page-dapps-features-6-title": "Kriptoqrafiya ilə dəstəklənir", + "page-dapps-features-7-description": "MT Ethereum-da canlı olduqdan sonra, yalnız Ethereum-un özü aşağı düşərsə, enəcək. Ethereum ölçüsündə şəbəkələrə hücum etmək çox çətindir.", + "page-dapps-features-7-title": "Fasilə yoxdur", + "page-dapps-finance-benefits-1-description": "Ethereum-da işləyən maliyyə xidmətlərinin qeydiyyat tələbləri yoxdur. Pulunuz və internet bağlantınız varsa, getməyə hazırsınız.", + "page-dapps-finance-benefits-1-title": "Açıq giriş", + "page-dapps-finance-benefits-2-description": "Bu maliyyə məhsulları ilə qarşılıqlı əlaqə qura biləcəyiniz bütün əlamətlər dünyası var. İnsanlar hər zaman Ethereum-un üstündə yeni tokenlər qururlar.", + "page-dapps-finance-benefits-2-title": "Yeni token iqtisadiyyatı", + "page-dapps-finance-benefits-3-description": "Komandalar stabilkoinlər yaratdılar - daha az dəyişkən kriptovalyuta. Bunlar sizə risk və qeyri-müəyyənlik olmadan kriptovalyutanı sınaqdan keçirməyə və istifadə etməyə imkan verir.", + "page-dapps-finance-benefits-3-title": "Stabil koinlər", + "page-dapps-finance-benefits-4-description": "Ethereum məkanındakı maliyyə məhsulları hamısı moduldur və bir-biri ilə uyğun gəlir. Bu modulların yeni konfiqurasiyaları hər zaman bazara çıxır və kriptovalyutanızla nə edə biləcəyinizi artırır.", + "page-dapps-finance-benefits-4-title": "Bir-biri ilə əlaqəli maliyyə xidmətləri", + "page-dapps-finance-benefits-description": "Mərkəzləşdirilməmiş maliyyə tətbiqlərinin inkişaf etməsinə imkan verən Ethereum haqqında nə var?", + "page-dapps-finance-benefits-title": "mərkəzləşdirilməmiş maliyyə", + "page-dapps-finance-button": "Maliyyə", + "page-dapps-finance-description": "Bunlar kriptovalyutalardan istifadə edərək maliyyə xidmətlərinin yaradılmasına yönəlmiş proqramlardır. Onlar borc vermək, borc götürmək, faiz qazanmaq və şəxsi ödənişlər təklif edirlər - şəxsi məlumat tələb olunmur.", + "page-dapps-finance-title": "Mərkəzləşdirilməmiş maliyyə", + "page-dapps-foundation-logo-alt": "Foundation loqosu", + "page-dapps-gaming-benefits-1-description": "İstər virtual torpaq, istərsə də ticarət kartları olsun, elementləriniz kolleksiya bazarlarında satıla bilər. Oyundaxili elmentləriniz real dünya dəyərinə malikdir.", + "page-dapps-gaming-benefits-1-title": "Oyun elementləri tokenlərin iki qatıdır", + "page-dapps-gaming-benefits-2-description": "Siz əşyalarınıza və bəzi hallarda oyun şirkətlərinə deyil, irəliləyişinizə sahibsiniz. Beləliklə, oyunun arxasında olan şirkət hücuma məruz qaldıqda, server nasazlığı ilə qarşılaşarsa və ya dağılırsa, heç nə itirməyəcəksiniz.", + "page-dapps-gaming-benefits-2-title": "Topladıqlarınız təhlükəsizdir", + "page-dapps-gaming-benefits-3-description": "Eyni şəkildə Ethereum ödənişlərini hər kəs yoxlamaq üçün əlçatandır, oyunlar ədalətliliyi təmin etmək üçün bu keyfiyyətdən istifadə edə bilər. Nəzəri olaraq, kritik vuruşların sayından rəqibin döyüş qabiliyyətinə qədər hər şey yoxlanıla bilər.", + "page-dapps-gaming-benefits-3-title": "Sübut edilə bilən ədalət", + "page-dapps-gaming-benefits-description": "Mərkəzləşdirilməmiş oyunun inkişaf etməsinə imkan verən Ethereum haqqında nə var?", + "page-dapps-gaming-benefits-title": "mərkəzləşdirilməmiş oyun", + "page-dapps-gaming-button": "Oyun", + "page-dapps-gaming-description": "Bunlar virtual dünyaların yaradılmasına və real dünya dəyəri olan kolleksiyalardan istifadə edərək digər oyunçularla mübarizəyə yönəlmiş proqramlardır.", + "page-dapps-gaming-title": "Mərkəzləşdirilməmiş oyun", + "page-dapps-get-some-eth-description": "MT hərəkətləri əməliyyat haqqına başa gəlir", + "page-dapps-get-started-subtitle": "MT-ni sınamaq üçün sizə pulqabı və bir az ETH lazımdır. Pulqabı sizə qoşulmağa və ya daxil olmağa imkan verəcək. İstənilən əməliyyat haqqını ödəmək üçün sizə ETH lazımdır.", + "page-dapps-get-started-title": "Başla", + "page-dapps-gitcoin-grants-logo-alt": "Gitcoin Grants loqosu", + "page-dapps-gitcoin-logo-alt": "Gitcoin loqosu", + "page-dapps-gods-unchained-logo-alt": "Gods Unchained loqosu", + "page-dapps-golem-logo-alt": "Golem loqosu", + "page-dapps-radicle-logo-alt": "Radicle loqosu", + "page-dapps-hero-header": "Ethereum tərəfindən dəstəklənən alətlər və xidmətlər", + "page-dapps-hero-subtitle": "MT biznes modellərini pozmaq və ya yenilərini icad etmək üçün Ethereum-dan istifadə edən tətbiqlərin artan hərəkətidir.", + "page-dapps-how-dapps-work-p1": "MT mərkəzləşdirilmiş serverdə deyil, mərkəzləşdirilməmiş şəbəkədə işləyən backend koduna (ağıllı müqavilələrə) malikdir. Onlar məlumatların saxlanması üçün Ethereum blokçeynindən və tətbiq məntiqi üçün ağıllı müqavilələrdən istifadə edirlər.", + "page-dapps-how-dapps-work-p2": "Ağıllı müqavilə hamının görməsi və tam olaraq bu qaydalara uyğun işləməsi üçün zəncir üzərində yaşayan qaydalar toplusuna bənzəyir. Bir avtomat təsəvvür edin: onu kifayət qədər vəsait və düzgün seçimlə təmin etsəniz, istədiyiniz əşyanı alacaqsınız. Avtomatlar kimi, ağıllı müqavilələr də Ethereum hesabınız kimi vəsait saxlaya bilər. Bu, koda razılaşma və əməliyyatlarda vasitəçilik etməyə imkan verir.", + "page-dapps-how-dapps-work-p3": "MT Ethereum şəbəkəsində yerləşdirildikdən sonra onları dəyişdirə bilməzsiniz. MT mərkəzləşdirilə bilər, çünki onlar fərdi və ya şirkət tərəfindən deyil, müqavilədə yazılmış məntiqlə idarə olunur.", + "page-dapps-how-dapps-work-title": "MT necə işləyir", + "page-dapps-learn-callout-button": "Quraşdır", + "page-dapps-learn-callout-description": "İcma tərtibatçı portalımızda proqram yaratmağa başlamağınıza kömək edəcək sənədlər, alətlər və çərçivələr var.", + "page-dapps-learn-callout-image-alt": "Leqo kərpicdən ETH simvolu quran əlin təsviri.", + "page-dapps-learn-callout-title": "MT qurmağı öyrənin", + "page-dapps-loopring-logo-alt": "Loopring loqosu", + "page-dapps-magic-behind-dapps-description": "MT adi proqramlar kimi görünə bilər. Ancaq pərdə arxasında bəzi xüsusi keyfiyyətlərə malikdirlər, çünki Ethereum-un bütün super güclərini miras alırlar. MT-ləri tətbiqlərdən fərqləndirən budur.", + "page-dapps-magic-behind-dapps-link": "Ethereum-u möhtəşəm edən nədir?", + "page-dapps-magic-behind-dapps-title": "MT-nin arxasındakı sehr", + "page-dapps-magic-title-1": "Sehr", + "page-dapps-magic-title-2": "arxasında", + "page-dapps-magician-img-alt": "Sehrbazların illüstrasiyaları", + "page-dapps-marble-cards-logo-alt": "marble.cards loqosu", + "page-dapps-async-logo-alt": "Async loqosu", + "page-dapps-matcha-logo-alt": "Matcha loqosu", + "page-dapps-mobile-options-header": "Başqa kateqoriyaya baxın", + "page-dapps-nifty-gateway-logo-alt": "Nifty Gateway loqosu", + "page-dapps-oasis-logo-alt": "Oasis loqosu", + "page-dapps-opensea-logo-alt": "OpenSea loqosu", + "page-dapps-opera-logo-alt": "Opera loqosu", + "page-dapps-polymarket-logo-alt": "Polymarket loqosu", + "page-dapps-poap-logo-alt": "Proof of Attendance Protocol loqosu", + "page-dapps-pooltogether-logo-alt": "PoolTogether loqosu", + "page-dapps-rarible-logo-alt": "Rarible loqosu", + "page-dapps-ready-button": "Keç", + "page-dapps-ready-description": "Sınamaq üçün bir MT seçin", + "page-dapps-ready-title": "Hazırsan?", + "page-dapps-sablier-logo-alt": "Sablier loqosu", + "page-dapps-set-up-a-wallet-button": "Pulqabı tap", + "page-dapps-set-up-a-wallet-description": "Pulqabı MT üçün \"girişiniz\"dir", + "page-dapps-set-up-a-wallet-title": "Pulqabı qurun", + "page-dapps-superrare-logo-alt": "SuperRare loqosu", + "page-dapps-technology-button": "Texnologiya", + "page-dapps-technology-description": "Bunlar tərtibatçı alətlərinin mərkəzsizləşdirilməsinə, kripto-iqtisadi sistemlərin mövcud texnologiyaya daxil edilməsinə və açıq mənbəli inkişaf işləri üçün bazarların yaradılmasına yönəlmiş tətbiqlərdir.", + "page-dapps-technology-title": "Mərkəzləşdirilməmiş texnologiya", + "page-dapps-token-sets-logo-alt": "Token Sets loqosu", + "page-dapps-tornado-cash-logo-alt": "Tornado cash loqosu", + "page-dapps-uniswap-logo-alt": "Uniswap loqosu", + "page-dapps-wallet-callout-button": "Pulqabı tap", + "page-dapps-wallet-callout-description": "Pulqabılar da mərkəzləşdirilməmiş tətbiqlərdir. Sizə uyğun olan xüsusiyyətlərə əsasən birini tapın.", + "page-dapps-wallet-callout-image-alt": "Robotun təsviri.", + "page-dapps-wallet-callout-title": "Pulqabılara baxın", + "page-dapps-warning-header": "Həmişə öz araşdırmanızı edin", + "page-dapps-warning-message": "Ethereum yeni texnologiyadır və tətbiqlərin əksəriyyəti yenidir. Hər hansı böyük miqdarda pul yatırmazdan əvvəl riskləri anladığınızdan əmin olun.", + "page-dapps-what-are-dapps": "MT nədir?", + "page-dapps-more-on-defi-button": "Mərkəzləşdirilməmiş maliyyə haqqında daha çox", + "page-dapps-more-on-nft-button": "Tokenləşdirilmiş kolleksiyalar haqqında daha çox", + "page-dapps-more-on-nft-gaming-button": "Tokenləşdirilmiş oyundaxili elementlər haqqında ətraflı", + "page-dapps-dapp-description-pwn": "Ethereum-da hər hansı bir token və ya NFT ilə dəstəklənən asan kreditlər.", + "page-dapps-pwn-image-alt": "PWN loqosu", "foundation": "Fond", "transaction-fees": "Köçürmə üzrə xidmət haqları nə qədərdir?", "page-wallets-get-some": "Bir az ETH alın" diff --git a/src/intl/az/page-stablecoins.json b/src/intl/az/page-stablecoins.json index e17bbbc5ac9..d0f16a64a50 100644 --- a/src/intl/az/page-stablecoins.json +++ b/src/intl/az/page-stablecoins.json @@ -1,4 +1,151 @@ { + "page-stablecoins-accordion-borrow-crypto-collateral": "Kripto girov", + "page-stablecoins-accordion-borrow-crypto-collateral-copy": "Ethereum ilə ETH-nizi satmadan birbaşa digər istifadəçilərdən borc ala bilərsiniz. Bu sizə nüfuz qazandıra bilər – bəziləri bunu daha çox ETH toplamaq üçün edir.", + "page-stablecoins-accordion-borrow-crypto-collateral-copy-p2": "Lakin ETH-nin qiyməti dəyişkən olduğundan, həddindən artıq girov qoymalısınız. Bu o deməkdir ki, 100 stabilkoin borc almaq istəyirsinizsə, yəqin ki, ən azı 150 dollar dəyərində ETH-yə ehtiyacınız olacaq. Bu, sistemi və kreditorları qoruyur.", + "page-stablecoins-accordion-borrow-crypto-collateral-link": "Kripto ilə dəstəklənən stabilkoinlər haqqında ətraflı məlumat", + "page-stablecoins-accordion-borrow-pill": "Advanced", + "page-stablecoins-accordion-borrow-places-intro": "Bu mərkəzləşdirilməmiş tətbiqlər girov kimi kriptovalyutadan istifadə edərək stabilkoinlər götürməyə imkan verir. Bəziləri ETH kimi digər tokenləri də qəbul edir.", + "page-stablecoins-accordion-borrow-places-title": "Stabilkoinləri borc götürmək üçün yerlər", + "page-stablecoins-accordion-borrow-requirement-1": "Ethereum pulqabısı", + "page-stablecoins-accordion-borrow-requirement-1-description": "MT-dən istifadə etmək üçün sizə pulqabı lazımdır", + "page-stablecoins-accordion-borrow-requirement-2": "Ether (ETH)", + "page-stablecoins-accordion-borrow-requirement-2-description": "Girov və/və ya əməliyyat haqları üçün sizə ETH lazımdır", + "page-stablecoins-accordion-borrow-requirements-description": "Stabilkoinləri borc almaq üçün düzgün mərkəzləşdirilməmiş tətbiqlərdən istifadə etməlisiniz. Sizə həmçinin pulqabı və ETH lazımdır.", + "page-stablecoins-accordion-borrow-risks-copy": "ETH-ni girov kimi istifadə etsəniz və onun dəyəri aşağı düşərsə, girovunuz yaratdığınız stabilkoinləri əhatə etməyəcək. Bu, ETH-nin ləğv edilməsinə səbəb olacaq və siz cəza ilə üzləşə bilərsiniz. Ona görə də, stabilkoinlər götürsəniz, ETH qiymətini izləməlisiniz.", + "page-stablecoins-accordion-borrow-risks-link": "Ən son ETH qiyməti", + "page-stablecoins-accordion-borrow-risks-title": "Risklər", + "page-stablecoins-accordion-borrow-text-preview": "Siz geri ödəməli olduğunuz kriptovalyutanı girov olaraq istifadə edərək bəzi stabilkoinlər götürə bilərsiniz.", + "page-stablecoins-accordion-borrow-title": "Borc almaq", + "page-stablecoins-accordion-buy-exchanges-title": "Populyar valyuta", + "page-stablecoins-accordion-buy-requirement-1": "Kriptovalyutalar və pulqabılar", + "page-stablecoins-accordion-buy-requirement-1-description": "Yaşadığınız yerdə istifadə edə biləcəyiniz xidmətləri yoxlayın", + "page-stablecoins-accordion-buy-requirements-description": "Birbaşa kripto ala biləcəyiniz valyuta və ya pulqabı olan hesab. ETH əldə etmək üçün artıq birindən istifadə etmisiniz. Yaşadığınız yerdə hansı xidmətlərdən istifadə edə biləcəyinizi yoxlayın.", + "page-stablecoins-accordion-buy-text-preview": "Bir çox valyuta və pulqabı birbaşa stabilkoinlər almağa imkan verir. Coğrafi məhdudiyyətlər tətbiq olunacaq.", + "page-stablecoins-accordion-buy-title": "Almaq", + "page-stablecoins-accordion-buy-warning": "Mərkəzləşdirilmiş birjalar yalnız USDC, Tether və digərləri kimi qanunla dəstəklənən stabilkoinləri siyahıya sala bilər. Onları birbaşa ala bilməyəcəksiniz, lakin ETH və ya platformada ala biləcəyiniz digər kriptovalyutalardan mübadilə edə bilməlisiniz.", + "page-stablecoins-accordion-earn-project-1-description": "Əsasən açıq mənbəli proqram təminatı hərəkatı üçün texniki iş.", + "page-stablecoins-accordion-earn-project-2-description": "MakerDao icması (sizə Dai gətirən komanda) üçün texnologiya, məzmun və digər işlər.", + "page-stablecoins-accordion-earn-project-3-description": "Həqiqətən səhvləri necə tapacağınızı bildiyiniz zaman Dai qazana bilərsiniz.", + "page-stablecoins-accordion-earn-project-bounties": "Gitcoin mükafatları", + "page-stablecoins-accordion-earn-project-bug-bounties": "Konsensus qatının səhv mükafatları", + "page-stablecoins-accordion-earn-project-community": "MakerDao icması", + "page-stablecoins-accordion-earn-projects-copy": "Bunlar işiniz üçün sizə stabilkoinlərlə ödəniş edəcək platformalardır.", + "page-stablecoins-accordion-earn-projects-title": "Stabilkoinləri haradan qazanmaq olar", + "page-stablecoins-accordion-earn-requirement-1": "Ethereum pulqabısı", + "page-stablecoins-accordion-earn-requirement-1-description": "Qazandığınız stabilkoinləri almaq üçün sizə pulqabı lazımdır", + "page-stablecoins-accordion-earn-requirements-description": "Dəyəri sabit olduğuna görə stabilkoinlər iş və xidmətlər üçün əla ödəniş üsuludur. Ancaq ödəniş etmək üçün pulqabı lazımdır.", + "page-stablecoins-accordion-earn-text-preview": "Ethereum ekosistemi daxilində layihələr üzərində işləyərək stabilkoinlər qazana bilərsiniz.", + "page-stablecoins-accordion-earn-title": "Qazanmaq", + "page-stablecoins-accordion-less": "Daha az", + "page-stablecoins-accordion-more": "Daha çox", + "page-stablecoins-accordion-requirements": "Nə lazım olacaq", + "page-stablecoins-accordion-swap-dapp-intro": "Əgər sizdə artıq ETH və pulqabı varsa, stabilkoinlərlə dəyişmək üçün bu mərkəzləşdirilməmiş tətbiqlərdən istifadə edə bilərsiniz.", + "page-stablecoins-accordion-swap-dapp-link": "Mərkəzləşdirilməmiş birjalar haqqında ətraflı məlumat", + "page-stablecoins-accordion-swap-dapp-title": "Tokenl dəyişmək üçün mərkəzləşdirilməmiş tətbiqlər", + "page-stablecoins-accordion-swap-editors-tip": "Redaktorların məsləhəti", + "page-stablecoins-accordion-swap-editors-tip-button": "Pulqabı tap", + "page-stablecoins-accordion-swap-editors-tip-copy": "Özünüzə ETH almağa və onu birbaşa stabilkoinlər də daxil olmaqla tokenlərə dəyişdirməyə imkan verən pulqabı əldə edin.", + "page-stablecoins-accordion-swap-pill": "Tövsiyyə edilən", + "page-stablecoins-accordion-swap-requirement-1": "Ethereum pulqabısı", + "page-stablecoins-accordion-swap-requirement-1-description": "Mübadilə etməyə icazə vermək və tokenlərinizi saxlamaq üçün sizə pulqabı lazımdır", + "page-stablecoins-accordion-swap-requirement-2": "Ether (ETH)", + "page-stablecoins-accordion-swap-requirement-2-description": "Mübadilə üçün ödəniş etmək", + "page-stablecoins-accordion-swap-text-preview": "Əksər stabilkoinləri mərkəzləşdirilməmiş birjalarda ala bilərsiniz. Beləliklə, əldə edə biləcəyiniz hər hansı bir tokeni istədiyiniz stabilkoin ilə dəyişə bilərsiniz.", + "page-stablecoins-accordion-swap-title": "Mübadilə", + "page-stablecoins-algorithmic": "Alqoritmik", + "page-stablecoins-algorithmic-con-1": "Siz alqoritmə etibar etməlisiniz (yaxud oxuya bilməlisiniz).", + "page-stablecoins-algorithmic-con-2": "Token balansınız ümumi tədarük əsasında dəyişəcək.", + "page-stablecoins-algorithmic-description": "Bu stabilkoinlər heç bir başqa aktiv tərəfindən dəstəklənmir. Əvəzində alqoritm qiymət istənilən dəyərdən aşağı düşərsə, tokenləri satacaq və dəyər istənilən məbləği keçərsə, tokenləri tədarük edəcək. Dövriyyədə olan bu tokenlərin sayı müntəzəm olaraq dəyişdiyinə görə, sahib olduğunuz tokenlərin sayı dəyişəcək, lakin həmişə sizin payınızı əks etdirəcək.", + "page-stablecoins-algorithmic-pro-1": "Girov tələb olunmur.", + "page-stablecoins-algorithmic-pro-2": "İctimai alqoritmlə idarə olunur.", + "page-stablecoins-bank-apy": "0,05%", + "page-stablecoins-bank-apy-source": "Banklar tərəfindən ABŞ-ın Federal sığortalı əsas əmanət hesabları üzrə ödənilən orta dərəcə.", + "page-stablecoins-bank-apy-source-link": "Mənbə", + "page-stablecoins-bitcoin-pizza": "Məşhur Bitcoin pizzası", + "page-stablecoins-bitcoin-pizza-body": "2010-cu ildə kimsə 10 000 bitkoinə 2 pizza alıb. O zaman bunlar ~41 ABŞ dolları dəyərində idi. İndiki bazarda bu milyonlarla dollardır. Ethereum tarixində bir çox oxşar təəssüf doğuran əməliyyatlar var. Stabilkoinlər bu problemi həll edir, beləliklə siz pizzanızdan həzz ala və ETH-ni saxlaya biləsiniz.", + "page-stablecoins-coin-price-change": "Token qiymət dəyişikliyi (son 30 gün)", + "page-stablecoins-crypto-backed": "Kripto ilə dəstəklənən", + "page-stablecoins-crypto-backed-con-1": "Fiat dəstəkli stabilkoinlərdən daha az stabildir.", + "page-stablecoins-crypto-backed-con-2": "Kripto girovun dəyərinə diqqət yetirməlisiniz.", + "page-stablecoins-crypto-backed-description": "Bu stabilkoinlər ETH kimi digər kriptovalyutalar tərəfindən dəstəklənir. Onların qiyməti dəyişkən ola bilən əsas aktivin (və ya girovun) dəyərindən asılıdır. ETH-nin dəyəri dəyişə bildiyindən, qiymətin mümkün qədər sabit qalmasını təmin etmək üçün bu stabilkoinlər həddindən artıq təmin edilir. Bu o deməkdir ki, 1 dollarlıq kriptovalyuta ilə dəstəklənən stabilkoinin ən azı 2 dollar dəyərində əsas kriptovalyutası olduğunu söyləmək daha yaxındır. Beləliklə, ETH-nin qiyməti düşərsə, stabilkoini dəstəkləmək üçün daha çox ETH istifadə edilməlidir, əks halda stabilkoinlər öz dəyərini itirəcək.", + "page-stablecoins-crypto-backed-pro-1": "Şəffaf və tam mərkəzləşdirilməmiş.", + "page-stablecoins-crypto-backed-pro-2": "Digər kripto aktivlərə tez çevrilir.", + "page-stablecoins-crypto-backed-pro-3": "Xarici qəyyumlar yoxdur – bütün aktivlər Ethereum hesabları tərəfindən idarə olunur.", + "page-stablecoins-dai-banner-body": "Dai, ehtimal ki, ən məşhur mərkəzləşdirilməmiş stabilkoindir. Onun dəyəri təqribən bir dollardır və bütün mərkəzləşdirilməmiş tətbiqlər tərəfindən qəbul edilir.", + "page-stablecoins-dai-banner-learn-button": "Dai haqqında məlumat əldə edin", + "page-stablecoins-dai-banner-swap-button": "ETH-ni Dai ilə dəyişdirin", + "page-stablecoins-dai-banner-title": "Dai", + "page-stablecoins-dai-logo": "Dai loqosu", + "page-stablecoins-editors-choice": "Redaktorların seçimləri", + "page-stablecoins-editors-choice-intro": "Bunlar yəqin ki, hazırda stabilkoinlərin ən məşhur nümunələri və MT istifadə edərkən faydalı olduğunu düşündüyümüz tokenlərdir.", + "page-stablecoins-explore-dapps": "MT-ni araşdırın", + "page-stablecoins-fiat-backed": "Fiat ilə dəstəklənən", + "page-stablecoins-fiat-backed-con-1": "Mərkəzləşdirilmiş – tokenləri kimsə idarə edir.", + "page-stablecoins-fiat-backed-con-2": "Şirkətin kifayət qədər ehtiyata malik olmasını təmin etmək üçün audit tələb olunur.", + "page-stablecoins-fiat-backed-description": "Əsasən ənənəvi fiat valyutası (adətən dollar) üçün bir IOU (sizə borcluyam). Siz sonradan nağdlaşdıra və orijinal valyutanız üçün geri ala biləcəyiniz stabilkoin almaq üçün fiat valyutanızdan istifadə edirsiniz.", + "page-stablecoins-fiat-backed-pro-1": "Kripto dəyişkənliyinə qarşı təhlükəsizdir.", + "page-stablecoins-fiat-backed-pro-2": "Qiymətdə dəyişikliklər minimaldır.", + "page-stablecoins-find-stablecoin": "Stabilkoin tapın", + "page-stablecoins-find-stablecoin-how-to-get-them": "Stabilkoinləri necə əldə etmək olar", + "page-stablecoins-find-stablecoin-intro": "Yüzlərlə stabilkoin mövcuddur. Başlamağınıza kömək edəcək bəzi şeylər bunlardır. Ethereum-da yenisinizsə, əvvəlcə bir az araşdırma etməyi məsləhət görürük.", + "page-stablecoins-find-stablecoin-types-link": "Müxtəlif stabilkoin növləri", + "page-stablecoins-get-stablecoins": "Stabilkoinləri necə əldə etmək olar", + "page-stablecoins-hero-alt": "Bazar dəyərinə görə üç ən böyük stabilkoin: Dai, USDC və Tether.", + "page-stablecoins-hero-button": "Stabilkoinlər əldə et", + "page-stablecoins-hero-header": "Gündəlik istifadə üçün rəqəmsal pul", + "page-stablecoins-hero-subtitle": "Stabilkoinlər, hətta ETH qiyməti dəyişdikdə belə sabit bir dəyərdə qalmaq üçün nəzərdə tutulmuş Ethereum tokenləridir.", + "page-stablecoins-interest-earning-dapps": "Faiz qazandıran MT", + "page-stablecoins-meta-description": "Ethereum stabilkoinləri ilə tanışlıq: onlar nədir, onları necə əldə etmək olar və nə üçün vacibdirlər.", + "page-stablecoins-precious-metals": "Qiymətli metallar", + "page-stablecoins-precious-metals-con-1": "Mərkəzləşdirilmiş – tokenləri kimsə idarə edir.", + "page-stablecoins-precious-metals-con-2": "Token emitentinə və qiymətli metal ehtiyatlarına etibar etməlisiniz.", + "page-stablecoins-precious-metals-description": "Fiat dəstəkli tokenlər kimi, əvəzinə bu stabilkoinlər öz dəyərini qorumaq üçün qızıl kimi resurslardan istifadə edirlər.", + "page-stablecoins-precious-metals-pro-1": "Kripto dəyişkənliyinə qarşı təhlükəsizdir.", + "page-stablecoins-prices": "Stabilkoin qiymətləri", + "page-stablecoins-prices-definition": "Stabilkoinlər dəyişkənliyi olmayan kriptovalyutalardır. Onlar ETH ilə eyni gücləri paylaşırlar, lakin onların dəyəri sabitdir, daha çox ənənəvi valyutaya bənzəyir. Beləliklə, Ethereum-da istifadə edə biləcəyiniz sabit pula çıxışınız var. ", + "page-stablecoins-prices-definition-how": "Stabilkoinlər sabitliyini necə əldə edir", + "page-stablecoins-research-warning": "Ethereum yeni texnologiyadır və tətbiqlərin əksəriyyəti yenidir. Riskdən xəbərdar olduğunuzdan əmin olun və yalnız itirə biləcəyinizi əmanət edin.", + "page-stablecoins-research-warning-title": "Həmişə öz araşdırmanızı edin", + "page-stablecoins-save-stablecoins": "Stabilkoinlərlə qənaət edin", + "page-stablecoins-save-stablecoins-body": "Stabilkoinlər, adətən, ortalamadan yuxarı depozit faiz dərəcəsinə malikdirlər, çünki onları borc almaq üçün çoxlu tələb var. Stabilkoinləri kredit tətbiqlərində yerləşdirməklə real vaxt rejimində faiz qazanmağa imkan verən dapp-lar var. Bank dünyasında olduğu kimi, siz borcalanlar üçün tokenlər təqdim edirsiniz, lakin istədiyiniz zaman tokenlərinizi və faizlərinizi geri ala bilərsiniz.", + "page-stablecoins-saving": "Stabilkoin əmanətlərinizi yaxşı istifadə edin və bir qədər faiz qazanın. Kriptovalyutada hər şey kimi, proqnozlaşdırılan İllik Faiz Gəlirləri (APY) real vaxt rejimində tələb/təklifdən asılı olaraq gündəlik dəyişə bilər.", + "page-stablecoins-stablecoins-dapp-callout-description": "Ethereum-un mərkəzləşdirilməmiş tətbiqlərinə baxın – stabilkoinlər, adətən, gündəlik əməliyyatlar üçün daha faydalıdır.", + "page-stablecoins-stablecoins-dapp-callout-image-alt": "Doge təsviri.", + "page-stablecoins-stablecoins-dapp-callout-title": "Stabilkoinlərinizi istifadə etmək", + "page-stablecoins-stablecoins-dapp-description-1": "Dai, USDC, TUSD, USDT və s. daxil olmaqla bir çox stabilkoin üçün bazarlar.", + "page-stablecoins-stablecoins-dapp-description-2": "Stabilkoinlər verin və faiz və Compound-un öz tokeni olan $COMP qazanın.", + "page-stablecoins-stablecoins-dapp-description-3": "Dai və USDC-də faiz qazana biləcəyiniz ticarət platforması.", + "page-stablecoins-stablecoins-dapp-description-4": "Dai-yə qənaət etmək üçün nəzərdə tutulmuş proqram.", + "page-stablecoins-stablecoins-feature-1": "Stabilkoinlər qlobaldır və internet vasitəsilə göndərilə bilər. Ethereum hesabınız olduqdan sonra onları qəbul etmək və ya göndərmək asandır.", + "page-stablecoins-stablecoins-feature-2": "Stabilkoinlərə tələbat yüksəkdir, ona görə də öz borcunuzu vermək üçün faiz qazana bilərsiniz. Kredit verməzdən əvvəl risklərdən xəbərdar olduğunuzdan əmin olun.", + "page-stablecoins-stablecoins-feature-3": "Stabilkoinlər ETH və digər Ethereum tokenləri ilə dəyişdirilə bilər. Bir çox mərkəzləşdirilməmiş tətbiqlər stabilkoinlərə güvənir.", + "page-stablecoins-stablecoins-feature-4": "Stabilkoinlər kriptoqrafiya ilə qorunur. Heç kim sizin adınıza saxta əməliyyatlar edə bilməz.", + "page-stablecoins-stablecoins-meta-description": "Ethereum stabilkoinləri ilə tanışlıq: onlar nədir, onları necə əldə etmək olar və nə üçün vacibdirlər.", + "page-stablecoins-stablecoins-table-header-column-1": "Valyuta", + "page-stablecoins-stablecoins-table-header-column-2": "Bazar kapitallaşması", + "page-stablecoins-stablecoins-table-header-column-3": "Girov növü", + "page-stablecoins-stablecoins-table-type-crypto-backed": "Kripto", + "page-stablecoins-stablecoins-table-type-fiat-backed": "Fiat", + "page-stablecoins-stablecoins-table-type-precious-metals-backed": "Qiymətli metallar", + "page-stablecoins-table-error": "Stabilkoinləri yükləmək mümkün olmadı. Səhifəni yeniləməyə çalışın.", + "page-stablecoins-table-loading": "Stabilkoin datası yüklənir...", + "page-stablecoins-title": "Stabilkoinlər", + "page-stablecoins-top-coins": "Bazar kapitallaşmasına görə ən yaxşı stabilkoinlər", + "page-stablecoins-top-coins-intro": "Bazar kapitallaşması:", + "page-stablecoins-top-coins-intro-code": "mövcud tokenlərin ümumi sayı tokenə düşən dəyərə vurulur. Bu siyahı dinamikdir və burada sadalanan layihələr mütləq ethereum.org komandası tərəfindən təsdiqlənmir.", + "page-stablecoins-types-of-stablecoin": "Necə işləyirlər: stabilkoin növləri", + "page-stablecoins-usdc-banner-body": "USDC, ehtimal ki, ən məşhur fiat dəstəkli stabilkoindir. Onun dəyəri təxminən bir dollardır və Circle və Coinbase tərəfindən dəstəklənir.", + "page-stablecoins-usdc-banner-learn-button": "USDC haqqında məlumat əldə edin", + "page-stablecoins-usdc-banner-swap-button": "ETH-ni USDC ilə dəyişdirin", + "page-stablecoins-usdc-banner-title": "USDC", + "page-stablecoins-usdc-logo": "USDC loqosu", + "page-stablecoins-why-stablecoins": "Niyə stabilkoinlər?", + "page-stablecoins-how-they-work-button": "Necə işləyirlər", + "page-stablecoins-why-stablecoins-body": "ETH Bitcoin kimi yeni texnologiya olduğu üçün dəyişkən bir qiymətə malikdir. Buna görə də müntəzəm olaraq xərcləmək istəməyə bilərsiniz. Stabilkoinlər, Ethereum-da istifadə edə biləcəyiniz sabit pula çıxış imkanı vermək üçün ənənəvi valyutaların dəyərini əks etdirir.", + "page-stablecoins-more-defi-button": "Mərkəzləşdirilməmiş maliyyə (DeFi) haqqında daha çox məlumat", + "page-stablecoins-tools-title": "Stabilkoinlər haqqında daha çox məlumat əldə edin", + "page-stablecoins-tools-stablecoinswtf-description": "Stablecoins.wtf ən görkəmli stabilkoinlər üçün tarixi bazar məlumatları, statistika və təhsil məzmunu ilə tablosunu təklif edir.", + "page-dapps-ready-button": "Keç", "pros": "Müsbət cəhətləri", "cons": "Mənfi cəhətləri", "1inch-logo": "1inch loqosu", @@ -7,13 +154,13 @@ "bittrex-logo": "Bittrex loqosu", "coinbase-logo": "Coinbase loqosu", "coinmama-logo": "Coinmama loqosu", - "compound-logo": "Mürəkkəb loqo", + "compound-logo": "Compound loqosu", "example-projects": "Nümunə layihələr", "gemini-logo": "Gemini loqosu", "gitcoin-logo": "Gitcoin loqosu", - "loopring-logo": "Loopring logosu", + "loopring-logo": "Loopring loqosu", "makerdao-logo": "MakerDao loqosu", "matcha-logo": "Matcha loqosu", - "oasis-logo": "Oazis loqosu", + "oasis-logo": "Oasis loqosu", "uniswap-logo": "Uniswap loqosu" } diff --git a/src/intl/az/template-usecase.json b/src/intl/az/template-usecase.json new file mode 100644 index 00000000000..4c12ee2cbeb --- /dev/null +++ b/src/intl/az/template-usecase.json @@ -0,0 +1,11 @@ +{ + "template-usecase-dropdown-defi": "Mərkəzləşdirilməmiş maliyyə (DeFi)", + "template-usecase-dropdown-nft": "Bir-birini əvəz edə bilməyən nişanlar (NFTs)", + "template-usecase-dropdown-dao": "Mərkəzləşdirilməmiş muxtar təşkilatlar (DAO)", + "template-usecase-dropdown-social-networks": "Mərkəzləşdirilməmiş sosial şəbəkələr", + "template-usecase-dropdown-identity": "Mərkəzləşdirilməmiş şəxsiyyət", + "template-usecase-dropdown": "Ethereum-dan istifadə halları", + "template-usecase-banner": "Ethereum-un istifadəsi daim inkişaf və təkamül edir. Hər şeyi daha aydın və ya daha aktual edəcək hər hansı məlumatı əlavə edin.", + "template-usecase-edit-link": "Səhifəni redaktə et", + "template-usecase-dropdown-aria": "Açılan iş menyusundan istifadə edin" +} From ceb952127cfd48886bf5c258c48f331ea9295f54 Mon Sep 17 00:00:00 2001 From: Joshua <62268199+minimalsm@users.noreply.github.com> Date: Tue, 27 Jun 2023 14:46:12 +0100 Subject: [PATCH 162/186] Update Chinese Traditional (zh-tw) Use cases bucket --- .../zh-tw/decentralized-identity/index.md | 15 +- src/content/translations/zh-tw/defi/index.md | 18 +-- src/content/translations/zh-tw/desci/index.md | 138 ++++++++++++++++++ .../zh-tw/social-networks/index.md | 9 +- 4 files changed, 161 insertions(+), 19 deletions(-) create mode 100644 src/content/translations/zh-tw/desci/index.md diff --git a/src/content/translations/zh-tw/decentralized-identity/index.md b/src/content/translations/zh-tw/decentralized-identity/index.md index 14b036a2625..65f5f376872 100644 --- a/src/content/translations/zh-tw/decentralized-identity/index.md +++ b/src/content/translations/zh-tw/decentralized-identity/index.md @@ -13,11 +13,11 @@ summaryPoint3: 多虧了加密技術,使用者現在擁有了再次發行、 現如今,身分幾乎支撐著我們生活的方方面面。 使用線上服務、開設銀行賬戶、選舉投票、購買房產、就業,所有這些事情都需要證明你的身分。 -然而,傳統的身分管理系統長期以來一直依賴於中心化中間機構來發行、持有和控制你的身分識別和[身分證明](#what-are-attestations)。 這意味著你無法掌控自己身分的相關資訊,也無法決定誰能夠存取你的個人身分資訊 (PII),以及各方擁有多大的訪問權限。 +然而,傳統的身分管理系統長期以來一直依賴於中心化中間機構來發行、持有和控制你的身分識別和 [身分證明](#what-are-attestations)。 這意味著你無法掌控自己身分的相關資訊,也無法決定誰能夠存取你的個人身分資訊 (PII),以及各方擁有多大的訪問權限。 -為了解決這些問題,我們在以太坊等公共區塊鏈上構建了去中心化身分系統。 去中心化身分允許每個人管理他們的身分相關資訊。 借助去中心化身分解決方案,*您*可以建立身分識別、聲明和持有你的身分證明,而無需依賴于中央機構,例如服務提供方或是政府。 +為了解決這些問題,我們在以太坊等公共區塊鏈上構建了去中心化身分系統。 去中心化身分允許每個人管理他們的身分相關資訊。 借助去中心化身分解決方案,*你*可以建立身分識別、聲明和持有你的身分證明,而無需依賴于中央機構,例如服務提供方或是政府。 -## 什麼是身分 {#what-is-identity} +## 什麼是身分認同? {#what-is-identity} 身分意味著個人的自我意識,由獨特的特徵定義。 身分是指作為一個*個體*,即一個獨特的人類實體。 身分也可以是指其他非人類的實體,例如組織或機構。 @@ -31,11 +31,11 @@ summaryPoint3: 多虧了加密技術,使用者現在擁有了再次發行、 - 出生日期和出生地點 - 數位身分憑證,例如:電子郵件地址、使用者名稱、頭像 -這些傳統的身分識別範例,均由中央實體發行、持有和控制。 你需要獲得政府的許可才能更改您的姓名,或者需要獲得社交媒體平台的許可才能更改你的名稱。 +這些傳統的身分識別範例,均由中央實體發行、持有和控制。 你需要獲得政府的許可才能更改你的姓名,或者需要獲得社交媒體平台的許可才能更改你的名稱。 ## 什麼是身分證明 {#what-are-attestations} -身分證明是由一個實體提出的關於另一個實體的聲明。 如果你居住在美國,你的駕駛執照是由機動車輛管理局(一個實體)所發布,它證明你(另一個實體)在法律上允許駕駛汽車。 +身分證明是由一個實體提出的關於另一個實體的聲明。 如果你居住在美國,你的駕駛執照是由機動車輛管理局(一個實體)發布,它證明你(另一個實體)在法律上允許駕駛汽車。 身分證明與身分識別不同。 身分證明*包含*用於指向特定身分的身分識別,並聲明與此身分相關的屬性。 因此,你的駕駛執照具有身分識別(姓名、出生日期、地址),但也是關於你合法駕駛權利的證明。 @@ -157,9 +157,10 @@ summaryPoint3: 多虧了加密技術,使用者現在擁有了再次發行、 - **[以太坊名稱服務 (ENS)](https://ens.domains/)** - _一個去中心化的鏈上命名系統,適合機器可讀的識別符號,例如以太坊錢包地址、內容雜湊值和中繼資料。_ - **[SpruceID](https://www.spruceid.com/)** - _去中心化身分項目,它允許使用者使用以太坊帳戶和以太坊名稱服務個人資料來控制數位身分,而不是依賴第三方服務。_ +- **[以太坊證明服務 (EAS)](https://attest.sh/)** - _一種去中心化分類帳/協議,用於對任何事物進行鏈上或鏈下證明。_ - **[人性證明](https://www.proofofhumanity.id)** - _人性證明 (PoH) 是建立在以太坊上的社交身分驗證系統。_ - **[BrightID](https://www.brightid.org/)** - _一個去中心化的開源社交身分網路,旨在通過創建和分析社交圖譜來改革身分驗證。_ -- **[人格證明護照](https://proofofpersonhood.com/)** - _ 一個去中心化的數位身分聚合器。_ +- **[人格證明護照](https://proofofpersonhood.com/)** - _一個去中心化的數位身分聚合器。_ ## 延伸閱讀 {#further-reading} @@ -168,7 +169,7 @@ summaryPoint3: 多虧了加密技術,使用者現在擁有了再次發行、 - [區塊鏈使用案例:數位身分中的區塊鏈](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_ +- [什麼是去中心化身分以及你為什麼需要關心?](https://web3.hashnode.com/what-is-decentralized-identity) — _Emmanuel Awosika_ ### 影片 {#videos} diff --git a/src/content/translations/zh-tw/defi/index.md b/src/content/translations/zh-tw/defi/index.md index ebb242876eb..126b2a8066b 100644 --- a/src/content/translations/zh-tw/defi/index.md +++ b/src/content/translations/zh-tw/defi/index.md @@ -12,7 +12,7 @@ summaryPoint2: 讓你借款、儲蓄、投資、交易和進行更多應用的 summaryPoint3: 基於所有人都可以編寫的開放原始碼技術。 --- -去中心化金融是專為網際網路時代建構的開放式全球金融系統,可取代不透明、遭到嚴密控制、以幾十年前的基礎設施和流程維繫的系統, 讓你有能力控制及掌控自己的資金, 觸及全球市場,並獲得本地貨幣或銀行以外的替代選項。 去中心化金融產品向所有擁有網際網路連線的人開放金融服務,同時主要是由使用者控制和維護。 到目前為止,已有價值數百億的加密貨幣透過去中心化金融應用程式流通,而且這個數字每天都還在成長。 +去中心化金融是專為網際網路時代建構的開放式全球金融系統,可取代不透明、遭到嚴密控制、以幾十年前的基礎設施和流程維繫的系統, 讓你有能力控制及監管自己的資金, 觸及全球市場,並獲得本地貨幣或銀行以外的替代選項。 去中心化金融產品向所有擁有網際網路連線的人開放金融服務,同時主要是由使用者控制和維護。 到目前為止,已有價值數百億的加密貨幣透過去中心化金融應用程式流通,而且這個數字每天都還在成長。 ## 何謂去中心化金融? {#what-is-defi} @@ -53,7 +53,7 @@ summaryPoint3: 基於所有人都可以編寫的開放原始碼技術。 ## 一切要從比特幣開始說起…… {#bitcoin} -從許多方面來說,比特幣是第一款去中心化金融應用程式。 比特幣能讓你真正擁有及掌控價值,並傳送到世界上任何一個角落。 它提供了一種方式,讓眾多互不信任的人同意使用一套帳戶帳本,而無需透過可信賴的中間機構。 比特幣對所有人開放,而且沒有人有權改變其規則。 比特幣的規則,例如其稀有度及開放性,是這項技術與生俱來的特色。 在傳統金融中,政府可以印鈔讓你的儲蓄貶值,企業也可以關閉市場,而比特幣與傳統金融截然不同。 +從許多方面來說,比特幣是第一款去中心化金融應用程式。 比特幣能讓你真正擁有及掌控價值,並傳送到世界上任何一個角落。 它提供了一種方式,讓眾多互不信任的人同意使用一套帳戶帳本,而無需透過可信賴的中間機構。 比特幣對所有人開放,而且沒有人有權改變其規則。 比特幣的規則,例如其稀有度及開放性,是這項技術與生俱來的特色。 在傳統金融中,政府可以印鈔讓你的存款貶值,企業也可以關閉市場,而比特幣與傳統金融截然不同。 以太坊便是以此概念為基礎。 和比特幣一樣,以太坊的規則不能任意更改,而且所有人都能使用。 但它進一步使用[智能合約](/glossary#smart-contract)讓這種數位貨幣可程式化,使其功能不侷限於存放及傳送價值。 @@ -61,7 +61,7 @@ summaryPoint3: 基於所有人都可以編寫的開放原始碼技術。 ## 可程式化的貨幣 {#programmable-money} -這聽起來很奇怪……「我幹嘛把我的錢程式化?」 不過,這只是以太坊代幣的預設功能之一。 所有人都可以在付款時加入程式邏輯。 因此,你可以結合比特幣的控制權和安全性,以及金融機構提供的各種金融服務, 用加密貨幣來做一些比特幣辦不到的事,例如借貸、安排付款、投資指標型基金等等。 +這聽起來很奇怪……「我幹嘛把我的錢程式化?」 不過,這只是以太坊代幣的預設功能之一。 所有人都可以在付款時加入程式邏輯。 因此,你可以結合比特幣的控制權和安全性,以及金融機構提供的各種金融服務, 用加密貨幣來做一些比特幣辦不到的事,例如借貸、安排付款、投資指數型基金等等。
如果你是剛開始使用以太坊,請嘗試我們推薦的去中心化金融應用程式。
@@ -143,7 +143,7 @@ Dai、USDC 等穩定幣的價值和美元的差距通常維持在幾美分之內 #### 納稅效益 {#tax-efficiencies} -借款可以讓你獲得需要的資金,而無需出售以太幣(此行為會被課稅)。 相對地,你可以使用以太幣作為抵押品來借入穩定幣。 如果一來,你便可以在保有以太幣的情況下,獲得所需的現金流。 穩定幣是需要現金時的最佳選擇,因為穩定幣不像以太幣一樣易於波動。 [深入了解穩定幣](#stablecoins) +借款可以讓你獲得需要的資金,而無需出售以太幣(此行為會被課稅)。 相對地,你可以使用以太幣作為抵押品來借入穩定幣。 如此一來,你便可以在保有以太幣的情況下,獲得所需的現金流。 穩定幣是需要現金時的最佳選擇,因為穩定幣的價值不像以太幣一樣易於波動。 [深入了解穩定幣](#stablecoins) #### 閃電貸 {#flash-loans} @@ -162,7 +162,7 @@ Dai、USDC 等穩定幣的價值和美元的差距通常維持在幾美分之內 - 你以 $1.00 的價格,從 A 交易所借入 X 數量的 $asset - 你在 B 交易所以 $1.10 的價格售出 X 數量的 $asset - 接著,你到 A 交易所償還貸款 -- 你賺得了扣除手續費後的利潤 +- 你賺得了扣除交易手續費後的利潤 如果 B 交易所的供給量急速下降,使用者無法購足量額來償還原始貸款,那麼這筆交易就會失敗。 @@ -180,7 +180,7 @@ Dai、USDC 等穩定幣的價值和美元的差距通常維持在幾美分之內 - 你借出 100 Dai(一種[穩定幣](/stablecoins/))給某個類似 Aave 的產品。 - 你會收到 100 Aave Dai (aDai),此代幣代表著你借出的 Dai。 -- 你的 aDai 會按利率增加,你可以看到錢包裡的餘額在成長。 視年利率而定,幾天或甚至幾小時後,你的錢包餘額可能會變成 100.1234! +- 你的 aDai 會按利率增加,你可以看到錢包裡的餘額在增長。 視年利率而定,幾天或甚至幾小時後,你的錢包餘額可能會變成 100.1234! - 你可以隨時提取和你的 aDai 餘額等額的一般 Dai。 @@ -207,7 +207,7 @@ Dai、USDC 等穩定幣的價值和美元的差距通常維持在幾美分之內 ### 兌換代幣 {#swaps} -以太坊有成千上萬種代幣。 去中心化交易所 (DEX) 可以讓你隨時交易不同代幣。 你永遠不必放棄對資產的控制權。 這就像造訪其他國家時到外幣收兌處換匯一樣。 但去中心化金融版本的收兌處永不關閉, 去中心化金融市場全天候開放,其技術可保證永遠有人受理交易。 +以太坊有成千上萬種代幣。 去中心化交易所 (DEX) 可以讓你隨時交易不同代幣。 你永遠不會放棄對資產的控制權。 這就像造訪其他國家時到外幣收兌處換匯一樣。 但去中心化金融版本的收兌處永不關閉, 去中心化金融市場全天候開放,其技術可保證永遠有人受理交易。 例如,如果你想使用無損樂透 PoolTogether(參閱前文),你需要 Dai 或 USDC 這類代幣。 這些去中心化交易所可讓你將以太幣兌換成這些代幣,完成交易後再兌換回來。 @@ -233,7 +233,7 @@ Dai、USDC 等穩定幣的價值和美元的差距通常維持在幾美分之內 以太坊上有一些資金管理產品可以根據你選擇的策略來擴展你的投資組合。 這是自動化作業,對所有人開放,而且不需要管理人員來分一杯羹。 -[DeFi Pulse 指數基金 (DPI)](https://defipulse.com/blog/defi-pulse-index/) 就是個很好的例子。 此基金會自動再平衡,以確保你的投資組合永遠包含[市值最高的去中心化金融代幣](https://www.coingecko.com/en/defi)。 你無需親力親為處理任何細節,而且可以隨時提取資金。 +[DeFi Pulse 指數基金 (DPI)](https://defipulse.com/blog/defi-pulse-index/) 就是個很好的例子。 此基金會自動再平衡,確保你的投資組合永遠包含[市值最高的去中心化金融代幣](https://www.coingecko.com/en/defi)。 你無需親力親為處理任何細節,而且可以隨時提取資金。 查看投資去中心化應用程式 @@ -322,7 +322,7 @@ Dai、USDC 等穩定幣的價值和美元的差距通常維持在幾美分之內 ## 建構去中心化金融 {#build-defi} -去中心化金融是一場開放原始碼運動。 去中心化金融協定和應用程式都是開放的,你可以自由檢視、分叉並進行各種創新。 因為採用分層堆疊結構(共享相同的基礎區塊鏈及資產),你可以結合和配對不同協定,開啟獨特的機會組合。 +去中心化金融是一場開放原始碼運動。 去中心化金融協議和應用程式都是開放的,你可以自由檢視、分叉並進行各種創新。 因為採用分層堆疊結構(共享相同的基礎區塊鏈及資產),你可以結合和配對不同協定,開啟獨特的機會組合。 關於建構去中心化應用程式 diff --git a/src/content/translations/zh-tw/desci/index.md b/src/content/translations/zh-tw/desci/index.md new file mode 100644 index 00000000000..6614c45748e --- /dev/null +++ b/src/content/translations/zh-tw/desci/index.md @@ -0,0 +1,138 @@ +--- +title: 去中心化科研 (DeSci) +description: 以太坊的去中心化科研概觀 +lang: zh-tw +template: use-cases +emoji: ":microscope:" +sidebarDepth: 2 +image: ../../../../assets/future_transparent.png +alt: "" +summaryPoint1: 當前科學系統的全球開放性替代方案。 +summaryPoint2: 使科學家得以進行募資、試驗研究、資料分享、發表見解等活動的技術。 +summaryPoint3: 以開放科學運動為原則。 +--- + +## 什麼是去中心化科研 (DeSci)? {#what-is-desci} + +去中心化科研 (DeSci) 是一項利用 Web3 技術開發的公共基礎設施來推行的科學運動,以公平且公正合理的方式融資、研發、審核、認證、存檔以及推廣科學知識。 + +去中心化科研的目標是創建一個生態系統,鼓勵科學家公開分享研究計畫,在開放任何人輕易獲得甚至參與研究的同時,肯定該科學家的貢獻。 去中心化科研的理念是:所有人都有獲得科學知識的權利,因此科學研究過程應該透明化。 去中心化科研正在開創一種更去中心化且廣泛的科學研究模型,使其更能抵抗中心化管理機構的審查與控制。 去中心化科研的目標是,藉由融資、科研工具與交流渠道的去中心化,為跳脫框架的新點子開創出一個能夠欣欣向榮的環境。 + +去中心化科研獎勵可重複性,因而能激發更廣泛多元的融資方案(從[去中心化自治組織](/dao/)、[平方募資](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531)到群眾募資等),以及更容易獲得的資料與方法。 + +### Juan Benet - 去中心化科研運動 + + + +## 去中心化科研如何改善科學研究 {#desci-improves-science} + +這份有待補充的清單列出了科學領域中的關鍵問題,以及去中心化科研所能提供的協助方案 + +| **去中心化科研** | **傳統科研** | +| ---------------------------------------------------------------------- | ------------------------------------------------------------------------------ | +| 使用平方募資或去中心化自治組織等機制的公眾決定了資金的去向。 | 小型、封閉、中心化團體負責管控資金去向。 | +| 你能夠與世界各地的同儕展開活潑的合作。 | 合作計畫受資助方和所屬機構限制。 | +| 資金決策在線上進行且透明度高。 會探索全新的融資機制。 | 資金決策較為耗時且透明度不足。 融資機制有限。 | +| 利用 Web3 基礎單元更簡單且公開地分享實驗室服務。 | 分享實驗室資源的過程較為遲緩且透明度不足。 | +| 利用 Web3 基礎單元研發出可靠、透明且能與全球共享的全新發表模式。 | 只能藉由既有途徑發表研究,而這些途徑通常被認為缺乏效率、帶有偏見且有剝削傾向。 | +| 你可以藉由同儕審查工作獲得代幣與聲望。 | 同儕審查工作是無償的,只有商業出版商能獲益。 | +| 你產生的知識產權 (IP) 歸你所有且能根據透明條款加以分配。 | 你產生的知識產權歸屬於你所在的機構。 知識產權無法透明地獲得。 | +| 所有研究步驟將在鏈上公佈,無論研究成功與否,所有研究資料均在鏈上共享。 | 出版社不夠公正,導致研究者傾向只分享成功的實驗。 | + +## 以太坊與去中心化科研 {#ethereum-and-desci} + +去中心化科研系統需要健全的保全,將金錢與交易開銷減到最低,還要有能夠開發各種應用程式的豐富生態系統。 以太坊提供建立去中心化科研基礎所需的一切。 + +## 去中心化科研的使用案例 {#use-cases} + +去中心化科研正在構建科學研究工具組件,以便將 Web2 學術應用納入數位世界。 以下是 Web3 可爲科學領域提供的使用案例。 + +### 學術發表 {#publishing} + +現行科學研究發表模式備受質疑,因為這種模式由出版方主導,而出版方又仰賴科學家、審查者與編輯的無償勞動,卻又收取高昂的發表費用。 大眾讀者通常藉由稅收間接支付了該研究的費用,卻往往無法閱讀相同作品,除非再次付款給出版方。 發表單篇科學論文的費用通常高達五位數(美元),不但辜負科學知識作為[公共財產](https://www.econlib.org/library/Enc/PublicGoods.html)的使命,還為一小撮出版者帶來龐大利潤。 + +目前的免費公開平台通常是預印伺服器,[例如 ArXiv](https://arxiv.org/)。 然而,這些平台缺乏質量把關,無[防範女巫攻擊的機制](https://csrc.nist.gov/glossary/term/sybil_attack),且通常不會追蹤文章等級指標,換言之,它們通常只供在投稿至傳統出版社之前流通作品。 SciHub 也提供免費瀏覽已發表的學術論文,但此途徑並不合法,且須待出版社收取報酬並將論文納入嚴格的版權法之後才得以在網站發布。 這開啟了一道關鍵缺口,也就是內建合法機制與激勵模型的開放式科學論文與資料。 Web3 能提供建立這種系統的工具。 + +### 可重複性與可複製性 {#reproducibility-and-replicability} + +可重複性和可複製性是科學研究的品質依據。 + +- 可重複的研究結果可由相同的團隊使用相同的方式多次達成。 +- 可複製的研究結果可由不同的團隊以相同的實驗方案達成。 + +全新的 Web3-內建工具可以確保科學發現以可重複性與可複製性為基礎。 我們可將優質的科學融入到學術界的技術體系中。 Web3 有能力驗證原始資料、計算引擎以及應用結果等分析要素。 共識系統的美妙之處在於,當這些要素由可靠的網路機制維護運作時,所有網絡參與者都可以負責再次運算並驗證每一項結果。 + +### 資金來源 {#funding} + +目前資助科學的標準模式是個人或科學家團體向資助機構提出書面申請。 小部分值得信賴的人為申請表評分,並面試這一小撮申請人,再給予資金。 這個模式不但容易造成瓶頸,導致申請和獲得資助之間有時需要等待好幾年,還被認為極易受到審查小組的偏見、自我利益和政治因素的影響。 + +研究顯示,同一個提案被提交到不同的小組時,結果卻大相徑庭,可見資助審查小組難以選出高品質提案。 隨著資金變得越來越稀缺,這些款項都集中在少數資深研究者與較為保守的研究計劃上。 這導致了一個各方為資金搶破頭的環境,還鞏固了不健康的激勵措施,並抑制創新。 + +Web3 廣泛試驗過去中心化自治組織和 Web3 開發的不同激勵模型,因而有可能改善這種糟糕的融資模型。 Web3 工具包括[追溯性公共財產資金](https://medium.com/ethereum-optimism/retroactive-public-goods-funding-33c9b7d00f0c)、[平方募資法](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531)、[去中心化自治組織治理](https://www.antler.co/blog/daos-and-web3-governance)和[代幣化激勵結構](https://cdixon.org/2017/05/27/crypto-tokens-a-breakthrough-in-open-network-design),這些都可以徹底改變科研融資現況。 + +### 知識產權所有權和開發 {#ip-ownership} + +知識產權 (IP) 是傳統科學的一個大問題:從被困在大學或閒置在生物技術公司中,乃至難以估值。 然而,Web3 使用[非同質化代幣 (NFT)](/nft/)解決數位資產(例如科學數據或文章)的所有權,這是 Web3 非常擅長的。 + +就像非同質化代幣可以將未來交易的收入返還給原創作者一樣,你可以建立透明的價值歸屬鏈來獎勵研究人員、管理機構(如去中心化自治組織),甚至是資料被收集的研究對象。 + +[IP-NFT](https://medium.com/molecule-blog/ip-nfts-for-researchers-a-new-biomedical-funding-paradigm-91312d8d92e6) 還是將正在進行的實驗之資料庫去中心化的關鍵,還可以插入非同質化代幣與 [DeFi](/defi/) 金融化(從資產分割到借貸池與價值評估)。 它還允許如 [VitaDAO](https://www.vitadao.com/) 這樣的去中心化自治組織等鏈上原生實體直接在鏈上進行研究。 不可轉移的[「靈魂綁定」代幣](https://vitalik.ca/general/2022/01/26/soulbound.html)的出現,允許個人證明他們的經驗和證書與他們的以太坊地址相關聯,因而也可能在去中心化科研中發揮重要作用。 + +### 資料存儲、存取和架構 {#data-storage} + +使用 Web3 模式可使人們更容易獲得科學資料,分佈式儲存使研究能在災難性事件中倖存下來。 + +起點必須是任何持有適當可驗證憑證的去中心化身分都可以訪問的系統。 這使得敏感資料能夠被可信方安全地複製,從而避免冗餘、抵抗審查,還能重現結果,並實現多方協作與添加新資料至資料集的能力。 [compute-to-data](https://7wdata.be/predictive-analytics/compute-to-data-using-blockchain-to-decentralize-data-science-and-ai-with-the-ocean-protocol) 等機密運算方法提供了替代性存取機制,為最敏感的資料建立了可靠的研究環境。 可靠的研究環境[被 NHS 引用](https://medium.com/weavechain/whats-in-store-for-the-future-of-healthcare-data-b6398745fbbb)作為面向未來的資料隱私和協作解決方案,它開創了一個生態系統,在這個生態系統中,研究人員可以使用標準化環境來安全地處理現場資料,以共享程式碼和實踐方式。 + +靈活的 Web3 資料處理方案支持上述情況,並為真正的開放科學奠定基礎,研究人員可以在沒有存取權限且不必支付費用的情況下為公共利益貢獻一己之力。 星際檔案系統、Arweave 和 Filecoin 等 Web3 公共資料處理方案專為去中心化進行了改良。 例如,dClimate 讓所有人都能獲得氣候和天氣數據,包括來自氣象站和預測氣候模型的數據。 + +## 參與 {#get-involved} + +探索各項計畫並加入去中心化科研社群 + +- [DeSci.Global:全球活動和聚會行事曆](https://desci.global) +- [Blockchain for Science Telegram](https://t.me/BlockchainForScience) +- [Molecule:資助你的研究計畫或為其募資](https://discover.molecule.to/) +- [VitaDAO:藉由受贊助的長壽研究協議獲得資金](https://www.vitadao.com/) +- [ResearchHub:發布科學成果並與同行交流](https://www.researchhub.com/) +- [LabDAO:在電腦中折疊蛋白質](https://alphafodl.vercel.app/) +- [dClimate API:查詢去中心化社群收集的氣候數據](https://api.dclimate.net/) +- [DeSci Foundation:去中心化科研發表工具生成器](https://descifoundation.org/) +- [DeSci.World:供使用者查看、參與去中心化科研的單一窗口](https://desci.world) +- [Fleming Protocol:推動協作生物醫學發現的開源式資料經濟](https://medium.com/@FlemingProtocol/a-data-economy-for-patient-driven-biomedical-innovation-9d56bf63d3dd) +- [OceanDAO:管理資料相關科學資金的去中心化自治組織](https://oceanprotocol.com/dao) +- [Opscientia:開放的去中心化科研工作流程](https://opsci.io/research/) +- [LabDAO:在電腦中折疊蛋白質](https://alphafodl.vercel.app/) +- [Bio.xyz:為你的生物技術去中心化自治組織或去中心化科研項目募資](https://www.molecule.to/) +- [ResearchHub:發布科學成果並與同行交流](https://www.researchhub.com/) +- [VitaDAO:藉由受贊助的長壽研究協議獲得資金](https://www.vitadao.com/) +- [Fleming Protocol:推動協作生物醫學發現的開源式資料經濟](https://medium.com/@FlemingProtocol/a-data-economy-for-patient-driven-biomedical-innovation-9d56bf63d3dd) +- [主動推論實驗室](https://www.activeinference.org/) +- [CureDAO:社群所有的精準健康平台](https://docs.curedao.org/) +- [IdeaMarkets:實現去中心化的科學可信度](https://ideamarket.io/) + +歡迎補充新計畫 - 請先查看我們的[列表政策](/contributing/adding-desci-projects/)! + +## 延伸閱讀 {#further-reading} + +- [由 Jocelynn Pearl 和 Ultrarare 撰寫的去中心化科研維基](https://docs.google.com/document/d/1aQC6zn-eXflSmpts0XGE7CawbUEHwnL6o-OFXO52PTc/edit#) +- [Jocelynn Pearl 為 a16z future 編寫的去中心化生物技術指南](https://future.a16z.com/a-guide-to-decentralized-biotech/) +- [去中心化科研的重要性](https://gitcoin.co/blog/desci-the-case-for-decentralised-science/) +- [去中心化科研指南](https://future.com/what-is-decentralized-science-aka-desci/) +- [去中心化科研資源](https://www.vincentweisser.com/decentralized-science) +- [Molecule 的生物製藥 IP-NFT - 技術性說明](https://molecule.to/blog/molecules-biopharma-ip-nfts-a-technical-description) +- [建立無需信任機制的科學系統 作者:Jon Starr](https://medium.com/@jringo/building-systems-of-trustless-science-1cd2d072f673) +- [生物技術去中心化自治組織的湧現](https://molecule.to/blog/the-emergence-of-biotech-daos) +- [Paul Kohlhaas - DeSci:去中心化科研的未來(播客)](https://anchor.fm/andrew-steinwold/episodes/Paul-Kohlhaas---DeSci-The-Future-of-Decentralized-Science---Zima-Red-ep-117-e1h683a) +- [一種去中心化科研的主動推論本體論:從情境式意義建構到知識共同體](https://zenodo.org/record/6320575) +- [去中心化科研:研究領域的未來 作者:Samuel Akinosho](https://lucidsamuel.medium.com/desci-the-future-of-research-b76cfc88c8ec) +- [科研融資(跋:去中心化科研與全新加密原語) 作者:Nadia](https://nadia.xyz/science-funding) +- [去中心化風潮正在擾亂藥物研發](https://medium.com/id-theory/decentralisation-is-disrupting-drug-development-28b5ba5d447f) + +### 影片 {#videos} + +- [去中心化科研是什麼?](https://www.youtube.com/watch?v=-DeMklVWNdA) +- [Vitalik Buterin 與科學家 Aubrey de Grey 關於長壽研究與加密貨幣之互動的討論](https://www.youtube.com/watch?v=x9TSJK1widA) +- [科學研究發表已毀。 Web3 能夠有所幫助嗎?](https://www.youtube.com/watch?v=WkvzYgCvWj8) +- [Juan Benet - 去中心化科研、獨立實驗室與大規模數據科學](https://www.youtube.com/watch?v=zkXM9H90g_E) +- [Sebastian Brunemeier - 去中心化科研如何能夠轉化生物醫學研究與創業投資](https://www.youtube.com/watch?v=qB4Tc3FcVbM) diff --git a/src/content/translations/zh-tw/social-networks/index.md b/src/content/translations/zh-tw/social-networks/index.md index 068926c569e..a679b00579d 100644 --- a/src/content/translations/zh-tw/social-networks/index.md +++ b/src/content/translations/zh-tw/social-networks/index.md @@ -79,7 +79,7 @@ Reddit 擁有[回饋式社群積分](https://cointelegraph.com/news/reddit-to-re 該程式現已上線,使用[運行名為「Moons」的社群積分版本](https://www.reddit.com/r/CryptoCurrency/wiki/moons_wiki)的 r/CryptoCurrency subreddit。 根據官方描述,Moons“會為對 subreddit 做出貢獻的發佈者、評論者、修改者提供獎勵。” 由於這些代幣位於區塊鏈上(使用者通過錢包接收),他們獨立於 Reddit 且不會丟失。 -在 Rinkeby 測試網進行初步測試後,Reddit 社群積分現已位於 [Arbitrum Nova](https://nova.arbitrum.io/)。Arbitrum Nova 是一個集合了 [validium](/developers/docs/scaling/validium/) 資產和[樂觀卷軸](/developers/docs/scaling/optimistic-rollups/)的區塊鏈。 除使用社群積分來解鎖特殊功能外,使用者亦可以在交易所用它們來換取法定貨幣。 此外,使用者擁有社群積分的數量決定了他們在社群決策過程中的影響力。 +在 Rinkeby 測試網進行初步測試後,Reddit 社群積分現已整合至 [Arbitrum Nova](https://nova.arbitrum.io/)。Arbitrum Nova 是一條集合了[側鏈](/developers/docs/scaling/sidechains/)和[樂觀卷軸](/developers/docs/scaling/optimistic-rollups/)屬性的區塊鏈。 除使用社群積分來解鎖特殊功能外,使用者亦可以在交易所用它們來換取法定貨幣。 此外,使用者擁有社群積分的數量決定了他們在社群決策過程中的影響力。 ### Twitter {#twitter} @@ -87,23 +87,26 @@ Reddit 擁有[回饋式社群積分](https://cointelegraph.com/news/reddit-to-re ### Instagram {#instagram} -2022 年 5 月,[Instagram 宣布支援以太坊上的非同質化代幣](https://about.instagram.com/blog/announcements/instagram-digital-collectibles)和 Polygon。 使用者可以透過連接他們的以太坊錢包將非同質化代幣直接發佈到 Instagram。 +2022 年 5 月,[Instagram 宣布支援以太坊和 Polygon 上的非同質化代幣](https://about.instagram.com/blog/announcements/instagram-digital-collectibles)。 使用者可以透過連接他們的以太坊錢包將非同質化代幣直接發佈到 Instagram。 ## 使用去中心化社交網路 {#use-decentralized-social-networks} -- **[Status.im](https://status.im/)** - _ Status 是安全的訊息傳遞應用程式,使用開放程式碼、點對點協定和端到端加密來保護您的訊息免受第三方的侵害。_ +- **[Status.im](https://status.im/)** - _ Status 是安全的訊息傳遞應用程式,使用開放程式碼、點對點協議和端到端加密來保護你的訊息免受第三方的侵害。_ - **[Mirror.xyz](https://mirror.xyz/)** - _M irror 是一個基於以太坊構建的使用者擁有的去中心化發布平台,供使用者眾籌創意、將內容貨幣化並建立高價值社群。_ - **[Lens Protocol](https://lens.xyz/)** - _Lens Protocol 是一個可組合和去中心化的社交圖譜,可幫助創作者在去中心化網際網路的數位花園中的任何地方擁有自己的內容。_ +- **[Farcaster](https://farcaster.xyz/)** - _Farcaster 是一個充分去中心化的社交網路。 它是個支持多種用戶端的開放式協議,如電子郵件。_ ## 延伸閱讀 {#further-reading} ### 文章 {#articles} +- [去中心化社群媒體:Web3 社交技巧指南](https://www.coinbase.com/blog/decentralizing-social-media-a-guide-to-the-web3-social-stack) - _Coinbase Ventures_ - [社交網路是下一個大的去中心化機會](https://www.coindesk.com/tech/2021/01/22/social-networks-are-the-next-big-decentralization-opportunity/) — _Ben Goertzel_ - [Web3 承諾實現由社群推動的去中心化社交網路](https://venturebeat.com/2022/02/26/web3-holds-the-promise-of-decentralized-community-powered-social-networks/) — _Sumit Ghosh_ - [區塊鏈社交媒體發展形勢概覽](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_ +- [社交網絡的充分去中心化](https://www.varunsrinivasan.com/2022/01/11/sufficient-decentralization-for-social-networks) — _Varun Srinivasan_ ### 影片 {#videos} From 9833d687639e1c87580303819d738c12b604520c Mon Sep 17 00:00:00 2001 From: Joshua <62268199+minimalsm@users.noreply.github.com> Date: Tue, 27 Jun 2023 14:47:56 +0100 Subject: [PATCH 163/186] Update Czech (cs) homepage bucket --- src/intl/cs/common.json | 1 - 1 file changed, 1 deletion(-) diff --git a/src/intl/cs/common.json b/src/intl/cs/common.json index 3acf15085ae..463970b2a05 100644 --- a/src/intl/cs/common.json +++ b/src/intl/cs/common.json @@ -87,7 +87,6 @@ "get-started": "Začít", "grants": "Granty", "grant-programs": "Grantové programy pro ekosystém", - "guides-and-resources": "Příručky a zdroje informací", "guides": "Příručky", "guides-hub": "Výukový hub", "history-of-ethereum": "Historie Etherea", From e483f71e4faa4b977d5810634e5409b28082680b Mon Sep 17 00:00:00 2001 From: Joshua <62268199+minimalsm@users.noreply.github.com> Date: Tue, 27 Jun 2023 14:51:55 +0100 Subject: [PATCH 164/186] Update Danish, Dutch, and Filipino (da, nl, fil) Homepage buckets --- src/intl/da/common.json | 54 ++++++++++++++++++++++++++++++++++--- src/intl/da/page-index.json | 30 ++++++++++----------- src/intl/fil/common.json | 50 ++++++++++++++++++++++++++++++++-- src/intl/nl/common.json | 49 +++++++++++++++++++++++++++++++-- 4 files changed, 161 insertions(+), 22 deletions(-) diff --git a/src/intl/da/common.json b/src/intl/da/common.json index 872a4167fc8..737920109d5 100644 --- a/src/intl/da/common.json +++ b/src/intl/da/common.json @@ -1,4 +1,5 @@ { + "account-abstraction": "Konto-abstraktion", "about-ethereum-org": "Om ethereum.org", "about-us": "Om os", "aria-toggle-search-button": "Tænd/sluk søgknappen", @@ -6,25 +7,46 @@ "zen-mode": "Zen-tilstand", "beacon-chain": "Beacon Chain", "bridges": "Blockchain-broer", + "clear": "Ryd", "close": "Luk", "community": "Fællesskab", "community-hub": "Fællesskabs-hub", "community-menu": "Fællesskabs-menu", "contact": "Kontakt", + "content-standardization": "Standardisering af indhold", "contributing": "Bidrager", "contributors": "Bidragere", "contributors-thanks": "Alle der har bidraget til denne side – tak!", "cookie-policy": "Cookiepolitik", "copied": "Kopieret", "copy": "Kopiér", + "danksharding": "Danksharding", "dark-mode": "Mørk", "data-provided-by": "Datakilde:", "decentralized-applications-dapps": "Decentraliserede applikationer (dapps)", + "decentralized-science": "Decentraliseret videnskab (DeSci)", "devcon": "Devcon", "developers": "Udviklere", "developers-home": "Udviklerens startside", "docs": "Dokumenter", + "docsearch-to-select": "For at vælge", + "docsearch-to-navigate": "For at navigere", + "docsearch-to-close": "For at lukke", + "docsearch-search-by": "Søg efter", + "docsearch-start-recent-searches-title": "Seneste", + "docsearch-start-no-recent-searches": "Ingen seneste søgninger", + "docsearch-start-save-recent-search": "Gem denne søgning", + "docsearch-start-remove-recent-search": "Fjern denne søgning fra historikken", + "docsearch-start-favorite-searches": "Foretrukket", + "docsearch-start-remove-favorite-search": "Fjern denne søgning fra foretrukne", + "docsearch-no-results-text": "Ingen resultater for", + "docsearch-no-results-suggested-query": "Prøv at søge efter", + "docsearch-no-results-missing": "Burde denne forespørgsel returnere resultater?", + "docsearch-no-results-missing-link": "Fortæl os om det.", + "docsearch-error-title": "Kunne ikke hente resultater", + "docsearch-error-help": "Du bør kontrollere din netværksforbindelse.", "documentation": "Dokumentation", + "down": "Ned", "ecosystem": "Økosystem", "edit-page": "Redigér side", "ef-blog": "Ethereum Foundation Blog", @@ -59,15 +81,22 @@ "feedback-widget-thank-you-timing": "2–3 min", "feedback-widget-thank-you-cta": "Åbn kort undersøgelse", "find-wallet": "Find tegnebog", + "future-proofing": "Fremtidssikring", "get-eth": "Få ETH", "get-involved": "Vær med", "get-started": "Kom godt i gang", "grants": "Tilskud", "grant-programs": "Økosystem-tilskudsprogrammer", - "guides-and-resources": "Fællesskabsvejledninger og -ressourcer", + "guides": "Guider", + "guides-hub": "Guidehub", "history-of-ethereum": "Ethereums historik", "home": "Startside", "how-ethereum-works": "Sådan fungerer Ethereum", + "how-to-register-an-ethereum-account": "Sådan \"registreres\" en Ethereum konto", + "how-to-revoke-token-access": "Sådan tilbagekalder man smart kontrakt-adgang til sine krypto midler", + "how-to-swap-tokens": "Sådan byttes tokens", + "how-to-use-a-bridge": "Sådan forbindes tokens til lag 2", + "how-to-use-a-wallet": "Sådan bruges en tegnebog", "image": "billede", "in-this-section": "I dette afsnit", "individuals": "Personer", @@ -81,6 +110,7 @@ "layer-2": "Layer 2", "learn": "Lær", "learn-by-coding": "Lær ved kodning", + "learn-hub": "Læringshub", "learn-menu": "Menuen Lær", "learn-more": "Lær mere", "less": "Mindre", @@ -95,22 +125,30 @@ "nav-developers": "Udviklere", "nav-developers-docs": "Udviklerdokumenter", "nav-primary": "Primær", + "nfts": "NFT'er", "no": "Nej", "on-this-page": "På denne side", "open-research": "Åbn søgning", "page-last-updated": "Side senest opdateret", + "pbs": "Separation af proposer-builder", "privacy-policy": "Databeskyttelse", "private-ethereum": "Privat Ethereum", "refresh": "Genindlæs venligst siden.", "return-home": "retur til startside", + "roadmap": "Ethereum køreplan", "run-a-node": "Kør en node", "rollup-component-website": "Websted", "rollup-component-developer-docs": "Udviklerdokumenter", "rollup-component-technology-and-risk-summary": "Teknologi- og risikoopsummering", + "scaling": "Skalering", "search": "Søg", + "search-ethereum-org": "Søg ethereum.org", + "secret-leader-election": "Hemmeligt ledervalg", "search-box-blank-state-text": "Søg alt det du vil!", "search-eth-address": "Dette ligner en Ethereum-adresse. Vi leverer ikke data specifikt til adresser. Prøv at søge efter det på en block-stifinder som", "search-no-results": "Ingen resultater af din søgning", + "single-slot-finality": "Enkeltpladsfinalitet", + "statelessness": "Tilstandsløshed", "see-contributors": "Se bidragydere", "set-up-local-env": "Opsæt lokalt miljø", "sharding": "Sharding", @@ -121,10 +159,13 @@ "skip-to-main-content": "Spring til hovedindholdet", "smart-contracts": "Smart kontrakter", "stablecoins": "Stablecoins", + "stake-eth": "Stake ETH", "staking": "Indskyder", + "style-guide": "Style guide", "solo": "Solo-staking", "saas": "Staking som en tjeneste", "pools": "Samlet staking", + "withdrawals": "Udtrækning af Indsatser", "terms-of-use": "Brugsvilkår", "translation-banner-body-new": "Du ser denne side på engelsk, fordi vi ikke har oversat den endnu. Hjælp os med at oversætte dette indhold.", "translation-banner-body-update": "Der er en ny version af siden, men den er kun på engelsk lige nu. Hjælp os med at oversætte den nyeste version.", @@ -137,19 +178,26 @@ "translation-banner-no-bugs-dont-show-again": "Vis ikke igen", "try-using-search": "Prøv at bruge søgning for at finde det, du leder efter", "tutorials": "Vejledninger", + "up": "Op", "use-ethereum": "Brug Ethereum", "use-ethereum-menu": "Brug Ethereum-menu", + "user-experience": "User experience", + "verkle-trees": "Verkle-træer", "wallets": "Tegnebøger", "we-couldnt-find-that-page": "Vi kunne ikke finde den side", "web3": "Hvad er Web3?", + "web3-title": "Web3", "website-last-updated": "Websted senest opdateret", "what-is-ether": "Hvad er ether (ETH)?", "what-is-ethereum": "Hvad er Ethereum?", "defi-page": "Decentraliserede finanser (DeFi)", - "dao-page": "Decentraliserede, autonome organisationer (DAO'er)", + "dao-page": "Decentraliserede autonome organisationer (DAO'er)", "nft-page": "Ikke-ombyttelige tokens (NFT'er)", "decentralized-social-networks": "Decentraliserede sociale netværk", "decentralized-identity": "Decentraliseret identitet", "yes": "Ja", - "page-index-meta-title": "Hjem" + "zero-knowledge-proofs": "Vidensløse beviser", + "ethereum-roadmap": "Ethereum køreplan", + "page-index-meta-title": "Home", + "page-developers-aria-label": "Developers' Menu" } diff --git a/src/intl/da/page-index.json b/src/intl/da/page-index.json index 8363a3664a2..8f0ee770c65 100644 --- a/src/intl/da/page-index.json +++ b/src/intl/da/page-index.json @@ -6,10 +6,10 @@ "page-index-description": "Ethereum er den fællesskabsdrevne teknologi, der driver cryptovalutaen ether (ETH) og tusindvis af decentraliserede applikationer.", "page-index-title-button": "Udforsk Ethereum", "page-index-get-started": "Kom godt i gang", - "page-index-get-started-description": "ethereum.org er din portal ind i verden af Ethereum. Teknologien er ny og udvikler sig løbende – det hjælper at have en guide. Her er, hvad vi anbefaler dig at gøre, hvis du ønsker at hoppe ombord.", + "page-index-get-started-description": "ethereum.org er din portal ind i Ethereum-verdenen. Teknologien er ny og udvikler sig løbende – det hjælper at have en guide. Her er, hvad vi anbefaler dig at gøre, hvis du ønsker at hoppe ombord.", "page-index-get-started-image-alt": "Illustration af en person siddende ved en computer.", "page-index-get-started-wallet-title": "Vælg en tegnebog", - "page-index-get-started-wallet-description": "En tegnebog lader dig oprette forbindelse til Ethereum og håndtere dine midler.", + "page-index-get-started-wallet-description": "Med en wallet kan man oprette forbindelse til Ethereum og håndtere sine midler.", "page-index-get-started-wallet-image-alt": "Illustration af en robot med en bankboks som krop repræsenterende en Ethereum-tegnebog.", "page-index-get-started-eth-title": "Få ETH", "page-index-get-started-eth-description": "ETH er valutaen for Ethereum – den kan anvendes i applikationer.", @@ -19,33 +19,33 @@ "page-index-get-started-dapps-image-alt": "Illustration af en doge som bruger en computer.", "page-index-get-started-devs-title": "Begynd at udvikle", "page-index-get-started-devs-description": "Ønsker man at starte kodning med Ethereum, har vi dokumentation, vejledninger og mere i vores udviklerportal.", - "page-index-get-started-devs-image-alt": "Illustration af en hånd, der bygger en Ethereum logo af Lego-klodser.", + "page-index-get-started-devs-image-alt": "Illustration af en hånd, der bygger et Ethereum-logo af Lego-klodser.", "page-index-what-is-ethereum": "Hvad er Ethereum?", - "page-index-what-is-ethereum-description": "Ethereum er en teknologi, der er hjemsted for digitale penge, globale betalinger og applikationer. Fællesskabet har opbygget en blomstrende digital økonomi, dristige nye måder for kreatører til at tjene online, og så meget mere. Det er åbent for alle, uanset hvor man er i verden – alt hvad der behøves, er Internet.", + "page-index-what-is-ethereum-description": "Ethereum er en teknologi, der er hjemsted for digitale penge, globale betalinger og applikationer. Fællesskabet har opbygget en blomstrende digital økonomi, dristige nye måder for oprettere til at tjene online, og så meget mere. Det er åbent for alle, uanset hvor man er i verden – alt hvad der behøves, er Internet.", "page-index-what-is-ethereum-button": "Hvad er Ethereum?", "page-index-what-is-ethereum-secondary-button": "Mere om digitale penge", "page-index-what-is-ethereum-image-alt": "Illustration af en person, der kigger ind i en bazar, repræsenterende Ethereum.", "page-index-defi": "Et mere retfærdigt finansielt system", "page-index-defi-description": "I dag kan milliarder af personer ikke åbne bankkonti, andre får deres betalinger blokeret. Ethereum's decentraliserede finansielle (DeFi) system sover eller diskriminerer aldrig. Med blot en Internetforbindelse kan man sende, modtage, låne eller tjene penge og endda streame midler overalt i verden.", "page-index-defi-button": "Udforsk DeFi", - "page-index-defi-image-alt": "Illustration af hænder tilbydende et ETH-symbol.", + "page-index-defi-image-alt": "Illustration af hænder, der tilbyder et ETH-symbol.", "page-index-internet": "Et åbent Internet", - "page-index-internet-description": "'Gratis' Internettjenester tilgås i dag ved at opgive kontrollen over personlige data. Ethereum-tjenester er som standard åben – der kræves blot en tegnebog, som er gratis, nem at opsætte, kontrolleres af ejeren og fungerer uden personlige oplysninger.", + "page-index-internet-description": "'Gratis' Internettjenester tilgås i dag ved at opgive kontrollen over personlige data. Ethereum-tjenester er som standard åbne – der kræves blot en tegnebog, som er gratis, nem at opsætte, kontrolleres af ejeren og fungerer uden personlige oplysninger.", "page-index-internet-button": "Udforsk det åbne Internet", "page-index-internet-secondary-button": "Mere om tegnebøger", "page-index-internet-image-alt": "Illustration af en futuristisk computeropsætning drevet af Ethereum-krystaller.", - "page-index-developers": "En ny grænse for udvikling", - "page-index-developers-description": "Ethereum og dens apps er gennemsigtige og open-source. Man kan genbruge (fork) kode og dermed funktionalitet, som andre allerede har bygget. Ønsker man ikke at lære et nyt sprog, kan man blot interagere med open-sourced kode vha. JavaScript og andre eksisterende sprog.", + "page-index-developers": "Et nyt grænseområde for udvikling", + "page-index-developers-description": "Ethereum og dens apps er gennemsigtige og open-source. Man kan forgrene (fork) kode og dermed funktionalitet, som andre allerede har bygget. Ønsker man ikke at lære et nyt sprog, kan man blot interagere med open-sourced kode vha. JavaScript og andre eksisterende sprog.", "page-index-developers-button": "Udviklerportal", "page-index-developers-code-examples": "Kodeeksempler", "page-index-developers-code-example-title-0": "Din egen bank", "page-index-developers-code-example-description-0": "Man kan bygge en bank drevet af logik, man har kodet.", "page-index-developers-code-example-title-1": "Din egen valuta", - "page-index-developers-code-example-description-1": "Man kan oprette tokens, som kan overføres og bruges på tværs af applikationer.", + "page-index-developers-code-example-description-1": "Man kan oprette tokens, som kan overføres og bruges i forskellige applikationer.", "page-index-developers-code-example-title-2": "En JavaScript Ethereum-tegnebog", "page-index-developers-code-example-description-2": "Man kan benytte eksisterende sprog til at interagere med Ethereum og andre applikationer.", - "page-index-developers-code-example-title-3": "Et åben, tilladelsesfrit DNS", - "page-index-developers-code-example-description-3": "Man kan forestille sig eksisterende tjenester som decentraliserede, åbne applikationer.", + "page-index-developers-code-example-title-3": "En åben, tilladelsesfri DNS", + "page-index-developers-code-example-description-3": "Man kan gentænke eksisterende tjenester som decentraliserede, åbne applikationer.", "page-index-network-stats-title": "Ethereum i dag", "page-index-network-stats-subtitle": "De seneste netværksstatistikker", "page-index-network-stats-eth-price-description": "ETH-pris (USD)", @@ -53,17 +53,17 @@ "page-index-network-stats-tx-day-description": "Transaktioner i dag", "page-index-network-stats-tx-day-explainer": "Antal gennemførte transaktioner behandlet på netværket de seneste 24 timer.", "page-index-network-stats-value-defi-description": "Værdi låst i DeFi (USD)", - "page-index-network-stats-value-defi-explainer": "Mængden af penge i decentraliseret finansapplikationer (DeFi), Ethereum-digitaløkonomien.", + "page-index-network-stats-value-defi-explainer": "Mængden af penge i decentraliserede finansapplikationer (DeFi), Ethereum-digitaløkonomien.", "page-index-network-stats-nodes-description": "Nodes", "page-index-network-stats-nodes-explainer": "Ethereum drives af tusindvis af frivillige verden over, betegnet nodes.", "page-index-touts-header": "Tjek ethereum.org ud", "page-index-contribution-banner-title": "Bidrag til ethereum.org", - "page-index-contribution-banner-description": "Dette websted er open-source med hundredvis af fællesskabsbidragsydere. Her kan man foreslå indholdsredigeringer, fantastiske nye funktioner eller hjælpe medfejlretning.", + "page-index-contribution-banner-description": "Dette websted er open-source med hundredvis af fællesskabsbidragsydere. Her kan man foreslå indholdsredigeringer, fantastiske nye funktioner eller hjælpe med fejlretning.", "page-index-contribution-banner-image-alt": "Et Ethereum-logo bygget af legoklodser.", "page-index-contribution-banner-button": "Mere om bidrag", "page-index-tout-upgrades-title": "Opgrader din opgraderingsviden", - "page-index-tout-upgrades-description": "The Ethereum roadmap consists of interconnected upgrades designed to make the network more scalable, secure, and sustainable.", - "page-index-tout-upgrades-image-alt": "Illustration af en rumskib, som repræsenterer den øgede effekt efter Ethereum-opgradinger.", + "page-index-tout-upgrades-description": "Ethereums køreplan består af gensidigt afhængige opgraderinger designet til at gøre netværket mere skalerbart, sikkert og bæredygtigt.", + "page-index-tout-upgrades-image-alt": "Illustration af et rumskib, som repræsenterer den øgede effekt efter Ethereum-opgradinger.", "page-index-tout-enterprise-title": "Ethereum til virksomheder", "page-index-tout-enterprise-description": "Se, hvordan Ethereum kan åbne nye forretningsmodeller, reducere omkostninger og fremtidssikre virksomheden.", "page-index-tout-enterprise-image-alt": "Illustration af en futuristisk computer/enhed.", diff --git a/src/intl/fil/common.json b/src/intl/fil/common.json index c4bbb5604ad..724ce2a1c1a 100644 --- a/src/intl/fil/common.json +++ b/src/intl/fil/common.json @@ -1,4 +1,5 @@ { + "account-abstraction": "Account abstraction", "about-ethereum-org": "Tungkol sa ethereum.org", "about-us": "Tungkol sa amin", "aria-toggle-search-button": "I-toggle ang button sa paghahanap", @@ -6,17 +7,20 @@ "zen-mode": "Zen Mode", "beacon-chain": "Beacon Chain", "bridges": "Mga blockchain bridge", + "clear": "I-clear", "close": "Isara", "community": "Komunidad", "community-hub": "Hub ng komunidad", "community-menu": "Menu ng Komunidad", "contact": "I-contact", + "content-standardization": "Pag-standardize ng content", "contributing": "Pagko-contribute", "contributors": "Mga Contributor", "contributors-thanks": "Sa lahat ng mga nag-ambag sa pahinang ito – Salamat sa inyo!", "cookie-policy": "Polisiya sa cookies", "copied": "Kinopya", "copy": "Kopyahin", + "danksharding": "Danksharding", "dark-mode": "Madilim", "data-provided-by": "Pinagmulan ng data:", "decentralized-applications-dapps": "Mga decentralized application (dapps)", @@ -25,7 +29,24 @@ "developers": "Mga Developer", "developers-home": "Home ng mga developer", "docs": "Mga Dokumento", + "docsearch-to-select": "Para pumili", + "docsearch-to-navigate": "Para mag-navigate", + "docsearch-to-close": "Para isara", + "docsearch-search-by": "Maghanap sa pamamagitan ng", + "docsearch-start-recent-searches-title": "Kamakailan", + "docsearch-start-no-recent-searches": "Walang kamakailang paghahanap", + "docsearch-start-save-recent-search": "I-save ang paghahanap na ito", + "docsearch-start-remove-recent-search": "Alisin ang paghahanap na ito sa history", + "docsearch-start-favorite-searches": "Paborito", + "docsearch-start-remove-favorite-search": "Alisin ang paghahanap na ito sa mga paborito", + "docsearch-no-results-text": "Walang resulta para sa", + "docsearch-no-results-suggested-query": "Subukang maghanap para sa", + "docsearch-no-results-missing": "Sa palagay mo, dapat magbalik ng mga resulta ang query na ito?", + "docsearch-no-results-missing-link": "Ipaalam ito sa amin.", + "docsearch-error-title": "Hindi makakuha ng mga resulta", + "docsearch-error-help": "Baka gusto mong tingnan ang iyong koneksyon sa network.", "documentation": "Dokumentasyon", + "down": "Pababa", "ecosystem": "Ecosystem", "edit-page": "I-edit ang pahina", "ef-blog": "Blog ng Ethereum Foundation", @@ -60,15 +81,22 @@ "feedback-widget-thank-you-timing": "2–3 min", "feedback-widget-thank-you-cta": "Buksan ang maikling survey", "find-wallet": "Maghanap ng wallet", + "future-proofing": "Pag-future proof", "get-eth": "Kumuha ng ETH", "get-involved": "Makibahagi", "get-started": "Magsimula", "grants": "Mga Grant", "grant-programs": "Mga Ecosystem Grant Program", - "guides-and-resources": "Mga gabay at resource ng komunidad", + "guides": "Mga Gabay", + "guides-hub": "Hub ng mga gabay", "history-of-ethereum": "Kasaysayan ng Ethereum", "home": "Home", "how-ethereum-works": "Paano gumagana ang Ethereum", + "how-to-register-an-ethereum-account": "Paano \"magrehistro\" ng Ethereum account", + "how-to-revoke-token-access": "Paano bawiin ang access sa smart contract sa iyong mga pondo sa crypto", + "how-to-swap-tokens": "Paano mag-swap ng mga token", + "how-to-use-a-bridge": "Paano madadala ang mga token sa layer 2", + "how-to-use-a-wallet": "Paano gumamit ng wallet", "image": "larawan", "in-this-section": "Sa seksyong ito", "individuals": "Mga indibidwal", @@ -82,6 +110,7 @@ "layer-2": "Layer 2", "learn": "Matuto", "learn-by-coding": "Matuto sa pamamagitan ng pag-code", + "learn-hub": "Learn Hub", "learn-menu": "Menu ng pag-aaral", "learn-more": "Matuto pa", "less": "Mas kaunti", @@ -96,22 +125,30 @@ "nav-developers": "Mga Developer", "nav-developers-docs": "Developers docs", "nav-primary": "Primary", + "nfts": "NFTs", "no": "Hindi", "on-this-page": "Sa page na ito", "open-research": "Open research", "page-last-updated": "Huling na-update ang page", + "pbs": "Paghihiwalay ng tagamungkahi at tagabuo", "privacy-policy": "Patakaran sa privacy", "private-ethereum": "Pribadong Ethereum", "refresh": "Paki-refresh ang pahina.", "return-home": "bumalik sa home", + "roadmap": "Roadmap ng Ethereum", "run-a-node": "Mag-run ng node", "rollup-component-website": "Website", "rollup-component-developer-docs": "Developer docs", "rollup-component-technology-and-risk-summary": "Buod ng teknolohiya at risk", + "scaling": "Pagsusukat", "search": "Maghanap", + "search-ethereum-org": "Hanapin ang ethereum.org", + "secret-leader-election": "Lihim na halalan ng pinuno", "search-box-blank-state-text": "Hanapin!", "search-eth-address": "Mukhang isang Ethereum address ito. Hindi kami nagbibigay ng data na partikular sa mga address. Subukang hanapin ito sa isang block explorer tulad ng", "search-no-results": "Walang resulta sa iyong hinahanap", + "single-slot-finality": "Pagiging pinal ng single-slot", + "statelessness": "Kawalan ng estado", "see-contributors": "Tingnan ang mga contributor", "set-up-local-env": "Mag-set up ng lokal na environment", "sharding": "Sharding", @@ -122,10 +159,13 @@ "skip-to-main-content": "Lumaktaw sa main content", "smart-contracts": "Mga smart contract", "stablecoins": "Stablecoins", + "stake-eth": "Mag-stake ng ETH", "staking": "Staking", + "style-guide": "Style guide", "solo": "Solo staking", "saas": "Staking as a service", "pools": "Pooled staking", + "withdrawals": "Mga pag-withdraw ng stake", "terms-of-use": "Mga tuntunin ng paggamit", "translation-banner-body-new": "Tinitingnan mo ang pahinang ito sa English dahil hindi pa namin ito naisalin. Tulungan kaming isalin ang nilalamang ito.", "translation-banner-body-update": "May bagong bersyon ng page na ito ngunit nasa English lang ito ngayon. Tulungan kaming isalin ang pinakabagong bersyon.", @@ -138,11 +178,15 @@ "translation-banner-no-bugs-dont-show-again": "Huwag nang ipakita ulit", "try-using-search": "Subukang gamitin ang paghahanap upang mahanap kung ano ang iyong hinahanap o", "tutorials": "Mga tutorial", + "up": "Pataas", "use-ethereum": "Gumamit ng Ethereum", "use-ethereum-menu": "Gamitin ang Ethereum menu", + "user-experience": "User experience", + "verkle-trees": "Verkle trees", "wallets": "Mga Wallet", "we-couldnt-find-that-page": "Hindi namin mahanap ang page na iyon", "web3": "Ano ang Web3?", + "web3-title": "Web3", "website-last-updated": "Huling pag-update sa website", "what-is-ether": "Ano ang ether (ETH)?", "what-is-ethereum": "Ano ang Ethereum?", @@ -153,5 +197,7 @@ "decentralized-identity": "Decentralized na identity", "yes": "Oo", "zero-knowledge-proofs": "Zero-knowledge proofs", - "page-index-meta-title": "Home" + "ethereum-roadmap": "Lalakbaying daan ng Ethereum", + "page-index-meta-title": "Home", + "page-developers-aria-label": "Developers' Menu" } diff --git a/src/intl/nl/common.json b/src/intl/nl/common.json index 269f568e6e8..7cad892c932 100644 --- a/src/intl/nl/common.json +++ b/src/intl/nl/common.json @@ -1,4 +1,5 @@ { + "account-abstraction": "Accountabstractie", "about-ethereum-org": "Over ethereum.org", "about-us": "Over ons", "aria-toggle-search-button": "Toon/verberg zoekknop", @@ -6,17 +7,20 @@ "zen-mode": "Zen-modus", "beacon-chain": "Beacon Chain", "bridges": "Blockchain-bruggen", + "clear": "Wissen", "close": "Sluiten", "community": "Community", "community-hub": "Community hub", "community-menu": "Community-menu", "contact": "Contact", + "content-standardization": "Inhoudsstandaardisering", "contributing": "Bijdragen", "contributors": "Bijdragers", "contributors-thanks": "Iedereen die bijgedragen heeft aan deze pagina - bedankt!", "cookie-policy": "Cookiebeleid", "copied": "Gekopieerd", "copy": "Kopiëren", + "danksharding": "Danksharding", "dark-mode": "Donker", "data-provided-by": "Gegevensbron:", "decentralized-applications-dapps": "Gedecentraliseerde toepassingen (dapps)", @@ -25,7 +29,24 @@ "developers": "Ontwikkelaars", "developers-home": "Startpagina voor ontwikkelaars", "docs": "Documentatie", + "docsearch-to-select": "Selecteren", + "docsearch-to-navigate": "Navigeren", + "docsearch-to-close": "Sluiten", + "docsearch-search-by": "Zoeken op", + "docsearch-start-recent-searches-title": "Recent", + "docsearch-start-no-recent-searches": "Geen recente zoekopdrachten", + "docsearch-start-save-recent-search": "Deze zoekopdracht opslaan", + "docsearch-start-remove-recent-search": "Deze zoekopdracht verwijderen uit de geschiedenis", + "docsearch-start-favorite-searches": "Favoriet", + "docsearch-start-remove-favorite-search": "Deze zoekopdracht verwijderen uit favorieten", + "docsearch-no-results-text": "Geen resultaten voor", + "docsearch-no-results-suggested-query": "Probeer te zoeken op", + "docsearch-no-results-missing": "Gelooft u dat deze zoekopdracht resultaten moet opleveren?", + "docsearch-no-results-missing-link": "Laat het ons weten.", + "docsearch-error-title": "Kan resultaten niet ophalen", + "docsearch-error-help": "Wellicht wilt u uw netwerkverbinding controleren.", "documentation": "Documentatie", + "down": "Naar beneden", "ecosystem": "Ecosysteem", "edit-page": "Pagina bewerken", "ef-blog": "Ethereum Foundation-blog", @@ -60,15 +81,22 @@ "feedback-widget-thank-you-timing": "2-3 minuten", "feedback-widget-thank-you-cta": "Open korte enquête", "find-wallet": "Zoek wallet", + "future-proofing": "Toekomstbestendigheid", "get-eth": "ETH verkrijgen", "get-involved": "Help mee", "get-started": "Aan de slag", "grants": "Subsidies", "grant-programs": "Ecosysteem-subsidieprogramma's", - "guides-and-resources": "Communitygidsen en -bronnen", + "guides": "Gidsen", + "guides-hub": "Hub voor handleidingen", "history-of-ethereum": "Geschiedenis van Ethereum", "home": "Home", "how-ethereum-works": "Hoe Ethereum werkt", + "how-to-register-an-ethereum-account": "Hoe een Ethereum-account registreren", + "how-to-revoke-token-access": "Hoe toegang via slimme contracten tot uw cryptofondsen herroepen", + "how-to-swap-tokens": "Hoe tokens wisselen", + "how-to-use-a-bridge": "Hoe tokens naar laag 2 bridgen", + "how-to-use-a-wallet": "Hoe een wallet gebruiken", "image": "afbeelding", "in-this-section": "In deze sectie", "individuals": "Personen", @@ -82,6 +110,7 @@ "layer-2": "Laag 2", "learn": "Info", "learn-by-coding": "Leer door coderen", + "learn-hub": "Hub leren", "learn-menu": "Leer menu", "learn-more": "Meer informatie", "less": "Minder", @@ -96,22 +125,30 @@ "nav-developers": "Ontwikkelaars", "nav-developers-docs": "Ontwikkelaarsdocumenten", "nav-primary": "Primair", + "nfts": "NFT's", "no": "Nee", "on-this-page": "Op deze pagina", "open-research": "Onderzoek openen", "page-last-updated": "Pagina laatst bijgewerkt", + "pbs": "Scheiding proposer-builder", "privacy-policy": "Privacybeleid", "private-ethereum": "Private Ethereum", "refresh": "Ververs de pagina.", "return-home": "terug naar startpagina", + "roadmap": "Ethereum-roadmap", "run-a-node": "Run een node", "rollup-component-website": "Website", "rollup-component-developer-docs": "Ontwikkelaarsdocumenten", "rollup-component-technology-and-risk-summary": "Technologie en risicosamenvatting", + "scaling": "Schalen", "search": "Zoeken", + "search-ethereum-org": "Zoeken op ethereum.org", + "secret-leader-election": "Geheime verkiezing van leider", "search-box-blank-state-text": "Zoeken maar!", "search-eth-address": "Dit lijkt op een Ethereum-adres. We verstrekken geen specifieke gegevens. Probeer het te zoeken op een block explorer zoals", "search-no-results": "Geen zoekresulaten", + "single-slot-finality": "Single-slot finaliteit", + "statelessness": "Statelessness", "see-contributors": "Bekijk bijdragers", "set-up-local-env": "Lokale omgeving instellen", "sharding": "Sharden", @@ -122,10 +159,13 @@ "skip-to-main-content": "Naar hoofdinhoud gaan", "smart-contracts": "Smart contracten", "stablecoins": "Stablecoins", + "stake-eth": "Stake ETH", "staking": "Staken", + "style-guide": "Stijlgids", "solo": "Solo staking", "saas": "Staking as a service", "pools": "Gepoolde staking", + "withdrawals": "Opnames staken", "terms-of-use": "Gebruiksvoorwaarden", "translation-banner-body-new": "Je bekijkt deze pagina in het Engels omdat we hem nog niet hebben vertaald. Help ons deze inhoud te vertalen.", "translation-banner-body-update": "Er is een nieuwe versie van deze pagina, maar die is momenteel alleen in het Engels. Help ons de nieuwste versie te vertalen.", @@ -138,11 +178,15 @@ "translation-banner-no-bugs-dont-show-again": "Niet meer tonen", "try-using-search": "Gebruik zoekopdracht om te vinden waar u naar op zoek bent", "tutorials": "Tutorials", + "up": "Naar boven", "use-ethereum": "Ethereum gebruiken", "use-ethereum-menu": "Ethereum-menu gebruiken", + "user-experience": "Gebruikerservaring", + "verkle-trees": "Verkle-bomen", "wallets": "Wallets", "we-couldnt-find-that-page": "We konden die pagina niet vinden", "web3": "Wat is Web3?", + "web3-title": "Web3", "website-last-updated": "Website laatst bijgewerkt", "what-is-ether": "Wat is ether (ETH)?", "what-is-ethereum": "Wat is Ethereum?", @@ -153,6 +197,7 @@ "decentralized-identity": "Gedecentraliseerde identiteit", "yes": "Ja", "zero-knowledge-proofs": "Zero-knowledge proofs", + "ethereum-roadmap": "Ethereum-roadmap", "page-index-meta-title": "Home", - "page-developers-aria-label": "Menu voor ontwikkelaars" + "page-developers-aria-label": "Ontwikkelaars Menu" } From a1c4f6add0604a3a5974a0fb85f5748867079b4c Mon Sep 17 00:00:00 2001 From: Joshua <62268199+minimalsm@users.noreply.github.com> Date: Tue, 27 Jun 2023 14:52:14 +0100 Subject: [PATCH 165/186] Update Filipino in Crowdin import script --- src/scripts/crowdin-import.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/scripts/crowdin-import.ts b/src/scripts/crowdin-import.ts index 3d15b0e31aa..c379c1f22d1 100644 --- a/src/scripts/crowdin-import.ts +++ b/src/scripts/crowdin-import.ts @@ -44,6 +44,7 @@ const USER_SELECTION: UserSelectionObject = { es: [], fa: [], fi: [], + fil: [], fr: [], gl: [], gu: [], @@ -65,7 +66,6 @@ const USER_SELECTION: UserSelectionObject = { nb: [], nl: [], pcm: [], - ph: [], pl: [], pt: [], "pt-br": [], From cd4c44a2f15a8622dc27608929fc172a7e63bb4a Mon Sep 17 00:00:00 2001 From: Pablo Pettinari Date: Tue, 27 Jun 2023 11:14:06 -0300 Subject: [PATCH 166/186] add blur effect on softare box section --- src/pages/run-a-node.tsx | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/pages/run-a-node.tsx b/src/pages/run-a-node.tsx index 6ae0848ed5f..68e942af020 100644 --- a/src/pages/run-a-node.tsx +++ b/src/pages/run-a-node.tsx @@ -124,6 +124,18 @@ const SoftwareHighlight = (props: CenterProps) => ( borderRadius="base" color="text" flexDirection={{ base: "column", md: "row" }} + position="relative" + isolation="isolate" + sx={{ + "&::after": { + content: '""', + position: "absolute", + inset: 0, + zIndex: -1, + bg: "inherit", + filter: "blur(1rem)", + }, + }} {...props} /> ) From b3e5704625a1e474ce21d9cec7def68cec35a832 Mon Sep 17 00:00:00 2001 From: Corwin Smith Date: Tue, 27 Jun 2023 08:27:46 -0600 Subject: [PATCH 167/186] Update src/content/translations/pt-br/developers/docs/nodes-and-clients/archive-nodes/index.md --- .../developers/docs/nodes-and-clients/archive-nodes/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/translations/pt-br/developers/docs/nodes-and-clients/archive-nodes/index.md b/src/content/translations/pt-br/developers/docs/nodes-and-clients/archive-nodes/index.md index 6444b7710d4..cc120f43f6d 100644 --- a/src/content/translations/pt-br/developers/docs/nodes-and-clients/archive-nodes/index.md +++ b/src/content/translations/pt-br/developers/docs/nodes-and-clients/archive-nodes/index.md @@ -9,7 +9,7 @@ Um nó de arquivo é uma instância de um cliente Ethereum configurado para cons ## Pré-requisitos {#prerequisites} -Você deve entender o conceito de um [nó Ethereum](/developers/docs/nodes-and-clients/), [sua arquitetura](/developers/docs/nodes-and-clients/node-architecture/), [estratégias de sincronização](https://ethereum.org/en/developers/docs/nodes-and-clients/#sync-modes), práticas de [execução](/developers/docs/nodes-and-clients/run-a-node/) e [uso deles](/developers/docs/apis/json-rpc/). +Você deve entender o conceito de um [nó Ethereum](/developers/docs/nodes-and-clients/), [sua arquitetura](/developers/docs/nodes-and-clients/node-architecture/), [estratégias de sincronização](/developers/docs/nodes-and-clients/#sync-modes), práticas de [execução](/developers/docs/nodes-and-clients/run-a-node/) e [uso deles](/developers/docs/apis/json-rpc/). ## O que é um nó de arquivo From 0c50306e3c8d12d13545778b340cfe9dcf8e284e Mon Sep 17 00:00:00 2001 From: Corwin Smith Date: Tue, 27 Jun 2023 08:28:33 -0600 Subject: [PATCH 168/186] Update src/content/translations/pt-br/developers/docs/nodes-and-clients/archive-nodes/index.md --- .../developers/docs/nodes-and-clients/archive-nodes/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/translations/pt-br/developers/docs/nodes-and-clients/archive-nodes/index.md b/src/content/translations/pt-br/developers/docs/nodes-and-clients/archive-nodes/index.md index cc120f43f6d..b066742ebf1 100644 --- a/src/content/translations/pt-br/developers/docs/nodes-and-clients/archive-nodes/index.md +++ b/src/content/translations/pt-br/developers/docs/nodes-and-clients/archive-nodes/index.md @@ -56,7 +56,7 @@ Antes de iniciar seu próprio nó de arquivo, aprenda sobre as diferenças entre ## Práticas recomendadas -Além das [recomendações gerais para executar um nó](developers/docs/nodes-and-clients/run-a-node/), um nó de arquivo pode demandar mais hardware e manutenção. Considerando as [principais funcionalidades](https://github.com/ledgerwatch/erigon#key-features) do Erigon, a abordagem mais prática é usar a implementação cliente do [Erigon](/developers/docs/nodes-and-clients/#erigon). +Além das [recomendações gerais para executar um nó](/developers/docs/nodes-and-clients/run-a-node/), um nó de arquivo pode demandar mais hardware e manutenção. Considerando as [principais funcionalidades](https://github.com/ledgerwatch/erigon#key-features) do Erigon, a abordagem mais prática é usar a implementação cliente do [Erigon](/developers/docs/nodes-and-clients/#erigon). ### Hardware From bbed30ba88cf3fcbdac1aa19f0a8a4ac47d23ce0 Mon Sep 17 00:00:00 2001 From: Corwin Smith Date: Tue, 27 Jun 2023 08:28:53 -0600 Subject: [PATCH 169/186] Update src/content/translations/pt-br/developers/docs/apis/javascript/index.md --- .../translations/pt-br/developers/docs/apis/javascript/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/translations/pt-br/developers/docs/apis/javascript/index.md b/src/content/translations/pt-br/developers/docs/apis/javascript/index.md index 694587c3b9b..a5fe3e33f70 100644 --- a/src/content/translations/pt-br/developers/docs/apis/javascript/index.md +++ b/src/content/translations/pt-br/developers/docs/apis/javascript/index.md @@ -284,7 +284,7 @@ _Conhece algum recurso da comunidade que o ajudou? Edite essa página e adicione ## Tópicos relacionados {#related-topics} -- [ Nós e clientes](/developers/docs/nodes-and-clients/) +- [Nós e clientes](/developers/docs/nodes-and-clients/) - [Estruturas de desenvolvimento](/developers/docs/frameworks/) ## Tutoriais relacionados {#related-tutorials} From 4870bf2466be1ecf87d792452628434734c894b2 Mon Sep 17 00:00:00 2001 From: Corwin Smith Date: Tue, 27 Jun 2023 08:29:51 -0600 Subject: [PATCH 170/186] Update src/content/translations/pt-br/developers/docs/standards/tokens/erc-1155/index.md --- .../pt-br/developers/docs/standards/tokens/erc-1155/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/translations/pt-br/developers/docs/standards/tokens/erc-1155/index.md b/src/content/translations/pt-br/developers/docs/standards/tokens/erc-1155/index.md index 3d3273616a7..5d020ddb8b2 100644 --- a/src/content/translations/pt-br/developers/docs/standards/tokens/erc-1155/index.md +++ b/src/content/translations/pt-br/developers/docs/standards/tokens/erc-1155/index.md @@ -1,6 +1,6 @@ --- title: Padrão Multi-Token ERC-1155 -description: +description: Token lang: pt-br --- From 111b1ebe35c6ebdc08d1b7d467a15561e30a0429 Mon Sep 17 00:00:00 2001 From: Corwin Smith Date: Tue, 27 Jun 2023 08:31:45 -0600 Subject: [PATCH 171/186] Update src/content/translations/pt-br/developers/docs/standards/tokens/erc-721/index.md --- .../pt-br/developers/docs/standards/tokens/erc-721/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/translations/pt-br/developers/docs/standards/tokens/erc-721/index.md b/src/content/translations/pt-br/developers/docs/standards/tokens/erc-721/index.md index aceb816ebb7..8afa0ab2c15 100644 --- a/src/content/translations/pt-br/developers/docs/standards/tokens/erc-721/index.md +++ b/src/content/translations/pt-br/developers/docs/standards/tokens/erc-721/index.md @@ -1,6 +1,6 @@ --- title: ERC-721 Padrão de token não-fungível -description: +description: Token lang: pt-br --- From 030b217f4336a7392ec70a86902d1d48f42326fd Mon Sep 17 00:00:00 2001 From: Corwin Smith Date: Tue, 27 Jun 2023 08:31:51 -0600 Subject: [PATCH 172/186] Update src/content/translations/pt-br/developers/docs/standards/tokens/erc-20/index.md --- .../pt-br/developers/docs/standards/tokens/erc-20/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/translations/pt-br/developers/docs/standards/tokens/erc-20/index.md b/src/content/translations/pt-br/developers/docs/standards/tokens/erc-20/index.md index 8fc711a1287..f0b84354eb3 100644 --- a/src/content/translations/pt-br/developers/docs/standards/tokens/erc-20/index.md +++ b/src/content/translations/pt-br/developers/docs/standards/tokens/erc-20/index.md @@ -1,6 +1,6 @@ --- title: Padrão de token ERC-20 -description: +description: Token lang: pt-br --- From 1573521531bf7d20ab0f9b9a5ecc62e4f63c89cd Mon Sep 17 00:00:00 2001 From: Corwin Smith Date: Tue, 27 Jun 2023 08:31:56 -0600 Subject: [PATCH 173/186] Update src/content/translations/pt-br/developers/docs/standards/tokens/erc-777/index.md --- .../pt-br/developers/docs/standards/tokens/erc-777/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/translations/pt-br/developers/docs/standards/tokens/erc-777/index.md b/src/content/translations/pt-br/developers/docs/standards/tokens/erc-777/index.md index 7c5f482e41a..da86904e165 100644 --- a/src/content/translations/pt-br/developers/docs/standards/tokens/erc-777/index.md +++ b/src/content/translations/pt-br/developers/docs/standards/tokens/erc-777/index.md @@ -1,6 +1,6 @@ --- title: Padrão de token ERC-777 -description: +description: Token lang: pt-br --- From edf8f8c80eb6c2a58ced909233208fc779f58582 Mon Sep 17 00:00:00 2001 From: Corwin Smith Date: Tue, 27 Jun 2023 08:32:01 -0600 Subject: [PATCH 174/186] Update src/content/translations/pt-br/developers/docs/standards/tokens/index.md --- .../pt-br/developers/docs/standards/tokens/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/translations/pt-br/developers/docs/standards/tokens/index.md b/src/content/translations/pt-br/developers/docs/standards/tokens/index.md index fc195752973..6f20013c39e 100644 --- a/src/content/translations/pt-br/developers/docs/standards/tokens/index.md +++ b/src/content/translations/pt-br/developers/docs/standards/tokens/index.md @@ -1,6 +1,6 @@ --- title: Padrões de token -description: +description: Token lang: pt-br incomplete: true --- From ac2c7bfd8363d72a4e9d6e3d51744be67fac966c Mon Sep 17 00:00:00 2001 From: Joshua <62268199+minimalsm@users.noreply.github.com> Date: Tue, 27 Jun 2023 15:49:31 +0100 Subject: [PATCH 175/186] Update Italian (it) buckets 3,6,8,9,10,14,15,23 --- .../translations/it/community/grants/index.md | 14 +- .../it/community/support/index.md | 3 +- .../it/developers/docs/apis/backend/index.md | 56 +- .../developers/docs/apis/javascript/index.md | 15 +- .../it/developers/docs/apis/json-rpc/index.md | 359 +++--- .../consensus-mechanisms/pow/mining/index.md | 18 +- .../dagger-hashimoto/index.md | 334 ++++++ .../mining/mining-algorithms/ethash/index.md | 1014 +++++++++++++++++ .../pow/mining/mining-algorithms/index.md | 37 + .../block-explorers/index.md | 14 +- .../docs/data-and-analytics/index.md | 4 +- .../developers/docs/ethereum-stack/index.md | 4 +- .../it/developers/docs/frameworks/index.md | 33 +- .../it/developers/docs/ides/index.md | 15 +- .../programming-languages/python/index.md | 11 +- .../docs/programming-languages/rust/index.md | 30 +- .../it/developers/docs/storage/index.md | 41 +- .../translations/it/enterprise/index.md | 1 + .../it/enterprise/private-ethereum/index.md | 2 +- .../index.md | 68 ++ .../how-to-revoke-token-access/index.md | 73 ++ .../it/guides/how-to-swap-tokens/index.md | 67 ++ .../it/guides/how-to-use-a-bridge/index.md | 70 ++ .../it/guides/how-to-use-a-wallet/index.md | 88 ++ src/content/translations/it/guides/index.md | 29 + src/content/translations/it/nft/index.md | 279 ++--- .../it/roadmap/account-abstraction/index.md | 126 ++ .../it/roadmap/beacon-chain/index.md | 29 +- .../it/roadmap/danksharding/index.md | 91 ++ .../it/roadmap/future-proofing/index.md | 38 + src/content/translations/it/roadmap/index.md | 117 ++ .../translations/it/roadmap/merge/index.md | 56 +- .../it/roadmap/merge/issuance/index.md | 134 +++ .../translations/it/roadmap/pbs/index.md | 51 + .../translations/it/roadmap/scaling/index.md | 47 + .../roadmap/secret-leader-election/index.md | 44 + .../translations/it/roadmap/security/index.md | 48 + .../it/roadmap/single-slot-finality/index.md | 66 ++ .../it/roadmap/statelessness/index.md | 103 ++ .../it/roadmap/user-experience/index.md | 36 + .../it/roadmap/verkle-trees/index.md | 65 ++ .../translations/it/staking/pools/index.md | 8 +- .../translations/it/staking/saas/index.md | 18 +- .../translations/it/staking/solo/index.md | 76 +- .../it/staking/withdrawals/index.md | 218 ++++ src/intl/it/learn-quizzes.json | 311 ++++- src/intl/it/page-about.json | 4 +- src/intl/it/page-dapps.json | 292 ++--- src/intl/it/page-learn.json | 139 +++ src/intl/it/page-stablecoins.json | 232 ++-- src/intl/it/page-staking.json | 34 +- ...page-upgrades-get-involved-bug-bounty.json | 47 + src/intl/it/page-upgrades-index.json | 8 +- src/intl/it/page-upgrades-vision.json | 67 ++ src/intl/it/page-upgrades.json | 5 +- src/intl/it/template-usecase.json | 2 +- 56 files changed, 4435 insertions(+), 756 deletions(-) create mode 100644 src/content/translations/it/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/dagger-hashimoto/index.md create mode 100644 src/content/translations/it/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/ethash/index.md create mode 100644 src/content/translations/it/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/index.md create mode 100644 src/content/translations/it/guides/how-to-create-an-ethereum-account/index.md create mode 100644 src/content/translations/it/guides/how-to-revoke-token-access/index.md create mode 100644 src/content/translations/it/guides/how-to-swap-tokens/index.md create mode 100644 src/content/translations/it/guides/how-to-use-a-bridge/index.md create mode 100644 src/content/translations/it/guides/how-to-use-a-wallet/index.md create mode 100644 src/content/translations/it/guides/index.md create mode 100644 src/content/translations/it/roadmap/account-abstraction/index.md create mode 100644 src/content/translations/it/roadmap/danksharding/index.md create mode 100644 src/content/translations/it/roadmap/future-proofing/index.md create mode 100644 src/content/translations/it/roadmap/index.md create mode 100644 src/content/translations/it/roadmap/merge/issuance/index.md create mode 100644 src/content/translations/it/roadmap/pbs/index.md create mode 100644 src/content/translations/it/roadmap/scaling/index.md create mode 100644 src/content/translations/it/roadmap/secret-leader-election/index.md create mode 100644 src/content/translations/it/roadmap/security/index.md create mode 100644 src/content/translations/it/roadmap/single-slot-finality/index.md create mode 100644 src/content/translations/it/roadmap/statelessness/index.md create mode 100644 src/content/translations/it/roadmap/user-experience/index.md create mode 100644 src/content/translations/it/roadmap/verkle-trees/index.md create mode 100644 src/content/translations/it/staking/withdrawals/index.md create mode 100644 src/intl/it/page-learn.json create mode 100644 src/intl/it/page-upgrades-get-involved-bug-bounty.json create mode 100644 src/intl/it/page-upgrades-vision.json diff --git a/src/content/translations/it/community/grants/index.md b/src/content/translations/it/community/grants/index.md index 9ac65feabde..77f6117deb6 100644 --- a/src/content/translations/it/community/grants/index.md +++ b/src/content/translations/it/community/grants/index.md @@ -20,7 +20,8 @@ Questi programmi supportano il grande ecosistema di Ethereum offrendo sovvenzion - [Moloch DAO](https://www.molochdao.com/) - _Privacy, ridimensionamento di livello 2, sicurezza del client e molto altro_ - [Sovvenzioni aperte](https://opengrants.com/explore) - [DAO Grants](https://docs.google.com/spreadsheets/d/1XHc-p_MHNRdjacc8uOEjtPoWL86olP4GyxAJOFO0zxY/edit#gid=0) - _Foglio di calcolo di Google delle organizzazioni che offrono sovvenzioni_ -- [Sovvenzioni accademiche](https://esp.ethereum.foundation/academic-grants-2023) - _Sovvenzioni per sostenere il lavoro accademico correlato a Ethereum_ +- [Crunchbase per sovvenzioni Web3](https://www.cryptoneur.xyz/web3-grants) - _Filtra e cerca sovvenzioni per categorie, casi d'uso, importi e altro. Contribuisci ad aiutare gli altri a trovare la giusta sovvenzione._ +- [Sovvenzioni accademiche](https://esp.ethereum.foundation/academic-grants) - _Sovvenzioni per sostenere il lavoro accademico correlato a Ethereum_ ## Programmi per progetti specifici {#project-specific} @@ -30,12 +31,13 @@ Questi progetti hanno creato le proprie sovvenzioni per progetti volti a svilupp - [Balancer](https://balancergrants.notion.site/Balancer-Community-Grants-23e562c5bc4347cd8304637bff0058e6) – _[Balancer](https://balancer.fi/) ecosystem fund_ - [Chainlink Grants Program](https://chain.link/community/grants) - _Sovvenzioni per la comunity di [Chainlink](https://chain.link/)_ - [Compound Grants Program](https://compoundgrants.org/) – _Ecosistema finanziario [Compound](https://compound.finance/)_ +- [Decentraland Grants Program](https://governance.decentraland.org/grants/) - _Metaverso DAO di [Decentraland](https://decentraland.org/)_ - [Lido Ecosystem Grants Organisation (LEGO)](https://lego.lido.fi/) – _Ecosistema finanziario di [Lido](https://lido.fi/)_ -- [Programma di MetaMask](https://metamaskgrants.org/): _DAO di sovvenzioni operata dai dipendenti di [MetaMask](https://metamask.io/)_ -- [Programma di Sovvenzioni di mStable](https://docs.mstable.org/advanced/grants-program) - _Community di [mStable](https://mstable.org/)_ -- [The Graph](https://airtable.com/shrdfvnFvVch3IOVm) – _Ecosistema di [The Graph](https://thegraph.com/)_ -- [Programma di Sovvenzioni UMA](https://grants.umaproject.org/): _Supporto per sviluppatori dell'[UMA](https://umaproject.org/)_ -- [Programma di Sovvenzioni di Uniswap](https://www.unigrants.org/) – _Community di [Uniswap](https://uniswap.org/)_ +- [MetaMask Program](https://metamaskgrants.org/): _DAO di sovvenzioni operata dai dipendenti di [MetaMask](https://metamask.io/)_ +- [mStable Grants Program](https://docs.mstable.org/advanced/grants-program) - _Community [mStable](https://mstable.org/)_ +- [The Graph](https://airtable.com/shrdfvnFvVch3IOVm) – _Ecosistema [The Graph](https://thegraph.com/)_ +- [UMA Grants Program](https://grants.umaproject.org/): _Supporto per sviluppatori [UMA](https://umaproject.org/)_ +- [Uniswap Grants Program](https://www.unigrants.org/) – _Community [Uniswap](https://uniswap.org/)_ - [Sovvenzioni Web3](https://web3grants.net): _Un elenco completo di programmi di sovvenzione relativi a web3/cripto_ ## Finanziamento quadratico {#quadratic-funding} diff --git a/src/content/translations/it/community/support/index.md b/src/content/translations/it/community/support/index.md index 6d18d844cb2..96e96738c49 100644 --- a/src/content/translations/it/community/support/index.md +++ b/src/content/translations/it/community/support/index.md @@ -38,10 +38,11 @@ Cerchi un portafoglio Ethereum? [Esplora il nostro elenco completo di portafogli La costruzione può essere difficile. Ecco alcuni spazi focalizzati sullo sviluppo, con sviluppatori Ethereum esperti che sono felici di aiutarti. +- [Alchemy University](https://university.alchemy.com/#starter_code) - [CryptoDevs discord](https://discord.gg/Z9TA39m8Yu) - [StackExchange Ethereum](https://ethereum.stackexchange.com/) - [StackOverflow](https://stackoverflow.com/questions/tagged/web3) -- [Università Web3](https://www.web3.university/) +- [Web3 University](https://www.web3.university/) Puoi anche trovare la documentazione e le guide di sviluppo nella nostra sezione [risorse per sviluppatore Ethereum](/developers/). diff --git a/src/content/translations/it/developers/docs/apis/backend/index.md b/src/content/translations/it/developers/docs/apis/backend/index.md index 2f721ac1933..c8ee2d3b450 100644 --- a/src/content/translations/it/developers/docs/apis/backend/index.md +++ b/src/content/translations/it/developers/docs/apis/backend/index.md @@ -32,6 +32,12 @@ Queste librerie eliminano buona parte della complessità legata al dover interag - [blockcypher.com](https://www.blockcypher.com/) - [Documentazione](https://www.blockcypher.com/dev/ethereum/) +**Blast by Bware Labs -** **_API decentralizzate per la rete principale e le reti di prova di Ethereum._** + +- [blastapi.io](https://blastapi.io/) +- [Documentazione](https://docs.blastapi.io) +- [Discord](https://discord.com/invite/VPkWESgtvV) + **Infura -** **_L'API Ethereum come servizio_** - [infura.io](https://infura.io) @@ -42,21 +48,33 @@ Queste librerie eliminano buona parte della complessità legata al dover interag - [cloudflare-eth.com](https://cloudflare-eth.com) -**DataHub di Figment -** **_Servizi API Web3 con Rete principale e rete di prova di Ethereum._** +**Nodo cloud di Coinbase-** **_API per l'infrastruttura della Blockchain._** + +- [Nodo in cloud di Coinbase](https://www.coinbase.com/cloud/products/node) +- [Documentazione](https://docs.cloud.coinbase.com/node/reference/welcome-to-node) + +**DataHub di Figment -** **_Servizi API Web3 con la Rete principale e le reti di prova di Ethereum._** - [DataHub](https://www.figment.io/datahub) - [Documentazione](https://docs.figment.io/introduction/what-is-datahub) -**Nodesmith -** **_Accesso dell’API JSON-RPC alla Rete principale e rete di prova Ethereum._** +**NFTPort -** **_Dati di Ethereum e API di Mint._** + +- [nftport.xyz](https://www.nftport.xyz/) +- [Documentazione](https://docs.nftport.xyz/) +- [GitHub](https://github.com/nftport/) +- [Discord](https://discord.com/invite/K8nNrEgqhE) + +**Nodesmith -** **_Accesso dell’API JSON-RPC alla Rete Principale e alle reti di prova di Ethereum._** - [nodesmith.io](https://nodesmith.io/network/ethereum/) - [Documentazione](https://nodesmith.io/docs/#/ethereum/apiRef) -**Ethercluster -** **_Esegui un servizio API Ethereum personalizzato che supporta sia ETH che ETC_** +**Ethercluster -** **_Esegui il tuo servizio API di Ethereum che supporta sia ETH che ETC_** - [ethercluster.com](https://www.ethercluster.com/) -**Catainstack -** **_Nodi Ethereum elastici e dedicati come servizio_** +**Catainstack -** **_Nodi di Ethereum elastici e dedicati come servizio_** - [chainstack.com](https://chainstack.com) - [Documentazione](https://docs.chainstack.com) @@ -74,13 +92,13 @@ Queste librerie eliminano buona parte della complessità legata al dover interag - [web3.py GitHub](https://github.com/ethereum/web3.py) - [web3.py Chat](https://gitter.im/ethereum/web3.py) -**web3j -** **_Libreria di integrazione Java/Android/Kotlin/Scala per Ethereum_** +**web3j -** **_Libreria di integrazione di Java/Android/Kotlin/Scala per Ethereum_** - [GitHub](https://github.com/web3j/web3j) -- [Documentazione](https://docs.web3j.io/) +- [Docs](https://docs.web3j.io/) - [Gitter](https://gitter.im/web3j/web3j) -**Rivet -** **_API Ethereum ed Ethereum Classic come servizio, supportate da software open source_** +**Rivet -** **_API di Ethereum ed Ethereum Classic come servizio, supportate da software open source._** - [rivet.cloud](https://rivet.cloud) - [Documentazione](https://rivet.cloud/docs/) @@ -112,16 +130,34 @@ Queste librerie eliminano buona parte della complessità legata al dover interag - [Documentazione](https://docs.zmok.io/) - [Discord](https://discord.gg/fAHeh3ka6s) +**NOWNodes - _Nodi completi ed esploratori di blocchi._** + +- [NOWNodes.io](https://nownodes.io/) +- [Documentazione](https://documenter.getpostman.com/view/13630829/TVmFkLwy#intro) + +**Moralis**: **_Fornitore di API EVM di livello enterprise._** + +- [moralis.io](http://moralis.io) +- [Documentazione](https://docs.moralis.io/) +- [GitHub](https://github.com/MoralisWeb3) +- [Discord](https://discord.com/invite/KYswaxwEtg) +- [Forum](https://forum.moralis.io/) + +\*_GetBlock- Blockchain-as-a-service per lo sviluppo in Web3_ + +- [GetBlock.io](https://getblock.io/) +- [Documentazione](https://getblock.io/docs/) + ## Letture consigliate {#further-reading} _Conosci una risorsa pubblica che ti è stata utile? Modifica questa pagina e aggiungila!_ ## Argomenti correlati {#related-topics} -- [Nodi e client](/developers/docs/nodes-and-clients/) -- [Framework di sviluppo](/developers/docs/frameworks/) +- [ Nodi e client](/developers/docs/nodes-and-clients/) +- [Quadri di sviluppo](/developers/docs/frameworks/) ## Tutorial correlati {#related-tutorials} - [Set up Web3js to use the Ethereum blockchain in JavaScript](/developers/tutorials/set-up-web3js-to-use-ethereum-in-javascript/) _– Istruzioni per impostare web3.js in un progetto._ -- [Chiamare un contratto intelligente da JavaScript](/developers/tutorials/calling-a-smart-contract-from-javascript/) _- Usando il token Dai, impara come chiamare le funzioni dei contratti usando JavaScript_ +- [Chiamare un contratto intelligente da JavaScript](/developers/tutorials/calling-a-smart-contract-from-javascript/): _Usando il token DAI, impara come chiamare la funzione dei contratti usando JavaScript._ diff --git a/src/content/translations/it/developers/docs/apis/javascript/index.md b/src/content/translations/it/developers/docs/apis/javascript/index.md index 8d7af78c2ad..75732610668 100644 --- a/src/content/translations/it/developers/docs/apis/javascript/index.md +++ b/src/content/translations/it/developers/docs/apis/javascript/index.md @@ -10,7 +10,7 @@ Per questo scopo, ogni client di Ethereum implementa la specifica [JSON-RPC](/de Se desideri utilizzare JavaScript per connetterti a un nodo Ethereum, puoi usare Javascript vanilla, ma tieni presente che ci sono già molte librerie all'interno dell'ecosistema che possono facilitarti la vita. Con queste librerie, gli sviluppatori possono scrivere metodi a una riga intuitivi per inizializzare le richieste RPC JSON (under the hood) che interagiscono con Ethereum. -Sei pregato di notare che, a partire dalla [Fusione](/roadmap/merge/), per operare un nodo occorrono due elementi di software di Ethereum connessi (un client di esecuzione e un client di consenso). Assicurati che il tuo nodo includa sia un client di esecuzione che un client di consenso. Se il tuo nodo non si trova sulla tua macchina locale (ad es. se è in esecuzione su un'istanza AWS), occorrerà aggiornare di conseguenza gli indirizzi IP nel tutorial. Per ulteriori informazioni, consulta la nostra pagina sull'[esecuzione di un nodo](/developers/docs/nodes-and-clients/run-a-node/). +Si noti che, a partire da [La Fusione](/roadmap/merge/), per eseguire un nodo occorrono due elementi di software di Ethereum connessi (un client di esecuzione e un client di consenso). Assicurati che il tuo nodo includa sia un client di esecuzione che un client di consenso. Se il tuo nodo non si trova sulla tua macchina locale (ad es. se è in esecuzione su un'istanza AWS), occorrerà aggiornare di conseguenza gli indirizzi IP nel tutorial. Per ulteriori informazioni, consulta la nostra pagina sull'[esecuzione di un nodo](/developers/docs/nodes-and-clients/run-a-node/). ## Prerequisiti {#prerequisites} @@ -47,7 +47,7 @@ var web3 = new Web3("http://localhost:8545") var web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545")) // cambiamento di provider -web3.etProvider("ws://localhost:8546") +web3.setProvider("ws://localhost:8546") // o web3.setProvider(new Web3.providers.WebsocketProvider("ws://localhost:8546")) @@ -275,17 +275,22 @@ ethers.utils.formatEther(balance) - [Documentazione](https://docs.alchemy.com/alchemy/enhanced-apis/nft-api) - [GitHub](https://github.com/alchemyplatform/alchemy-web3) +**viem -** **_Interfaccia TypeScript per Ethereum._** + +- [Documentazione](https://viem.sh) +- [Github](https://github.com/wagmi-dev/viem) + ## Letture consigliate {#further-reading} _Conosci una risorsa pubblica che ti è stata utile? Modifica questa pagina e aggiungila!_ ## Argomenti correlati {#related-topics} -- [Nodi e client](/developers/docs/nodes-and-clients/) -- [Framework di sviluppo](/developers/docs/frameworks/) +- [ Nodi e client](/developers/docs/nodes-and-clients/) +- [Quadri di sviluppo](/developers/docs/frameworks/) ## Tutorial correlati {#related-tutorials} - [Set up Web3js to use the Ethereum blockchain in JavaScript](/developers/tutorials/set-up-web3js-to-use-ethereum-in-javascript/) _– Istruzioni per impostare web3.js in un progetto._ -- [Chiamare un contratto intelligente da JavaScript](/developers/tutorials/calling-a-smart-contract-from-javascript/) _- Usando il token DAI, impara come chiamare la funzione dei contratti usando JavaScript._ +- [Calling a Smart Contract from JavaScript](/developers/tutorials/calling-a-smart-contract-from-javascript/) _– Usando il token DAI, impara come funzionano i contratti di chiamata con JavaScript_ - [Sending transactions using web3 and Alchemy](/developers/tutorials/sending-transactions-using-web3-and-alchemy/) _– Istruzioni passo passo per l'invio di transazioni dal backend._ diff --git a/src/content/translations/it/developers/docs/apis/json-rpc/index.md b/src/content/translations/it/developers/docs/apis/json-rpc/index.md index b4681c973d6..86e1394a79c 100644 --- a/src/content/translations/it/developers/docs/apis/json-rpc/index.md +++ b/src/content/translations/it/developers/docs/apis/json-rpc/index.md @@ -6,7 +6,7 @@ lang: it Affinché un'applicazione software interagisca con la blockchain di Ethereum, leggendo i dati della blockchain o inviando transazioni alla rete, deve connettersi a un nodo di Ethereum. -A tale scopo, ogni [client di Ethereum](/developers/docs/nodes-and-clients/#execution-clients) implementa una [specifica JSON-RPC](https://github.com/ethereum/execution-apis), in modo che sia disponibile un insieme di metodi uniformi a cui possono affidarsi le applicazioni, indipendentemente dal nodo specifico o dall'implementazione del client. +Per questo scopo, ogni [client di Ethereum](/developers/docs/nodes-and-clients/#execution-clients) implementa una [specifica JSON-RPC](https://github.com/ethereum/execution-apis), quindi esiste un insieme uniforme di metodi cui le applicazioni possono affidarsi, indipendentemente dagli specifici nodi o implementazioni del client. [JSON-RPC](https://www.jsonrpc.org/specification) è un protocollo di chiamata a procedura remota (RPC) leggero e privo di stato. Definisce diverse strutture di dati e le regole per la loro elaborazione. È indipendente dal trasporto, poiché i concetti sono utilizzabili entro lo stesso processo, su prese, via HTTP o in svariati ambienti di passaggio dei messaggi. Usa JSON (RFC 4627) come formato dei dati. @@ -75,6 +75,8 @@ Le seguenti opzioni sono possibili per il parametro defaultBlock: - `HEX String` - un numero intero del blocco - `String "earliest"` per il primo blocco o quello di genesi - `String "latest"` - per l'ultimo blocco estratto +- `String "safe"` - per l'ultimo blocco di testa sicuro +- `String "finalized"` - per l'ultimo blocco finalizzato - `String "pending"` - per lo stato/le transazioni in sospeso ## Esempi @@ -198,7 +200,11 @@ Nessuno `String` - L'id di rete corrente. -L'elenco completo degli ID di rete correnti è disponibile su [chainlist.org](https://chainlist.org). Alcuni ID comuni sono: `1`: Mainnet di Ethereum `2`: Testnet di Morden (ora deprecata) `3`: Testnet di Ropsten `4`: Testnet di Rinkeby `5`: Testnet di Goerli +L'elenco completo degli ID di rete correnti è disponibile su [chainlist.org](https://chainlist.org). Alcuni ID comuni sono: + +- `1`: Rete Principale di Ethereum +- `5`: rete di prova Goerli +- `11155111`: rete di prova Sepolia **Esempio** @@ -265,7 +271,7 @@ curl -X POST --data '{"jsonrpc":"2.0","method":"net_peerCount","params":[],"id": ### eth_protocolVersion {#eth_protocolversion} -Restituisce la versione del protocollo di Ethereum corrente. +Restituisce la versione corrente del protocollo di Ethereum. Si noti che questo metodo [non è disponibile su Geth](https://github.com/ethereum/go-ethereum/pull/22064#issuecomment-788682924). **Parametri** @@ -352,9 +358,34 @@ curl -X POST --data '{"jsonrpc":"2.0","method":"eth_coinbase","params":[],"id":6 } ``` +## eth_chainId {#eth_chainId} + +Restituisce l'ID della catena utilizzato per firmare le transazioni protette da riproduzione. + +**Parametri** + +Nessuno + +**Restituisce** + +`chainId`, valore esadecimale come stringa rappresentante l'intero dell'ID della catena corrente. + +**Esempio** + +```js +// Request +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_chainId","params":[],"id":67}' +// Result +{ + "id":67, + "jsonrpc": "2.0", + "result": "0x1" +} +``` + ### eth_mining {#eth_mining} -Restituisce `true` se il client sta minando attivamente i nuovi blocchi. +Restituisce `true` se il client sta minando attivamente nuovi blocchi. **Parametri** @@ -404,7 +435,7 @@ curl -X POST --data '{"jsonrpc":"2.0","method":"eth_hashrate","params":[],"id":7 ### eth_gasPrice {#eth_gasprice} -Restituisce il prezzo corrente del gas in wei. +Restituisce il prezzo corrente del carburante in wei. **Parametri** @@ -412,7 +443,7 @@ Nessuno **Restituisce** -`QUANTITY`: intero del prezzo corrente del gas in wei. +`QUANTITY` - intero del prezzo corrente del carburante in wei. **Esempio** @@ -462,7 +493,7 @@ Nessuno **Restituisce** -`QUANTITY` - Intero del numero di blocco corrente su cui è attivo il client. +`QUANTITY` - intero del numero di blocco corrente su cui è attivo il client. **Esempio** @@ -484,7 +515,7 @@ Restituisce il saldo del conto dell'indirizzo dato. **Parametri** 1. `DATA`, 20 Byte - indirizzo per controllare il saldo. -2. `QUANTITY|TAG` - numero intero del blocco o della stringa `"latest"`, `"earliest"` or `"pending"`, vedi il [parametro del blocco predefinito](/developers/docs/apis/json-rpc/#default-block-parameter) +2. `QUANTITY|TAG` - numero intero del blocco, o stringa `"latest"`, `"earliest"` o `"pending"`. Vedere il [parametro predefinito del blocco](/developers/docs/apis/json-rpc/#default-block) ```js params: ["0x407d73d8a49eeb85d32cf465507dd71d507100c1", "latest"] @@ -514,14 +545,14 @@ Restituisce il valore da una posizione di archiviazione a un dato indirizzo. **Parametri** 1. `DATA`, 20 Bytes - Indirizzo di archiviazione. -2. `QUANTITY` - Intero nella posizione di archiviazione. -3. `QUANTITY|TAG` - Numero di blocco intero o stringa`"latest"`, `"earliest"` o `"pending"`. Vedi il [parametro di blocco predefinito](/developers/docs/apis/json-rpc/#default-block-parameter) +2. `QUANTITY` - intero della posizione di archiviazione. +3. `QUANTITY|TAG` - numero intero del blocco, o stringa `"latest"`, `"earliest"` o `"pending"`. Vedere il [parametro predefinito del blocco](/developers/docs/apis/json-rpc/#default-block) **Restituisce** -`DATA` - Il valore in questa posizione di archiviazione. +`DATA` - il valore in questa posizione di archiviazione. -**Esempio** Il calcolo della posizione corretta dipende dalla memoria da recuperare. Considera il seguente contratto, distribuito su `0x295a70b2de5e3953354a6a8344e616ed314d7251` dall'indirizzo `0x391694e7e0b0cce554cb130d723a9d27458f9298`. +**Esempio** Il calcolo della posizione corretta dipende dall'archiviazione da recuperare. Considera il seguente contratto distribuito su `0x295a70b2de5e3953354a6a8344e616ed314d7251` dall'indirizzo `0x391694e7e0b0cce554cb130d723a9d27458f9298`. ``` contract Storage { @@ -547,7 +578,7 @@ Recuperare un elemento della mappa è più difficile. La posizione di un element keccack(LeftPad32(key, 0), LeftPad32(map position, 0)) ``` -Ciò significa che per recuperare lo storage su pos1["0x391694e7e0b0cce554cb130d723a9d27458f9298"] dobbiamo calcolare la posizione con: +Ciò significa che per recuperare l'archiviazione in pos1["0x391694e7e0b0cce554cb130d723a9d27458f9298"] dobbiamo calcolare la posizione con: ```js keccak( @@ -567,7 +598,7 @@ undefined "0x6661e9d6d8b923d5bbaab1b96e1dd51ff6ea2a93520fdc9eb75d059238b8c5e9" ``` -A questo punto, per recuperare lo spazio di archiviazione: +A questo punto, per recuperare l'archiviazione: ```js curl -X POST --data '{"jsonrpc":"2.0", "method": "eth_getStorageAt", "params": ["0x295a70b2de5e3953354a6a8344e616ed314d7251", "0x6661e9d6d8b923d5bbaab1b96e1dd51ff6ea2a93520fdc9eb75d059238b8c5e9", "latest"], "id": 1}' localhost:8545 @@ -576,12 +607,12 @@ curl -X POST --data '{"jsonrpc":"2.0", "method": "eth_getStorageAt", "params": [ ### eth_getTransactionCount {#eth_gettransactioncount} -Restituisce il numero di transazioni _inviate_ da un'indirizzo. +Restituisce il numero di transazioni _inviate_ da un indirizzo. **Parametri** 1. `DATA`, 20 Bytes - indirizzo. -2. `QUANTITY|TAG` - numero intero del blocco o stringa `"latest"`, `"earliest"` o `"pending"`. Vedi il [parametro del blocco predefinito](/developers/docs/apis/json-rpc/#default-block-parameter) +2. `QUANTITY|TAG` - numero intero del blocco, o stringa `"latest"`, `"earliest"` o `"pending"`. Vedere il [parametro predefinito del blocco](/developers/docs/apis/json-rpc/#default-block) ```js params: [ @@ -642,7 +673,7 @@ Restituisce il numero di transazioni in un blocco corrispondente al numero di bl **Parametri** -1. `QUANTITY|TAG` - numero intero del blocco o stringa `"latest"`, `"earliest"` o `"pending"`. Vedi il [parametro del blocco predefinito](/developers/docs/apis/json-rpc/#default-block-parameter). +1. `QUANTITY|TAG` - numero intero del blocco, o stringa `"earliest"`, `"latest"` o `"pending"`, come nel [parametro predefinito del blocco](/developers/docs/apis/json-rpc/#default-block). ```js params: [ @@ -652,7 +683,7 @@ params: [ **Restituisce** -`QUANTITY` - Intero del numero di transazioni in questo blocco. +`QUANTITY` - intero del numero di transazioni in questo blocco. **Esempio** @@ -681,7 +712,7 @@ params: ["0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238"] **Restituisce** -`QUANTITY` - Il numero intero di ommer in questo blocco. +`QUANTITY` - intero del numero di ommer in questo blocco. **Esempio** @@ -702,7 +733,7 @@ Restituisce il numero di ommer in un blocco da un blocco che corrisponde all'has **Parametri** -1. `QUANTITY|TAG` - Intero del numero di blocco o stringa "latest", "earliest" o "pending". Vedere il [parametro predefinito del blocco](/developers/docs/apis/json-rpc/#default-block-parameter) +1. `QUANTITY|TAG` - intero del numero di blocco, o stringa "latest", "earliest" o "pending". Vedere il [parametro predefinito del blocco](/developers/docs/apis/json-rpc/#default-block) ```js params: [ @@ -712,7 +743,7 @@ params: [ **Restituisce** -`QUANTITY` - Il numero intero di ommer in questo blocco. +`QUANTITY` - intero del numero di ommer in questo blocco. **Esempio** @@ -734,7 +765,7 @@ Restituisce il codice ad un indirizzo specificato. **Parametri** 1. `DATA`, 20 Bytes - indirizzo -2. `QUANTITY|TAG` - numero intero del blocco o la stringa `"latest"`, `"earliest"` o `"pending"`. Vedere il [parametro del blocco predefinito](/developers/docs/apis/json-rpc/#default-block-parameter) +2. `QUANTITY|TAG` - numero intero del blocco, o stringa `"latest"`, `"earliest"` o `"pending"`. Vedere il [parametro predefinito del blocco](/developers/docs/apis/json-rpc/#default-block) ```js params: [ @@ -745,7 +776,7 @@ params: [ **Restituisce** -`DATI` - il codice dall'indirizzo specificato. +`DATA` - il codice dall'indirizzo specificato. **Esempio** @@ -771,11 +802,11 @@ Nota: l'indirizzo con cui firmare deve essere sbloccato. **Parametri** 1. `DATA`, 20 Bytes - indirizzo -2. `DATI`, N Byte - messaggio da firmare +2. `DATA`, N Byte - messaggio da firmare **Restituisce** -`DATI`: Firma +`DATA`: Firma **Esempio** @@ -796,19 +827,19 @@ Firma una transazione che può essere inviata alla rete in un secondo momento ut **Parametri** -1. `Oggetto` - L'oggetto della transazione +1. `Object` - L'oggetto della transazione - `from`: `DATI`, 20 Bytes - L'indirizzo da cui viene inviata la transazione. - `to`: `DATI`, 20 Bytes - (opzionale quando si crea un nuovo contratto) L'indirizzo a cui è indirizzata la transazione. -- `gas`: `QUANTITÀ`: (facoltativo, predefinito: 90000) Intero del gas fornito per l'esecuzione della transazione. Restituirà il gas inutilizzato. -- `gasPrice`: `QUANTITY`: (facoltativo, predefinito: To-Be-Determined) Intero del gasPrice usato per ogni gas pagato, in Wei. -- `value`: `QUANTITÀ` - (opzionale) Intero del valore inviato con questa transazione, in Wei. +- `gas`: `QUANTITY`: (facoltativo, prededfinito: 90000) Intero del gas fornito per l'esecuzione della transazione. Restituirà il gas inutilizzato. +- `gasPrice`: `QUANTITY` - (facoltativo, predefinito: To-Be-Determined) Intero del gasPrice usato per ogni unità di carburante pagata, in Wei. +- `value`: `QUANTITY` - (facoltativo) Intero del valore inviato con questa transazione, in Wei. - `data`: `DATI` - Il codice compilato di un contratto OPPURE l'hash della firma del metodo richiamato e i parametri codificati. -- `nonce`: `QUANTITÀ` - (opzionale) Intero di una nonce. Ciò permette di sovrascrivere le proprie transazioni in sospeso che utilizzano la stessa nonce. +- `nonce`: `QUANTITÀ` - (opzionale) Intero di una nonce. Questo permette di sovrascrivere le tue transazioni in sospeso che utilizzano la stessa nonce. **Restituisce** -`DATI`, L'oggetto della transazione firmato. +`DATA`, L'oggetto della transazione firmato. **Esempio** @@ -825,19 +856,19 @@ curl -X POST --data '{"id": 1,"jsonrpc": "2.0","method": "eth_signTransaction"," ### eth_sendTransaction {#eth_sendtransaction} -Se il campo dati contiene il codice, crea una nuova transazione via messaggio o la stipula di un contratto. +Se il campo dati contiene codice, crea una nuova transazione di chiamata di messaggio o la stipula di un contratto. **Parametri** 1. `Oggetto` - L'oggetto della transazione -- `from`: `DATI`, 20 Bytes - L'indirizzo da cui viene inviata la transazione. -- `to`: `DATI`, 20 Bytes - (opzionale quando si crea un nuovo contratto) L'indirizzo a cui è indirizzata la transazione. -- `gas`: `QUANTITY`: (facoltativo, prededfinito: 90000) Intero del gas fornito per l'esecuzione della transazione. Restituirà il gas inutilizzato. -- `gasPrice`: `QUANTITY`: (facoltativo, predefinito: To-Be-Determined) Intero del gasPrice usato per ogni gas pagato. -- `value`: `QUANTITÀ` - (opzionale) Intero del valore inviato con questa transazione, in Wei. -- `data`: `DATI` - Il codice compilato di un contratto OPPURE l'hash della firma del metodo richiamato e i parametri codificati. -- `nonce`: `QUANTITÀ` - (opzionale) Intero di una nonce. Questo permette di sovrascrivere le tue transazioni in sospeso che utilizzano la stessa nonce. +- `from`: `DATA`, 20 Bytes - L'indirizzo da cui viene inviata la transazione. +- `to`: `DATA`, 20 Bytes - (opzionale quando si crea un nuovo contratto) L'indirizzo a cui è indirizzata la transazione. +- `gas`: `QUANTITY` - (facoltativo, predefinito: 90000) Intero del carburante fornito per l'esecuzione della transazione. Restituirà il carburante inutilizzato. +- `gasPrice`: `QUANTITY` - (facoltativo, predefinito: To-Be-Determined) Intero del gasPrice usato per ogni unità di carburante pagata. +- `value`: `QUANTITY` - (facoltativo) Intero del valore inviato con questa transazione, in Wei. +- `data`: `DATA` - Il codice compilato di un contratto OPPURE l'hash della firma del metodo richiamato e i parametri codificati. +- `nonce`: `QUANTITY` - (facoltativo) Intero di un nonce. Ciò permette di sovrascrivere le proprie transazioni in sospeso che utilizzano lo stesso nonce. ```js params: [ @@ -873,7 +904,7 @@ curl -X POST --data '{"jsonrpc":"2.0","method":"eth_sendTransaction","params":[{ ### eth_sendRawTransaction {#eth_sendrawtransaction} -Se il campo dati contiene il codice, crea una nuova transazione via messaggio o la stipula di un contratto,. +Crea una nuova transazione di chiamata di messaggio o la stipula di un contratto, per le transazioni firmate. **Parametri** @@ -887,9 +918,9 @@ params: [ **Restituisce** -`DATI`, 32 Bytes - l'hash della transazione, o l'hash zero se la transazione non è ancora disponibile. +`DATA`, 32 Bytes - l'hash della transazione, o l'hash zero se la transazione non è ancora disponibile. -Usa [eth_getTransactionReceipt](#eth_gettransactionreceipt) quando hai creato un contratto per ottenere l'indirizzo del contratto, dopo che la transazione è stata minata. +Usa [eth_getTransactionReceipt](#eth_gettransactionreceipt) quando hai creato un contratto per ottenere l'indirizzo del contratto dopo che la transazione è stata minata. **Esempio** @@ -906,20 +937,20 @@ curl -X POST --data '{"jsonrpc":"2.0","method":"eth_sendRawTransaction","params" ### eth_call {#eth_call} -Esegue immediatamente un nuovo messaggio di chiamata senza creare una transazione nella catena di blocchi. +Esegue immediatamente una nuova chiamata di messaggio senza creare una transazione nella blockchain. **Parametri** -1. `Oggetto` - L'oggetto della chiamata della transazione +1. `Object` - L'oggetto della chiamata della transazione -- `from`: `DATA`, 20 Bytes - (opzionale) L'indirizzo da cui viene inviata la transazione. +- `from`: `DATA`, 20 Bytes - (facoltativo) L'indirizzo da cui viene inviata la transazione. - `to`: `DATA`, 20 Bytes - L'indirizzo a cui è indirizzata la transazione. -- `gas`: `QUANTITY`: (facoltativo) Intero del gas fornito per l'esecuzione della transazione. eth_call consuma zero gas, ma questo parametro potrebbe essere necessario per alcune esecuzioni. -- `gasPrice`: `QUANTITY`: (facoltativo) Intero del gasPrice usato per ogni gas pagato -- `value`: `QUANTITY` - (opzionale) Intero del valore inviato con questa transazione -- `data`: `DATA` - (opzionale) Hash del metodo di firma e dei parametri codificati. Per maggiori dettagli consulta [Ethereum Contract ABI nella documentazione di Solidity](https://docs.soliditylang.org/en/latest/abi-spec.html) +- `gas`: `QUANTITY` - (facoltativo) Intero del carburante fornito per l'esecuzione della transazione. eth_call consuma zero carburante, ma questo parametro potrebbe essere necessario per alcune esecuzioni. +- `gasPrice`: `QUANTITY` - (facoltativo) Intero del gasPrice usato per ogni unità di carburante pagata +- `value`: `QUANTITY` - (facoltativo) Intero del valore inviato con questa transazione +- `data`: `DATA` - (facoltativo) Hash della firma del metodo e dei parametri codificati. Per maggiori dettagli consulta [Ethereum Contract ABI nella documentazione di Solidity](https://docs.soliditylang.org/en/latest/abi-spec.html) -2. `QUANTITY|TAG` - numero intero del blocco o stringa `"latest"`, `"earliest"` o `"pending"`. Vedere il [parametro predefinito del blocco](/developers/docs/apis/json-rpc/#default-block-parameter) +2. `QUANTITY|TAG` - numero intero del blocco, o stringa `"latest"`, `"earliest"` o `"pending"`. Vedere il [parametro predefinito del blocco](/developers/docs/apis/json-rpc/#default-block) **Restituisce** @@ -940,15 +971,15 @@ curl -X POST --data '{"jsonrpc":"2.0","method":"eth_call","params":[{see above}] ### eth_estimateGas {#eth_estimategas} -Genera e restituisce una stima di quanto gas è necessario per consentire il completamento della transazione. La transazione non verrà aggiunta alla blockchain. Nota che la stima potrebbe esser significativamente superiore all'importo di gas effettivamente usato dall'operazione, per vari motivi, incluse le meccaniche dell'EVM e le prestazioni del nodo. +Genera e restituisce una stima di quanto carburante è necessario per consentire il completamento della transazione. La transazione non verrà aggiunta alla blockchain. Nota che la stima potrebbe esser significativamente superiore all'importo di carburante effettivamente usato dall'operazione, per vari motivi, incluse le meccaniche dell'EVM e le prestazioni del nodo. **Parametri** -Vedi i parametri [eth_call](#eth_call), tutte le proprietà dovrebbero essere opzionali. Se non è specificato alcun limite di gas, geth usa il limite di gas del blocco dal blocco in sospeso come limite massimo. Di conseguenza, la stima restituita potrebbe non esser sufficiente per eseguire la chiamata/transazione quando l'importo di gas è maggiore del limite di gas del blocco. +Vedi i parametri di [eth_call](#eth_call), tranne che tutte le proprietà sono facoltative. Se non è specificato alcun limite di carburante, geth usa il limite di carburante del blocco dal blocco in sospeso come limite massimo. Di conseguenza, la stima restituita potrebbe non esser sufficiente per eseguire la chiamata/transazione quando l'importo di carburante è superiore al limite di carburante del blocco. **Restituisce** -`QUANTITY`: l'importo di gas utilizzato. +`QUANTITY` - la quantità di carburante utilizzato. **Esempio** @@ -981,27 +1012,27 @@ params: [ **Restituisce** -`Oggetto` - Un oggetto blocco, o `null` quando non viene trovato alcun blocco: +`Object` - Un oggetto blocco, o `null` quando non viene trovato alcun blocco: - `number`: `QUANTITY` - il numero di blocco. `null` quando è in attesa del blocco. - `hash`: `DATA`, 32 Bytes - hash del blocco. `null` quando è in attesa del blocco. -- `hash`: `DATA`, 32 Bytes - hash del blocco padre. +- `hash`: `DATA`, 32 Bytes - hash del blocco genitore. - `nonce`: `DATA`, 8 Bytes - hash del proof-of-work generato. `null` quando è in attesa del blocco. - `sha3Uncles`: `DATA`, 32 Bytes - SHA3 dei dati ommer del blocco. -- `logsBloom`: `DATA`, 256 Bytes - il Bloom Filter per i registri del blocco. `null` quando è in attesa del blocco. +- `logsBloom`: `DATA`, 256 Bytes - il filtro bloom per i registri del blocco. `null` quando è in attesa del blocco. - `transactionsRoot`: `DATA`, 32 Bytes - la radice dell'albero delle transazioni del blocco. - `stateRoot`: `DATA`, 32 Bytes - la radice dell'albero di stato finale del blocco. -- `receiptsRoot`: `DATI`, 32 Bytes - la radice dell'albero delle ricevute del blocco. -- `miner`: `DATI`, 20 Bytes - l'indirizzo del beneficiario a cui sono state fornite le ricompense di mining. -- `difficoltà`: `QUANTITÀ` - intero della difficoltà per questo blocco. +- `receiptsRoot`: `DATA`, 32 Bytes - la radice dell'albero delle ricevute del blocco. +- `miner`: `DATA`, 20 Bytes - l'indirizzo del beneficiario a cui sono state fornite le ricompense di mining. +- `difficulty`: `QUANTITY` - intero della difficoltà per questo blocco. - `totalDifficulty`: `QUANTITY` - intero della difficoltà totale della catena fino a questo blocco. - `extraData`: `DATA` - il campo "dati extra" di questo blocco. - `size`: `QUANTITY` - intero in bytes della dimensione di questo blocco. -- `gasLimit`: `QUANTITY`: il gas massimo consentito in questo blocco. -- `gasUsed`: `QUANTITY`: il gas totale usato da tutte le transazioni in questo blocco. +- `gasLimit`: `QUANTITY` - il carburante massimo consentito in questo blocco. +- `gasUsed`: `QUANTITY` - il carburante totale usato da tutte le transazioni in questo blocco. - `timestamp`: `QUANTITY` - la marca temporale unix relativa a quando il blocco è stato collazionato. -- `transactions`: `Array` - Matrice di oggetti transazione o hash di transazione da 32 byte a seconda dell'ultimo parametro specificato. -- `uncles`: `Array` - Matrice di ommer hash. +- `transactions`: `Array` - Array di oggetti transazione, o hash di transazione da 32 Bytes a seconda dell'ultimo parametro specificato. +- `uncles`: `Array` - Array di hash ommer. **Esempio** @@ -1046,7 +1077,7 @@ Restituisce informazioni su un blocco per numero di blocco. **Parametri** -1. `QUANTITY|TAG` - numero intero del blocco o stringa `"earliest"`, `"latest"` oppure `"pending"`, come nel [parametro predefinito del blocco](/developers/docs/apis/json-rpc/#default-block-parameter). +1. `QUANTITY|TAG` - numero intero del blocco, o stringa `"earliest"`, `"latest"` o `"pending"`, come nel [parametro predefinito del blocco](/developers/docs/apis/json-rpc/#default-block). 2. `Boolean` - Se `true` restituisce gli oggetti di transazione completi, se `falso` solo gli hash delle transazioni. ```js @@ -1081,20 +1112,20 @@ params: ["0x88df016429689c079f3b2f6ad39fa052532c56795b733da78a91ebe6a713944b"] **Restituisce** -`Oggetto` - Un oggetto di transazione, oppure `null` quando non viene trovata alcuna transazione: +`Object` - Un oggetto transazione, oppure `null` quando non viene trovata alcuna transazione: - `blockHash`: `DATA`, 32 byte - hash del blocco in cui si trovava questa transazione. `null` quando è in sospeso. - `blockNumber`: `QUANTITY` - numero di blocco in cui si trovava questa transazione. `null` quando è in sospeso. -- `from`: `DATA`, 20 Bytes - l'indirizzo del mittente. -- `gas`: `QUANTITY`: gas fornito dal mittente. -- `gasPrice`: `QUANTITY`: prezzo del gas fornito dal mittente in Wei. +- `from`: `DATA`, 20 Bytes - indirizzo del mittente. +- `gas`: `QUANTITY` - carburante fornito dal mittente. +- `gasPrice`: `QUANTITY` - prezzo del carburante fornito dal mittente in Wei. - `hash`: `DATA`, 32 Bytes - hash della transazione. - `input`: `DATA` - i dati inviati insieme alla transazione. - `nonce`: `QUANTITY` - il numero di transazioni effettuate dal mittente prima di questa. - `to`: `DATA`, 20 Bytes - l'indirizzo del destinatario. `null` quando è una transazione di creazione del contratto. - `transactionIndex`: `QUANTITY` - intero della posizione dell'indice delle transazioni nel blocco. `null` quando è in sospeso. - `value`: `QUANTITY` - valore trasferito in Wei. -- `v`: `QUANTITY` - id di recupero ECDSA +- `v`: `QUANTITY` - ID di recupero ECDSA - `r`: `QUANTITY` - firma r ECDSA - `s`: `QUANTITY` - firma s ECDSA @@ -1128,7 +1159,7 @@ curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getTransactionByHash","param ### eth_getTransactionByBlockHashAndIndex {#eth_gettransactionbyblockhashandindex} -Restituisce informazioni su una transazione per hash del blocco e posizione dell'indice delle transazioni. +Restituisce informazioni su una transazione per hash del blocco e posizione dell'indice della transazione. **Parametri** @@ -1155,12 +1186,12 @@ Risultato vedi [eth_getBlockByHash](#eth_gettransactionbyhash) ### eth_getTransactionByBlockNumberAndIndex {#eth_gettransactionbyblocknumberandindex} -Restituisce informazioni su una transazione per hash del blocco e posizione dell'indice delle transazioni. +Restituisce informazioni su una transazione per hash del blocco e posizione dell'indice della transazione. **Parametri** -1. `QUANTITY|TAG` - numero intero del blocco o stringa `"earliest"`, `"latest"` oppure `"pending"`, come nel [parametro predefinito del blocco](/developers/docs/apis/json-rpc/#default-block-parameter). -2. `QUANTITY` - la posizione dell'indice delle transazioni. +1. `QUANTITY|TAG` - intero del blocco, o stringa `"earliest"`, `"latest"` oppure `"pending"`, come nel [parametro predefinito del blocco](/developers/docs/apis/json-rpc/#default-block). +2. `QUANTITY` - la posizione dell'indice della transazione. ```js params: [ @@ -1182,7 +1213,7 @@ Risultato vedi [eth_getBlockByHash](#eth_gettransactionbyhash) ### eth_getTransactionReceipt {#eth_gettransactionreceipt} -Restituisce la ricezione di una transazione tramite l'hash di transazione. +Restituisce la ricevuta di una transazione tramite l'hash di transazione. **Nota** che la ricevuta non è disponibile per le transazioni in sospeso. @@ -1191,47 +1222,55 @@ Restituisce la ricezione di una transazione tramite l'hash di transazione. 1. `DATA`, 32 Bytes - hash di una transazione ```js -params: ["0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238"] +params: ["0x85d995eba9763907fdf35cd2034144dd9d53ce32cbec21349d4b12823c6860c5"] ``` -**Restituisce** `Object` - Un oggetto di ricezione della transazione o `null` quando non è stata trovata nessuna ricevuta: +**Restituisce** `Object` - Un oggetto ricevuta della transazione, o `null` quando non è stata trovata nessuna ricevuta: - `transactionHash`: `DATA`, 32 Bytes - hash della transazione. -- `transactionIndex`: `QUANTITY` - numero intero della posizione dell'indice delle transazioni nel blocco. +- `transactionIndex`: `QUANTITY` - intero della posizione dell'indice delle transazioni nel blocco. - `blockHash`: `DATA`, 32 byte - hash del blocco in cui si trovava questa transazione. - `blockNumber`: `QUANTITY` - numero di blocco in cui si trovava questa transazione. -- `from`: `DATA`, 20 Bytes - l'indirizzo del mittente. +- `from`: `DATA`, 20 Bytes - indirizzo del mittente. - `to`: `DATA`, 20 Bytes - l'indirizzo del destinatario. null quando è una transazione di creazione del contratto. -- `cumulativeGasUsed`: `QUANTITY`: L'importo totale di gas usato all'esecuzione nel blocco di questa transazione. -- `gas Usato`: `QUANTITÀ`: L'importo di gas usato solo da questa specifica transazione. +- `cumulativeGasUsed`: `QUANTITY` - La quantità totale di carburante usato nel blocco per l'esecuzione della transazione. +- `effectiveGasPrice` : `QUANTITY` - La somma della commissione di base e delle mance pagata per unità di carburante. +- `gasUsed`: `QUANTITY` - La quantità di carburante usato solo da questa specifica transazione. - `contractAddress`: `DATA`, 20 Bytes - L'indirizzo del contratto creato, se la transazione consisteva nella creazione di un contratto, altrimenti `null`. -- `logs`: `Array` - Array di oggetti di registro che questa transazione ha generato. -- `logsBloom`: `DATA`, 256 Bytes - Filtro Bloom per i client leggeri per recuperare rapidamente i log correlati. Restituisce anche _either_: -- `root` : `DATA` 32 bytes dello stateRoot post-transazione (pre Byzantium) +- `logs`: `Array` - Array di oggetti di registro generati da questa transazione. +- `logsBloom`: `DATA`, 256 Bytes - Filtro Bloom per i client leggeri per recuperare rapidamente i registri correlati. +- `type`: `QUANTITY` - intero del tipo di transazione, `0x0` per le transazioni ereditarie, `0x1` per i tipi di elenco d'accesso, `0x2` per le commissioni dinamiche. Restituisce anche _in alternativa_: +- `root` : `DATA` 32 bytes dello stateroot post-transazione (pre Byzantium) - `status`: `QUANTITY` o `1` (successo) o `0` (insuccesso) **Esempio** ```js // Request -curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getTransactionReceipt","params":["0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238"],"id":1}' +curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getTransactionReceipt","params":["0x85d995eba9763907fdf35cd2034144dd9d53ce32cbec21349d4b12823c6860c5"],"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' + "jsonrpc": "2.0", + "id": 1, + "result": { + "blockHash": + "0xa957d47df264a31badc3ae823e10ac1d444b098d9b73d204c40426e57f47e8c3", + "blockNumber": "0xeff35f", + "contractAddress": null, // string of the address if it was created + "cumulativeGasUsed": "0xa12515", + "effectiveGasPrice": "0x5a9c688d4", + "from": "0x6221a9c005f6e47eb398fd867784cacfdcfff4e7", + "gasUsed": "0xb4c8", + "logs": [{ + // logs as returned by getFilterLogs, etc. + }], + "logsBloom": "0x00...0", // 256 byte bloom filter + "status": "0x1", + "to": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "transactionHash": + "0x85d995eba9763907fdf35cd2034144dd9d53ce32cbec21349d4b12823c6860c5", + "transactionIndex": "0x66", + "type": "0x2" } } ``` @@ -1271,7 +1310,7 @@ Restituisce informazioni su un ommer di un blocco in base al numero e alla posiz **Parametri** -1. `QUANTITY|TAG` - numero intero del blocco o stringa `"earliest"`, `"latest"` oppure `"pending"`, come nel [parametro predefinito del blocco](/developers/docs/apis/json-rpc/#default-block-parameter). +1. `QUANTITY|TAG` - intero del blocco, o stringa `"earliest"`, `"latest"` oppure `"pending"`, come nel [parametro predefinito del blocco](/developers/docs/apis/json-rpc/#default-block). 2. `QUANTITY` - la posizione dell'indice dell'ommer. ```js @@ -1432,23 +1471,23 @@ curl -X POST --data '{"jsonrpc":"2.0","method":"eth_compileSerpent","params":["/ ### eth_newFilter {#eth_newfilter} -Crea un oggetto filtro, basato sulle opzioni di filtro, per notificare quando lo stato cambia (log). Per verificare se lo stato è cambiato, chiama [eth_getFilterChanges](#eth_getfilterchanges). +Crea un oggetto filtro, basato sulle opzioni di filtro, per notificare quando lo stato cambia (registri). Per verificare se lo stato è cambiato, chiama [eth_getFilterChanges](#eth_getfilterchanges). **Una nota per specificare i filtri degli argomenti:** Gli argomenti dipendono dall'ordine. Una transazione con un registro con argomenti [A, B] sarà abbinata ai seguenti filtri tematici: - `[]` "qualsiasi" - `[A]`: "A in prima posizione (e tutto il resto segue)" -- `[null, B]`: "tutto nella prima posizione e B nella seconda (e tutto il resto segue)" -- `[A, B]`: "A in prima posizione e B in seconda (e tutto il resto segue)" -- `[[A, B], [A, B]]`: "(A o B) in prima posizione e (A o B) in seconda posizione (e tutto il resto segue)" +- `[null, B]`: "tutto nella prima posizione AND B nella seconda (e tutto il resto segue)" +- `[A, B]`: "A in prima posizione AND B in seconda (e tutto il resto segue)" +- `[[A, B], [A, B]]`: "(A OR B) in prima posizione AND (A OR B) in seconda posizione (e tutto il resto segue)" - **Parametri** 1. `Object` - Le opzioni di filtro: -- `fromBlock`: `QUANTITY|TAG` - (opzionale, predefinito: `"latest"`) Numero intero del blocco, oppure `"latest"` per l'ultimo blocco estratto oppure `"pending"`, `"earliest"` per le transazioni ancore non estratte. -- `toBlock`: `QUANTITY|TAG` - (opzionale, predefinito: `"latest"`) numero intero del block, oppure `"latest"` per l'ultimo blocco estratto, oppure `"pending"`, `"earliest"` per le transazioni ancora non estratte. -- `address`: `DATA|Array`, 20 Bytes - (opzionale) Gli indirizzi del contratto oppure un elenco di indirizzi da cui dovrebbero avere origine i registri. -- `topics`: `Array of DATA`, - (opzionale) Array di 32 Bytes `DATA` Argomento. Argomenti di analisi della dipendenza dei dati. Ogni argomento può anche essere una matrice di DATI con opzioni "oppure". +- `fromBlock`: `QUANTITY|TAG` - (facoltativo, predefinito: `"latest"`) Intero del numero di blocco, oppure `"latest"` per l'ultimo blocco minato oppure `"pending"`, `"earliest"` per le transazioni non ancora minate. +- `toBlock`: `QUANTITY|TAG` - (facoltativo, predefinito: `"latest"`) Intero del numero di blocco, oppure `"latest"` per l'ultimo blocco minato, oppure `"pending"`, `"earliest"` per le transazioni non ancora minate. +- `address`: `DATA|Array`, 20 Bytes - (facoltativo) Indirizzo del contratto oppure un elenco di indirizzi da cui dovrebbero avere origine i registri. +- `topics`: `Array of DATA`, - (facoltativo) Array di argomenti `DATA` a 32 byte. Gli argomenti dipendono dall'ordine. Ogni argomento può anche essere un array di DATI con opzioni "or". ```js params: [ @@ -1510,7 +1549,7 @@ Crea un filtro nel nodo, per avvisare quando arrivano nuove transazioni in sospe **Parametri** Nessuno -**Restituisce** `QUANTITY` - Un filtro ID. +**Restituisce** `QUANTITY` - L'ID di un filtro. **Esempio** @@ -1527,7 +1566,7 @@ curl -X POST --data '{"jsonrpc":"2.0","method":"eth_newPendingTransactionFilter" ### eth_uninstallFilter {#eth_uninstallfilter} -Disinstalla un filtro con un Id specificato. Dovrebbe essere sempre chiamato quando l'orologio non è più necessario. Inoltre i filtri scadono quando non vengono richiesti con [eth_getFilterChanges](#eth_getfilterchanges) per un periodo di tempo. +Disinstalla un filtro con un ID specificato. Dovrebbe essere sempre chiamato quando l'orologio non è più necessario. Inoltre, i filtri scadono quando non vengono richiesti con [eth_getFilterChanges](#eth_getfilterchanges) per un periodo di tempo. **Parametri** @@ -1568,20 +1607,20 @@ params: [ ] ``` -**Restituisce** `Array` - Array di oggetti di log, o un array vuoto se nulla è cambiato dall'ultimo sondaggio. +**Restituisce** `Array` - Array di oggetti registro, o un array vuoto se nulla è cambiato dall'ultimo sondaggio. - Per i filtri creati con `eth_newBlockFilter` vengono restituiti hash di blocco (`DATA`, 32 Byte), ad esempio `["0x3454645634534..."]`. - Per i filtri creati con `eth_newPendingTransactionFiltro` vengono restituiti hash di transazione (`DATA`, 32 Bytes), ad esempio `["0x6345343454645..."]`. - Per i filtri creati con `eth_newFiltro` i registri sono oggetti con i seguenti parametri: - - `removed`: `TAG` - `true` quando il registro è stato rimosso, a causa di una riorganizzazione a catena. `false` se il suo registro è valido. - - `transactionIndex`: `QUANTITY` - numero intero della posizione dell'indice delle transazioni nel blocco. `null` quando il log è in sospeso. - - `transactionIndex`: `QUANTITY` - numero intero del registro della posizione dell'indice delle transazioni da cui è stato creato. `null` quando il log è in sospeso. - - `transactionHash`: `DATA`, 32 Bytes - hash delle transazioni da cui è stato creato il registro. `null` quando il log è in sospeso. - - `blockHash`: `DATA`, 32 byte - hash del blocco in cui si trovava questa transazione. `null` quando è in sospeso. `null` quando il log è in sospeso. - - `blockNumber`: `QUANTITY` il numero di blocco in cui si trovava questo registro. `null` quando è in sospeso. `null` quando il log è in sospeso. - - `address`: `DATI`, 20 Bytes - indirizzo da cui è nato questo registro. + - `removed`: `TAG` - `true` quando il registro è stato rimosso, a causa di una riorganizzazione della catena. `false` se il suo registro è valido. + - `transactionIndex`: `QUANTITY` - intero della posizione dell'indice della transazione nel blocco. `null` quando il registro è in sospeso. + - `transactionIndex`: `QUANTITY` - intero del registro della posizione dell'indice della transazione da cui è stato creato. `null` quando il registro è in sospeso. + - `transactionHash`: `DATA`, 32 Bytes - hash delle transazioni da cui è stato creato il registro. `null` quando il registro è in sospeso. + - `blockHash`: `DATA`, 32 byte - hash del blocco in cui si trovava questa transazione. `null` quando è in sospeso. `null` quando il registro è in sospeso. + - `blockNumber`: `QUANTITY` il numero di blocco in cui si trovava questo registro. `null` quando è in sospeso. `null` quando il registro è in sospeso. + - `address`: `DATA`, 20 Bytes - indirizzo da cui è stato originato questo registro. - `data`: `DATA` - contiene uno o più argomenti a 32 byte non indicizzati del registro. - - `topics`: `Array of DATA` - Array da 0 a 432 byte di `DATA` di argomenti di log indicizzati. (In _solidity_: il primo argomento è l'_hash_ della firma dell'evento (ad es. `Deposit(address,bytes32,uint256)`), tranne se hai dichiarato l'evento con lo specificatore `anonymous` + - `topics`: `Array of DATA` - Array da 0 a 432 byte di `DATA` di argomenti di registri indicizzati. (In _solidity_: il primo argomento è l'_hash_ della firma dell'evento (ad es. `Deposit(address,bytes32,uint256)`), tranne se hai dichiarato l'evento con lo specificatore `anonymous`.) - **Esempio** ```js @@ -1608,7 +1647,7 @@ curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getFilterChanges","params":[ ### eth_getFilterLogs {#eth_getfilterlogs} -Restituisce un array di tutti i log corrispondenti al filtro con un dato ID. +Restituisce un array di tutti i registri corrispondenti al filtro con un dato ID. **Parametri** @@ -1633,17 +1672,17 @@ Risultato vedi [eth_getFilterChanges](#eth_getfilterchanges) ### eth_getLogs {#eth_getlogs} -Restituisce un array di tutti i log che corrispondono a un dato oggetto filtro. +Restituisce un array di tutti i registri che corrispondono a un dato oggetto filtro. **Parametri** 1. `Oggetto` - Le opzioni di filtro: -- `fromBlock`: `QUANTITY|TAG` - (opzionale, predefinito: `"latest"`) Numero intero del blocco, oppure `"latest"` per l'ultimo blocco minato oppure `"pending"`, `"earliest"` per le transazioni non ancora minate. -- `toBlock`: `QUANTITY|TAG` - (opzionale, predefinito: `"latest"`) numero intero del blocco, oppure `"latest"` per l'ultimo blocco minato, oppure `"pending"`, `"earliest"` per le transazioni non ancora minate. -- `address`: `DATA|Array`, 20 Bytes - (opzionale) Gli indirizzi del contratto oppure un elenco di indirizzi da cui dovrebbero avere origine i registri. -- `topics`: `Array of DATA`, - (opzionale) Array di argomenti `DATA` a 32 byte. Gli argomenti dipendono dall'ordine. Ogni argomento può anche essere una matrice di DATA con opzioni "oppure". -- `blockhash`: `DATI`, 32 Bytes - (opzionale, **future**) Con l'aggiunta di EIP-234, `blockHash` sarà una nuova opzione di filtro che limita i log restituiti al singolo blocco con l'hash `blockHash` da 32 byte. L'utilizzo di `blockHash` equivale a `fromBlock` = `toBlock` = il numero di blocco con hash `blockHash`. Se `blockHash` è presente nei criteri di filtraggio, non sono permessi né `fromBlock` né `toBlock`. +- `fromBlock`: `QUANTITY|TAG` - (facoltativo, predefinito: `"latest"`) Intero del numero di blocco, oppure `"latest"` per l'ultimo blocco minato oppure `"pending"`, `"earliest"` per le transazioni non ancora minate. +- `toBlock`: `QUANTITY|TAG` - (facoltativo, predefinito: `"latest"`) Intero del numero di blocco, oppure `"latest"` per l'ultimo blocco minato, oppure `"pending"`, `"earliest"` per le transazioni non ancora minate. +- `address`: `DATA|Array`, 20 Bytes - (facoltativo) Indirizzo del contratto oppure un elenco di indirizzi da cui dovrebbero avere origine i registri. +- `topics`: `Array of DATA`, - (facoltativo) Array di argomenti `DATA` a 32 byte. Gli argomenti dipendono dall'ordine. Ogni argomento può anche essere un array di DATI con opzioni "or". +- `blockhash`: `DATI`, 32 Bytes - (facoltativo, **future**) Con l'aggiunta di EIP-234, `blockHash` sarà una nuova opzione di filtro che limita i registra restituiti al singolo blocco con l'hash `blockHash` da 32 byte. L'utilizzo di `blockHash` equivale a `fromBlock` = `toBlock` = il numero di blocco con hash `blockHash`. Se `blockHash` è presente nei criteri di filtraggio, non sono permessi né `fromBlock` né `toBlock`. ```js params: [ @@ -1668,15 +1707,15 @@ Risultato vedi [eth_getFilterChanges](#eth_getfilterchanges) ### eth_getWork {#eth_getwork} -Restituisce l'hash del blocco corrente, il seedHash e la condizione limite da soddisfare ("target"). +Restituisce l'hash del blocco corrente, il seedHash e la condizione di confine da soddisfare ("target"). **Parametri** Nessuno **Restituisce** `Array` - Array con le seguenti proprietà: -1. `DATI`, 32 Byte - intestazione pow-hash del blocco corrente -2. `DATI`, 32 Byte - il seed hash utilizzato per il DAG. -3. `DATI`, 32 Byte - la condizione di confine ("target"), 2^256 / difficoltà. +1. `DATA`, 32 Byte - intestazione pow-hash del blocco corrente +2. `DATA`, 32 Byte - il seed hash utilizzato per il DAG. +3. `DATA`, 32 Byte - la condizione di confine ("target"), 2^256 / difficoltà. **Esempio** @@ -1775,7 +1814,7 @@ Memorizza una stringa nel database locale. params: ["testDB", "myKey", "myString"] ``` -**Restituisce** `Boolean` - `true` se il valore è stato memorizzato, in caso contrario `false`. +**Restituisce** `Boolean` - `true` se il valore è stato memorizzato, altrimenti `false`. **Esempio** @@ -1849,7 +1888,7 @@ curl -X POST --data '{"jsonrpc":"2.0","method":"db_putHex","params":["testDB","m ### db_getHex (deprecated) {#db_gethex} -Memorizza i dati binari nel database locale. **Nota** questa funzione è superata. +Restituisce i dati binari del database locale. **Nota** questa funzione è superata. **Parametri** @@ -1860,7 +1899,7 @@ Memorizza i dati binari nel database locale. **Nota** questa funzione è superat params: ["testDB", "myKey"] ``` -**Restituisce** `DATI` - I dati precedentemente memorizzati. +**Restituisce** `DATA` - I dati precedentemente memorizzati. **Esempio** @@ -1908,10 +1947,10 @@ Invia un messaggio Whisper. 1. `Object` -Il contenuto dei post di Whisper: -- `da`: `DATA`, 60 Byte - (opzionale) L'identità del mittente. -- `to`: `DATA`, 60 Byte - (opzionale) L'identità del destinatario. Se presente, Whisper cifrerà il messaggio in modo che solo il destinatario possa decifrarlo. -- `topics`: `Array of DATA` - Array di argomenti `DATA`, affinchè il destinatario possa identificare i messaggi. -- `payload`: `DATA` - Il carico utile del messaggio. +- `da`: `DATA`, 60 Byte - (facoltativo) L'identità del mittente. +- `to`: `DATA`, 60 Byte - (facoltativo) L'identità del destinatario. Se presente, Whisper cifrerà il messaggio in modo che solo il destinatario possa decifrarlo. +- `topics`: `Array of DATA` - Array di argomenti `DATA`, affinché il destinatario possa identificare i messaggi. +- `payload`: `DATA` - Il payload del messaggio. - `priority`: `QUANTITY` - L'intero della priorità in un range da ... (?). - `ttl`: `QUANTITY` - intero del tempo residuo in secondi. @@ -1985,7 +2024,7 @@ params: [ ] ``` -**Restituisce** `Boolean` - restituisce `true` se il messaggio è stato inviato, altrimenti `false`. +**Restituisce** `Boolean` - restituisce `true` se il client detiene la chiave privata di tale identità, altrimenti `false`. **Esempio** @@ -2035,7 +2074,7 @@ params: [ ] ``` -**Restituisce** `Boolean` - restituisce `true` se l'identità è stata aggiunta con successo al gruppo, altrimenti `false`(?). +**Restituisce** `Boolean` - restituisce `true` se l'identità è stata aggiunta con successo al gruppo, altrimenti `false` (?). **Esempio** @@ -2058,8 +2097,8 @@ Crea un filtro per notificare, quando il client riceve un messaggio Whisper corr 1. `Oggetto` - Le opzioni del filtro: -- `to`: `DATA`, 60 Byte - (opzionale) L'identità del destinatario. _Quando è presente, proverà a decifrare qualsiasi messaggio in arrivo se il client detiene la chiave privata di questa identità._ -- `topics`: `Array of DATA` - Insieme di argomenti `DATA` a cui dovrebbero corrispondere gli argomenti del messaggio in entrata. You can use the following combinations: +- `to`: `DATA`, 60 Byte - (facoltativo) Identità del destinatario. _Quando è presente, proverà a decifrare qualsiasi messaggio in arrivo se il client detiene la chiave privata di questa identità._ +- `topics`: `Array of DATA` - Array di argomenti `DATA` a cui dovrebbero corrispondere gli argomenti del messaggio in entrata. Possono essere utilizzate le seguenti combinazioni: - `[A, B] = A && B` - `[A, [B, C]] = A && (B || C)` - `[null, A, B] = ANYTHING && A && B` `null` funge da jolly @@ -2091,7 +2130,7 @@ curl -X POST --data '{"jsonrpc":"2.0","method":"shh_newFilter","params":[{"topic ### shh_uninstallFilter (deprecated){#shh_uninstallfilter} -Disinstalla un filtro con un ID specificato. Dovrebbe essere sempre chiamato quando l'orologio non è più necessario. Inoltre i filtri scadono quando non vengono richiesti con [shh_getFilterChange](#shh_getfilterchanges) per un periodo di tempo. **Nota** questa funzione è superata. +Disinstalla un filtro con un ID specificato. Dovrebbe essere sempre chiamato quando l'orologio non è più necessario. Inoltre, i filtri scadono quando non vengono richiesti con [shh_getFilterChange](#shh_getfilterchanges) per un periodo di tempo. **Nota** questa funzione è superata. **Parametri** @@ -2132,7 +2171,7 @@ params: [ ] ``` -**Restituisce** `Array` - Matrice di messaggi ricevuti dall'ultimo sondaggio: +**Restituisce** `Array` - Array di messaggi ricevuti dall'ultimo sondaggio: - `hash`: `DATA`, 32 Byte (?) - L'hash del messaggio. - `da`: `DATA`, 60 Byte - Il mittente del messaggio, se è stato specificato un mittente. @@ -2140,8 +2179,8 @@ params: [ - `expiry`: `QUANTITY` - Intero del tempo in secondi che esprime la scadenza presunta del messaggio (?). - `ttl`: `QUANTITY` - Intero del tempo durante il quale il messaggio dovrebbe fluttuare nel sistema, in secondi (?). - `sent`: `QUANTITY` - Intero della marca temporale unix quando il messaggio è stato inviato. -- `topics`: `Array of DATA` - Matrice di argomenti `DATA` contenuti nel messaggio. -- `payload`: `DATA` - Il carico utile del messaggio. +- `topics`: `Array of DATA` - Array di argomenti `DATA` contenuti nel messaggio. +- `payload`: `DATA` - Il payload del messaggio. - `workProved`: `QUANTITY` - Intero del lavoro richiesto da questo messaggio prima che fosse inviato (?). **Esempio** @@ -2201,7 +2240,7 @@ Risultato vedi [shh_getFilterChanges](#shh_getfilterchanges) Questa sezione include una dimostrazione di come distribuire un contratto utilizzando solo l'interfaccia RPC. Esistono vie alternative per la distribuzione di contratti in cui questa complessità viene eliminata tramite astrazione, ad esempio utilizzando librerie costruite partendo dall'interfaccia RPC, come [web3. s](https://web3js.readthedocs.io/) e [web3.py](https://github.com/ethereum/web3.py). Queste astrazioni sono generalmente più facili da capire e meno soggette a errori, ma è comunque utile capire cosa succede dietro le quinte. -Di seguito, trovi un semplice contratto intelligente, detto `Multiply7`, che sarà distribuito usando l'interfaccia JSON-RPC a un nodo di Ethereum. Questo tutorial presuppone che il lettore stia già eseguendo un nodo Geth. Maggiori informazioni sui nodi e sui client sono disponibili [qui](/developers/docs/nodes-and-clients/run-a-node). Fare riferimento alla documentazione del [client](/developers/docs/nodes-and-clients/) individuale per capire come avviare HTTP JSON-RPC per i client non-Geth. La maggior parte dei clienti serve di default su `localhost:8545`. +Di seguito, trovi un semplice contratto intelligente chiamato `Multiply7`, che sarà distribuito usando l'interfaccia JSON-RPC a un nodo di Ethereum. Questo tutorial presuppone che il lettore stia già eseguendo un nodo Geth. Maggiori informazioni sui nodi e sui client sono disponibili [qui](/developers/docs/nodes-and-clients/run-a-node). Fare riferimento alla documentazione del singolo [client](/developers/docs/nodes-and-clients/) per capire come avviare HTTP JSON-RPC per i client non-Geth. La maggior parte dei clienti serve di default su `localhost:8545`. ```javascript contract Multiply7 { @@ -2216,14 +2255,12 @@ contract Multiply7 { La prima cosa da fare è assicurarsi che l'interfaccia HTTP RPC sia abilitata. Questo significa che forniamo a Geth il flag `--http` all'avvio. In questo esempio usiamo il nodo Geth su una catena di sviluppo privata. Utilizzando questo approccio non abbiamo bisogno di ether sulla rete reale. ```bash - -geth --http --dev --mine --miner.threads 1 --unlock 0 console 2>>geth.log - +geth --http --dev console 2>>geth.log ``` Questo avvierà l'interfaccia HTTP RPC su `http://localhost:8545`. -Possiamo verificare che l'interfaccia sia in esecuzione recuperando l'indirizzo Coinbase e il saldo utilizzando [curl](https://curl.haxx.se/download.html). Si prega di notare che i dati in questi esempi saranno diversi sul nodo locale. Se vuoi provare questi comandi, sostituisci i parametri di richiesta nella seconda richiesta di Curl con il risultato restituito dalla prima. +Possiamo verificare che l'interfaccia sia in esecuzione recuperando l'indirizzo Coinbase e il saldo utilizzando [curl](https://curl.se). Si prega di notare che i dati in questi esempi saranno diversi sul nodo locale. Se vuoi provare questi comandi, sostituisci i parametri di richiesta nella seconda richiesta di curl con il risultato restituito dalla prima. ```bash curl --data '{"jsonrpc":"2.0","method":"eth_coinbase", "id":1}' -H "Content-Type: application/json" localhost:8545 @@ -2233,14 +2270,14 @@ curl --data '{"jsonrpc":"2.0","method":"eth_getBalance", "params": ["0x9b1d35635 {"id":2,"jsonrpc":"2.0","result":"0x1639e49bba16280000"} ``` -Poiché i numeri sono soggetti a codifica esadecimale, il saldo viene restituito in wei sotto forma di stringa esadecimale. Se vogliamo ottenere il saldo in Ether sotto forma di numero possiamo utilizzare web3 dalla console Geth. +Poiché i numeri sono soggetti a codifica esadecimale, il saldo viene restituito in wei sotto forma di stringa esadecimale. Se vogliamo ottenere il saldo in ether sotto forma di numero possiamo utilizzare web3 dalla console Geth. ```javascript web3.fromWei("0x1639e49bba16280000", "ether") // "410" ``` -Ora che vi sono Ether nella nostra catena di sviluppo privato, possiamo distribuire il contratto. Il primo passo è quello di compilare il contratto Multiply7 al codice di byte che può essere inviato all'EVM. Per installare solc, il compilatore Solidity, seguire la documentazione [Solidity](https://docs.soliditylang.org/en/latest/installing-solidity.html). (Potresti voler utilizzare una versione `solc` più vecchia per abbinare [la versione del compilatore utilizzata per il nostro esempio](https://github.com/ethereum/solidity/releases/tag/v0.4.20).) +Ora che vi sono ether nella nostra catena di sviluppo privata, possiamo distribuire il contratto. Il primo passo è quello di compilare il contratto Multiply7 al codice di byte che può essere inviato all'EVM. Per installare solc, il compilatore Solidity, seguire la documentazione [Solidity](https://docs.soliditylang.org/en/latest/installing-solidity.html). (Potresti voler utilizzare una versione `solc` più vecchia che corrisponda [ alla versione del compilatore utilizzata per il nostro esempio](https://github.com/ethereum/solidity/releases/tag/v0.4.20).) Il passo successivo è quello di compilare il contratto Multiply7 al codice di byte che può essere inviato all'EVM. @@ -2252,7 +2289,7 @@ Binary: 6060604052341561000f57600080fd5b60eb8061001d6000396000f300606060405260043610603f576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063c6888fa1146044575b600080fd5b3415604e57600080fd5b606260048080359060200190919050506078565b6040518082815260200191505060405180910390f35b60007f24abdb5865df5079dcc5ac590ff6f01d5c16edbc5fab4e195d9febd1114503da600783026040518082815260200191505060405180910390a16007820290509190505600a165627a7a7230582040383f19d9f65246752244189b02f56e8d0980ed44e7a56c0b200458caad20bb0029 ``` -Ora che abbiamo il codice compilato, dobbiamo determinare quanto gas occorre per distribuirlo. L'interfaccia RPC ha un metodo `eth_estimateGas` che ci darà una stima. +Ora che abbiamo il codice compilato, dobbiamo determinare quanto carburante occorre per distribuirlo. L'interfaccia RPC ha un metodo `eth_estimateGas` che ci darà una stima. ```bash curl --data '{"jsonrpc":"2.0","method": "eth_estimateGas", "params": [{"from": "0x9b1d35635cc34752ca54713bb99d38614f63c955", "data": "0x6060604052341561000f57600080fd5b60eb8061001d6000396000f300606060405260043610603f576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063c6888fa1146044575b600080fd5b3415604e57600080fd5b606260048080359060200190919050506078565b6040518082815260200191505060405180910390f35b60007f24abdb5865df5079dcc5ac590ff6f01d5c16edbc5fab4e195d9febd1114503da600783026040518082815260200191505060405180910390a16007820290509190505600a165627a7a7230582040383f19d9f65246752244189b02f56e8d0980ed44e7a56c0b200458caad20bb0029"}], "id": 5}' -H "Content-Type: application/json" localhost:8545 @@ -2266,22 +2303,22 @@ curl --data '{"jsonrpc":"2.0","method": "eth_sendTransaction", "params": [{"from {"id":6,"jsonrpc":"2.0","result":"0xe1f3095770633ab2b18081658bad475439f6a08c902d0915903bafff06e6febf"} ``` -La transazione è accettata dal nodo e viene restituito un hash di transazione. Questo hash può essere usato per tracciare la transazione. Il passo successivo è quello di determinare l'indirizzo dove il nostro contratto è distribuito. Ogni transazione eseguita creerà una ricevuta. Questa ricevuta contiene varie informazioni sulla transazione, ad esempio, in quale blocco è stata inclusa e quanto gas è stato usato dall'EVM. Se una transazione crea un contratto, conterrà anche l'indirizzo dello stesso. Possiamo recuperare la ricevuta con il metodo `eth_getTransactionReceipt` RPC. +La transazione è accettata dal nodo e viene restituito un hash di transazione. Questo hash può essere usato per tracciare la transazione. Il passo successivo è quello di determinare l'indirizzo dove il nostro contratto è distribuito. Ogni transazione eseguita creerà una ricevuta. Questa ricevuta contiene varie informazioni sulla transazione, ad esempio, in quale blocco è stata inclusa e quanto carburante è stato usato dall'EVM. Se una transazione crea un contratto, ne conterrà anche l'indirizzo. Possiamo recuperare la ricevuta con il metodo RPC `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"}} ``` -Il nostro contratto è stato creato su `0x4d03d617d700cf81935d7f797f4e2ae719648262`. Un risultato nullo invece di una ricevuta significa che la transazione non è ancora stata inclusa in un blocco. Attendere un attimo e controllare se il miner è in esecuzione, quindi riprovare. +Il nostro contratto è stato creato su `0x4d03d617d700cf81935d7f797f4e2ae719648262`. Un risultato null invece di una ricevuta significa che la transazione non è ancora stata inclusa in un blocco. Attendere un attimo e controllare se il miner è in esecuzione, quindi riprovare. #### Interagire con i contratti intelligenti {#interacting-with-smart-contract} In questo esempio invieremo una transazione usando `eth_sendTransaction` al metodo `multiply` del contratto. -`eth_sendTransaction` richiede diversi argomenti, in particolare `from`, `to` e `data`. `From` è l'indirizzo pubblico del nostro conto, mentre `to` è l'indirizzo del contratto. L'argomento `data` contiene un carico utile che definisce quale metodo deve essere chiamato e con quali argomenti. È qui che entra in gioco l'[ABI (interfaccia binaria dell'applicazione)](https://docs.soliditylang.org/en/latest/abi-spec.html). L'ABI è un file JSON che determina come definire e codificare i dati per l'EVM. +`eth_sendTransaction` richiede diversi argomenti, in particolare `from`, `to` e `data`. `From` è l'indirizzo pubblico del nostro conto, mentre `to` è l'indirizzo del contratto. L'argomento `data` contiene un payload che definisce quale metodo deve essere chiamato e con quali argomenti. È qui che entra in gioco l'[ABI (interfaccia binaria dell'applicazione)](https://docs.soliditylang.org/en/latest/abi-spec.html). L'ABI è un file JSON che determina come definire e codificare i dati per l'EVM. -I byte del carico utile definiscono quale metodo viene chiamato nel contratto. Si tratta dei primi 4 byte dall'hash Keccak sul nome della funzione e sui suoi tipi di argomento, con codifica esadecimale. La funzione di moltiplicazione accetta un uint che è un alias per uint256. Ci ritroviamo quindi con: +I byte del payload definiscono quale metodo viene chiamato nel contratto. Si tratta dei primi 4 byte dall'hash Keccak sul nome della funzione e sui suoi tipi di argomento, con codifica esadecimale. La funzione di moltiplicazione accetta un uint che è un alias per uint256. Ci ritroviamo quindi con: ```javascript web3.sha3("multiply(uint256)").substring(0, 10) @@ -2327,7 +2364,7 @@ Dall'invio di una transazione, è stato restituito un hash di transazione. Recup } ``` -La ricevuta contiene un log. Questo log è stato generato da EVM sull'esecuzione della transazione e incluso nella ricevuta. La funzione `moltiplica` mostra che l'evento `Print` è stato alzato con i tempi di input 7. Poiché l'argomento per l'evento `Print` era un uint256, possiamo decodificare secondo le regole ABI, ottenendo così il decimale 42 previsto. Oltre ai dati, vale la pena notare che gli argomenti possono essere utilizzati per determinare quale evento ha creato il registro: +La ricevuta contiene un registro. Questo registro è stato generato da EVM sull'esecuzione della transazione e incluso nella ricevuta. La funzione `moltiplica` mostra che l'evento `Print` è stato alzato con i tempi di input 7. Poiché l'argomento per l'evento `Print` era un uint256, possiamo decodificare secondo le regole ABI, ottenendo così il decimale 42 previsto. Oltre ai dati, vale la pena notare che gli argomenti possono essere utilizzati per determinare quale evento ha creato il registro: ```javascript web3.sha3("Print(uint256)") @@ -2339,7 +2376,7 @@ Questa è stata solo una breve introduzione su alcuni dei compiti più comuni, d ## Argomenti correlati {#related-topics} - [Specifiche di JSON-RPC](http://www.jsonrpc.org/specification) -- [Nodi e client](/developers/docs/nodes-and-clients/) -- [API per JavaScript](/developers/docs/apis/javascript/) -- [API per il backend](/developers/docs/apis/backend/) +- [ Nodi e client](/developers/docs/nodes-and-clients/) +- [API JavaScript](/developers/docs/apis/javascript/) +- [API backend](/developers/docs/apis/backend/) - [Client di esecuzione](/developers/docs/nodes-and-clients/#execution-clients) diff --git a/src/content/translations/it/developers/docs/consensus-mechanisms/pow/mining/index.md b/src/content/translations/it/developers/docs/consensus-mechanisms/pow/mining/index.md index 742db66869a..e8ee4355849 100644 --- a/src/content/translations/it/developers/docs/consensus-mechanisms/pow/mining/index.md +++ b/src/content/translations/it/developers/docs/consensus-mechanisms/pow/mining/index.md @@ -41,6 +41,8 @@ Per approfondire ulteriormente la redditività del mining, usa un apposito calco ## Come avveniva il mining delle transazioni Ethereum {#how-ethereum-transactions-were-mined} +Quanto segue fornisce una panoramica di come erano minate le transazioni, nel proof-of-work di Ethereum. Una descrizione analoga di questo processo per il proof-of-stake di Ethereum, si può trovare [qui](/developers/docs/consensus-mechanisms/pos/#transaction-execution-ethereum-pos). + 1. Un utente scrive e firma una richiesta di [transazione](/developers/docs/transactions/) con la chiave privata di un [conto](/developers/docs/accounts/). 2. L'utente trasmette la richiesta di transazione all'intera rete Ethereum attraverso un [nodo](/developers/docs/nodes-and-clients/). 3. Dopo aver recepito la richiesta della nuova transazione, ogni nodo nella rete Ethereum aggiunge la richiesta alla propria mempool locale, un elenco di tutte le richieste di transazioni delle quali è venuto a conoscenza e che non sono ancora state inviate alla blockchain in un blocco. @@ -54,7 +56,13 @@ Per approfondire ulteriormente la redditività del mining, usa un apposito calco Il mining di ogni transazione (cioè l'inclusione in un nuovo blocco e la prima propagazione) avviene una volta sola, ma la transazione viene eseguita e verificata da ogni partecipante nel processo di avanzamento dello stato canonico dell'EVM. Questa è una delle regole fondamentali della blockchain: **non ti fidare, verifica**. -## Dimostrazione visiva {#a-visual-demo} +## Blocchi ommer (zio) {#ommer-blocks} + +L'estrazione di blocchi basata sul proof-of-work era solo probabilistica, il che significa che a volte due blocchi validi venivano pubblicati simultaneamente a causa della latenza della rete. In questo caso, il protocollo doveva determinare la catena più lunga (e quindi più "valida") garantendo al tempo stesso un trattamento equo dei miner, ricompensando parzialmente il blocco valido proposto non incluso. Ciò incoraggiava l'ulteriore decentralizzazione della rete in quanto i piccoli miner, che potevano trovarsi ad affrontare una latenza più elevata, potevano comunque generare rendimenti tramite ricompense per blocchi [ommer](/glossary/#ommer). + +"Ommer" è il termine preferito, neutro dal punto di vista del genere, per lo stesso livello di un blocco padre, ma a volte viene anche indicato come "zio". **Da quando Ethereum è passato alla proof-of-stake, i blocchi ommer non vengono più estratti** poiché in ogni slot viene eletto solo un proponente. Questo cambiamento può essere osservato nel [grafico storico](https://ycharts.com/indicators/ethereum_uncle_rate) dei blocchi ommer estratti. + +## Demo visiva {#a-visual-demo} Austin ti guiderà attraverso il mining e la blockchain basata sul proof-of-work. @@ -66,14 +74,6 @@ La Rete principale di Ethereum ha sempre e solo usato un algoritmo di mining: [' [Maggiori informazioni sugli algoritmi di mining](/developers/docs/consensus-mechanisms/pow/mining-algorithms/). -## Letture consigliate {#further-reading} - -## Strumenti correlati {#related-tools} - -- [I top miner di Ethereum](https://etherscan.io/stat/miner?range=7&blocktype=blocks) -- [Calcolatore di mining Etherscan](https://etherscan.io/ether-mining-calculator) -- [Calcolatore di mining Minerstat](https://minerstat.com/coin/ETH) - ## Argomenti correlati {#related-topics} - [Gas](/developers/docs/gas/) diff --git a/src/content/translations/it/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/dagger-hashimoto/index.md b/src/content/translations/it/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/dagger-hashimoto/index.md new file mode 100644 index 00000000000..04537f99e8d --- /dev/null +++ b/src/content/translations/it/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/dagger-hashimoto/index.md @@ -0,0 +1,334 @@ +--- +title: Dagger-Hashimoto +description: Uno sguardo dettagliato all'algoritmo di Dagger-Hashimoto. +lang: it +--- + +Dagger-Hashimoto era l'implementazione e specifica di ricerca originale per l'algoritmo di mining di Ethereum. Dagger-Hashimoto è stato sostituito da [Ethash](#ethash). Il Mining è stata disattivato completamente con[ il Merge](/updates/merge) il 15 settembre 2022. Da allora, Ethereum è stato assicurato utilizzando un meccanismo [proof-of-of-stake](/developers/docs/consensus-mechanisms/pos). Questa pagina è di interesse storico - le informazioni qui non sono più rilevanti per post-Merge Ethereum. + +## Prerequisiti {#prerequisites} + +Per meglio comprendere questa pagina, ti consigliamo prima di informarti sul [consenso proof-of-work](/developers/docs/consensus-mechanisms/pow), sul [mining](/developers/docs/consensus-mechanisms/pow/mining) e sugli [algoritmi di mining](/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms). + +## Dagger-Hashimoto {#dagger-hashimoto} + +Dagger-Hashimoto punta a soddisfare due obiettivi: + +1. **Resistenza ASIC**: la creazione di hardware specializzato per l'algoritmo dovrebbe apportare un beneficio minimo +2. **Verificabilità da un client leggero**: un blocco dovrebbe essere efficientemente verificabile da un client leggero. + +Con una modifica aggiuntiva, specifichiamo anche come raggiungere un terzo obiettivo se desiderato, ma al costo di una maggiore complessità: + +**Archiviazione della catena completa**: il mining dovrebbe richiedere l'archiviazione dello stato completo della blockchain (a causa della struttura irregolare dell'albero di stato di Ethereum, prevediamo la possibilità di alcune potature (pruning), soprattutto dopo alcuni contratti usati spesso, che vogliamo comunque mantenere al minimo). + +## Generazione del DAG {#dag-generation} + +Il codice per l'algoritmo sarà definito in Python, di seguito. Per prima cosa, diamo `encode_int` per il marshaling in stringhe di interi non firmati con una precisione specificata. È dato anche il suo opposto: + +```python +NUM_BITS = 512 + +def encode_int(x): + "Encode an integer x as a string of 64 characters using a big-endian scheme" + o = '' + for _ in range(NUM_BITS / 8): + o = chr(x % 256) + o + x //= 256 + return o + +def decode_int(s): + "Unencode an integer x from a string using a big-endian scheme" + x = 0 + for c in s: + x *= 256 + x += ord(c) + return x +``` + +Poi supponiamo che `sha3` sia una funzione che prende un intero e produce un intero e che `dbl_sha3` sia una funzione double-sha3; se vogliamo convertire questo codice di riferimento in un uso d'implementazione: + +```python +from pyethereum import utils +def sha3(x): + if isinstance(x, (int, long)): + x = encode_int(x) + return decode_int(utils.sha3(x)) + +def dbl_sha3(x): + if isinstance(x, (int, long)): + x = encode_int(x) + return decode_int(utils.sha3(utils.sha3(x))) +``` + +### Parametri {#parameters} + +I parametri usati per l'algoritmo sono: + +```python +SAFE_PRIME_512 = 2**512 - 38117 # Largest Safe Prime less than 2**512 + +params = { + "n": 4000055296 * 8 // NUM_BITS, # Size of the dataset (4 Gigabytes); MUST BE MULTIPLE OF 65536 + "n_inc": 65536, # Increment in value of n per period; MUST BE MULTIPLE OF 65536 + # with epochtime=20000 gives 882 MB growth per year + "cache_size": 2500, # Size of the light client's cache (can be chosen by light + # client; not part of the algo spec) + "diff": 2**14, # Difficulty (adjusted during block evaluation) + "epochtime": 100000, # Length of an epoch in blocks (how often the dataset is updated) + "k": 1, # Number of parents of a node + "w": w, # Used for modular exponentiation hashing + "accesses": 200, # Number of dataset accesses during hashimoto + "P": SAFE_PRIME_512 # Safe Prime for hashing and random number generation +} +``` + +`P` in questo caso è un numero primo scelto in modo che `log₂(P)` sia solo di poco inferiore a 512, che corrisponde ai 512 bit che abbiamo usato per rappresentare i nostri numeri. Nota che in realtà deve essere memorizzata solo la seconda metà del DAG, quindi il requisito de-facto di RAM parte da 1 GB e cresce di 441 MB l'anno. + +### Costruzione del grafico dagger {#dagger-graph-building} + +Il primitivo di costruzione del grafico dagger è definito come segue: + +```python +def produce_dag(params, seed, length): + P = params["P"] + picker = init = pow(sha3(seed), params["w"], P) + o = [init] + for i in range(1, length): + x = picker = (picker * init) % P + for _ in range(params["k"]): + x ^= o[x % i] + o.append(pow(x, params["w"], P)) + return o +``` + +Essenzialmente, avvia un grafico come un singolo nodo, `sha3(seed)` e da lì si inizia ad aggiungere sequenzialmente gli altri nodi, a seconda dei nodi casuali precedenti. Quando viene creato un nuovo nodo, è calcolata una potenza modulare del seed per selezionare casualmente degli indici inferiori a `i` (usando il suddetto `x % i`) e i valori dei nodi a questi indici sono usati all'interno di un calcolo per generare un nuovo valore per `x`, che viene poi passato a una piccola funzione di proof-of-work (basata su XOR) per generare, infine, il valore del grafico all'indice `i`. La logica dietro questa costruzione particolare è forzare l'accesso sequenziale del DAG; il valore successivo del DAG che sarà accessibile non è determinabile finché non sia noto il valore corrente. Infine, l'esponenziazione modulare genera ulteriormente un hashing del risultato. + +Questo algoritmo si basa su diversi risultati dalla teoria dei numeri. Vedere l'appendice più avanti per una discussione. + +## Valutazione da client leggero {#light-client-evaluation} + +Questa costruzione del grafico intende consentire a ogni nodo nel grafico di essere ricostruito calcolando solamente l'albero secondario di un piccolo numero di nodi, in modo da richiedere solo una piccola quantità di memoria ausiliaria. Nota che, con k=1, l'albero secondario è solo una catena di valori che cresce al primo elemento nel DAG. + +La funzione di calcolo del client leggero per il DAG funziona così: + +```python +def quick_calc(params, seed, p): + w, P = params["w"], params["P"] + cache = {} + + def quick_calc_cached(p): + if p in cache: + pass + elif p == 0: + cache[p] = pow(sha3(seed), w, P) + else: + x = pow(sha3(seed), (p + 1) * w, P) + for _ in range(params["k"]): + x ^= quick_calc_cached(x % p) + cache[p] = pow(x, w, P) + return cache[p] + + return quick_calc_cached(p) +``` + +essenzialmente, è semplicemente una riscrittura dell'algoritmo di cui sopra, che elimina il ciclo di calcolo dei valori per l'intero DAG e sostituisce la ricerca del nodo precedente con una chiamata ricorsiva o una ricerca della cache. Nota che per `k=1`, la cache non è necessaria, anche se in realtà un'ulteriore ottimizzazione pre-calcola le prime migliaia di valori del DAG e li mantiene come una cache statica per i calcoli; vedi l'appendice per l'implementazione di un codice a riguardo. + +## Doppio buffer di DAG {#double-buffer} + +In un client completo, è usato un [_doppio buffer_](https://wikipedia.org/wiki/Multiple_buffering) di 2 DAG prodotti dalla suddetta formula. L'idea è che i DAG siano prodotti ogni `epochtime` numero di blocchi, secondo i parametri indicati sopra. Il client non usa l'ultimo DAG prodotto, ma quello precedente. Il beneficio è che consente ai DAG di essere sostituiti nel tempo senza dover prevedere un passaggio in cui i miner devono improvvisamente ricalcolare tutti i dati. In caso contrario vi sarebbe il rischio, a intervalli regolari, di un brusco rallentamento temporaneo nell'elaborazione della catena e l'aumento drastico della centralizzazione. In quei pochi minuti prima che tutti i dati siano ricalcolati sussiste quindi il rischio di un attacco 51%. + +L'algoritmo usato per generare la serie di DAG usati per calcolare il lavoro per un blocco è il seguente: + +```python +def get_prevhash(n): + from pyethereum.blocks import GENESIS_PREVHASH + from pyethereum import chain_manager + if num <= 0: + return hash_to_int(GENESIS_PREVHASH) + else: + prevhash = chain_manager.index.get_block_by_number(n - 1) + return decode_int(prevhash) + +def get_seedset(params, block): + seedset = {} + seedset["back_number"] = block.number - (block.number % params["epochtime"]) + seedset["back_hash"] = get_prevhash(seedset["back_number"]) + seedset["front_number"] = max(seedset["back_number"] - params["epochtime"], 0) + seedset["front_hash"] = get_prevhash(seedset["front_number"]) + return seedset + +def get_dagsize(params, block): + return params["n"] + (block.number // params["epochtime"]) * params["n_inc"] + +def get_daggerset(params, block): + dagsz = get_dagsize(params, block) + seedset = get_seedset(params, block) + if seedset["front_hash"] <= 0: + # No back buffer is possible, just make front buffer + return {"front": {"dag": produce_dag(params, seedset["front_hash"], dagsz), + "block_number": 0}} + else: + return {"front": {"dag": produce_dag(params, seedset["front_hash"], dagsz), + "block_number": seedset["front_number"]}, + "back": {"dag": produce_dag(params, seedset["back_hash"], dagsz), + "block_number": seedset["back_number"]}} +``` + +## Hashimoto {#hashimoto} + +L'idea dietro all'Hashimoto originale è usare la blockchain come dataset, eseguendo un calcolo che selezioni N indici dalla blockchain, raccolga le transazioni a quegli indici, esegua uno XOR di questi dati e restituisca l'hash del risultato. L'algoritmo originale di Thaddeus Dryja, tradotto in Python per coerenza, è il seguente: + +```python +def orig_hashimoto(prev_hash, merkle_root, list_of_transactions, nonce): + hash_output_A = sha256(prev_hash + merkle_root + nonce) + txid_mix = 0 + for i in range(64): + shifted_A = hash_output_A >> i + transaction = shifted_A % len(list_of_transactions) + txid_mix ^= list_of_transactions[transaction] << i + return txid_max ^ (nonce << 192) +``` + +Sfortunatamente, anche se Hashimoto è considerato gravoso per la RAM, si affida a un'aritmetica a 256 bit, che richiede molti calcoli. Per risolvere questo problema, Dagger-Hashimoto usa comunque solo i 64 bit meno significativi, indicizzando il proprio dataset. + +```python +def hashimoto(dag, dagsize, params, header, nonce): + m = dagsize / 2 + mix = sha3(encode_int(nonce) + header) + for _ in range(params["accesses"]): + mix ^= dag[m + (mix % 2**64) % m] + return dbl_sha3(mix) +``` + +L'uso di SHA3 doppi consente una forma di dati zero, una pre-verifica quasi istantanea, che verifica solo che sia stato fornito un valore intermedio corretto. Questo livello esterno di proof-of-work è altamente pro-ASIC e abbastanza debole, ma è pensato per rendere ancora più complicati gli attacchi DDoS, poiché per produrre un blocco che non sarà immediatamente scartato deve essere eseguito un po’ di lavoro. Ecco la versione del client leggero: + +```python +def quick_hashimoto(seed, dagsize, params, header, nonce): + m = dagsize // 2 + mix = sha3(nonce + header) + for _ in range(params["accesses"]): + mix ^= quick_calc(params, seed, m + (mix % 2**64) % m) + return dbl_sha3(mix) +``` + +## Mining e verifica {#mining-and-verifying} + +Mettiamo ora tutto insieme nell'algoritmo di mining: + +```python +def mine(daggerset, params, block): + from random import randint + nonce = randint(0, 2**64) + while 1: + result = hashimoto(daggerset, get_dagsize(params, block), + params, decode_int(block.prevhash), nonce) + if result * params["diff"] < 2**256: + break + nonce += 1 + if nonce >= 2**64: + nonce = 0 + return nonce +``` + +Ecco l'algoritmo di verifica: + +```python +def verify(daggerset, params, block, nonce): + result = hashimoto(daggerset, get_dagsize(params, block), + params, decode_int(block.prevhash), nonce) + return result * params["diff"] < 2**256 +``` + +Verifica adatta a un client leggero: + +```python +def light_verify(params, header, nonce): + seedset = get_seedset(params, block) + result = quick_hashimoto(seedset["front_hash"], get_dagsize(params, block), + params, decode_int(block.prevhash), nonce) + return result * params["diff"] < 2**256 +``` + +Inoltre, nota che Dagger-Hashimoto impone anche altri requisiti sull'intestazione del blocco: + +- Perché la verifica a due livelli funzioni, l'intestazione di un blocco deve avere sia il nonce che il valore medio di pre-sha3 +- Da qualche parte, l'intestazione di un blocco deve memorizzare la sha3 del set di seed corrente + +## Letture consigliate {#further-reading} + +_Conosci una risorsa della community che ti è stata utile? Modifica questa pagina e aggiungila!_ + +## Appendice {#appendix} + +Come notato sopra, l'RNG usato per la generazione del DAG si affida ad alcuni risultati dalla teoria dei numeri. Per prima cosa, accertiamoci che l'RNG di Lehmer che è la base per la variabile `picker` abbia un periodo ampio. In secondo luogo, mostriamo che `pow(x,3,P)` non mapperà `x` a `1` o `P-1`, a condizione che all’inizio `x ∈ [2,P-2]`. Infine, mostriamo che `pow(x,3,P)` ha un basso tasso di collisione se trattato come funzione di hashing. + +### Generatore di numeri casuali di Lehmer {#lehmer-random-number} + +Sebbene la funzione `produce_dag` non necessiti di produrre numeri casuali imparziali, un possibile rischio è dato dal fatto che `seed**i % P` prende solo una manciata di valori. Questo potrebbe fornire un vantaggio ai miner che riconoscono lo schema, rispetto a quelli che non lo conoscono. + +Per evitarlo, si è fatto ricorso a un risultato dalla teoria dei numeri. Un [_Numero primo sicuro_](https://en.wikipedia.org/wiki/Safe_prime) si definisce come numero primo `P` tale per cui anche `(P-1)/2` è un numero primo. L'_ordine_ di un membro `x` del [gruppo moltiplicativo](https://en.wikipedia.org/wiki/Multiplicative_group_of_integers_modulo_n) `ℤ/nℤ` è definito come il valore minimo di `m` tale per cui
xᵐ mod P ≡ 1
+Date queste definizioni, abbiamo: + +> Osservazione 1. Ipotizziamo che `x` sia un membro del gruppo moltiplicativo `ℤ/Pℤ` per un numero primo sicuro `P`. Se `x mod P ≠ 1 mod P` e `x mod P ≠ P-1 mod P`, allora l'ordine di `x` è `P-1` o `(P-1)/2`. + +_Dimostrazione_. Poiché `P` è un numero primo sicuro, allora per il \[Teorema di Lagrange\]\[lagrange\], l'ordine di `x` è `1`, `2`, `(P-1)/2` o `P-1`. + +L'ordine di `x` non può essere `1`, poiché secondo il Piccolo teorema di Fermat: + +
xP-1 mod P ≡ 1
+ +Quindi, `x`, deve essere un'identità moltiplicativa di `ℤ/nℤ`, che è univoca. Poiché abbiamo presupposto che `x ≠ 1`, ciò è impossibile. + +L'ordine di `x` non può essere `2` a meno che `x = P-1`, poiché ciò violerebbe il fatto che `P` sia un numero primo. + +Dalla suddetta proposizione possiamo capire che iterando `(picker * init) % P`, avrà una lunghezza del ciclo di almeno `(P-1)/2`. Questo perché abbiamo selezionato `P` come un numero primo sicuro, approssimativamente pari a una potenza superiore di due e che `init` è nell'intervallo `[2,2**256+1]`. Data la magnitudine di `P`, non dovremmo mai aspettarci un ciclo dall'esponenziazione modulare. + +Quando assegniamo la prima cella nel DAG (la variabile etichettata come `init`), calcoliamo `pow(sha3(seed) + 2, 3, P)`. A prima vista, questo non garantisce che il risultato sia `1` né `P-1`. Tuttavia, poiché `P-1` è un numero primo sicuro, abbiamo la seguente garanzia aggiuntiva, che è un corollario dell'Osservazione 1: + +> Osservazione 2. Ipotizziamo che `x` sia un membro del gruppo moltiplicativo `ℤ/Pℤ` per un numero primo sicuro `P`, e prendiamo `w` come numero naturale. Se `x mod P ≠ 1 mod P` e `x mod P ≠ P-1 mod P`, nonché `w mod P ≠ P-1 mod P` e `w mod P ≠ 0 mod P`, allora `xʷ mod P ≠ 1 mod P` e `xʷ mod P ≠ P-1 mod P` + +### Esponenziazione modulare come funzione di hash {#modular-exponentiation} + +Per certi valori di `P` e `w`, la funzione `pow(x, w, P)` potrebbe avere molte collisioni. Ad esempio, `pow(x,9,19)` prende solo i valori `{1,18}`. + +Dato che `P` è primo, allora è possibile scegliere un'appropriata `w` per una funzione di hashing di esponenziazione modulare usando il seguente risultato: + +> Osservazione 3. Prendiamo `P` come numero primo; `w` e `P-1` sono coprimi se e solo se per ogni `a` e `b` in `ℤ/Pℤ`: +> +>
+> `aʷ mod P ≡ bʷ mod P` se e solo se `a mod P ≡ b mod P` +>
+ +Dunque, dato che `P` è primo e `w` è coprimo rispetto a `P-1`, abbiamo che `|{pow(x, w, P) : x ∈ ℤ}| = P`, e questo implica che la funzione di hashing ha la frequenza di collisione minima possibile. + +Nel caso speciale in cui `P` sia un numero primo sicuro, come da noi selezionato, allora `P-1` ha solo i fattori 1, 2, `(P-1)/2` e `P-1`. Poiché `P` > 7, sappiamo che 3 è primo rispetto a `P-1`, quindi `w=3` soddisfa la proposizione precedente. + +## Algoritmo di valutazione più efficiente basato sulla cache {#cache-based-evaluation} + +```python +def quick_calc(params, seed, p): + cache = produce_dag(params, seed, params["cache_size"]) + return quick_calc_cached(cache, params, p) + +def quick_calc_cached(cache, params, p): + P = params["P"] + if p < len(cache): + return cache[p] + else: + x = pow(cache[0], p + 1, P) + for _ in range(params["k"]): + x ^= quick_calc_cached(cache, params, x % p) + return pow(x, params["w"], P) + +def quick_hashimoto(seed, dagsize, params, header, nonce): + cache = produce_dag(params, seed, params["cache_size"]) + return quick_hashimoto_cached(cache, dagsize, params, header, nonce) + +def quick_hashimoto_cached(cache, dagsize, params, header, nonce): + m = dagsize // 2 + mask = 2**64 - 1 + mix = sha3(encode_int(nonce) + header) + for _ in range(params["accesses"]): + mix ^= quick_calc_cached(cache, params, m + (mix & mask) % m) + return dbl_sha3(mix) +``` diff --git a/src/content/translations/it/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/ethash/index.md b/src/content/translations/it/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/ethash/index.md new file mode 100644 index 00000000000..c49aa95c4a7 --- /dev/null +++ b/src/content/translations/it/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/ethash/index.md @@ -0,0 +1,1014 @@ +--- +title: Ethash +description: Uno sguardo dettagliato all'algoritmo Ethash. +lang: it +--- + + + Ethash era l'algoritmo di mining di proof-of-work di Ethereum. Il proof-of-work è ora stato **disattivato interamente** e, invece, Ethereum è ora protetto utilizzando il
proof-of-stake. Leggi di più su La Fusione, sul proof-of-stake e sullo staking. Questa pagina è per interesse storico! + + +[Ethash](https://github.com/ethereum/wiki/wiki/Ethash) è una versione modificata dell'algoritmo [Dagger-Hashimoto](/developers/docs/consensus-mechanisms/pow/mining-algorithms/dagger-hashimoto). Il proof-of-work di Ethash è [a elevato consumo di memoria](https://wikipedia.org/wiki/Memory-hard_function), cosa pensata per rendere l'algoritmo resistente agli ASIC. Gli ASIC di Ethash sono infine stati sviluppati, ma il mining della GPU è stata un'opzione ancora valida fino alla disattivazione del proof-of-work. Ethash è ancora usato per minare altre valute su altre reti di proof-of-work non di Ethereum. + +## Come funziona Ethash? {#how-does-ethash-work} + +La gravosità sulla memoria è ottenuta con un algoritmo di proof-of-work che richiede la scelta di sotto-serie di una risorsa fissa, dipendente dal nonce e dall'intestazione del blocco. Questa risorsa (di pochi gigabyte di dimensioni) è detta DAG. Il DAG è modificato ogni 30.000 blocchi, una finestra di circa 125 ore detta un'epoca (circa 5,2 giorni) e richiede un po' di tempo per generarsi. Poiché il DAG dipende solo dall'altezza del blocco, può esser pre-generato, ma se non è il client, deve attendere fino alla fine di questo processo per produrre un blocco. Se i client non si pre-generano e salvano anticipatamente nella cache i DAG, la rete potrebbe subire un enorme ritardo dei blocchi a ogni transizione d'epoca. Il DAG non deve necessariamente essere generato per verificare il proof-of-work, perché è essenzialmente possibile eseguire la verifica con poca CPU e poca memoria. + +Il percorso generale intrapreso dall'algoritmo è il seguente: + +1. Esiste un **seed**, calcolabile per ogni blocco scansionando fino a quel punto le intestazioni dei blocchi. +2. Dal seed, si può calcolare una **cache pseudo-casuale di 16 MB**. I client leggeri memorizzano la cache. +3. Dalla cache, possiamo generare un **dataset di 1 GB**, caratterizzato dal fatto che ogni elemento nel dataset dipende solo da una piccola quantità di elementi dalla cache. I client completi e i miner memorizzano il dataset. Il dataset cresce linearmente col tempo. +4. Durante il mining vengono prese delle fette (slice) casuali del dataset, eseguendone l'hashing. La verifica può essere effettuata con poca memoria usando la cache per rigenerare le parti specifiche del dataset necessarie, così da dover solo memorizzare la cache. + +Il grande dataset è aggiornato una volta ogni 30.000 blocchi, in questo modo l'impegno di un miner sarà per lo più quello di leggere il dataset, non effettuare modifiche a esso. + +## Definizioni {#definitions} + +Adottiamo le seguenti definizioni: + +``` +WORD_BYTES = 4 # bytes in word +DATASET_BYTES_INIT = 2**30 # bytes in dataset at genesis +DATASET_BYTES_GROWTH = 2**23 # dataset growth per epoch +CACHE_BYTES_INIT = 2**24 # bytes in cache at genesis +CACHE_BYTES_GROWTH = 2**17 # cache growth per epoch +CACHE_MULTIPLIER=1024 # Size of the DAG relative to the cache +EPOCH_LENGTH = 30000 # blocks per epoch +MIX_BYTES = 128 # width of mix +HASH_BYTES = 64 # hash length in bytes +DATASET_PARENTS = 256 # number of parents of each dataset element +CACHE_ROUNDS = 3 # number of rounds in cache production +ACCESSES = 64 # number of accesses in hashimoto loop +``` + +### L'uso di "SHA3" {#sha3} + +Lo sviluppo di Ethereum è coinciso con lo sviluppo dello standard SHA3 e il processo standard ha effettuato una modifica tardiva al padding dell'algoritmo di hash finalizzato, quindi, gli hash "sha3_256" e "sha3_512" di Ethereum non sono hash dello standard sha3, ma una variante, spesso definita "Keccak-256" e "Keccak-512" in altri contesti. Vedi la discussione, es. [qui](https://eips.ethereum.org/EIPS-1803), [qui](http://ethereum.stackexchange.com/questions/550/which-cryptographic-hash-function-does-ethereum-use) o [qui](http://bitcoin.stackexchange.com/questions/42055/what-is-the-approach-to-calculate-an-ethereum-address-from-a-256-bit-private-key/42057#42057). + +Si ricorda che gli hash "sha3" siano presentati nella descrizione dell'algoritmo più avanti. + +## Parametri {#parameters} + +I parametri della cache e del dataset di Ethash dipendono dal numero del blocco. Le dimensioni della cache e del dataset crescono entrambe linearmente; tuttavia, prendiamo sempre il numero primo maggiore successivo alla soglia di crescita lineare, per ridurre il rischio di regolarità accidentali che determinano un comportamento ciclico. + +```python +def get_cache_size(block_number): + sz = CACHE_BYTES_INIT + CACHE_BYTES_GROWTH * (block_number // EPOCH_LENGTH) + sz -= HASH_BYTES + while not isprime(sz / HASH_BYTES): + sz -= 2 * HASH_BYTES + return sz + +def get_full_size(block_number): + sz = DATASET_BYTES_INIT + DATASET_BYTES_GROWTH * (block_number // EPOCH_LENGTH) + sz -= MIX_BYTES + while not isprime(sz / MIX_BYTES): + sz -= 2 * MIX_BYTES + return sz +``` + +Nell'appendice sono presentate tabelle delle dimensioni del dataset e della cache. + +## Generazione della cache {#cache-generation} + +Specifichiamo ora la funzione per produrre una cache: + +```python +def mkcache(cache_size, seed): + n = cache_size // HASH_BYTES + + # Sequentially produce the initial dataset + o = [sha3_512(seed)] + for i in range(1, n): + o.append(sha3_512(o[-1])) + + # Use a low-round version of randmemohash + for _ in range(CACHE_ROUNDS): + for i in range(n): + v = o[i][0] % n + o[i] = sha3_512(map(xor, o[(i-1+n) % n], o[v])) + + return o +``` + +Il processo di produzione della cache richiede dapprima il riempimento sequenziale di 32 MB di memoria, poi l'esecuzione di due passaggi dell'algoritmo _RandMemoHash_ di Sergio Demian Lerner da [_Strict Memory Hard Hashing Functions_ (2014)](http://www.hashcash.org/papers/memohash.pdf). L'output è una serie di valori a 64 byte 524288. + +## Funzione di aggregazione dei dati {#date-aggregation-function} + +Usiamo un algoritmo ispirato dall'[hash FNV](https://en.wikipedia.org/wiki/Fowler%E2%80%93Noll%E2%80%93Vo_hash_function) in alcuni casi come un sostituto non associativo per XOR. Nota che moltiplichiamo il numero primo con l'intero input a 32 bit, a differenza della specifica FNV-1, che moltiplica invece il numero primo con un byte (ottetto). + +```python +FNV_PRIME = 0x01000193 + +def fnv(v1, v2): + return ((v1 * FNV_PRIME) ^ v2) % 2**32 +``` + +Anche lo yellow paper specifica fnv come v1\*(FNV_PRIME ^ v2), tutte le implementazioni correnti usano attualmente la suddetta definizione. + +## Calcolo dell'intero dataset {#full-dataset-calculation} + +Ogni elemento da 64 byte nell'intero dataset da 1 GB è calcolato come segue: + +```python +def calc_dataset_item(cache, i): + n = len(cache) + r = HASH_BYTES // WORD_BYTES + # initialize the mix + mix = copy.copy(cache[i % n]) + mix[0] ^= i + mix = sha3_512(mix) + # fnv it with a lot of random cache nodes based on i + for j in range(DATASET_PARENTS): + cache_index = fnv(i ^ j, mix[j % r]) + mix = map(fnv, mix, cache[cache_index % n]) + return sha3_512(mix) +``` + +Essenzialmente, combiniamo i dati da 256 nodi della cache selezionati pseudo-casualmente e ne eseguiamo l'hash per calcolare il nodo del dataset. L'intero dataset è quindi generato da: + +```python +def calc_dataset(full_size, cache): + return [calc_dataset_item(cache, i) for i in range(full_size // HASH_BYTES)] +``` + +## Ciclo principale {#main-loop} + +Ora, specifichiamo il ciclo principale in stile "hashimoto", dove aggreghiamo i dati dal dataset completo per poter produrre il valore finale per un'intestazione e nonce in particolare. Nel codice seguente, `header` rappresenta l'_hash_ SHA3-256 della rappresentazione RLP di un'intestazione del blocco _troncata_, ovvero, di un'intestazione che esclude i campi **mixHash** e **nonce**. Un `nonce` si compone degli otto byte di un intero non firmato da 64 bit, con ordinamento big-endian. Quindi `nonce[::-1]` è la rappresentazione little-endian di otto byte di quel valore: + +```python +def hashimoto(header, nonce, full_size, dataset_lookup): + n = full_size / HASH_BYTES + w = MIX_BYTES // WORD_BYTES + mixhashes = MIX_BYTES / HASH_BYTES + # combine header+nonce into a 64 byte seed + s = sha3_512(header + nonce[::-1]) + # start the mix with replicated s + mix = [] + for _ in range(MIX_BYTES / HASH_BYTES): + mix.extend(s) + # mix in random dataset nodes + for i in range(ACCESSES): + p = fnv(i ^ s[0], mix[i % w]) % (n // mixhashes) * mixhashes + newdata = [] + for j in range(MIX_BYTES / HASH_BYTES): + newdata.extend(dataset_lookup(p + j)) + mix = map(fnv, mix, newdata) + # compress mix + cmix = [] + for i in range(0, len(mix), 4): + cmix.append(fnv(fnv(fnv(mix[i], mix[i+1]), mix[i+2]), mix[i+3])) + return { + "mix digest": serialize_hash(cmix), + "result": serialize_hash(sha3_256(s+cmix)) + } + +def hashimoto_light(full_size, cache, header, nonce): + return hashimoto(header, nonce, full_size, lambda x: calc_dataset_item(cache, x)) + +def hashimoto_full(full_size, dataset, header, nonce): + return hashimoto(header, nonce, full_size, lambda x: dataset[x]) +``` + +Essenzialmente, manteniamo un mix di 128 byte e recuperiamo sequenzialmente e ripetutamente 128 byte dal dataset completo e usiamo la funzione `fnv` per combinarli col mix. Vengono usati 128 byte di accesso sequenziale così che ogni ciclo dell'algoritmo recuperi sempre una pagina intera dalla RAM, minimizzando le ricerche a vuoto nel lookaside buffer che gli ASIC dovrebbero teoricamente poter evitare. + +Se l'output di questo algoritmo è inferiore all'obiettivo desiderato, allora il nonce è valido. Nota che l'applicazione aggiuntiva di `sha3_256` alla fine assicura che esista un nonce intermedio, che può essere fornito per provare che almeno una piccola quantità di lavoro è stata eseguita; questa rapida verifica di PoW esterna è utilizzabile per scopi anti-DDoS. Serve anche a fornire la garanzia statistica che il risultato sia un numero a 256 bit imparziale. + +## Mining {#mining} + +L'algoritmo di mining è definito come segue: + +```python +def mine(full_size, dataset, header, difficulty): + # zero-pad target to compare with hash on the same digit + target = zpad(encode_int(2**256 // difficulty), 64)[::-1] + from random import randint + nonce = randint(0, 2**64) + while hashimoto_full(full_size, dataset, header, nonce) > target: + nonce = (nonce + 1) % 2**64 + return nonce +``` + +## Definire l'hash del seed {#seed-hash} + +Per poter calcolare l'hash del seed da usare per fare mining su un dato blocco, usiamo il seguente algoritmo: + +```python + def get_seedhash(block): + s = '\x00' * 32 + for i in range(block.number // EPOCH_LENGTH): + s = serialize_hash(sha3_256(s)) + return s +``` + +Nota che per la fluidità delle attività di mining e verifica, consigliamo di pre-calcolare gli hash dei seed futuri e i dataset in un thread separato. + +## Letture consigliate {#further-reading} + +_Conosci una risorsa della community che ti è stata utile? Modifica questa pagina e aggiungila!_ + +## Appendice {#appendix} + +Il seguente codice dovrebbe essere anteposto se sei interessato all'esecuzione della suddetta specifica di Python come codice. + +```python +import sha3, copy + +# Assumes little endian bit ordering (same as Intel architectures) +def decode_int(s): + return int(s[::-1].encode('hex'), 16) if s else 0 + +def encode_int(s): + a = "%x" % s + return '' if s == 0 else ('0' * (len(a) % 2) + a).decode('hex')[::-1] + +def zpad(s, length): + return s + '\x00' * max(0, length - len(s)) + +def serialize_hash(h): + return ''.join([zpad(encode_int(x), 4) for x in h]) + +def deserialize_hash(h): + return [decode_int(h[i:i+WORD_BYTES]) for i in range(0, len(h), WORD_BYTES)] + +def hash_words(h, sz, x): + if isinstance(x, list): + x = serialize_hash(x) + y = h(x) + return deserialize_hash(y) + +def serialize_cache(ds): + return ''.join([serialize_hash(h) for h in ds]) + +serialize_dataset = serialize_cache + +# sha3 hash function, outputs 64 bytes +def sha3_512(x): + return hash_words(lambda v: sha3.sha3_512(v).digest(), 64, x) + +def sha3_256(x): + return hash_words(lambda v: sha3.sha3_256(v).digest(), 32, x) + +def xor(a, b): + return a ^ b + +def isprime(x): + for i in range(2, int(x**0.5)): + if x % i == 0: + return False + return True +``` + +### Dimensioni dei dati {#data-sizes} + +Le seguenti tabelle di ricerca forniscono approssimativamente 2048 epoche tabulate di dimensioni dei dati e della cache. + +```python +def get_datasize(block_number): + return data_sizes[block_number // EPOCH_LENGTH] + +def get_cachesize(block_number): + return cache_sizes[block_number // EPOCH_LENGTH] + +data_sizes = [ +1073739904, 1082130304, 1090514816, 1098906752, 1107293056, +1115684224, 1124070016, 1132461952, 1140849536, 1149232768, +1157627776, 1166013824, 1174404736, 1182786944, 1191180416, +1199568512, 1207958912, 1216345216, 1224732032, 1233124736, +1241513344, 1249902464, 1258290304, 1266673792, 1275067264, +1283453312, 1291844992, 1300234112, 1308619904, 1317010048, +1325397376, 1333787776, 1342176128, 1350561664, 1358954368, +1367339392, 1375731584, 1384118144, 1392507008, 1400897408, +1409284736, 1417673344, 1426062464, 1434451072, 1442839168, +1451229056, 1459615616, 1468006016, 1476394112, 1484782976, +1493171584, 1501559168, 1509948032, 1518337664, 1526726528, +1535114624, 1543503488, 1551892096, 1560278656, 1568669056, +1577056384, 1585446272, 1593831296, 1602219392, 1610610304, +1619000192, 1627386752, 1635773824, 1644164224, 1652555648, +1660943488, 1669332608, 1677721216, 1686109312, 1694497664, +1702886272, 1711274624, 1719661184, 1728047744, 1736434816, +1744829056, 1753218944, 1761606272, 1769995904, 1778382464, +1786772864, 1795157888, 1803550592, 1811937664, 1820327552, +1828711552, 1837102976, 1845488768, 1853879936, 1862269312, +1870656896, 1879048064, 1887431552, 1895825024, 1904212096, +1912601216, 1920988544, 1929379456, 1937765504, 1946156672, +1954543232, 1962932096, 1971321728, 1979707264, 1988093056, +1996487552, 2004874624, 2013262208, 2021653888, 2030039936, +2038430848, 2046819968, 2055208576, 2063596672, 2071981952, +2080373632, 2088762752, 2097149056, 2105539712, 2113928576, +2122315136, 2130700672, 2139092608, 2147483264, 2155872128, +2164257664, 2172642176, 2181035392, 2189426048, 2197814912, +2206203008, 2214587264, 2222979712, 2231367808, 2239758208, +2248145024, 2256527744, 2264922752, 2273312128, 2281701248, +2290086272, 2298476672, 2306867072, 2315251072, 2323639168, +2332032128, 2340420224, 2348808064, 2357196416, 2365580416, +2373966976, 2382363008, 2390748544, 2399139968, 2407530368, +2415918976, 2424307328, 2432695424, 2441084288, 2449472384, +2457861248, 2466247808, 2474637184, 2483026816, 2491414144, +2499803776, 2508191872, 2516582272, 2524970368, 2533359232, +2541743488, 2550134144, 2558525056, 2566913408, 2575301504, +2583686528, 2592073856, 2600467328, 2608856192, 2617240448, +2625631616, 2634022016, 2642407552, 2650796416, 2659188352, +2667574912, 2675965312, 2684352896, 2692738688, 2701130624, +2709518464, 2717907328, 2726293376, 2734685056, 2743073152, +2751462016, 2759851648, 2768232832, 2776625536, 2785017728, +2793401984, 2801794432, 2810182016, 2818571648, 2826959488, +2835349376, 2843734144, 2852121472, 2860514432, 2868900992, +2877286784, 2885676928, 2894069632, 2902451584, 2910843008, +2919234688, 2927622784, 2936011648, 2944400768, 2952789376, +2961177728, 2969565568, 2977951616, 2986338944, 2994731392, +3003120256, 3011508352, 3019895936, 3028287104, 3036675968, +3045063808, 3053452928, 3061837696, 3070228352, 3078615424, +3087003776, 3095394944, 3103782272, 3112173184, 3120562048, +3128944768, 3137339264, 3145725056, 3154109312, 3162505088, +3170893184, 3179280256, 3187669376, 3196056704, 3204445568, +3212836736, 3221224064, 3229612928, 3238002304, 3246391168, +3254778496, 3263165824, 3271556224, 3279944576, 3288332416, +3296719232, 3305110912, 3313500032, 3321887104, 3330273152, +3338658944, 3347053184, 3355440512, 3363827072, 3372220288, +3380608384, 3388997504, 3397384576, 3405774208, 3414163072, +3422551936, 3430937984, 3439328384, 3447714176, 3456104576, +3464493952, 3472883584, 3481268864, 3489655168, 3498048896, +3506434432, 3514826368, 3523213952, 3531603584, 3539987072, +3548380288, 3556763264, 3565157248, 3573545344, 3581934464, +3590324096, 3598712704, 3607098752, 3615488384, 3623877248, +3632265856, 3640646528, 3649043584, 3657430144, 3665821568, +3674207872, 3682597504, 3690984832, 3699367808, 3707764352, +3716152448, 3724541056, 3732925568, 3741318016, 3749706368, +3758091136, 3766481536, 3774872704, 3783260032, 3791650432, +3800036224, 3808427648, 3816815488, 3825204608, 3833592704, +3841981568, 3850370432, 3858755968, 3867147904, 3875536256, +3883920512, 3892313728, 3900702592, 3909087872, 3917478784, +3925868416, 3934256512, 3942645376, 3951032192, 3959422336, +3967809152, 3976200064, 3984588416, 3992974976, 4001363584, +4009751168, 4018141312, 4026530432, 4034911616, 4043308928, +4051695488, 4060084352, 4068472448, 4076862848, 4085249408, +4093640576, 4102028416, 4110413696, 4118805632, 4127194496, +4135583104, 4143971968, 4152360832, 4160746112, 4169135744, +4177525888, 4185912704, 4194303616, 4202691968, 4211076736, +4219463552, 4227855488, 4236246656, 4244633728, 4253022848, +4261412224, 4269799808, 4278184832, 4286578048, 4294962304, +4303349632, 4311743104, 4320130432, 4328521088, 4336909184, +4345295488, 4353687424, 4362073472, 4370458496, 4378852736, +4387238528, 4395630208, 4404019072, 4412407424, 4420790656, +4429182848, 4437571456, 4445962112, 4454344064, 4462738048, +4471119232, 4479516544, 4487904128, 4496289664, 4504682368, +4513068416, 4521459584, 4529846144, 4538232704, 4546619776, +4555010176, 4563402112, 4571790208, 4580174464, 4588567936, +4596957056, 4605344896, 4613734016, 4622119808, 4630511488, +4638898816, 4647287936, 4655675264, 4664065664, 4672451968, +4680842624, 4689231488, 4697620352, 4706007424, 4714397056, +4722786176, 4731173248, 4739562368, 4747951744, 4756340608, +4764727936, 4773114496, 4781504384, 4789894784, 4798283648, +4806667648, 4815059584, 4823449472, 4831835776, 4840226176, +4848612224, 4857003392, 4865391488, 4873780096, 4882169728, +4890557312, 4898946944, 4907333248, 4915722368, 4924110976, +4932499328, 4940889728, 4949276032, 4957666432, 4966054784, +4974438016, 4982831488, 4991221376, 4999607168, 5007998848, +5016386432, 5024763776, 5033164672, 5041544576, 5049941888, +5058329728, 5066717056, 5075107456, 5083494272, 5091883904, +5100273536, 5108662144, 5117048192, 5125436032, 5133827456, +5142215296, 5150605184, 5158993024, 5167382144, 5175769472, +5184157568, 5192543872, 5200936064, 5209324928, 5217711232, +5226102656, 5234490496, 5242877312, 5251263872, 5259654016, +5268040832, 5276434304, 5284819328, 5293209728, 5301598592, +5309986688, 5318374784, 5326764416, 5335151488, 5343542144, +5351929472, 5360319872, 5368706944, 5377096576, 5385484928, +5393871232, 5402263424, 5410650496, 5419040384, 5427426944, +5435816576, 5444205952, 5452594816, 5460981376, 5469367936, +5477760896, 5486148736, 5494536832, 5502925952, 5511315328, +5519703424, 5528089984, 5536481152, 5544869504, 5553256064, +5561645696, 5570032768, 5578423936, 5586811264, 5595193216, +5603585408, 5611972736, 5620366208, 5628750464, 5637143936, +5645528192, 5653921408, 5662310272, 5670694784, 5679082624, +5687474048, 5695864448, 5704251008, 5712641408, 5721030272, +5729416832, 5737806208, 5746194304, 5754583936, 5762969984, +5771358592, 5779748224, 5788137856, 5796527488, 5804911232, +5813300608, 5821692544, 5830082176, 5838468992, 5846855552, +5855247488, 5863636096, 5872024448, 5880411008, 5888799872, +5897186432, 5905576832, 5913966976, 5922352768, 5930744704, +5939132288, 5947522432, 5955911296, 5964299392, 5972688256, +5981074304, 5989465472, 5997851008, 6006241408, 6014627968, +6023015552, 6031408256, 6039796096, 6048185216, 6056574848, +6064963456, 6073351808, 6081736064, 6090128768, 6098517632, +6106906496, 6115289216, 6123680896, 6132070016, 6140459648, +6148849024, 6157237376, 6165624704, 6174009728, 6182403712, +6190792064, 6199176064, 6207569792, 6215952256, 6224345216, +6232732544, 6241124224, 6249510272, 6257899136, 6266287744, +6274676864, 6283065728, 6291454336, 6299843456, 6308232064, +6316620928, 6325006208, 6333395584, 6341784704, 6350174848, +6358562176, 6366951296, 6375337856, 6383729536, 6392119168, +6400504192, 6408895616, 6417283456, 6425673344, 6434059136, +6442444672, 6450837376, 6459223424, 6467613056, 6476004224, +6484393088, 6492781952, 6501170048, 6509555072, 6517947008, +6526336384, 6534725504, 6543112832, 6551500672, 6559888768, +6568278656, 6576662912, 6585055616, 6593443456, 6601834112, +6610219648, 6618610304, 6626999168, 6635385472, 6643777408, +6652164224, 6660552832, 6668941952, 6677330048, 6685719424, +6694107776, 6702493568, 6710882176, 6719274112, 6727662976, +6736052096, 6744437632, 6752825984, 6761213824, 6769604224, +6777993856, 6786383488, 6794770816, 6803158144, 6811549312, +6819937664, 6828326528, 6836706176, 6845101696, 6853491328, +6861880448, 6870269312, 6878655104, 6887046272, 6895433344, +6903822208, 6912212864, 6920596864, 6928988288, 6937377152, +6945764992, 6954149248, 6962544256, 6970928768, 6979317376, +6987709312, 6996093824, 7004487296, 7012875392, 7021258624, +7029652352, 7038038912, 7046427776, 7054818944, 7063207808, +7071595136, 7079980928, 7088372608, 7096759424, 7105149824, +7113536896, 7121928064, 7130315392, 7138699648, 7147092352, +7155479168, 7163865728, 7172249984, 7180648064, 7189036672, +7197424768, 7205810816, 7214196608, 7222589824, 7230975104, +7239367552, 7247755904, 7256145536, 7264533376, 7272921472, +7281308032, 7289694848, 7298088832, 7306471808, 7314864512, +7323253888, 7331643008, 7340029568, 7348419712, 7356808832, +7365196672, 7373585792, 7381973888, 7390362752, 7398750592, +7407138944, 7415528576, 7423915648, 7432302208, 7440690304, +7449080192, 7457472128, 7465860992, 7474249088, 7482635648, +7491023744, 7499412608, 7507803008, 7516192384, 7524579968, +7532967296, 7541358464, 7549745792, 7558134656, 7566524032, +7574912896, 7583300992, 7591690112, 7600075136, 7608466816, +7616854912, 7625244544, 7633629824, 7642020992, 7650410368, +7658794112, 7667187328, 7675574912, 7683961984, 7692349568, +7700739712, 7709130368, 7717519232, 7725905536, 7734295424, +7742683264, 7751069056, 7759457408, 7767849088, 7776238208, +7784626816, 7793014912, 7801405312, 7809792128, 7818179968, +7826571136, 7834957184, 7843347328, 7851732352, 7860124544, +7868512384, 7876902016, 7885287808, 7893679744, 7902067072, +7910455936, 7918844288, 7927230848, 7935622784, 7944009344, +7952400256, 7960786048, 7969176704, 7977565312, 7985953408, +7994339968, 8002730368, 8011119488, 8019508096, 8027896192, +8036285056, 8044674688, 8053062272, 8061448832, 8069838464, +8078227328, 8086616704, 8095006592, 8103393664, 8111783552, +8120171392, 8128560256, 8136949376, 8145336704, 8153726848, +8162114944, 8170503296, 8178891904, 8187280768, 8195669632, +8204058496, 8212444544, 8220834176, 8229222272, 8237612672, +8246000768, 8254389376, 8262775168, 8271167104, 8279553664, +8287944064, 8296333184, 8304715136, 8313108352, 8321497984, +8329885568, 8338274432, 8346663296, 8355052928, 8363441536, +8371828352, 8380217984, 8388606592, 8396996224, 8405384576, +8413772672, 8422161536, 8430549376, 8438939008, 8447326592, +8455715456, 8464104832, 8472492928, 8480882048, 8489270656, +8497659776, 8506045312, 8514434944, 8522823808, 8531208832, +8539602304, 8547990656, 8556378752, 8564768384, 8573154176, +8581542784, 8589933952, 8598322816, 8606705024, 8615099264, +8623487872, 8631876992, 8640264064, 8648653952, 8657040256, +8665430656, 8673820544, 8682209152, 8690592128, 8698977152, +8707374464, 8715763328, 8724151424, 8732540032, 8740928384, +8749315712, 8757704576, 8766089344, 8774480768, 8782871936, +8791260032, 8799645824, 8808034432, 8816426368, 8824812928, +8833199488, 8841591424, 8849976448, 8858366336, 8866757248, +8875147136, 8883532928, 8891923328, 8900306816, 8908700288, +8917088384, 8925478784, 8933867392, 8942250368, 8950644608, +8959032704, 8967420544, 8975809664, 8984197504, 8992584064, +9000976256, 9009362048, 9017752448, 9026141312, 9034530688, +9042917504, 9051307904, 9059694208, 9068084864, 9076471424, +9084861824, 9093250688, 9101638528, 9110027648, 9118416512, +9126803584, 9135188096, 9143581312, 9151969664, 9160356224, +9168747136, 9177134464, 9185525632, 9193910144, 9202302848, +9210690688, 9219079552, 9227465344, 9235854464, 9244244864, +9252633472, 9261021824, 9269411456, 9277799296, 9286188928, +9294574208, 9302965888, 9311351936, 9319740032, 9328131968, +9336516736, 9344907392, 9353296768, 9361685888, 9370074752, +9378463616, 9386849408, 9395239808, 9403629184, 9412016512, +9420405376, 9428795008, 9437181568, 9445570688, 9453960832, +9462346624, 9470738048, 9479121536, 9487515008, 9495903616, +9504289664, 9512678528, 9521067904, 9529456256, 9537843584, +9546233728, 9554621312, 9563011456, 9571398784, 9579788672, +9588178304, 9596567168, 9604954496, 9613343104, 9621732992, +9630121856, 9638508416, 9646898816, 9655283584, 9663675776, +9672061312, 9680449664, 9688840064, 9697230464, 9705617536, +9714003584, 9722393984, 9730772608, 9739172224, 9747561088, +9755945344, 9764338816, 9772726144, 9781116544, 9789503872, +9797892992, 9806282624, 9814670464, 9823056512, 9831439232, +9839833984, 9848224384, 9856613504, 9865000576, 9873391232, +9881772416, 9890162816, 9898556288, 9906940544, 9915333248, +9923721088, 9932108672, 9940496512, 9948888448, 9957276544, +9965666176, 9974048384, 9982441088, 9990830464, 9999219584, +10007602816, 10015996544, 10024385152, 10032774016, 10041163648, +10049548928, 10057940096, 10066329472, 10074717824, 10083105152, +10091495296, 10099878784, 10108272256, 10116660608, 10125049216, +10133437312, 10141825664, 10150213504, 10158601088, 10166991232, +10175378816, 10183766144, 10192157312, 10200545408, 10208935552, +10217322112, 10225712768, 10234099328, 10242489472, 10250876032, +10259264896, 10267656064, 10276042624, 10284429184, 10292820352, +10301209472, 10309598848, 10317987712, 10326375296, 10334763392, +10343153536, 10351541632, 10359930752, 10368318592, 10376707456, +10385096576, 10393484672, 10401867136, 10410262144, 10418647424, +10427039104, 10435425664, 10443810176, 10452203648, 10460589952, +10468982144, 10477369472, 10485759104, 10494147712, 10502533504, +10510923392, 10519313536, 10527702656, 10536091264, 10544478592, +10552867712, 10561255808, 10569642368, 10578032768, 10586423168, +10594805632, 10603200128, 10611588992, 10619976064, 10628361344, +10636754048, 10645143424, 10653531776, 10661920384, 10670307968, +10678696832, 10687086464, 10695475072, 10703863168, 10712246144, +10720639616, 10729026688, 10737414784, 10745806208, 10754190976, +10762581376, 10770971264, 10779356288, 10787747456, 10796135552, +10804525184, 10812915584, 10821301888, 10829692288, 10838078336, +10846469248, 10854858368, 10863247232, 10871631488, 10880023424, +10888412032, 10896799616, 10905188992, 10913574016, 10921964672, +10930352768, 10938742912, 10947132544, 10955518592, 10963909504, +10972298368, 10980687488, 10989074816, 10997462912, 11005851776, +11014241152, 11022627712, 11031017344, 11039403904, 11047793024, +11056184704, 11064570752, 11072960896, 11081343872, 11089737856, +11098128256, 11106514816, 11114904448, 11123293568, 11131680128, +11140065152, 11148458368, 11156845696, 11165236864, 11173624192, +11182013824, 11190402688, 11198790784, 11207179136, 11215568768, +11223957376, 11232345728, 11240734592, 11249122688, 11257511296, +11265899648, 11274285952, 11282675584, 11291065472, 11299452544, +11307842432, 11316231296, 11324616832, 11333009024, 11341395584, +11349782656, 11358172288, 11366560384, 11374950016, 11383339648, +11391721856, 11400117376, 11408504192, 11416893568, 11425283456, +11433671552, 11442061184, 11450444672, 11458837888, 11467226752, +11475611776, 11484003968, 11492392064, 11500780672, 11509169024, +11517550976, 11525944448, 11534335616, 11542724224, 11551111808, +11559500672, 11567890304, 11576277376, 11584667008, 11593056128, +11601443456, 11609830016, 11618221952, 11626607488, 11634995072, +11643387776, 11651775104, 11660161664, 11668552576, 11676940928, +11685330304, 11693718656, 11702106496, 11710496128, 11718882688, +11727273088, 11735660416, 11744050048, 11752437376, 11760824704, +11769216128, 11777604736, 11785991296, 11794381952, 11802770048, +11811157888, 11819548544, 11827932544, 11836324736, 11844713344, +11853100928, 11861486464, 11869879936, 11878268032, 11886656896, +11895044992, 11903433088, 11911822976, 11920210816, 11928600448, +11936987264, 11945375872, 11953761152, 11962151296, 11970543488, +11978928512, 11987320448, 11995708288, 12004095104, 12012486272, +12020875136, 12029255552, 12037652096, 12046039168, 12054429568, +12062813824, 12071206528, 12079594624, 12087983744, 12096371072, +12104759936, 12113147264, 12121534592, 12129924992, 12138314624, +12146703232, 12155091584, 12163481216, 12171864704, 12180255872, +12188643968, 12197034112, 12205424512, 12213811328, 12222199424, +12230590336, 12238977664, 12247365248, 12255755392, 12264143488, +12272531584, 12280920448, 12289309568, 12297694592, 12306086528, +12314475392, 12322865024, 12331253632, 12339640448, 12348029312, +12356418944, 12364805248, 12373196672, 12381580928, 12389969024, +12398357632, 12406750592, 12415138432, 12423527552, 12431916416, +12440304512, 12448692352, 12457081216, 12465467776, 12473859968, +12482245504, 12490636672, 12499025536, 12507411584, 12515801728, +12524190592, 12532577152, 12540966272, 12549354368, 12557743232, +12566129536, 12574523264, 12582911872, 12591299456, 12599688064, +12608074624, 12616463488, 12624845696, 12633239936, 12641631616, +12650019968, 12658407296, 12666795136, 12675183232, 12683574656, +12691960192, 12700350592, 12708740224, 12717128576, 12725515904, +12733906816, 12742295168, 12750680192, 12759071872, 12767460736, +12775848832, 12784236928, 12792626816, 12801014656, 12809404288, +12817789312, 12826181504, 12834568832, 12842954624, 12851345792, +12859732352, 12868122496, 12876512128, 12884901248, 12893289088, +12901672832, 12910067584, 12918455168, 12926842496, 12935232896, +12943620736, 12952009856, 12960396928, 12968786816, 12977176192, +12985563776, 12993951104, 13002341504, 13010730368, 13019115392, +13027506304, 13035895168, 13044272512, 13052673152, 13061062528, +13069446272, 13077838976, 13086227072, 13094613632, 13103000192, +13111393664, 13119782528, 13128157568, 13136559232, 13144945024, +13153329536, 13161724288, 13170111872, 13178502784, 13186884736, +13195279744, 13203667072, 13212057472, 13220445824, 13228832128, +13237221248, 13245610624, 13254000512, 13262388352, 13270777472, +13279166336, 13287553408, 13295943296, 13304331904, 13312719488, +13321108096, 13329494656, 13337885824, 13346274944, 13354663808, +13363051136, 13371439232, 13379825024, 13388210816, 13396605056, +13404995456, 13413380224, 13421771392, 13430159744, 13438546048, +13446937216, 13455326848, 13463708288, 13472103808, 13480492672, +13488875648, 13497269888, 13505657728, 13514045312, 13522435712, +13530824576, 13539210112, 13547599232, 13555989376, 13564379008, +13572766336, 13581154432, 13589544832, 13597932928, 13606320512, +13614710656, 13623097472, 13631477632, 13639874944, 13648264064, +13656652928, 13665041792, 13673430656, 13681818496, 13690207616, +13698595712, 13706982272, 13715373184, 13723762048, 13732150144, +13740536704, 13748926592, 13757316224, 13765700992, 13774090112, +13782477952, 13790869376, 13799259008, 13807647872, 13816036736, +13824425344, 13832814208, 13841202304, 13849591424, 13857978752, +13866368896, 13874754688, 13883145344, 13891533184, 13899919232, +13908311168, 13916692096, 13925085056, 13933473152, 13941866368, +13950253696, 13958643584, 13967032192, 13975417216, 13983807616, +13992197504, 14000582272, 14008973696, 14017363072, 14025752192, +14034137984, 14042528384, 14050918016, 14059301504, 14067691648, +14076083584, 14084470144, 14092852352, 14101249664, 14109635968, +14118024832, 14126407552, 14134804352, 14143188608, 14151577984, +14159968384, 14168357248, 14176741504, 14185127296, 14193521024, +14201911424, 14210301824, 14218685056, 14227067264, 14235467392, +14243855488, 14252243072, 14260630144, 14269021568, 14277409408, +14285799296, 14294187904, 14302571392, 14310961792, 14319353728, +14327738752, 14336130944, 14344518784, 14352906368, 14361296512, +14369685376, 14378071424, 14386462592, 14394848128, 14403230848, +14411627392, 14420013952, 14428402304, 14436793472, 14445181568, +14453569664, 14461959808, 14470347904, 14478737024, 14487122816, +14495511424, 14503901824, 14512291712, 14520677504, 14529064832, +14537456768, 14545845632, 14554234496, 14562618496, 14571011456, +14579398784, 14587789184, 14596172672, 14604564608, 14612953984, +14621341312, 14629724288, 14638120832, 14646503296, 14654897536, +14663284864, 14671675264, 14680061056, 14688447616, 14696835968, +14705228416, 14713616768, 14722003328, 14730392192, 14738784128, +14747172736, 14755561088, 14763947648, 14772336512, 14780725376, +14789110144, 14797499776, 14805892736, 14814276992, 14822670208, +14831056256, 14839444352, 14847836032, 14856222848, 14864612992, +14872997504, 14881388672, 14889775744, 14898165376, 14906553472, +14914944896, 14923329664, 14931721856, 14940109696, 14948497024, +14956887424, 14965276544, 14973663616, 14982053248, 14990439808, +14998830976, 15007216768, 15015605888, 15023995264, 15032385152, +15040768384, 15049154944, 15057549184, 15065939072, 15074328448, +15082715008, 15091104128, 15099493504, 15107879296, 15116269184, +15124659584, 15133042304, 15141431936, 15149824384, 15158214272, +15166602368, 15174991232, 15183378304, 15191760512, 15200154496, +15208542592, 15216931712, 15225323392, 15233708416, 15242098048, +15250489216, 15258875264, 15267265408, 15275654528, 15284043136, +15292431488, 15300819584, 15309208192, 15317596544, 15325986176, +15334374784, 15342763648, 15351151744, 15359540608, 15367929728, +15376318336, 15384706432, 15393092992, 15401481856, 15409869952, +15418258816, 15426649984, 15435037568, 15443425664, 15451815296, +15460203392, 15468589184, 15476979328, 15485369216, 15493755776, +15502146944, 15510534272, 15518924416, 15527311232, 15535699072, +15544089472, 15552478336, 15560866688, 15569254528, 15577642624, +15586031488, 15594419072, 15602809472, 15611199104, 15619586432, +15627975296, 15636364928, 15644753792, 15653141888, 15661529216, +15669918848, 15678305152, 15686696576, 15695083136, 15703474048, +15711861632, 15720251264, 15728636288, 15737027456, 15745417088, +15753804928, 15762194048, 15770582656, 15778971008, 15787358336, +15795747712, 15804132224, 15812523392, 15820909696, 15829300096, +15837691264, 15846071936, 15854466944, 15862855808, 15871244672, +15879634816, 15888020608, 15896409728, 15904799104, 15913185152, +15921577088, 15929966464, 15938354816, 15946743424, 15955129472, +15963519872, 15971907968, 15980296064, 15988684928, 15997073024, +16005460864, 16013851264, 16022241152, 16030629248, 16039012736, +16047406976, 16055794816, 16064181376, 16072571264, 16080957824, +16089346688, 16097737856, 16106125184, 16114514816, 16122904192, +16131292544, 16139678848, 16148066944, 16156453504, 16164839552, +16173236096, 16181623424, 16190012032, 16198401152, 16206790528, +16215177344, 16223567744, 16231956352, 16240344704, 16248731008, +16257117824, 16265504384, 16273898624, 16282281856, 16290668672, +16299064192, 16307449216, 16315842176, 16324230016, 16332613504, +16341006464, 16349394304, 16357783168, 16366172288, 16374561664, +16382951296, 16391337856, 16399726208, 16408116352, 16416505472, +16424892032, 16433282176, 16441668224, 16450058624, 16458448768, +16466836864, 16475224448, 16483613056, 16492001408, 16500391808, +16508779648, 16517166976, 16525555328, 16533944192, 16542330752, +16550719616, 16559110528, 16567497088, 16575888512, 16584274816, +16592665472, 16601051008, 16609442944, 16617832064, 16626218624, +16634607488, 16642996096, 16651385728, 16659773824, 16668163712, +16676552576, 16684938112, 16693328768, 16701718144, 16710095488, +16718492288, 16726883968, 16735272832, 16743661184, 16752049792, +16760436608, 16768827008, 16777214336, 16785599104, 16793992832, +16802381696, 16810768768, 16819151744, 16827542656, 16835934848, +16844323712, 16852711552, 16861101952, 16869489536, 16877876864, +16886265728, 16894653056, 16903044736, 16911431296, 16919821696, +16928207488, 16936592768, 16944987776, 16953375616, 16961763968, +16970152832, 16978540928, 16986929536, 16995319168, 17003704448, +17012096896, 17020481152, 17028870784, 17037262208, 17045649536, +17054039936, 17062426496, 17070814336, 17079205504, 17087592064, +17095978112, 17104369024, 17112759424, 17121147776, 17129536384, +17137926016, 17146314368, 17154700928, 17163089792, 17171480192, +17179864192, 17188256896, 17196644992, 17205033856, 17213423488, +17221811072, 17230198912, 17238588032, 17246976896, 17255360384, +17263754624, 17272143232, 17280530048, 17288918912, 17297309312, +17305696384, 17314085504, 17322475136, 17330863744, 17339252096, +17347640192, 17356026496, 17364413824, 17372796544, 17381190016, +17389583488, 17397972608, 17406360704, 17414748544, 17423135872, +17431527296, 17439915904, 17448303232, 17456691584, 17465081728, +17473468288, 17481857408, 17490247552, 17498635904, 17507022464, +17515409024, 17523801728, 17532189824, 17540577664, 17548966016, +17557353344, 17565741184, 17574131584, 17582519168, 17590907008, +17599296128, 17607687808, 17616076672, 17624455808, 17632852352, +17641238656, 17649630848, 17658018944, 17666403968, 17674794112, +17683178368, 17691573376, 17699962496, 17708350592, 17716739968, +17725126528, 17733517184, 17741898112, 17750293888, 17758673024, +17767070336, 17775458432, 17783848832, 17792236928, 17800625536, +17809012352, 17817402752, 17825785984, 17834178944, 17842563968, +17850955648, 17859344512, 17867732864, 17876119424, 17884511872, +17892900224, 17901287296, 17909677696, 17918058112, 17926451072, +17934843776, 17943230848, 17951609216, 17960008576, 17968397696, +17976784256, 17985175424, 17993564032, 18001952128, 18010339712, +18018728576, 18027116672, 18035503232, 18043894144, 18052283264, +18060672128, 18069056384, 18077449856, 18085837184, 18094225792, +18102613376, 18111004544, 18119388544, 18127781248, 18136170368, +18144558976, 18152947328, 18161336192, 18169724288, 18178108544, +18186498944, 18194886784, 18203275648, 18211666048, 18220048768, +18228444544, 18236833408, 18245220736] + +cache_sizes = [ +16776896, 16907456, 17039296, 17170112, 17301056, 17432512, 17563072, +17693888, 17824192, 17955904, 18087488, 18218176, 18349504, 18481088, +18611392, 18742336, 18874304, 19004224, 19135936, 19267264, 19398208, +19529408, 19660096, 19791424, 19922752, 20053952, 20184896, 20315968, +20446912, 20576576, 20709184, 20840384, 20971072, 21102272, 21233216, +21364544, 21494848, 21626816, 21757376, 21887552, 22019392, 22151104, +22281536, 22412224, 22543936, 22675264, 22806464, 22935872, 23068096, +23198272, 23330752, 23459008, 23592512, 23723968, 23854912, 23986112, +24116672, 24247616, 24378688, 24509504, 24640832, 24772544, 24903488, +25034432, 25165376, 25296704, 25427392, 25558592, 25690048, 25820096, +25951936, 26081728, 26214208, 26345024, 26476096, 26606656, 26737472, +26869184, 26998208, 27131584, 27262528, 27393728, 27523904, 27655744, +27786688, 27917888, 28049344, 28179904, 28311488, 28441792, 28573504, +28700864, 28835648, 28966208, 29096768, 29228608, 29359808, 29490752, +29621824, 29752256, 29882816, 30014912, 30144448, 30273728, 30406976, +30538432, 30670784, 30799936, 30932672, 31063744, 31195072, 31325248, +31456192, 31588288, 31719232, 31850432, 31981504, 32110784, 32243392, +32372672, 32505664, 32636608, 32767808, 32897344, 33029824, 33160768, +33289664, 33423296, 33554368, 33683648, 33816512, 33947456, 34076992, +34208704, 34340032, 34471744, 34600256, 34734016, 34864576, 34993984, +35127104, 35258176, 35386688, 35518528, 35650624, 35782336, 35910976, +36044608, 36175808, 36305728, 36436672, 36568384, 36699968, 36830656, +36961984, 37093312, 37223488, 37355072, 37486528, 37617472, 37747904, +37879232, 38009792, 38141888, 38272448, 38403392, 38535104, 38660672, +38795584, 38925632, 39059264, 39190336, 39320768, 39452096, 39581632, +39713984, 39844928, 39974848, 40107968, 40238144, 40367168, 40500032, +40631744, 40762816, 40894144, 41023552, 41155904, 41286208, 41418304, +41547712, 41680448, 41811904, 41942848, 42073792, 42204992, 42334912, +42467008, 42597824, 42729152, 42860096, 42991552, 43122368, 43253696, +43382848, 43515712, 43646912, 43777088, 43907648, 44039104, 44170432, +44302144, 44433344, 44564288, 44694976, 44825152, 44956864, 45088448, +45219008, 45350464, 45481024, 45612608, 45744064, 45874496, 46006208, +46136768, 46267712, 46399424, 46529344, 46660672, 46791488, 46923328, +47053504, 47185856, 47316928, 47447872, 47579072, 47710144, 47839936, +47971648, 48103232, 48234176, 48365248, 48496192, 48627136, 48757312, +48889664, 49020736, 49149248, 49283008, 49413824, 49545152, 49675712, +49807168, 49938368, 50069056, 50200256, 50331584, 50462656, 50593472, +50724032, 50853952, 50986048, 51117632, 51248576, 51379904, 51510848, +51641792, 51773248, 51903296, 52035136, 52164032, 52297664, 52427968, +52557376, 52690112, 52821952, 52952896, 53081536, 53213504, 53344576, +53475776, 53608384, 53738816, 53870528, 54000832, 54131776, 54263744, +54394688, 54525248, 54655936, 54787904, 54918592, 55049152, 55181248, +55312064, 55442752, 55574336, 55705024, 55836224, 55967168, 56097856, +56228672, 56358592, 56490176, 56621888, 56753728, 56884928, 57015488, +57146816, 57278272, 57409216, 57540416, 57671104, 57802432, 57933632, +58064576, 58195264, 58326976, 58457408, 58588864, 58720192, 58849984, +58981696, 59113024, 59243456, 59375552, 59506624, 59637568, 59768512, +59897792, 60030016, 60161984, 60293056, 60423872, 60554432, 60683968, +60817216, 60948032, 61079488, 61209664, 61341376, 61471936, 61602752, +61733696, 61865792, 61996736, 62127808, 62259136, 62389568, 62520512, +62651584, 62781632, 62910784, 63045056, 63176128, 63307072, 63438656, +63569216, 63700928, 63831616, 63960896, 64093888, 64225088, 64355392, +64486976, 64617664, 64748608, 64879424, 65009216, 65142464, 65273792, +65402816, 65535424, 65666752, 65797696, 65927744, 66060224, 66191296, +66321344, 66453056, 66584384, 66715328, 66846656, 66977728, 67108672, +67239104, 67370432, 67501888, 67631296, 67763776, 67895104, 68026304, +68157248, 68287936, 68419264, 68548288, 68681408, 68811968, 68942912, +69074624, 69205568, 69337024, 69467584, 69599168, 69729472, 69861184, +69989824, 70122944, 70253888, 70385344, 70515904, 70647232, 70778816, +70907968, 71040832, 71171648, 71303104, 71432512, 71564992, 71695168, +71826368, 71958464, 72089536, 72219712, 72350144, 72482624, 72613568, +72744512, 72875584, 73006144, 73138112, 73268672, 73400128, 73530944, +73662272, 73793344, 73924544, 74055104, 74185792, 74316992, 74448832, +74579392, 74710976, 74841664, 74972864, 75102784, 75233344, 75364544, +75497024, 75627584, 75759296, 75890624, 76021696, 76152256, 76283072, +76414144, 76545856, 76676672, 76806976, 76937792, 77070016, 77200832, +77331392, 77462464, 77593664, 77725376, 77856448, 77987776, 78118336, +78249664, 78380992, 78511424, 78642496, 78773056, 78905152, 79033664, +79166656, 79297472, 79429568, 79560512, 79690816, 79822784, 79953472, +80084672, 80214208, 80346944, 80477632, 80608576, 80740288, 80870848, +81002048, 81133504, 81264448, 81395648, 81525952, 81657536, 81786304, +81919808, 82050112, 82181312, 82311616, 82443968, 82573376, 82705984, +82835776, 82967744, 83096768, 83230528, 83359552, 83491264, 83622464, +83753536, 83886016, 84015296, 84147776, 84277184, 84409792, 84540608, +84672064, 84803008, 84934336, 85065152, 85193792, 85326784, 85458496, +85589312, 85721024, 85851968, 85982656, 86112448, 86244416, 86370112, +86506688, 86637632, 86769344, 86900672, 87031744, 87162304, 87293632, +87424576, 87555392, 87687104, 87816896, 87947968, 88079168, 88211264, +88341824, 88473152, 88603712, 88735424, 88862912, 88996672, 89128384, +89259712, 89390272, 89521984, 89652544, 89783872, 89914816, 90045376, +90177088, 90307904, 90438848, 90569152, 90700096, 90832832, 90963776, +91093696, 91223744, 91356992, 91486784, 91618496, 91749824, 91880384, +92012224, 92143552, 92273344, 92405696, 92536768, 92666432, 92798912, +92926016, 93060544, 93192128, 93322816, 93453632, 93583936, 93715136, +93845056, 93977792, 94109504, 94240448, 94371776, 94501184, 94632896, +94764224, 94895552, 95023424, 95158208, 95287744, 95420224, 95550016, +95681216, 95811904, 95943872, 96075328, 96203584, 96337856, 96468544, +96599744, 96731072, 96860992, 96992576, 97124288, 97254848, 97385536, +97517248, 97647808, 97779392, 97910464, 98041408, 98172608, 98303168, +98434496, 98565568, 98696768, 98827328, 98958784, 99089728, 99220928, +99352384, 99482816, 99614272, 99745472, 99876416, 100007104, +100138048, 100267072, 100401088, 100529984, 100662592, 100791872, +100925248, 101056064, 101187392, 101317952, 101449408, 101580608, +101711296, 101841728, 101973824, 102104896, 102235712, 102366016, +102498112, 102628672, 102760384, 102890432, 103021888, 103153472, +103284032, 103415744, 103545152, 103677248, 103808576, 103939648, +104070976, 104201792, 104332736, 104462528, 104594752, 104725952, +104854592, 104988608, 105118912, 105247808, 105381184, 105511232, +105643072, 105774784, 105903296, 106037056, 106167872, 106298944, +106429504, 106561472, 106691392, 106822592, 106954304, 107085376, +107216576, 107346368, 107478464, 107609792, 107739712, 107872192, +108003136, 108131392, 108265408, 108396224, 108527168, 108657344, +108789568, 108920384, 109049792, 109182272, 109312576, 109444928, +109572928, 109706944, 109837888, 109969088, 110099648, 110230976, +110362432, 110492992, 110624704, 110755264, 110886208, 111017408, +111148864, 111279296, 111410752, 111541952, 111673024, 111803456, +111933632, 112066496, 112196416, 112328512, 112457792, 112590784, +112715968, 112852672, 112983616, 113114944, 113244224, 113376448, +113505472, 113639104, 113770304, 113901376, 114031552, 114163264, +114294592, 114425536, 114556864, 114687424, 114818624, 114948544, +115080512, 115212224, 115343296, 115473472, 115605184, 115736128, +115867072, 115997248, 116128576, 116260288, 116391488, 116522944, +116652992, 116784704, 116915648, 117046208, 117178304, 117308608, +117440192, 117569728, 117701824, 117833024, 117964096, 118094656, +118225984, 118357312, 118489024, 118617536, 118749632, 118882112, +119012416, 119144384, 119275328, 119406016, 119537344, 119668672, +119798464, 119928896, 120061376, 120192832, 120321728, 120454336, +120584512, 120716608, 120848192, 120979136, 121109056, 121241408, +121372352, 121502912, 121634752, 121764416, 121895744, 122027072, +122157632, 122289088, 122421184, 122550592, 122682944, 122813888, +122945344, 123075776, 123207488, 123338048, 123468736, 123600704, +123731264, 123861952, 123993664, 124124608, 124256192, 124386368, +124518208, 124649024, 124778048, 124911296, 125041088, 125173696, +125303744, 125432896, 125566912, 125696576, 125829056, 125958592, +126090304, 126221248, 126352832, 126483776, 126615232, 126746432, +126876608, 127008704, 127139392, 127270336, 127401152, 127532224, +127663552, 127794752, 127925696, 128055232, 128188096, 128319424, +128449856, 128581312, 128712256, 128843584, 128973632, 129103808, +129236288, 129365696, 129498944, 129629888, 129760832, 129892288, +130023104, 130154048, 130283968, 130416448, 130547008, 130678336, +130807616, 130939456, 131071552, 131202112, 131331776, 131464384, +131594048, 131727296, 131858368, 131987392, 132120256, 132250816, +132382528, 132513728, 132644672, 132774976, 132905792, 133038016, +133168832, 133299392, 133429312, 133562048, 133692992, 133823296, +133954624, 134086336, 134217152, 134348608, 134479808, 134607296, +134741056, 134872384, 135002944, 135134144, 135265472, 135396544, +135527872, 135659072, 135787712, 135921472, 136052416, 136182848, +136313792, 136444864, 136576448, 136707904, 136837952, 136970048, +137099584, 137232064, 137363392, 137494208, 137625536, 137755712, +137887424, 138018368, 138149824, 138280256, 138411584, 138539584, +138672832, 138804928, 138936128, 139066688, 139196864, 139328704, +139460032, 139590208, 139721024, 139852864, 139984576, 140115776, +140245696, 140376512, 140508352, 140640064, 140769856, 140902336, +141032768, 141162688, 141294016, 141426496, 141556544, 141687488, +141819584, 141949888, 142080448, 142212544, 142342336, 142474432, +142606144, 142736192, 142868288, 142997824, 143129408, 143258944, +143392448, 143523136, 143653696, 143785024, 143916992, 144045632, +144177856, 144309184, 144440768, 144570688, 144701888, 144832448, +144965056, 145096384, 145227584, 145358656, 145489856, 145620928, +145751488, 145883072, 146011456, 146144704, 146275264, 146407232, +146538176, 146668736, 146800448, 146931392, 147062336, 147193664, +147324224, 147455936, 147586624, 147717056, 147848768, 147979456, +148110784, 148242368, 148373312, 148503232, 148635584, 148766144, +148897088, 149028416, 149159488, 149290688, 149420224, 149551552, +149683136, 149814976, 149943616, 150076352, 150208064, 150338624, +150470464, 150600256, 150732224, 150862784, 150993088, 151125952, +151254976, 151388096, 151519168, 151649728, 151778752, 151911104, +152042944, 152174144, 152304704, 152435648, 152567488, 152698816, +152828992, 152960576, 153091648, 153222976, 153353792, 153484096, +153616192, 153747008, 153878336, 154008256, 154139968, 154270912, +154402624, 154533824, 154663616, 154795712, 154926272, 155057984, +155188928, 155319872, 155450816, 155580608, 155712064, 155843392, +155971136, 156106688, 156237376, 156367424, 156499264, 156630976, +156761536, 156892352, 157024064, 157155008, 157284416, 157415872, +157545536, 157677248, 157810496, 157938112, 158071744, 158203328, +158334656, 158464832, 158596288, 158727616, 158858048, 158988992, +159121216, 159252416, 159381568, 159513152, 159645632, 159776192, +159906496, 160038464, 160169536, 160300352, 160430656, 160563008, +160693952, 160822208, 160956352, 161086784, 161217344, 161349184, +161480512, 161611456, 161742272, 161873216, 162002752, 162135872, +162266432, 162397888, 162529216, 162660032, 162790976, 162922048, +163052096, 163184576, 163314752, 163446592, 163577408, 163707968, +163839296, 163969984, 164100928, 164233024, 164364224, 164494912, +164625856, 164756672, 164887616, 165019072, 165150016, 165280064, +165412672, 165543104, 165674944, 165805888, 165936832, 166067648, +166198336, 166330048, 166461248, 166591552, 166722496, 166854208, +166985408, 167116736, 167246656, 167378368, 167508416, 167641024, +167771584, 167903168, 168034112, 168164032, 168295744, 168427456, +168557632, 168688448, 168819136, 168951616, 169082176, 169213504, +169344832, 169475648, 169605952, 169738048, 169866304, 169999552, +170131264, 170262464, 170393536, 170524352, 170655424, 170782016, +170917696, 171048896, 171179072, 171310784, 171439936, 171573184, +171702976, 171835072, 171966272, 172097216, 172228288, 172359232, +172489664, 172621376, 172747712, 172883264, 173014208, 173144512, +173275072, 173407424, 173539136, 173669696, 173800768, 173931712, +174063424, 174193472, 174325696, 174455744, 174586816, 174718912, +174849728, 174977728, 175109696, 175242688, 175374272, 175504832, +175636288, 175765696, 175898432, 176028992, 176159936, 176291264, +176422592, 176552512, 176684864, 176815424, 176946496, 177076544, +177209152, 177340096, 177470528, 177600704, 177731648, 177864256, +177994816, 178126528, 178257472, 178387648, 178518464, 178650176, +178781888, 178912064, 179044288, 179174848, 179305024, 179436736, +179568448, 179698496, 179830208, 179960512, 180092608, 180223808, +180354752, 180485696, 180617152, 180748096, 180877504, 181009984, +181139264, 181272512, 181402688, 181532608, 181663168, 181795136, +181926592, 182057536, 182190016, 182320192, 182451904, 182582336, +182713792, 182843072, 182976064, 183107264, 183237056, 183368384, +183494848, 183631424, 183762752, 183893824, 184024768, 184154816, +184286656, 184417984, 184548928, 184680128, 184810816, 184941248, +185072704, 185203904, 185335616, 185465408, 185596352, 185727296, +185859904, 185989696, 186121664, 186252992, 186383552, 186514112, +186645952, 186777152, 186907328, 187037504, 187170112, 187301824, +187429184, 187562048, 187693504, 187825472, 187957184, 188087104, +188218304, 188349376, 188481344, 188609728, 188743616, 188874304, +189005248, 189136448, 189265088, 189396544, 189528128, 189660992, +189791936, 189923264, 190054208, 190182848, 190315072, 190447424, +190577984, 190709312, 190840768, 190971328, 191102656, 191233472, +191364032, 191495872, 191626816, 191758016, 191888192, 192020288, +192148928, 192282176, 192413504, 192542528, 192674752, 192805952, +192937792, 193068608, 193198912, 193330496, 193462208, 193592384, +193723456, 193854272, 193985984, 194116672, 194247232, 194379712, +194508352, 194641856, 194772544, 194900672, 195035072, 195166016, +195296704, 195428032, 195558592, 195690304, 195818176, 195952576, +196083392, 196214336, 196345792, 196476736, 196607552, 196739008, +196869952, 197000768, 197130688, 197262784, 197394368, 197523904, +197656384, 197787584, 197916608, 198049472, 198180544, 198310208, +198442432, 198573632, 198705088, 198834368, 198967232, 199097792, +199228352, 199360192, 199491392, 199621696, 199751744, 199883968, +200014016, 200146624, 200276672, 200408128, 200540096, 200671168, +200801984, 200933312, 201062464, 201194944, 201326144, 201457472, +201588544, 201719744, 201850816, 201981632, 202111552, 202244032, +202374464, 202505152, 202636352, 202767808, 202898368, 203030336, +203159872, 203292608, 203423296, 203553472, 203685824, 203816896, +203947712, 204078272, 204208192, 204341056, 204472256, 204603328, +204733888, 204864448, 204996544, 205125568, 205258304, 205388864, +205517632, 205650112, 205782208, 205913536, 206044736, 206176192, +206307008, 206434496, 206569024, 206700224, 206831168, 206961856, +207093056, 207223616, 207355328, 207486784, 207616832, 207749056, +207879104, 208010048, 208141888, 208273216, 208404032, 208534336, +208666048, 208796864, 208927424, 209059264, 209189824, 209321792, +209451584, 209582656, 209715136, 209845568, 209976896, 210106432, +210239296, 210370112, 210501568, 210630976, 210763712, 210894272, +211024832, 211156672, 211287616, 211418176, 211549376, 211679296, +211812032, 211942592, 212074432, 212204864, 212334016, 212467648, +212597824, 212727616, 212860352, 212991424, 213120832, 213253952, +213385024, 213515584, 213645632, 213777728, 213909184, 214040128, +214170688, 214302656, 214433728, 214564544, 214695232, 214826048, +214956992, 215089088, 215219776, 215350592, 215482304, 215613248, +215743552, 215874752, 216005312, 216137024, 216267328, 216399296, +216530752, 216661696, 216790592, 216923968, 217054528, 217183168, +217316672, 217448128, 217579072, 217709504, 217838912, 217972672, +218102848, 218233024, 218364736, 218496832, 218627776, 218759104, +218888896, 219021248, 219151936, 219281728, 219413056, 219545024, +219675968, 219807296, 219938624, 220069312, 220200128, 220331456, +220461632, 220592704, 220725184, 220855744, 220987072, 221117888, +221249216, 221378368, 221510336, 221642048, 221772736, 221904832, +222031808, 222166976, 222297536, 222428992, 222559936, 222690368, +222820672, 222953152, 223083968, 223213376, 223345984, 223476928, +223608512, 223738688, 223869376, 224001472, 224132672, 224262848, +224394944, 224524864, 224657344, 224788288, 224919488, 225050432, +225181504, 225312704, 225443776, 225574592, 225704768, 225834176, +225966784, 226097216, 226229824, 226360384, 226491712, 226623424, +226754368, 226885312, 227015104, 227147456, 227278528, 227409472, +227539904, 227669696, 227802944, 227932352, 228065216, 228196288, +228326464, 228457792, 228588736, 228720064, 228850112, 228981056, +229113152, 229243328, 229375936, 229505344, 229636928, 229769152, +229894976, 230030272, 230162368, 230292416, 230424512, 230553152, +230684864, 230816704, 230948416, 231079616, 231210944, 231342016, +231472448, 231603776, 231733952, 231866176, 231996736, 232127296, +232259392, 232388672, 232521664, 232652608, 232782272, 232914496, +233043904, 233175616, 233306816, 233438528, 233569984, 233699776, +233830592, 233962688, 234092224, 234221888, 234353984, 234485312, +234618304, 234749888, 234880832, 235011776, 235142464, 235274048, +235403456, 235535936, 235667392, 235797568, 235928768, 236057152, +236190272, 236322752, 236453312, 236583616, 236715712, 236846528, +236976448, 237108544, 237239104, 237371072, 237501632, 237630784, +237764416, 237895232, 238026688, 238157632, 238286912, 238419392, +238548032, 238681024, 238812608, 238941632, 239075008, 239206336, +239335232, 239466944, 239599168, 239730496, 239861312, 239992384, +240122816, 240254656, 240385856, 240516928, 240647872, 240779072, +240909632, 241040704, 241171904, 241302848, 241433408, 241565248, +241696192, 241825984, 241958848, 242088256, 242220224, 242352064, +242481856, 242611648, 242744896, 242876224, 243005632, 243138496, +243268672, 243400384, 243531712, 243662656, 243793856, 243924544, +244054592, 244187072, 244316608, 244448704, 244580032, 244710976, +244841536, 244972864, 245104448, 245233984, 245365312, 245497792, +245628736, 245759936, 245889856, 246021056, 246152512, 246284224, +246415168, 246545344, 246675904, 246808384, 246939584, 247070144, +247199552, 247331648, 247463872, 247593536, 247726016, 247857088, +247987648, 248116928, 248249536, 248380736, 248512064, 248643008, +248773312, 248901056, 249036608, 249167552, 249298624, 249429184, +249560512, 249692096, 249822784, 249954112, 250085312, 250215488, +250345792, 250478528, 250608704, 250739264, 250870976, 251002816, +251133632, 251263552, 251395136, 251523904, 251657792, 251789248, +251919424, 252051392, 252182464, 252313408, 252444224, 252575552, +252706624, 252836032, 252968512, 253099712, 253227584, 253361728, +253493056, 253623488, 253754432, 253885504, 254017216, 254148032, +254279488, 254410432, 254541376, 254672576, 254803264, 254933824, +255065792, 255196736, 255326528, 255458752, 255589952, 255721408, +255851072, 255983296, 256114624, 256244416, 256374208, 256507712, +256636096, 256768832, 256900544, 257031616, 257162176, 257294272, +257424448, 257555776, 257686976, 257818432, 257949632, 258079552, +258211136, 258342464, 258473408, 258603712, 258734656, 258867008, +258996544, 259127744, 259260224, 259391296, 259522112, 259651904, +259784384, 259915328, 260045888, 260175424, 260308544, 260438336, +260570944, 260700992, 260832448, 260963776, 261092672, 261226304, +261356864, 261487936, 261619648, 261750592, 261879872, 262011968, +262143424, 262274752, 262404416, 262537024, 262667968, 262799296, +262928704, 263061184, 263191744, 263322944, 263454656, 263585216, +263716672, 263847872, 263978944, 264108608, 264241088, 264371648, +264501184, 264632768, 264764096, 264895936, 265024576, 265158464, +265287488, 265418432, 265550528, 265681216, 265813312, 265943488, +266075968, 266206144, 266337728, 266468032, 266600384, 266731072, +266862272, 266993344, 267124288, 267255616, 267386432, 267516992, +267648704, 267777728, 267910592, 268040512, 268172096, 268302784, +268435264, 268566208, 268696256, 268828096, 268959296, 269090368, +269221312, 269352256, 269482688, 269614784, 269745856, 269876416, +270007616, 270139328, 270270272, 270401216, 270531904, 270663616, +270791744, 270924736, 271056832, 271186112, 271317184, 271449536, +271580992, 271711936, 271843136, 271973056, 272105408, 272236352, +272367296, 272498368, 272629568, 272759488, 272891456, 273022784, +273153856, 273284672, 273415616, 273547072, 273677632, 273808448, +273937088, 274071488, 274200896, 274332992, 274463296, 274595392, +274726208, 274857536, 274988992, 275118656, 275250496, 275382208, +275513024, 275643968, 275775296, 275906368, 276037184, 276167872, +276297664, 276429376, 276560576, 276692672, 276822976, 276955072, +277085632, 277216832, 277347008, 277478848, 277609664, 277740992, +277868608, 278002624, 278134336, 278265536, 278395328, 278526784, +278657728, 278789824, 278921152, 279052096, 279182912, 279313088, +279443776, 279576256, 279706048, 279838528, 279969728, 280099648, +280230976, 280361408, 280493632, 280622528, 280755392, 280887104, +281018176, 281147968, 281278912, 281411392, 281542592, 281673152, +281803712, 281935552, 282066496, 282197312, 282329024, 282458816, +282590272, 282720832, 282853184, 282983744, 283115072, 283246144, +283377344, 283508416, 283639744, 283770304, 283901504, 284032576, +284163136, 284294848, 284426176, 284556992, 284687296, 284819264, +284950208, 285081536] +``` diff --git a/src/content/translations/it/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/index.md b/src/content/translations/it/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/index.md new file mode 100644 index 00000000000..5e33f935bd6 --- /dev/null +++ b/src/content/translations/it/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/index.md @@ -0,0 +1,37 @@ +--- +title: Algoritmi di mining +description: Uno sguardo dettagliato agli algoritmi usati per il mining di Ethereum. +lang: it +--- + + +Il proof-of-work non è più alla base del meccanismo di consenso di Ethereum, a significare che il mining è stato disattivato. Invece, Ethereum, è protetto dai validatori che mettono ETH in staking. Puoi iniziare oggi a mettere i tuoi ETH in staking. Leggi di più su La Fusione, il proof-of-stake e lo staking. Questa pagina è per solo interesse storico. + + +Il mining di Ethereum usava un algoritmo noto come Ethash. L'idea fondamentale dell'algoritmo è che un miner prova a trovare l'input di un nonce usando il calcolo di forza bruta, così che l'hash risultante sia inferiore a una soglia determinata dalla difficoltà calcolata. Questo livello di difficoltà può esser regolato dinamicamente, consentendo alla produzione dei blocchi di verificarsi a un intervallo regolare. + +## Prerequisiti {#prerequisites} + +Per comprendere meglio questa pagina, ti consigliamo prima di leggere sul [consenso proof-of-work](/developers/docs/consensus-mechanisms/pow) e sul [mining](/developers/docs/consensus-mechanisms/pow/mining). + +## Dagger Hashimoto {#dagger-hashimoto} + +Dagger Hashimoto era un algoritmo di ricerca precursore del mining di Ethereum, sostituito da Ethash. Era un amalgama di due algoritmi differenti: Dagger e Hashimoto. È sempre e solo stato un'implementazione di ricerca e fu superato da Ethash prima del lancio della Rete Principale di Ethereum. + +[Dagger](http://www.hashcash.org/papers/dagger.html) prevede la generazione di un [Grafico Aciclico Diretto](https://en.wikipedia.org/wiki/Directed_acyclic_graph), porzioni casuali del quale ricevono un hashing insieme. Il principio fondamentale è che ogni nonce richiede solo una piccola porzione di un grande albero di dati totali. Ricalcolare l'albero secondario per ogni nonce è proibitivo per il mining, da cui l'esigenza di memorizzare l'albero, invece, va bene per verificare un singolo nonce. Dagger è stato progettato per essere un'alternativa agli algoritmi esistenti come Scrypt, che sono gravosi per la memoria (memory-hard) ma difficili da verificare all'aumentare dell'uso della memoria verso livelli veramente sicuri. Dagger era però vulnerabile all'accelerazione dell'hardware con memoria condiviso ed è stato abbandonato a favore di altre vie di ricerca. + +[Hashimoto](http://diyhpl.us/%7Ebryan/papers2/bitcoin/meh/hashimoto.pdf) è un algoritmo che aggiunge resistenza ASIC, essendo vincolato da aspetti I/O (cioè le letture di memoria rappresentano il fattore limitante nel processo di mining). La teoria è che vi sia più disponibilità di RAM che di calcolo: sono già stati usati miliardi di dollari in ricerca per l'ottimizzazione della RAM per diversi scenari d'uso, che spesso coinvolgono schemi d'accesso semi-casuale (da cui "memoria d'accesso casuale", Random Access Memory). Di conseguenza, è probabile che la RAM esistente sia abbastanza vicina all'ottimale per valutare l'algoritmo. Hashimoto usa la blockchain come una fonte di dati, perché soddisfa simultaneamente i punti (1) e (3) di cui sopra. + +Dagger-Hashimoto usava delle versioni modificate degli algoritmi di Dagger e Hashimoto. La differenza tra Dagger Hashimoto e Hashimoto è che, anziché usare la blockchain come una fonte di dati, Dagger Hashimoto usa una serie di dati generata e personalizzata, che si aggiorna a seconda dei dati del blocco ogni N blocchi. La serie di dati è generata usando l'algoritmo di Dagger, che consente di calcolare efficientemente una sotto-serie specifica a ogni nonce per l'algoritmo di verifica del client leggero. La differenza tra Dagger Hashimoto e Dagger è che, a differenza del Dagger originale, il dataset usato per interrogare il blocco è semi-permanente, in quanto viene aggiornato solo occasionalmente (es. una volta a settimana). Questo significa che la porzione dello sforzo per generare il dataset è prossima allo zero, e diventano quindi trascurabili gli argomenti di Sergio Lerner riguardanti le velocizzazioni della memoria condivisa. + +Maggiori informazioni su [Dagger-Hashimoto](/developers/docs/consensus-mechanisms/pow/mining-algorithms/dagger-hashimoto). + +## Ethash {#ethash} + +Ethash era l'algoritmo di mining che era effettiamente usato sulla vera Rete Principale di Ethereum sotto l'ora deprecata architettura del proof-of-work. Ethash in realtà è un nuovo nome assegnato a una versione specifica di Dagger-Hashimoto dopo un aggiornamento significativo dell'algoritmo, che comunque eredita i principi fondamentali del suo predecessore. La Rete Principale di Ethereum ha sempre e solo usato Ethash; Dagger Hashimoto era una versione R&D dell'algoritmo di mining che fu superata prima che il mining fosse avviato sulla rete principale di Ethereum. + +[Maggiori informazioni su Ethash](/developers/docs/consensus-mechanisms/pow/mining-algorithms/ethash). + +## Letture consigliate {#further-reading} + +_Conosci una risorsa della community che ti è stata utile? Modifica questa pagina e aggiungila!_ diff --git a/src/content/translations/it/developers/docs/data-and-analytics/block-explorers/index.md b/src/content/translations/it/developers/docs/data-and-analytics/block-explorers/index.md index dbb37c79de5..3b47068bf31 100644 --- a/src/content/translations/it/developers/docs/data-and-analytics/block-explorers/index.md +++ b/src/content/translations/it/developers/docs/data-and-analytics/block-explorers/index.md @@ -14,12 +14,15 @@ I block explorer sono il tuo portale sui dati di Ethereum. Puoi usarli per visua ## Servizi {#services} - [Etherscan](https://etherscan.io/): _disponibile anche in cinese, coreano, russo e giapponese_ -- [Etherchain](https://www.etherchain.org/) -- [Ethplorer](https://ethplorer.io/): _disponibile anche in cinese, spagnolo, francese, turco, russo, coreano e vietnamita_ +- [Beaconcha.in](https://beaconcha.in/) - [Blockchair](https://blockchair.com/ethereum): _disponibile anche in spagnolo, francese, italiano, olandese, portoghese, russo, cinese e farsi_ - [Blockscout](https://blockscout.com/) +- [Etherchain](https://www.etherchain.org/) +- [Ethplorer](https://ethplorer.io/): _disponibile anche in cinese, spagnolo, francese, turco, russo, coreano e vietnamita_ - [OKLink](https://www.oklink.com/eth) - [Otterscan](https://otterscan.io/) +- [Sirato](https://www.web3labs.com/sirato) +- [EthVM](https://www.ethvm.com/) ## Dati {#data} @@ -226,10 +229,11 @@ I dati di livello superiore del livello di consenso includono quanto segue: ## Block explorer {#block-explorers} -- [Etherscan](https://etherscan.io/) - un esploratore di blocchi che puoi usare per recuperare i dati per la Rete Principale di Ethereum e le Reti di Prova di Ropsten, Kovan, Rinkeby e Goerli -- [Etherchain](https://www.etherchain.org/) - un esploratore di blocchi per la Rete Principale di Ethereum -- [Ethplorer](https://ethplorer.io/) - un esploratore di blocchi incentrato sui token per la Rete Principale di Ethereum e la rete di prova di Kovan +- [Etherscan](https://etherscan.io/) - un esploratore di blocchi che puoi usare per recuperare i dati per la Rete Principale di Ethereum e le reti di prova di Ropsten, Kovan, Rinkeby e Goerli +- [Beaconcha.in](https://beaconcha.in/) - un esploratore di blocchi open source per la Rete Principale di Ethereum e la rete di prova di Goerli - [Blockchair](https://blockchair.com/ethereum): l'esploratore di Ethereum più privato. Anche per ordinare e filtrare i dati (mempool) +- [Etherchain](https://www.etherchain.org/) - un esploratore di blocchi per la rete principale di Ethereum +- [Ethplorer](https://ethplorer.io/) - un esploratore di blocchi incentrato sui token per la Rete Principale di Ethereum e la rete di prova di Kovan ## Approfondimenti {#further-reading} diff --git a/src/content/translations/it/developers/docs/data-and-analytics/index.md b/src/content/translations/it/developers/docs/data-and-analytics/index.md index b090a778a21..4004c847d85 100644 --- a/src/content/translations/it/developers/docs/data-and-analytics/index.md +++ b/src/content/translations/it/developers/docs/data-and-analytics/index.md @@ -20,7 +20,7 @@ In termini di fondamenti architettonici, occorre comprendere che cosa sono le [A Molti [Esploratori di Blocchi](/developers/docs/data-and-analytics/block-explorers/) offrono gateway dell'[API](https://www.wikipedia.org/wiki/API) di [RESTful](https://www.wikipedia.org/wiki/Representational_state_transfer), che forniranno visibilità agli sviluppatori in dati in tempo reale sui blocchi, le transazioni, i miner, i conti e altra attività sulla catena. -Gli sviluppatori possono quindi elaborare e trasformare questi dati per fornire agli utenti informazioni e interazioni uniche con la blockchain [](/glossary/#blockchain). Ad esempio, [Etherscan](etherscan.io) fornisce i dati d'esecuzione e consenso per ogni slot di 12s. +Gli sviluppatori possono quindi elaborare e trasformare questi dati per fornire agli utenti informazioni e interazioni uniche con la blockchain [](/glossary/#blockchain). Ad esempio, [Etherscan](https://etherscan.io) fornisce i dati d'esecuzione e consenso per ogni slot di 12 secondi. ## The Graph {#the-graph} @@ -30,7 +30,7 @@ Usando [GraphQL](https://graphql.org/), gli sviluppatori possono interrogare una ## Diversità dei client -La [diversità dei client](/developers/docs/nodes-and-clients/client-diversity/) è importante per la salute complessiva della rete di Ethereum, poiché fornisce resilienza a bug ed exploit. Al momento esistono numerosi pannelli di controllo della diversità dei client, tra cui [clientdiversity.org](https://clientdiversity.org/), [rated.network](rated.network), [execution-diversity.info](https://execution-diversity.info/) e [Ethernodes](https://ethernodes.org/). +La [diversità dei client](/developers/docs/nodes-and-clients/client-diversity/) è importante per la salute complessiva della rete di Ethereum, poiché fornisce resilienza a bug ed exploit. Attualmente esistono vari pannelli di controllo della diversità del client, tra cui [clientdiversity.org](https://clientdiversity.org/), [rated.network](rated.network), [execution-diversity.info](https://execution-diversity.info/) ed [Ethernodes](https://ethernodes.org/). ## Dune Analytics {#dune-analytics} diff --git a/src/content/translations/it/developers/docs/ethereum-stack/index.md b/src/content/translations/it/developers/docs/ethereum-stack/index.md index f3764783fc6..e1296df03d0 100644 --- a/src/content/translations/it/developers/docs/ethereum-stack/index.md +++ b/src/content/translations/it/developers/docs/ethereum-stack/index.md @@ -10,11 +10,11 @@ Sono comunque disponibili tecnologie base di Ethereum che aiutano a fornire un m ## Livello 1: macchina virtuale Ethereum {#ethereum-virtual-machine} -La [Macchina Virtuale di Ethereum (EVM)](/developers/docs/evm/) è l'ambiente d'esecuzione per i contratti intelligenti su Ethereum. Tutti i contratti intelligenti e i cambiamenti di stato sulle blockchain di Ethereum sono eseguiti dalle [transazioni](/developers/docs/transactions/). La EVM gestisce l'elaborazione di tutte le transazioni sulla rete Ethereum. +La [Macchina Virtuale di Ethereum (EVM)](/developers/docs/evm/) è l'ambiente di esecuzione per i contratti intelligenti su Ethereum. Tutti i contratti intelligenti e i cambiamenti di stato sulle blockchain di Ethereum sono eseguiti dalle [transazioni](/developers/docs/transactions/). La EVM gestisce l'elaborazione di tutte le transazioni sulla rete Ethereum. Come avviene con ogni macchina virtuale, la EVM crea un livello di astrazione fra il codice in esecuzione e la macchina che esegue tale codice (il nodo Ethereum). Al momento la EVM è in esecuzione su migliaia di nodi distribuiti in tutto il mondo. -La EVM utilizza un insieme di istruzioni opcode per eseguire attività specifiche. Questi 140 opcode univoci permettono alla EVM di essere Turing completa, cioè di essere in grado di elaborare praticamente tutto, se sono presenti risorse sufficienti. +La EVM utilizza un insieme di istruzioni opcode per eseguire attività specifiche. Questi (140) opcode (univoci) consentono all'EVM di essere [Turing-completa](https://en.wikipedia.org/wiki/Turing_completeness), cioè in grado di calcolare praticamente tutto, se sono presenti risorse sufficienti. A uno sviluppatore di dapp non serve conoscere a fondo la EVM, gli basta sapere che esiste e fa funzionare in modo affidabile tutte le applicazioni su Ethereum senza interruzioni. diff --git a/src/content/translations/it/developers/docs/frameworks/index.md b/src/content/translations/it/developers/docs/frameworks/index.md index dfaf4fd95db..80d45efefe4 100644 --- a/src/content/translations/it/developers/docs/frameworks/index.md +++ b/src/content/translations/it/developers/docs/frameworks/index.md @@ -46,32 +46,37 @@ Prima di iniziare a studiare i framework, raccomandiamo la lettura della nostra - [Home page](https://www.web3labs.com/web3j-sdk) - [Documentazione](https://docs.web3j.io) -- [GitHub](https://github.com/web3j/web3j) +- [Github](https://github.com/web3j/web3j) -**OpenZeppelin SDK:** **_Gli Strumenti Definitivi per i Contratti Intelligenti: Una suite di strumenti per aiutarti a sviluppare, compilare, aggiornare, distribuire e interagire con i contratti intelligenti_** +**OpenZeppelin SDK:** **_Il kit di strumenti definitivo per i contratti intelligenti: una suite di strumenti per aiutarti a sviluppare, compilare, aggiornare, distribuire e interagire con i contratti intelligenti_** - [SDK OpenZeppelin](https://openzeppelin.com/sdk/) -- [GitHub](https://github.com/OpenZeppelin/openzeppelin-sdk) +- [Github](https://github.com/OpenZeppelin/openzeppelin-sdk) - [Forum della community](https://forum.openzeppelin.com/c/support/17) -**Create Eth App:** **_crea app per Ethereum con un comando. Offre una vasta scelta di framework per l'interfaccia utente e modelli DeFI tra cui scegliere._** +**Create Eth App -** **_Crea app per Ethereum con un comando. Offre una vasta scelta di framework per l'interfaccia utente e modelli DeFI tra cui scegliere._** -- [GitHub](https://github.com/paulrberg/create-eth-app) -- [Template](https://github.com/PaulRBerg/create-eth-app/tree/develop/templates) +- [Github](https://github.com/paulrberg/create-eth-app) +- [Modelli](https://github.com/PaulRBerg/create-eth-app/tree/develop/templates) -**Scaffold-Eth:** **_I componenti Ethers.js + Hardhat + React e gli hook per web3: tutto ciò che ti serve per iniziare a creare applicazioni decentralizzate alimentate dai contratti intelligenti._** +**Scaffold-Eth -** **_I componenti Ethers.js + Hardhat + React e gli hook per web3: tutto ciò che ti serve per iniziare a creare applicazioni decentralizzate alimentate da contratti intelligenti._** - [GitHub](https://github.com/austintgriffith/scaffold-eth) +**Tenderly -** **_Piattaforma di sviluppo di Web3 che consente agli sviluppatori della blockchain di costruire, testare, eseguire il debug, monitorare e gestire i contratti intelligenti, nonché di migliorare l'UX della dapp._** + +- [Sito Web](https://tenderly.co/) +- [Documentazione](https://docs.tenderly.co/ethereum-development-practices) + **The Graph:** **_ The Graph per interrogare efficientemente i dati della blockchain_** - [Sito Web](https://thegraph.com/) -- [Guida](/developers/tutorials/the-graph-fixing-web3-data-querying/) +- [Tutorial](/developers/tutorials/the-graph-fixing-web3-data-querying/) -**Alchemy:** **_ piattaforma di sviluppo di Ethereum._** +**Alchemy -** **_Piattaforma di sviluppo Ethereum_** - [alchemy.com](https://www.alchemy.com/) -- [GitHub](https://github.com/alchemyplatform) +- [Github](https://github.com/alchemyplatform) - [Discord](https://discord.com/invite/A39JVCM) **Foundry -** **_Un toolkit velocissimo, portatile e modulare per lo sviluppo di applicazioni di Ethereum scritte in Rust._** @@ -80,10 +85,16 @@ Prima di iniziare a studiare i framework, raccomandiamo la lettura della nostra - [GitHub](https://github.com/gakonst/foundry/) - [Strumenti per Foundry](https://github.com/crisgarner/awesome-foundry) +**NodeReal**: **_Piattaforma di sviluppo per Ethereum._** + +- [Nodereal.io](https://nodereal.io/) +- [GitHub](https://github.com/node-real) +- [Discord](https://discord.gg/V5k5gsuE) + ## Letture consigliate {#further-reading} _Conosci una risorsa pubblica che ti è stata utile? Modifica questa pagina e aggiungila!_ ## Argomenti correlati {#related-topics} -- [Configura un ambiente di sviluppo locale](/developers/local-environment/) +- [Imposta un ambiente di sviluppo locale](/developers/local-environment/) diff --git a/src/content/translations/it/developers/docs/ides/index.md b/src/content/translations/it/developers/docs/ides/index.md index 8cbb2f14681..b849a2606b3 100644 --- a/src/content/translations/it/developers/docs/ides/index.md +++ b/src/content/translations/it/developers/docs/ides/index.md @@ -12,9 +12,17 @@ Se desideri provare a scrivere del codice prima di [configurare un ambiente di s **[Remix](https://remix.ethereum.org/)**: **_IDE basato sul web che integra analisi statica e una macchina virtuale per una blockchain di prova_** +- [Documentazione](https://remix-ide.readthedocs.io/en/latest/#) +- [Gitter](https://gitter.im/ethereum/remix) + **[ChainIDE](https://chainide.com/)**: **_un IDE multi-catena basato su cloud_** -**[Replit (Solidity Starter)](https://replit.com/@replit/Solidity-starter-beta)**: **_un ambiente di sviluppo personalizzabile per Ethereum con reloading immediato, controllo degli errori e supporto della rete di prova di prim'ordine_** +- [Documentazione](https://chainide.gitbook.io/chainide-english-1/) +- [Forum di supporto](https://forum.chainide.com/) + +**[Replit (Solidity Starter - Beta) ](https://replit.com/@replit/Solidity-starter-beta)** - **_Un ambiente di sviluppo personalizzabile per Ethereum con ricarica rapida, controllo degli errori e supporto della rete di prova di prima classe_** + +- [Docs](https://docs.replit.com/) **[Tenderly Sandbox](https://sandbox.tenderly.co/)**: **_un ambiente di prototipazione veloce è possibile scrivere, eseguire ed effettuare il debug dei contratti intelligenti nel browser usando Solidity e JavaScript_** @@ -37,7 +45,7 @@ Gli IDE più diffusi hanno plugin integrati che migliorano l'esperienza di svilu - [Atom](https://atom.io/) - [GitHub](https://github.com/atom) -- [Pacchetti Ethereum](https://atom.io/packages/search?utf8=%E2%9C%93&q=keyword%3Aethereum&commit=Search) +- [Ethereum packages](https://atom.io/packages/search?utf8=%E2%9C%93&q=keyword%3Aethereum&commit=Search) **JetBrains IDEs (IntelliJ IDEA, ecc.) -** **_Strumenti essenziali per sviluppatori di software e team_** @@ -52,7 +60,8 @@ Gli IDE più diffusi hanno plugin integrati che migliorano l'esperienza di svilu ## Plugin ed estensioni {#plugins-extensions} -- [solidity](https://marketplace.visualstudio.com/items?itemName=JuanBlanco.solidity) - Linguaggio Solidity di Ethereum per Visual Studio Code +- [solidity](https://marketplace.visualstudio.com/items?itemName=JuanBlanco.solidity) - Ethereum Solidity Language per Visual Studio Code +- [Solidity + Hardhat per VS Code](https://marketplace.visualstudio.com/items?itemName=NomicFoundation.hardhat-solidity) - Supporto Solidity e Hardhat fornito da Hardhat team - [Prettier Solidity](https://github.com/prettier-solidity/prettier-plugin-solidity) - Formattatore di codice basato su Prettier ## Letture consigliate {#further-reading} diff --git a/src/content/translations/it/developers/docs/programming-languages/python/index.md b/src/content/translations/it/developers/docs/programming-languages/python/index.md index 6a3bb445e64..6c82a435f80 100644 --- a/src/content/translations/it/developers/docs/programming-languages/python/index.md +++ b/src/content/translations/it/developers/docs/programming-languages/python/index.md @@ -23,11 +23,12 @@ Hai prima bisogno di nozioni di base? Dai un'occhiata a [ethereum.org/learn](/le ## Articoli per chi inizia ora {#beginner-articles} - [Guida di uno sviluppatore (Python) a Ethereum](https://snakecharmers.ethereum.org/a-developers-guide-to-ethereum-pt-1/) -- [Un'Introduzione ai Contratti Intelligenti con Vyper](https://kauri.io/#collections/Getting%20Started/an-introduction-to-smart-contracts-with-vyper/) +- [Report 2023 sullo stato di Python in blockchain](https://tradingstrategy.ai/blog/the-state-of-python-in-blockchain-in-2023) +- [Introduzione agli Smart Contract con Vyper (in inglese)](https://kauri.io/#collections/Getting%20Started/an-introduction-to-smart-contracts-with-vyper/) - [Distribuisci il tuo Token ERC20 con Python e Brownie](https://betterprogramming.pub/python-blockchain-token-deployment-tutorial-create-an-erc20-77a5fd2e1a58) -- [Come sviluppare un contratto Ethereum utilizzando Python Flask?](https://medium.com/coinmonks/how-to-develop-ethereum-contract-using-python-flask-9758fe65976e) -- [Introduziona Web3.py · Ethereum per sviluppatori Python](https://www.dappuniversity.com/articles/web3-py-intro) -- [Come chiamare la funzione di un Contratto Intelligente usando Python e web3.py](https://stackoverflow.com/questions/57580702/how-to-call-a-smart-contract-function-using-python-and-web3-py) +- [Come sviluppare un contratto Ethereum usando Python Flask (in inglese)](https://medium.com/coinmonks/how-to-develop-ethereum-contract-using-python-flask-9758fe65976e) +- [Introduzione a Web3.py · Ethereum per sviluppatori Python (in inglese)](https://www.dappuniversity.com/articles/web3-py-intro) +- [Come chiamare la funzione di uno Smart Contract usando Python e web3.py (in inglese)](https://stackoverflow.com/questions/57580702/how-to-call-a-smart-contract-function-using-python-and-web3-py) ## Articoli di livello intermedio {#intermediate-articles} @@ -64,7 +65,7 @@ Hai prima bisogno di nozioni di base? Dai un'occhiata a [ethereum.org/learn](/le ### Archiviato / Non più mantenuto: {#archived--no-longer-maintained} - [Trinity](https://github.com/ethereum/trinity) - _Il client Python di Ethereum_ -- [Mamba](https://mamba.black) - _Framework per scrivere, compilare e distribuire contratti intelligenti scritti nel linguaggio Vyper_ +- [Mamba](https://github.com/arjunaskykok/mamba) - _Framework per scrivere, compilare e distribuire contratti intelligenti scritti nel linguaggio Vyper_ Cerchi altre risorse? Dai un'occhiata a [ethereum.org/developers](/developers/). diff --git a/src/content/translations/it/developers/docs/programming-languages/rust/index.md b/src/content/translations/it/developers/docs/programming-languages/rust/index.md index 5fe7fd57216..ab9528e1ca2 100644 --- a/src/content/translations/it/developers/docs/programming-languages/rust/index.md +++ b/src/content/translations/it/developers/docs/programming-languages/rust/index.md @@ -26,34 +26,32 @@ Hai prima bisogno di nozioni di base? Dai un'occhiata a [ethereum.org/learn](/le - [The Rust Ethereum Client](https://openethereum.github.io/) \* **Notare che OpenEthereum [è ormai superato](https://medium.com/openethereum/gnosis-joins-erigon-formerly-turbo-geth-to-release-next-gen-ethereum-client-c6708dd06dd) e non viene più mantenuto.** Usalo con cautela e preferibilmente passa a un'altra implementazione client. - [Sending Transaction to Ethereum Using Rust](https://kauri.io/#collections/A%20Hackathon%20Survival%20Guide/sending-ethereum-transactions-with-rust/) - [Un'Introduzione ai Contratti Intelligenti con il Client di Ethereum Parity](https://wiki.parity.io/Smart-Contracts) -- [Setting up your Oasis SDK dev environment](https://docs.oasis.dev/oasis-sdk/guide/getting-started) -- [A step-by-step tutorial on how to write contracts in rust Wasm for Kovan](https://github.com/paritytech/pwasm-tutorial) +- [Una guida passo-passo su come scrivere un contratto in rust Wasm per Kovan](https://github.com/paritytech/pwasm-tutorial) ## Articoli di livello intermedio {#intermediate-articles} ## Modelli d'uso avanzati {#advanced-use-patterns} -- [pwasm_ethereum externs library to interact with Ethereum-like network](https://github.com/openethereum/pwasm-ethereum) -- [Build A Decentralized Chat Using JavaScript and Rust](https://medium.com/perlin-network/build-a-decentralized-chat-using-javascript-rust-webassembly-c775f8484b52) -- [Build a Decentralized Todo App Using Vue.js & Rust](https://medium.com/@jjmace01/build-a-decentralized-todo-app-using-vue-js-rust-webassembly-5381a1895beb) -- [Getting Started with Enigma - In Rust Programming Language](https://blog.enigma.co/getting-started-with-discovery-the-rust-programming-language-4d1e0b06de15) -- [An Intro to Secret Contracts](https://blog.enigma.co/getting-started-with-enigma-an-intro-to-secret-contracts-cdba4fe501c2) -- [Deploying Solidity Contracts on Oasis (Compound)](https://docs.oasis.dev/tutorials/deploy-solidity.html#deploy-using-truffle) -- [Crea una blockchain in Rust](https://blog.logrocket.com/how-to-build-a-blockchain-in-rust/) +- [Libreria pwasm_ethereum esterna per interagire con reti di tipo Ethereum (in inglese)](https://github.com/openethereum/pwasm-ethereum) +- [Creare una chat decentralizzata usando JavaScript e Rust (in inglese)](https://medium.com/perlin-network/build-a-decentralized-chat-using-javascript-rust-webassembly-c775f8484b52) +- [Creare un'app decentralizzata Todo usando Vue.js e Rust (in inglese)](https://medium.com/@jjmace01/build-a-decentralized-todo-app-using-vue-js-rust-webassembly-5381a1895beb) + +- [Introduzione ai contratti segreti (in inglese)](https://blog.enigma.co/getting-started-with-enigma-an-intro-to-secret-contracts-cdba4fe501c2) +- [Costruisci una blockchain in Rust](https://blog.logrocket.com/how-to-build-a-blockchain-in-rust/) ## Progetti e strumenti di Rust {#rust-projects-and-tools} -- [pwasm-ethereum](https://github.com/paritytech/pwasm-ethereum) - _Raccolta di risorse esterne per interagire con una rete di tipo Ethereum_ +- [pwasm-ethereum](https://github.com/paritytech/pwasm-ethereum) - _Raccolta di esterni per interagire con reti simili a Ethereum_ - [Lighthouse](https://github.com/sigp/lighthouse) - _Client veloce del livello di consenso di Ethereum_ -- [Ethereum WebAssembly](https://ewasm.readthedocs.io/en/mkdocs/) +- [Ethereum WebAssembly](https://ewasm.readthedocs.io/en/mkdocs/) - _Rivisitazione proposta del livello di esecuzione del contratto intelligente di Ethereum, utilizzando un sottoinsieme deterministico di WebAssembly_ - [oasis_std](https://docs.rs/oasis-std/0.2.7/oasis_std/) - _Riferimento API di OASIS_ -- [Solaris](https://github.com/paritytech/sol-rs) -- [SputnikVM](https://github.com/sorpaas/rust-evm) - _Implementazione della macchina virtuale Ethereum in Rust_ -- [Wavelet](https://wavelet.perlin.net/docs/smart-contracts) - _Contratto intelligente Wavelet su Rust_ +- [Solaris](https://github.com/paritytech/sol-rs) - _Test unitario dei contratti intelligenti in Solidity che sfrutta l'utilizzo dell'EVM nativa del Client di Parity._ +- [SputnikVM](https://github.com/rust-blockchain/evm) - _Implementazione della Macchina Virtuale di Ethereum in Rust_ +- [Wavelet](https://wavelet.perlin.net/docs/smart-contracts) - _Smart Contract Wavelet in Rust_ - [Foundry](https://github.com/gakonst/foundry)- _Toolkit per lo sviluppo di applicazioni Ethereum_ -- [Ethers_rs](https://github.com/gakonst/ethers-rs)- _Libreria di Ethereum e implementazione di portafogli_ -- [evm_rs](https://github.com/rust-blockchain/evm)- _Implementazione della macchina virtuale di Ethereum in Rust_ +- [Ethers_rs](https://github.com/gakonst/ethers-rs)- _Implementazione di librerie e portafogli di Ethereum_ - [SewUp](https://github.com/second-state/SewUp) - _Una libreria per aiutarti a creare il tuo contratto webassembly di Ethereum con Rust e sviluppare in un backend comune_ +- [Reth](https://github.com/paradigmxyz/reth) Reth (abbreviazione di Rust Ethereum, pronuncia) è una nuova implementazione a nodo completo su Ethereum Cerchi altre risorse? Dai un'occhiata a [ethereum.org/developers.](/developers/) diff --git a/src/content/translations/it/developers/docs/storage/index.md b/src/content/translations/it/developers/docs/storage/index.md index 33ae39501e0..fb6351ad3ae 100644 --- a/src/content/translations/it/developers/docs/storage/index.md +++ b/src/content/translations/it/developers/docs/storage/index.md @@ -47,6 +47,8 @@ Le piattaforme con persistenza basata su contratto sono: - [Storj](https://storj.io/) - [0Chain](https://0chain.net/) - [Rete Crust](https://crust.network) +- [Swarm](https://www.ethswarm.org/) +- [4EVERLAND](https://www.4everland.org/) ### Considerazioni aggiuntive {#additional-consideration} @@ -57,14 +59,18 @@ IPFS è un sistema distribuito per memorizzare e accedere a file, siti web, appl - [Pinata](https://www.pinata.cloud/) _(servizio di pinning IPFS)_ - [Pinata](https://www.pinata.cloud/) _(servizio di pinning IPFS)_ - [IPFS Scan](https://ipfs-scan.io) _(esploratore di pinning di IPFS)_ +- [4EVERLAND](https://www.4everland.org/)_(Servizio di pinning IPFS)_ +- [Filebase](https://filebase.com) _(Servizio di pinning IPFS)_ + +SWARM è una tecnologia decentralizzata di archiviazione e distribuzione di dati con un sistema di incentivazione di archiviazione e un oracolo del prezzo di affitto della memoria. ## Ritenzione dei dati {#data-retention} -Per ritenere i dati, i sistemi devono avere qualche tipo di meccanismo per assicurarsi che i dati vengano conservati. +Per conservare i dati, i sistemi devono avere qualche tipo di meccanismo per assicurarsi che i dati vengano conservati. ### Meccanismo di messa alla prova {#challenge-mechanism} -Per verificare l'effettiva conservazione dei dati, uno dei metodi più diffusi consiste nell'utilizzare un meccanismo di messa alla prova crittografica emessa ai nodi per accertare che contengano ancora i dati. Un esempio semplice è quello del Proof of Access di Arweave. I nodi vengono messi alla prova per vedere se contengono i dati sia sul blocco più recente sia su un blocco passato a caso. Se il nodo non trova la risposta, viene penalizzato. +Uno dei metodi più diffusi per verificare l'effettiva conservazione dei dati consiste nell'utilizzare qualche tipo di meccanismo di messa alla prova crittografica applicato ai nodi per accertare che contengano ancora i dati. Un esempio semplice è quello di verificare il proof-of-access di Arweave. I nodi vengono messi alla prova per vedere se contengono i dati sia sul blocco più recente sia su un blocco casuale in passato. Se il nodo non trova la risposta, viene penalizzato. Tipi di dStorage con meccanismo di messa alla prova: @@ -73,10 +79,11 @@ Tipi di dStorage con meccanismo di messa alla prova: - Arweave - Filecoin - Rete Crust +- 4EVERLAND ### Decentralità {#decentrality} -Non esistono strumenti impeccabili per misurare il livello di decentralizzazione delle piattaforme ma, in generale, si tende a ricorrere a strumenti che non utilizzano un tipo di KYC per dimostrare di non essere centralizzati. +Non esistono strumenti impeccabili per misurare il livello di decentralizzazione delle piattaforme ma, in generale, si tende a ricorrere a strumenti che non utilizzano qualche tipo di KYC per dimostrare di non essere centralizzati. Strumenti decentralizzati senza KYC: @@ -87,10 +94,11 @@ Strumenti decentralizzati senza KYC: - IPFS - Ethereum - Rete Crust +- 4EVERLAND ### Consenso {#consensus} -Gran parte di questi strumenti ha la propria versione di un [meccanismo di consenso](/developers/docs/consensus-mechanisms/) ma, generalmente, si basano su [**Proof of Work (PoW)**](/developers/docs/consensus-mechanisms/pow/) o [**Proof of Stake (PoS)**](/developers/docs/consensus-mechanisms/pos/). +Gran parte di questi strumenti ha la propria versione di un [meccanismo di consenso](/developers/docs/consensus-mechanisms/), ma generalmente si basano su [**proof-of-work (PoW)**](/developers/docs/consensus-mechanisms/pow/) o [**proof-of-stake (PoS)**](/developers/docs/consensus-mechanisms/pos/). Basata sul proof-of-work: @@ -106,7 +114,7 @@ Basata sul proof-of-stake: ## Strumenti correlati {#related-tools} -**IPFS - _InterPlanetary File System è un sistema di archiviazione decentralizzata e referenziazione dei file per Ethereum._** +**IPFS - _InterPlanetary File System è un sistema decentralizzato di archiviazione e referenziazione dei file per Ethereum._** - [Ipfs.io](https://ipfs.io/) - [Documentazione](https://docs.ipfs.io/) @@ -116,6 +124,7 @@ Basata sul proof-of-stake: - [Storj.io](https://storj.io/) - [Documentazione](https://docs.storj.io/) +- [GitHub](https://github.com/storj/storj) **Skynet - _Skynet è una catena di PoW decentralizzata dedicata a un web decentralizzato._** @@ -135,7 +144,7 @@ Basata sul proof-of-stake: - [Documentazione](https://docs.arweave.org/info/) - [Arweave](https://github.com/ArweaveTeam/arweave/) -**0chain - _0Chain è una piattaforma di dStorage in Proof of Stake con sharding e blobber._** +**0chain - _0Chain è una piattaforma di dStorage in proof-of-stake con sharding e blobber._** - [0Chain.net](https://0chain.net/) - [Documentazione](https://docs.0chain.net/0chain/) @@ -159,7 +168,7 @@ Basata sul proof-of-stake: - [Documentazione](https://github.com/orbitdb/field-manual/) - [GitHub](https://github.com/orbitdb/orbit-db/) -**Aleph.im - _Progetto su cloud decentralizzato (database, archiviazione di file, calcolo e DID). Una combinazione unica di tecnologia peer-to-peer on-chain e off-chain. Compatibilità multi-catena e IPFS._** +**Aleph.im - _Progetto decentralizzato su cloud (database, archiviazione di file, calcolo e DID). Una combinazione unica di tecnologia peer-to-peer on-chain e off-chain. Compatibilità multi-catena e IPFS._** - [Aleph.im](https://aleph.im/) - [Documentazione](https://aleph.im/#/developers/) @@ -171,19 +180,31 @@ Basata sul proof-of-stake: - [Documentazione](https://developers.ceramic.network/learn/welcome/) - [GitHub](https://github.com/ceramicnetwork/js-ceramic/) -**Filebase - _La prima piattaforma di archiviazione di oggetti compatibile con S3 che consente di archiviare i dati su più reti d'archiviazione decentralizzata, tra cui IPFS, Sia, Skynet e Storj._** +**Filebase - _archiviazione decentralizzata compatibile con S3 e servizio di pinning IPFS geo-ridondante. Tutti i file caricati in IPFS tramite Filebase sono fissati automaticamente all'infrastruttura di Filebase con replicazione 3x in tutto il globo._** - [Filebase.com](https://filebase.com/) - [Documentazione](https://docs.filebase.com/) - [GitHub](https://github.com/filebase) +**4EVERLAND: _Una piattaforma di cloud computing in Web 3.0 che integra archiviazione, calcolo e capacità essenziali di rete, è compatibile con S3 e fornisce l'archiviazione sincrona dei dati su reti di archiviazione decentralizzate quali IPFS e Arweave._** + +- [4everland.org](https://www.4everland.org/) +- [Documentazione](https://docs.4everland.org/) +- [GitHub](https://github.com/4everland) + +**Kaleido - _Una piattaforma di blockchain-as-a-service con Nodi IPFS alla pressione di un pulsante_** + +- [Kaleido](https://kaleido.io/) +- [Documentazione](https://docs.kaleido.io/kaleido-services/ipfs/) +- [GitHub](https://github.com/kaleido-io) + ## Letture consigliate {#further-reading} - [Cos'è l'archiviazione decentralizzata?](https://coinmarketcap.com/alexandria/article/what-is-decentralized-storage-a-deep-dive-by-filecoin) - _CoinMarketCap_ - [Sfatiamo cinque falsi miti sull'archiviazione decentralizzata](https://www.storj.io/blog/busting-five-common-myths-about-decentralized-storage) - _Storj_ -_Conosci una risorsa della community che ti è stata utile? Modifica questa pagina e aggiungila!_ +_Conosci una risorsa pubblica che ti è stata utile? Modifica questa pagina e aggiungila!_ ## Argomenti correlati {#related-topics} -- [Framework di sviluppo](/developers/docs/frameworks/) +- [Quadri di sviluppo](/developers/docs/frameworks/) diff --git a/src/content/translations/it/enterprise/index.md b/src/content/translations/it/enterprise/index.md index 20b4bc8ebf8..a8dcaa286da 100644 --- a/src/content/translations/it/enterprise/index.md +++ b/src/content/translations/it/enterprise/index.md @@ -62,6 +62,7 @@ Alcuni sforzi collaborativi per rendere la rete Ethereum aziendale più intuitiv - [Tenderly](https://tenderly.co) _una piattaforma di sviluppo Web3 che fornisce elementi di debug, osservabilità e infrastruttura per lo sviluppo, il test, il monitoraggio e il funzionamento dei contratti intelligenti._ - [Unibright](https://unibright.io/) _team di specialisti della blockchain, architetti, sviluppatori e consulenti con più di 20 anni di esperienza in processi di business e integrazione_ - [Zero Services GmbH](https://www.zeroservices.eu/) _provider di servizi gestiti si diffonde in co-sedi in Europa e Asia. Fa funzionare e monitora i tuoi nodi in modo sicuro e affidabile_ +- [Zeeve](https://www.zeeve.io/) _fornisce una gamma di prodotti e strumenti per creare su Ethereum, nonché infrastruttura e API per le applicazioni Enterprise Web3._ ### Strumenti e librerie {#tooling-and-libraries} diff --git a/src/content/translations/it/enterprise/private-ethereum/index.md b/src/content/translations/it/enterprise/private-ethereum/index.md index 4a5d7452a92..242998835b8 100644 --- a/src/content/translations/it/enterprise/private-ethereum/index.md +++ b/src/content/translations/it/enterprise/private-ethereum/index.md @@ -24,4 +24,4 @@ Diverse organizzazioni si sono adoperate per rendere più intuitiva Ethereum per - [Hyperledger Besu](https://www.hyperledger.org/use/besu) _Client open source di Ethereum sviluppato con licenza Apache 2.0 e scritto in Java, che include diversi algoritmi di consenso, tra cui PoW e PoA (IBFT, IBFT 2.0, Etherhash e Clique). Gli schemi di autorizzazione completi adottati sono progettati specificamente per l'uso in un ambiente consortile._ - [Hyperledger Burrow](https://www.hyperledger.org/projects/hyperledger-burrow) _Client modulare della blockchain con un interprete autorizzato del contratto intelligente, sviluppato parzialmente alla specifica della Macchina Virtuale di Ethereum (EVM)_ - [Kaleido](https://kaleido.io/) _Piattaforma a tutto tondo per lo sviluppo e l'esecuzione di ecosistemi aziendali ibridi adatti a diversi cloud_ -- [Quorum](https://consensys.net/quorum/) _Piattaforma blockchain aziendale open source basata su Ethereum con funzionalità aziendali di livello avanzato che garantiscono privacy, gestione dei permessi e prestazioni elevate_ +- [Quorum](https://consensys.net/quorum/) _è una piattaforma di blockchain open source basata su Ethereum con funzionalità di grado imprenditoriale, che consentono privacy, permessi e prestazioni_ [Zeeve](https://www.zeeve.io/) _fornisce una gamma di prodotti e strumenti per creare su Ethereum, nonché infrastruttura e API per le applicazioni di Imprese del Web3._ diff --git a/src/content/translations/it/guides/how-to-create-an-ethereum-account/index.md b/src/content/translations/it/guides/how-to-create-an-ethereum-account/index.md new file mode 100644 index 00000000000..1eeb6668f34 --- /dev/null +++ b/src/content/translations/it/guides/how-to-create-an-ethereum-account/index.md @@ -0,0 +1,68 @@ +--- +title: Come "creare" un conto di Ethereum +description: Una guida passo-passo sulla creazione di un conto di Ethereum utilizzando un portafoglio. +lang: it +--- + +# Come "registrare" un conto di Ethereum + +Chiunque può creare gratuitamente un conto di Ethereum grazie a una specifica tipologia di app comunemente nota come portafoglio. I portafogli creano e proteggono le chiavi che ti consentono di detenere, inviare e ricevere criptovalute. Inoltre, puoi connetterti ai progetti su Ethereum che ti consentiranno di commerciare NFT, scambiare token, accedere a giochi e molto altro. + +A differenza dell'apertura di un nuovo conto presso un'azienda, la creazione di un conto di Ethereum avviene gratuitamente, privatamente e senza chiedere un'autorizzazione. I conti sono controllati da chiavi che il software del tuo portafoglio ti aiuta a generare, che non sono rilasciate da terzi né sono conservate in un registro centrale. + +## Fase 1: sfoglia il nostro elenco di portafogli + +Un portafoglio è come un conto bancario online per Ethereum. Esistono decine di portafogli diversi tra cui scegliere: per mobile, desktop o persino estensioni per browser. Il nostro elenco curato di portafogli sicuri è un buon punto di partenza. + + + Trova un portafoglio + + +## Fase 2: scegli un portafoglio adatto alle tue esigenze + +Se non hai esperienza, puoi attivare il filtro "Senza conoscenza di criptovalute" per visualizzare soltanto quei portafogli che includono tutte le funzionalità necessarie che pensiamo sarebbero particolarmente adatte per i principianti. Esistono poi altri filtri del profilo per provvedere alle tue esigenze. + +## Fase 3: scarica e installa l'app del tuo portafoglio + +Una volta scelto un portafoglio specifico, visitane il sito web ufficiale o l'app store, scaricalo e installalo. Dovrebbero essere tutti gratuiti. + +## Fase 4: apri l'app e genera o importa il tuo conto di Ethereum + +La prima volta che apri il tuo nuovo portafoglio, ti potrebbe esser chiesto di scegliere tra creare un nuovo conto o importarne uno esistente. Clicca sulla creazione di un nuovo conto. + +## Fase 5: memorizza la tua frase di recupero + +Alcune app ti chiederanno di salvare una frase di recupero segreta. Mantenere questa frase di recupero segreta al sicuro è estremamente importante! Chiunque conosca questa frase di recupero segreta può prendere il controllo di tutti i tuoi conti generati da tali parole. Non condividerla mai con nessuno. Questa frase dovrebbe contenere da 12 a 24 parole generate casualmente (l'ordine delle parole è importante). + +Una volta salvata la tua frase di recupero, dovresti vedere il pannello di controllo del tuo portafoglio con il tuo saldo. Consulta la nostra guida: [come utilizzare un portafoglio.](/guides/how-to-use-a-wallet) + +
+ + +
Vuoi saperne di più?
+ + Visualizza le altre guide + +
+ +## Domande frequenti + +### Il mio portafoglio e il mio conto di Ethereum sono la stessa cosa? + +No, proprio come l'online banking, puoi avere molti conti differenti, tutti memorizzati nell'applicazione di un portafoglio. La tua frase di 12 o 24 parole li protegge tutti: è come il seme di un grande albero (per cui, devi tenerla al sicuro). Ogni ramo dell'albero regge una chiave e ogni chiave è uno dei tuoi conti. Se perdi l'accesso al portafoglio (cioè, se il tuo albero viene abbattuto), puoi sempre ripristinare tutti i tuoi diversi conti utilizzando un altro software e lo stesso seme (che farà crescere sempre lo stesso albero). + +### Posso inviare bitcoin a un indirizzo di Ethereum, o ether a un indirizzo di Bitcoin? + +No, non puoi. Bitcoin ed ether esistono su due reti separate (cioè, blockchain differenti), ognuna con i propri modelli contabili e formati degli indirizzi. Ci sono stati vari tentativi di collegare le due diverse reti, di cui il più attivo al momento è [Wrapped bitcoin o WBTC](https://www.bitcoin.com/get-started/what-is-wbtc/). Questa non è una sponsorizzazione, poiché WBTC è una soluzione di custodia (a significare che un singolo gruppo di persone controlla certe funzioni critiche) ed è qui indicata per soli scopi informativi. + +### Se possiedo un indirizzo ETH, possiedo lo stesso indirizzo su altre blockchain? + +Puoi utilizzare lo stesso indirizzo su tutte le blokchain compatibili con l'EVM (se hai il tipo di portafoglio con una frase di recupero). Questo [elenco](https://chainlist.org/) ti mostrerà quali blockchain puoi utilizzare con lo stesso indirizzo. Alcune blockchain, come Bitcoin, implementano una serie di regole di rete completamente separata, e ti servirà un indirizzo diverso con un formato differente. Se hai un portafoglio di contratti intelligenti, dovresti consultare il sito web del prodotto per ulteriori informazioni su quali blockchain sono supportate. + +### Avere il proprio portafoglio è più sicuro di mantenere i miei fondi su una borsa? + +Sì, è un'opzione molto più sicura perché nessun altro avrà accesso ai tuoi fondi. Sfortunatamente, esistono molti esempi di borse fallite che hanno presentato istanza di fallimento, causando la perdita da parte degli utenti dei propri risparmi tenuti in custodia. Hack, conti congelati o prelievi bloccati sono alcuni altri rischi comuni. Possedere un portafoglio (con una frase di recupero) è il metodo migliore per salvaguardare le tue risorse. Ciononostante, una frase di recupero mal protetta ti espone potenzialmente a più rischi rispetto a far gestire le tue chiavi da una borsa. Assicurati di proteggere bene la tua frase di recupero. + +### Se perdo il mio portafoglio su telefono/hardware, devo riutilizzare la stessa app del portafoglio per recuperare i fondi perduti? + +No, puoi usare quasi qualsiasi portafoglio poiché il procedimento di recupero è ampiamente standardizzato. Ciò significa che puoi inserire la stessa frase di 12 o 24 parole in gran parte dei portafogli e il tuo conto sarà ripristinato. Se mai dovessi farlo, sii cauto: è meglio assicurarsi di non essere connessi a Internet quando si recupera il proprio portafoglio, così che la tua frase di recupero non trapeli accidentalmente. Spesso è impossibile recuperare i fondi perduti senza la frase di recupero. diff --git a/src/content/translations/it/guides/how-to-revoke-token-access/index.md b/src/content/translations/it/guides/how-to-revoke-token-access/index.md new file mode 100644 index 00000000000..8ba69f23ccf --- /dev/null +++ b/src/content/translations/it/guides/how-to-revoke-token-access/index.md @@ -0,0 +1,73 @@ +--- +title: Come revocare l'accesso dei contratti intelligenti ai tuoi fondi di criptovalute +description: Una guida su come revocare l'accesso di sfruttamento al token del contratto intelligente +lang: it +--- + +# Come revocare l'accesso dei contratti intelligenti ai tuoi fondi di criptovalute + +Questa guida ti spiegherà come visualizzare l'elenco completo dei contratti intelligenti ai quali hai permesso l'accesso ai tuoi fondi e come annullarli. + +Talvolta gli sviluppatori malevoli creano backdoor nei contratti intelligenti che consentono l'accesso ai fondi di utenti inconsapevoli che interagiscono con il contratto intelligente. Ciò che spesso si verifica è che tali piattaforme chiedono all'utente l'autorizzazione a spendere un **numero illimitato di token** nel tentativo di risparmiare piccole quantità di carburante in futuro, ma ciò presenta un rischio maggiore. + +Una volta che una piattaforma ha diritti d'accesso illimitati a un token sul tuo portafoglio, può spenderli tutti, anche se hai prelevato i tuoi fondi da tale piattaforma sul tuo portafoglio. Gli utenti malevoli possono comunque accedere ai tuoi fondi e prelevarli nei propri portafogli senza che ti rimanga alcuna opzione di recupero. + +Le sole forme di protezione sono astenersi dall'utilizzo di nuovi progetti non testati, approvare soltanto ciò che è necessario, o revocare regolarmente l'accesso. Quindi, come si fa? + +## Fase 1: utilizzare strumenti di revoca dell'accesso + +Svariati siti web ti consentono di visualizzare e revocare i contratti intelligenti connessi al tuo indirizzo. Visita il sito web e connetti il tuo portafoglio: + +- [Ethallowance](https://ethallowance.com/) (Ethereum) +- [Etherscan](https://etherscan.io/tokenapprovalchecker) (Ethereum) +- [Cointool](https://cointool.app/approve/eth) (svariate reti) +- [Revoke](https://revoke.cash/) (svariate reti) +- [Unrekt](https://app.unrekt.net/) (svariate reti) +- [EverRevoke](https://everrise.com/everrevoke/) (svariate reti) + +## Fase 2: connetti il tuo portafoglio + +Una volta sul sito web, clicca su "Connetti portafoglio". Il sito web dovrebbe richiederti di connettere il tuo portafoglio. + +Assicurati di utilizzare la stessa rete nel tuo portafoglio e sul sito web. Vedrai soltanto i contratti intelligenti correlati alla rete selezionata. Ad esempio, se ti connetti alla Rete Principale di Ethereum, vedrai soltanto i contratti di Ethereum, non quelli di altre catene come Polygon. + +## Fase 3: seleziona un contratto intelligente che desideri revocare + +Dovresti vedere tutti i contratti aventi l'accesso consentito ai tuoi token e il loro limite di spesa. Trova quello che desideri risolvere. + +Se non sai quale contratto scegliere, puoi revocarli tutti. Non creerà alcun problema per te, ma dovrai garantire una nuova serie di autorizzazioni alla prossima interazione con uno qualsiasi di questi contratti. + +## Fase 4: revocare l'accesso ai tuoi fondi + +Una volta fatto clic su revoca, dovresti visualizzare un nuovo suggerimento di transazione nel tuo portafoglio. Ciò è prevedibile. Dovrai pagare la commissione affinché l'annullamento vada a buon fine. A seconda della rete, l'elaborazione può richiedere da uno a svariati minuti. + +Ti consigliamo di ricaricare lo strumento di revoca dopo qualche minuto e di riconnettere il tuo portafoglio, per ricontrollare se il contratto revocato è scomparso dall'elenco. + +Ti consigliamo di non consentire mai l'accesso illimitato ai tuoi token ai progetti e di revocare regolarmente gli accessi di allowance a tutti i token. Revocare l'accesso al token non dovrebbe mai risultare in una perdita di fondi, specialmente se utilizzi i suddetti strumenti. + +
+ + +
Vuoi scoprire di più?
+ + Visualizza le altre guide + +
+ +## Domande frequenti + +### Revocare l'accesso al token fa cessare anche lo staking, i pool, i prestiti, ecc.? + +No, non influenzerà alcuna tua strategia di DeFi. Manterrai tue posizioni e continuerai a ricevere ricompense, ecc. + +### Disconnettere un portafoglio da un progetto equivale a rimuovere le autorizzazioni a utilizzare i miei fondi? + +No, se disconnetti il tuo portafoglio dal progetto, ma hai garantito al token le autorizzazioni di allowance, può ancora utilizzare questi token. Devi revocare tale accesso. + +### Quando scadranno le autorizzazioni del contratto? + +Non esistono date di scadenza delle autorizzazioni dei contratti. Se concedi le autorizzazioni al contratto, sono utilizzabili persino anni dopo la loro concessione. + +### Perché i progetti impostano allowance dei token illimitata? + +Spesso i progetti lo fanno per ridurre il numero di richieste necessarie, a significare che l'utente deve approvare soltanto una volta, pagando la commissione di transazione un'unica volta. Sebbene sia comodo, può essere pericoloso che gli utenti approvino senza cautela, su siti web non affidabili o controllati. Alcuni portafogli ti consentono di limitare manualmente la quantità di token approvati per limitare i tuoi rischi. Consulta il fornitore del tuo portafoglio per ulteriori informazioni. diff --git a/src/content/translations/it/guides/how-to-swap-tokens/index.md b/src/content/translations/it/guides/how-to-swap-tokens/index.md new file mode 100644 index 00000000000..bc6365be8e4 --- /dev/null +++ b/src/content/translations/it/guides/how-to-swap-tokens/index.md @@ -0,0 +1,67 @@ +--- +title: Come scambiare token +description: Una guida su come scambiare i token su Ethereum. +lang: it +--- + +# Come scambiare token + +Sei stanco di cercare una borsa che elenchi tutti i tuoi token preferiti? Puoi scambiare gran parte dei token utilizzando le borse decentralizzate. + +Uno scambio di token comporta lo scambio di due risorse differenti esistenti sulla rete di Ethereum, ad esempio ETH per DAI (un token ERC-20). Il processo è molto veloce ed economico. Dovrai avere un portafoglio di criptovalute per scambiare token. + +**Prerequisiti:** + +- avere un portafoglio di criptovalute, puoi seguire questo tutorial: [Come "registrare" un conto di Ethereum](/guides/how-to-register-an-ethereum-account/) +- aggiungere fondi al tuo portafoglio + +## 1. Connetti il tuo portafoglio alla borsa decentralizzata (DEX) di tua scelta + +Alcune borse popolari sono: + +- [Uniswap](https://app.uniswap.org/#/swap) +- [Sushiswap](https://www.sushi.com/swap) +- [1Inch](https://app.1inch.io/#/1/unified/swap/ETH/DAI) +- [Curve](https://curve.fi/#/ethereum/swap) + +Se desideri scoprire di più su cosa sia la DeFi e sul funzionamento di questi nuovi tipi di borse, consigliamo la [Libreria Kernel](https://library.kernel.community/Topic+-+DeFi/Topic+-+DeFi). + +## 2. Seleziona la coppia di token che desideri scambiare + +Ad esempio, ETH e DAI. Assicurati di avere fondi in uno dei due token. ![Interfaccia comune per lo scambio](./swap1.png) + +## 3. Inserisci l'importo di token che desideri scambiare e clicca su scambia + +La borsa calcolerà automaticamente quanti token otterrai. + +![Interfaccia comune per lo scambio](./swap2.png) + +## 4. Conferma la transazione + +Ricontrolla i dettagli della transazione. Controlla il tasso di cambio e qualsiasi altra commissione per evitare brutte sorprese. + +![Interfaccia comune per ricontrollare la transazione](./swap3.png) + +## 5. Attendi l'elaborazione della transazione + +Puoi visualizzare il progresso della transazione su qualsiasi esploratore della blockchain. Questo processo non dovrebbe richiedere più di 10 minuti. + +Riceverai automaticamente i token scambiati nel tuo portafoglio, una volta elaborata la transazione. +
+ + +
Vuoi scoprire di più?
+ + Visualizza le altre guide + +
+ +## Domande frequenti + +### Posso scambiare ETH per BTC dal mio portafoglio? + +No, puoi soltanto scambiare token nativi della rete di Ethereum, quali ETH, token ERC-20 o NFT. Puoi scambiare soltanto le forme "wrapped" di Bitcoin che risiedono su Ethereum. + +### Cos'è lo scivolamento? + +È la differenza tra il tuo tasso di cambio previsto e quello effettivo. diff --git a/src/content/translations/it/guides/how-to-use-a-bridge/index.md b/src/content/translations/it/guides/how-to-use-a-bridge/index.md new file mode 100644 index 00000000000..2507fb5375c --- /dev/null +++ b/src/content/translations/it/guides/how-to-use-a-bridge/index.md @@ -0,0 +1,70 @@ +--- +title: Come collegare i token al livello 2 +description: Una guida a come spostare i token da Ethereum al livello 2 utilizzando un ponte. +lang: it +--- + +# Come collegare i token al livello 2 + +Se c'è molto traffico su Ethereum, può diventare costoso. Una soluzione è creare nuovi "livelli", ossia reti differenti che operano in modi similari alla stessa Ethereum. Questi cosiddetti Livelli 2 aiutano a ridurre la congestione e i costi su Ethereum elaborando molte altre transazioni a commissioni inferiori, memorizzandone i risultati su Ethereum soltanto una volta ogni tanto. Come tali, questi livelli 2 ci consentono di effettuare transazioni a maggiori velocità e costi ridotti. Molti progetti di criptovalute popolari si stanno spostando ai livelli 2 per questi vantaggi. Il metodo più semplice per spostare i token da Ethereum al livello 2 è utilizzare un ponte. + +**Prerequisiti:** + +- avere un portafoglio di criptovalute, puoi seguire questo tutorial: [Come "registrare" un conto di Ethereum](/guides/how-to-register-an-ethereum-account/) +- aggiungere fondi al tuo portafoglio + +## 1. Determina quale rete di livello 2 desideri utilizzare + +Puoi scoprire di più sui diversi progetti e i collegamenti importanti sulla nostra [pagina del livello 2](/layer-2/). + +## 2. Vai al ponte selezionato + +Alcuni livelli 2 popolari sono: + +- [Ponte Arbitrum](https://bridge.arbitrum.io/?l2ChainId=42161) +- [Ponte Optimism](https://app.optimism.io/bridge/deposit) +- [Ponte della rete Boba](https://gateway.boba.network/) + +## 3. Connettiti al ponte con il tuo portafoglio + +Assicurati che il tuo portafoglio sia connesso alla Rete Principale di Ethereum. Altrimenti, il sito web ti richiederà automaticamente di cambiare rete. + +![Interfaccia comune per collegare token](./bridge1.png) + +## 4. Specifica l'importo e sposta i fondi + +Ricontrolla l'importo che otterrai in cambio sulla rete di livello 2 e le commissioni per evitare spiacevoli sorprese. + +![Interfaccia comune per collegare token](./bridge2.png) + +## 5. Conferma la transazione nel tuo portafoglio + +Dovrai pagare una commissione sotto forma di ETH per elaborare la transazione. + +![Interfaccia comune per collegare token](./bridge3.png) + +## 6. Attendi che i tuoi fondi siano spostati + +Questo procedimento non dovrebbe richiedere più di 10 minuti. + +## 7. Aggiungi la rete di livello 2 selezionata al tuo portafoglio (facoltativo) + +Puoi utilizzare [chainlist.org](http://chainlist.org) per trovare i dettagli RPC della rete. Una volta che la rete è aggiunta e la transazione è terminata, dovresti visualizzare i token nel tuo portafoglio. +
+ + +
Vuoi scoprire di più?
+ + Visualizza le altre guide + +
+ +## Domande frequenti + +### E se ho dei fondi su una borsa? + +Dovresti riuscire a prelevare su qualche livello 2 direttamente da una borsa. Consulta la sezione "Sposta al livello 2" della nostra [Pagina del Livello 2](/layer-2/) per ulteriori informazioni. + +### Posso tornare alla Rete Principale di Ethereum dopo aver collegato i miei token al L2? + +Sì, puoi sempre spostare nuovamente i tuoi fondi nella Rete Principale utilizzando lo stesso ponte. diff --git a/src/content/translations/it/guides/how-to-use-a-wallet/index.md b/src/content/translations/it/guides/how-to-use-a-wallet/index.md new file mode 100644 index 00000000000..0d41d1412a6 --- /dev/null +++ b/src/content/translations/it/guides/how-to-use-a-wallet/index.md @@ -0,0 +1,88 @@ +--- +title: Come utilizzare un portafoglio +description: Una guida che spiega come inviare, ricevere token e connettersi a progetti web3. +lang: it +--- + +# Come utilizzare un portafoglio + +Impara come gestire tutte le funzioni di base di un portafoglio. Se non ne hai ancora uno, consulta il nostro [Come "registrare" un conto di Ethereum](/guides/how-to-register-an-ethereum-account/). + +## Apri il tuo portafoglio + +Dovresti vedere un pannello di controllo che probabilmente mostrerà il tuo saldo e contiene i pulsanti per inviare e ricevere token. + +## Ricevere criptovalute + +Desideri ricevere criptovalute nel tuo portafoglio? + +Ogni conto di Ethereum ha il proprio indirizzo di destinazione, una sequenza univoca di numeri e lettere. L'indirizzo funziona come un numero di conto bancario. Gli indirizzi di Ethereum inizieranno sempre con "0x". Puoi condividere questo indirizzo con chiunque: farlo è sicuro. + +Il tuo indirizzo (talvolta detto "chiave pubblica") è come l'indirizzo di casa tua: devi comunicarlo alle persone affinché ti possano trovare. Farlo è sicuro, poiché puoi sempre chiudere la porta con un'altra chiave che controlli soltanto tu così che nessuno possa entrare anche se sa dove vivi. + +Devi fornire il tuo indirizzo pubblico a chiunque voglia inviarti denaro. Molte app del portafoglio ti consentono di copiare il tuo indirizzo o di mostrare un codice QR da scansionare per facilitare l'utilizzo. Evita di digitare manualmente qualsiasi indirizzo di Ethereum. Ciò può facilmente comportare errori di trascrizione o perdita di fondi. + +App diverse potrebbero variare o utilizzare un linguaggio differente, ma dovrebbero guidarti lungo un processo simile se stai provando a trasferire fondi. + +1. Apri l'app del tuo portafoglio. +2. Clicca su "Ricevi" (o un'opzione simile). +3. Copia il tuo indirizzo di Ethereum negli appunti. +4. Fornisci il tuo indirizzo di destinazione di Ethereum al mittente. + +## Invia criptovalute + +Vorresti inviare ETH a un altro portafoglio? + +1. Apri l'app del tuo portafoglio. +2. Ottieni l'indirizzo di destinazione e assicurati di essere connesso alla stessa rete del destinatario. +3. Inserisci l'indirizzo di destinazione o scansiona un codice QR con la tua fotocamera, così da non dover scrivere manualmente l'indirizzo. +4. Fai clic su un pulsante "Invia" nel tuo portafoglio (o un'alternativa simile). + +![Invia il campo per l'indirizzo delle criptovalute](./send.png) +
+ +5. Molte risorse, come DAI o USDC, esistono su più reti. Trasferendo i token di criptovalute, assicurati che il destinatario stia utilizzando la tua stessa rete, poiché non sono intercambiabili. +6. Assicurati che il tuo portafoglio abbia ETH a sufficienza per coprire la commissione di transazione, che varia a seconda delle condizioni di rete. Gran parte dei portafogli aggiungeranno automaticamente la commissione suggerita alla transazione, che puoi poi confermare. +7. Una volta elaborata la tua transazione, l'importo di criptovalute corrispondente apparirà nel conto del destinatario. Questo potrebbe richiedere da qualche secondo a qualche minuto, a seconda dell'utilizzo corrente della rete. + +## Connettersi ai progetti + +Il tuo indirizzo sarà lo stesso in tutti i progetti di Ethereum. Non devi registrarti individualmente a ogni progetto. Una volta che hai un portafoglio, puoi connetterti a qualsiasi progetto di Ethereum senza alcuna informazione aggiuntiva. Non sono necessarie email o qualsiasi altra informazione personale. + +1. Visita il sito web di qualsiasi progetto. +2. Se la pagina iniziale del progetto è una semplice descrizione statica del progetto, dovresti poter cliccare su un pulsante "Apri l'App" nel menu, che ti condurrà all'app web effettiva. +3. Una volta nell'app, clicca su "Connettiti" + +![Pulsante che consente all'utente di connettersi al sito web con un portafoglio](./connect1.png) + +4. Seleziona il tuo portafoglio dall'elenco delle opzioni fornite. Se non riesci a vedere il tuo portafoglio, potrebbe essere nascosto sotto l'opzione "WalletConnect". + +![Selezionare da un elenco di portafogli con cui connettersi](./connect2.png) + +5. Conferma la richiesta di firma nel tuo portafoglio per stabilire la connessione. **Firmare questo messaggio non dovrebbe richiedere di spendere ETH**. +6. È tutto! Inizia a usare l'app. Puoi trovare qualche progetto interessante sulla nostra [pagina delle dApp](/dapps/#explore).
+ + +
Vuoi scoprire di più?
+ + Visualizza le altre guide + +
+ +## Domande frequenti + +### Se possiedo un indirizzo ETH, possiedo lo stesso indirizzo su altre blockchain? + +Puoi utilizzare lo stesso indirizzo su tutte le blokchain compatibili con l'EVM (se hai il tipo di portafoglio con una frase di recupero). Questo [elenco](https://chainlist.org/) ti mostrerà quali blockchain puoi utilizzare con lo stesso indirizzo. Alcune blockchain, come Bitcoin, implementano una serie di regole di rete completamente separata, e ti servirà un indirizzo diverso con un formato differente. Se hai un portafoglio di contratti intelligenti, dovresti consultare il sito web del prodotto per ulteriori informazioni su quali blockchain sono supportate. + +### Posso utilizzare lo stesso indirizzo su diversi dispositivi? + +Sì, puoi utilizzare lo stesso indirizzo su più dispositivi. Tecnicamente i portafogli sono soltanto un'interfaccia per mostrarti il tuo saldo ed effettuare transazioni, il tuo conto non è memorizzato nel portafoglio ma sulla blockchain. + +### Non ho ricevuto le criptovalute, dove posso controllare lo stato di una transazione? + +Puoi utilizzare gli [esploratori di blocchi](/developers/docs/data-and-analytics/block-explorers/) per visualizzare lo stato di qualsiasi transazione in tempo reale. Tutto ciò che devi fare è cercare l'indirizzo del tuo portafoglio o l'ID della transazione. + +### Posso annullare o revocare le transazioni? + +No, una volta confermata una transazione, non puoi annullarla. diff --git a/src/content/translations/it/guides/index.md b/src/content/translations/it/guides/index.md new file mode 100644 index 00000000000..9de310d140c --- /dev/null +++ b/src/content/translations/it/guides/index.md @@ -0,0 +1,29 @@ +--- +title: Guide su Ethereum +description: Una raccolta di guide pratiche per principianti che illustrano le basi sull'utilizzo di Ethereum. +lang: it +--- + +# Guide su Ethereum + +Vuoi iniziare il tuo viaggio in Ethereum? Ethereum non è una società con un'assistenza vincolata dagli script, ma queste guide pratiche ti aiuteranno a capire come iniziare. + +## Primi passi + +1. [Come "creare" un conto di Ethereum](/guides/how-to-create-an-ethereum-account/) - Chiunque può creare gratuitamente un portafoglio. Questa guida ti mostrerà come iniziare. + +2. [Come utilizzare un portafoglio](/guides/how-to-use-a-wallet/) - Un'introduzione alle funzionalità di base di qualsiasi portafoglio e come utilizzarle. + +## Fondamenti di sicurezza + +1. [Come revocare l'accesso del contratto intelligente ai tuoi fondi di criptovalute](/guides/how-to-revoke-token-access/) - Se improvvisamente vedi una transazione nel tuo portafoglio che non hai avviato, questa guida ti insegnerà come impedire che si verifichi nuovamente. + +## Uso di Ethereum + +1. [Come collegare i token al livello 2](/guides/how-to-use-a-bridge/) - Le transazioni di Ethereum sono troppo costose? Considera di spostare le soluzioni di ridimensionamento di Ethereum, dette Livelli 2. + +2. [Come scambiare i token](/guides/how-to-swap-tokens/) - Desideri scambiare i tuoi token per uno differente? Questa semplice guida ti mostrerà come farlo. + +## Abilità di pensiero decentralizzato + +Una volta ottenuto un portafoglio e utilizzate alcune delle sue funzionalità, puoi comprendere di più su Ethereum chiedendo, "_perché_ è importante?" Cosa rende prezioso il denaro se nessuno lo controlla? Cos'è la fiducia? Contribuisce alla libertà? Quali tipi di nuove strutture organizzative e di governance sono consentiti da Ethereum? Queste domande, e altre, sono approfondite liberamente in community come [Kernel](https://www.kernel.community/). diff --git a/src/content/translations/it/nft/index.md b/src/content/translations/it/nft/index.md index bb4d03ea0bb..9a267db83f7 100644 --- a/src/content/translations/it/nft/index.md +++ b/src/content/translations/it/nft/index.md @@ -7,79 +7,79 @@ emoji: ":frame_with_picture:" sidebarDepth: 3 image: ../../../../assets/infrastructure_transparent.png alt: Un logo Eth visualizzato tramite ologramma. -summaryPoint1: Un modo per rappresentare qualsiasi cosa unica come un asset basato su Ethereum. -summaryPoint2: Gli NFT stanno dando più potere che mai ai creatori di contenuti. -summaryPoint3: Basato sui contratti intelligenti sulla blockchain di Ethereum. +summaryPoint1: Un modo pe rappresentare qualsiasi cosa sia univoca, come una risorsa basata su Ethereum. +summaryPoint2: I NFT stanno dando ai creatori di contenuti più potere che mai. +summaryPoint3: Basati sui contratti intelligenti, sulla blockchain di Ethereum. --- -I NFT stanno avendo un successo travolgente nel mondo dell'arte digitale e degli oggetti da collezione. La vita di moltissimi artisti digitali sta cambiando grazie alle enormi vendite ad un nuovo pubblico di cripto-utenti. Anche diverse celebrità si stanno interessando al fenomeno, individuando nuove opportunità per agganciare i fan. Ma l'arte digitale è solo un modo per utilizzare i NFT. In realtà possono essere utilizzati per rappresentare la proprietà di qualsiasi bene unico, come un atto connesso a un oggetto nel mondo digitale o fisico. +I NFT, al momento, stanno prendendo d'assalto il mondo dell'arte e delle collezioni digitali. La vita di moltissimi artisti digitali sta cambiando, grazie alle enormi vendite a un nuovo cripto-pubblico. Anche svariate celebrità si stanno interessando al fenomeno, individuando nuove opportunità per connettersi con i fan. Ma l'arte digitale è soltanto uno dei modi per utilizzare i NFT. In realtà, sono utilizzabili per rappresentare la proprietà di qualsiasi risorsa univoca, come un atto per un oggetto, nel mondo digitale o fisico. -Se Andy Warhol fosse nato alla fine degli anni '90, probabilmente avrebbe coniato la sua Campbell's Soup come NFT. Prima o poi Nike inizi a vendere una serie di Jordan su Ethereum. E magari un giorno sarà possibile dimostrare il possesso della propria auto con un NFT. +Se Andy Warhol fosse nato alla fine degli anni 90, avrebbe probabilmente coniato le sue Campbell's Soup Cans, come NFT. È soltanto questione di tempo, prima che la Nike inizi a vendere una serie di Jordan su Ethereum. E, magari, un giorno sarà possibile dimostrare il possesso della propria auto con un NFT. ## Cos'è un NFT? {#what-are-nfts} -I NFT sono token che possiamo utilizzare per rappresentare la proprietà di oggetti unici. Ci consentono di tokenizzare cose come l'arte, gli oggetti da collezione e persino gli immobili. La proprietà di una risorsa è protetta dalla blockchain di Ethereum: nessuno può modificare il registro di proprietà o copiare/incollare un nuovo NFT in esistenza. +I NFT sono token utilizzabili per rappresentare la proprietà di oggetti univoci. Ci consentono di tokenizzare cose come l'arte, gli oggetti da collezione e persino gli immobili. La proprietà di una risorsa è protetta dalla blockchain di Ethereum: nessuno può modificare il registro di proprietà o copiare e incollare un nuovo NFT in esistenza. -NFT sta per Non-Fungible-Token (token non fungibile). Non fungibile è un termine economico che potremmo usare per descrivere cose come i mobili, un file musicale o un computer. Queste cose non sono intercambiabili per altri oggetti perché hanno proprietà uniche. +NFT sta per Non-Fungible Token, ossia Token Non Fungibile. Non fungibile è un termine economico utilizzabile per descrivere cose come mobilia, un file musicale, o il proprio computer. Queste cose non sono intercambiabili per altri articoli, perché hanno proprietà univoche. -Gli oggetti fungibili, invece, possono essere scambiati in quanto sono definiti dal loro valore piuttosto che dalle loro proprietà uniche. Per esempio, ETH o dollari sono fungibili perché 1 ETH / $1 USD è scambiabile con un altro ETH / $1 USD. +Gli oggetti fungibili, d'altra parte, sono scambiabili perché sono definiti dal proprio valore, piuttosto che dalle proprie proprietà univoche. Ad esempio, gli ETH o i dollari sono fungibili, perché 1 ETH o $1 USD, sono scambiabili per un altro 1 ETH o $1 USD. -## L'internet degli asset {#internet-of-assets} +## L'Internet delle risorse {#internet-of-assets} -Gli NFT ed Ethereum risolvono alcuni dei problemi che esistono oggi in Internet. Man mano che tutto diventa più digitale, aumenta l'esigenza di replicare le proprietà degli oggetti fisici, come la scarsità, l'unicità e la prova di proprietà. Per non parlare del fatto che spesso gli oggetti digitali funzionano solo nel contesto del loro prodotto. Ad esempio non è possibile rivendere un mp3 di iTunes dopo averlo acquistato e non è possibile scambiare punti fedeltà di una società con crediti di un'altra piattaforma, anche se ci fosse un mercato su cui farlo. +I NFT ed Ethereum risolvono alcuni dei problemi esistenti oggi su Internet. Man mano che tutto diventa più digitale, è necessario replicare le proprietà degli oggetti fisici, quali scarsità, unicità e prova di proprietà. Per non menzionare il fatto che gli oggetti digitali, spesso, funzionano soltanto nel contesto del proprio prodotto. Ad esempio, non puoi rivendere un mp3 acquistato di iTunes, né puoi scambiare i punti fedeltà di un'azienda per crediti di un'altra piattaforma, anche se esistesse un mercato per farlo. -Ecco come appare un Internet di NFT rispetto all'Internet che la maggior parte di noi usa oggi... +Questo è l'aspetto di un Internet di NFT, rispetto all'Internet utilizzato ad oggi da molti di noi... ### Un confronto {#nft-comparison} -| Internet di NFT | L'internet oggi | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| I NFT sono digitalmente unici, non esistono due NFT uguali. | Una copia di un file, come un .mp3 o .jpg, è uguale all'originale. | -| Ogni NFT deve avere un proprietario e questa è un'informazione di pubblico dominio, facilmente verificabile da chiunque. | I registri di proprietà degli oggetti digitali sono archiviati su server controllati da istituzioni - devi fidarti della loro parola. | -| I NFT sono compatibili con qualsiasi cosa costruita usando Ethereum. Un biglietto NFT per un evento può essere scambiato su qualunque mercato Ethereum contro un NFT completamente diverso. Potresti scambiare un'opera d'arte per un biglietto! | Le aziende con oggetti digitali devono costruire un'infrastruttura propria. Ad esempio, un'app che emette biglietti digitali per eventi dovrebbe costruire un'apposita piattaforma per lo scambio dei biglietti. | -| I creatori di contenuti possono vendere il loro lavoro ovunque e possono accedere ad un mercato globale. | I creatori si affidano all'infrastruttura e alla distribuzione delle piattaforme che utilizzano. Queste ultime sono spesso soggette a condizioni d'uso e a restrizioni geografiche. | -| I creatori possono conservare i diritti di proprietà sul proprio lavoro e rivendicare direttamente i diritti di rivendita. | Le piattaforme, come i servizi di streaming musicale, mantengono la maggior parte dei profitti derivanti dalle vendite. | -| Gli oggetti possono essere utilizzati in modi sorprendenti. Ad esempio, è possibile utilizzare un'opera d'arte digitale come garanzia per un prestito decentralizzato. | | +| Un Internet di NFT | L'internet di oggi | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| I NFT sono digitalmente univoci, non esistono due NFT uguali. | Una copia di un file, come un .mp3 o un .jpg, è uguale all'originale. | +| Ogni NFT deve avere un proprietario; tale informazione è di dominio pubblico ed è facilmente verificabile da chiunque. | I registri di proprietà degli articoli digitali sono memorizzati su server controllati dalle istituzioni; devi fidarti della loro parola. | +| I NFT sono compatibili con qualsiasi cosa si basi su Ethereum. Un biglietto NFT per un evento è scambiabile su qualsiasi mercato di Ethereum, per un NFT interamente differente. Potresti scambiare un'opera d'arte per un biglietto! | Le aziende con articoli digitali devono creare la propria infrastruttura. Ad esempio, un'app che emette biglietti digitali per degli eventi, dovrebbe creare la propria piattaforma di scambio di biglietti. | +| I creatori di contenuti possono vendere il proprio lavoro ovunque, e possono accedere a un mercato globale. | I creatori si affidano all'infrastruttura e la distribuzione delle piattaforme che utilizzano. Queste, sono spesso soggette a termini d'utilizzo e limitazioni geografiche. | +| I creatori possono conservare i diritti di proprietà sul proprio lavoro, rivendicando direttamente i diritti d'autore sulla rivendita. | Le piattaforme, come i servizi di streaming musicale, trattengono gran parte dei profitti dalle vendite. | +| Gli oggetti sono utilizzabili in modi sorprendenti. Ad esempio, è possibile utilizzare un'opera d'arte digitale come garanzia, per un prestito decentralizzato. | | ### Esempi di NFT {#nft-examples} -Il mondo degli NFT è relativamente nuovo. In teoria, rientra in questo mondo tutto ciò che è unico e che richiede una proprietà dimostrabile. Ecco alcuni esempi di NFT esistenti oggi, per farti un'idea: +Il mondo dei NFT è relativamente nuovo. In teoria, l'ambito peer i NFT è qualsiasi cosa sia univoca, che necessiti di proprietà dimostrabile. Ecco alcuni esempi di NFT esistenti oggi, per farti un'idea: -- [Un'opera d'arte digitale unica](https://foundation.app/artworks) -- [Una sneaker unica in una linea di moda limitata](https://www.metagrail.co/auctions/91cf83fb-3477-4155-aae8-6dcb9b853397) +- [Un'opera d'arte digitale univoca](https://foundation.app/artworks) +- [Una scarpa univoca, in una serie di moda limitata](https://www.metagrail.co/auctions/91cf83fb-3477-4155-aae8-6dcb9b853397) - [Un oggetto di gioco](https://market.decentraland.org/) - [Un saggio](https://zora.co/0x517bab7661C315C63C6465EEd1b4248e6f7FE183/145) -- [Un pezzo da collezione digitale](https://www.larvalabs.com/cryptopunks/details/1) +- [Un oggetto da collezione digitale](https://www.larvalabs.com/cryptopunks/details/1) - [Un nome di dominio](https://app.ens.domains/name/ethereum.eth) - [Un biglietto che ti dà accesso a un evento o un coupon](https://www.yellowheart.io/) -- [Acquista beni del mondo reale](https://www.tangible.store/) +- [Beni del mondo reale](https://www.tangible.store/) - [Immobili frazionalizzati](https://realt.co/) - [Certificati di laurea](https://www.degreecert.com/) -- [Royalty musicali tramite NFT](https://opulous.org/) -- [Move 2 earn](https://yeticoineth.com/about.html) -- [Identità digitale](https://photochromic.io/) +- [Diritti d'autore musicali, tramite NFT](https://opulous.org/) +- ["Move 2 earn"](https://yeticoineth.com/about.html) +- [Identità Digitale](https://photochromic.io/) ### Esempi di ethereum.org {#ethereum-org-examples} -Utilizziamo gli NFT per dare un riconoscimento ai nostri collaboratori e abbiamo anche un nostro nome di dominio NFT. +Utilizziamo i NFT per dare un riconoscimento ai nostri collaboratori, e abbiamo persino un nostro nome di dominio NFT. -#### POAP (Proof of attendance protocol) {#poaps} +#### POAP (Protocollo di prova di partecipazione) {#poaps} -Se contribuisci a ethereum.org, puoi rivendicare un NFT POAP. Si tratta di oggetti da collezione che dimostrano che hai partecipato ad un evento. In occasione di alcuni incontri nel mondo delle criptovalute sono stati usati i POAP come biglietto per i loro eventi. [Ulteriori informazioni sul contributo](/contributing/#poap). +Se contribuisci a ethereum.org, puoi rivendicare un NFT POAP. Si tratta di oggetti da collezione che provano la tua partecipazione a un evento. Alcuni incontri sulle criptovalute hanno utilizzato i POAP come una forma di biglietto a tali eventi. [Di più su come contribuire](/contributing/#poap). -![ethereum.org POAP](../../../../assets/use-cases/poap.png) +![POAP di ethereum.org](../../../../assets/use-cases/poap.png) #### ethereum.eth {#ethereum-dot-eth} -Questo sito web ha un nome di dominio alternativo alimentato da NFT, **ethereum.eth**. Il nostro indirizzo `.org` è gestito centralmente da un fornitore di sistema di nomi di dominio (DNS), mentre ethereum`.eth` è registrato su Ethereum tramite l'Ethereum Name Service (ENS). Ed è posseduto e gestito da noi. [Consulta il nostro record ENS](https://app.ens.domains/name/ethereum.eth) +Questo sito web ha un nome di dominio alternativo alimentato da NFT, **ethereum.eth**. Il nostro indirizzo `.org` è gestito centralmente da un fornitore di sistema di nomi di dominio (DNS), mentre ethereum`.eth` è registrato su Ethereum tramite il Servizio del Nome di Ethereum (ENS). Ed è posseduto e gestito da noi. [Consulta il nostro registro ENS](https://app.ens.domains/name/ethereum.eth) -[Maggiori informazioni sull'ENS](https://app.ens.domains) +[Di più sull'ENS](https://app.ens.domains) ## Come funzionano i NFT? {#how-nfts-work} -Gli NFT sono diversi dai token ERC-20, come DAI o LINK, in quanto ogni singolo token è completamente unico e non divisibile. Gli NFT danno la possibilità di assegnare o rivendicare la proprietà di qualsiasi dato unico digitale, monitorabile utilizzando la blockchain di Ethereum come un registro pubblico. Un NFT è coniato da oggetti digitali come una rappresentazione di attivi digitali o non digitali. Ad esempio, un NFT potrebbe rappresentare: +I NFT sono diversi dai token ERC-20, quali DAI o LINK, poiché ogni singolo token è completamente unico e non divisibile. I NFT permettono di assegnare o rivendicare la proprietà di qualsiasi dato digitale univoco, tracciabile utilizzando la blockchain di Ethereum come un registro pubblico. Un NFT è coniato dagli oggetti digitali come una rappresentazione di risorse digitali o non digitali. Ad esempio, un NFT potrebbe rappresentare: - Arte digitale: - GIF @@ -87,269 +87,270 @@ Gli NFT sono diversi dai token ERC-20, come DAI o LINK, in quanto ogni singolo t - Musica - Video - Oggetti reali: - - Atti di possesso di una macchina + - Atti di possesso di un'auto - Biglietti per un evento del mondo reale - Fatture tokenizzate - Documenti legali - Firme - Molte altre opzioni con cui dare libero sfogo alla creatività! -La proprietà dei NFT è gestita tramite l'ID e i metadati univoci che nessun altro token può replicare. I NFT sono coniati tramite i contratti intelligenti, che assegnano la proprietà e gestiscono la trasferibilità dei NFT. Quando qualcuno crea o conia un NFT, esegue il codice memorizzato nei contratti intelligenti conformi a diversi standard, come l'[ERC-721](/developers/docs/standards/tokens/erc-721/). Queste informazioni sono aggiunte alla blockchain dov'è gestito il NFT. Il processo di conio, da un livello elevato, include i seguenti passaggi: +La proprietà dei NFT è gestita tramite l'ID univoco e i metadati, non replicabili da alcun altro token. I NFT sono coniati tramite i contratti intelligenti, che assegnano la proprietà e gestiscono la trasferibilità dei NFT. Quando qualcuno crea o conia un NFT, esegue del codice memorizzato nei contratti intelligenti e conforme a svariati standard, come l'[ERC-721](/developers/docs/standards/tokens/erc-721/). Queste informazioni sono aggiunte alla blockchain, dove i NFT sono gestiti. Il processo di conio, in linea generale, include i seguenti passaggi: - Creazione di un nuovo blocco - Convalida delle informazioni - Registrazione delle informazioni nella blockchain -Gli NFT hanno alcune proprietà speciali: +I NFT hanno delle proprietà speciali: -- Ogni token coniato ha un identificativo unico, che è direttamente collegato a un indirizzo Ethereum. -- Non sono direttamente intercambiabili con altri token 1:1. Ad esempio, 1 ETH è esattamente uguale a un altro ETH. Non è invece così per i NFT. -- Ogni token ha un proprietario e l'informazione è facilmente verificabile. -- Sono disponibili su Ethereum e possono essere acquistati e venduti su qualsiasi mercato NFT basato su Ethereum. +- Ogni token coniato ha un identificativo univoco, collegato direttamente a un indirizzo di Ethereum. +- Non sono direttamente intercambiabili con altri token, in un rapporto 1 a 1. Ad esempio, 1 ETH è esattamente uguale a un altro ETH. Questo non è il caso con i NFT. +- Ogni token ha un proprietario e, tale informazione, è facilmente verificabile. +- Risiedono su Ethereum e sono acquistabili e vendibili su qualsiasi mercato di NFT basato su Ethereum. In altre parole, se _possiedi_ un NFT: - Puoi facilmente dimostrare di possederlo. - - Dimostrare che possiedi un NFT è molto simile a provare di possedere ETH nel tuo conto. - - Ad esempio, se acquisti un NFT la proprietà del token univoco viene trasferita al tuo portafoglio tramite il tuo indirizzo pubblico. + - Dimostrare che possiedi un NFT è molto simile a dimostrare di possedere ETH nel tuo conto. + - Ad esempio, se acquisti un NFT, e la proprietà del token univoco è trasferita al tuo portafoglio tramite il tuo indirizzo pubblico. - Il token dimostra che la tua copia del file digitale è l'originale. - La tua chiave privata è la prova che dimostra la proprietà dell'originale. - - La chiave pubblica del creatore di contenuti funge da certificato di autenticità per quel particolare artefatto digitale. - - La chiave pubblica del creatore è essenzialmente una parte permanente della storia del token. Essa può dimostrare che il token che hai in mano è stato creato da un particolare individuo, contribuendo così al suo valore di mercato (contro la contraffazione). - - Un altro modo per dimostrare il possesso dell'NFT consiste nel firmare i messaggi per provare il possesso della chiave privata dietro l'indirizzo. - - Come accennato in precedenza, la tua chiave privata è la prova di proprietà dell'originale. Questo ci dice che le chiavi private dietro quell'indirizzo controllano l'NFT. - - Un messaggio firmato può essere utilizzato come prova del possesso delle chiavi private senza rivelarle a nessuno, dimostrando così al contempo il possesso dell'NFT! + - La chiave pubblica del creatore del contenuto serve da certificato dell'autenticità per quell'artefatto digitale in particolare. + - La chiave pubblica del creatore è essenzialmente una parte permanente della storia del token. Può dimostrare che il token che possiedi è stato creato da un particolare individuo, contribuendo al suo valore di mercato (rispetto a un falso). + - Un altro modo di pensare alla dimostrazione del possesso del NFT, è firmare i messaggi per dimostrare di possedere la chiave privata dietro all'indirizzo. + - Come accennato in precedenza, la tua chiave privata è la prova di proprietà dell'originale. Questo ci dice che le chiavi private dietro quell'indirizzo controllano il NFT. + - Un messaggio firmato è utilizzabile come prova del possesso delle tue chiavi private, senza rivelarle a nessuno e, dunque, dimostrando anche di possedere il NFT! - Nessuno può manipolarlo in alcun modo. -- Puoi venderlo e in alcuni casi questo farà guadagnare al creatore originale le royalty di rivendita. -- Oppure, puoi tenerlo per sempre e dormire sonni tranquilli sapendo che il tuo asset è protetto dal tuo portafoglio su Ethereum. +- Puoi venderlo e in alcuni casi questo farà guadagnare al creatore originale i diritti d'autore sulla rivendita. +- Oppure, puoi conservarlo per sempre, dormendo sonni tranquilli, consapevole del fatto che la tua risorsa è protetta dal tuo portafoglio, su Ethereum. Se invece _crei_ un NFT: - Puoi facilmente dimostrare di essere il creatore. - Ne determini la scarsità. -- Puoi guadagnare royalties ogni volta che viene venduto. -- Puoi venderlo su qualsiasi mercato di NFT o peer-to-peer. Non sei vincolato a una piattaforma specifica e non hai bisogno di intermediari. +- Puoi guadagnare royalty ogni volta che viene venduto. +- Puoi venderlo su qualsiasi mercato di NFT o tra pari. Non sei vincolato ad alcuna piattaforma e non necessiti di intermediari. ### Scarsità {#scarcity} -Il creatore di un NFT decide la scarsità del proprio attivo. +Il creatore di un NFT decide la scarsità della propria risorsa. -Prendiamo ad esempio un biglietto per un evento sportivo. Proprio come l'organizzatore di un evento può scegliere quanti biglietti vendere, il creatore di un NFT può decidere quante repliche esistono. A volte queste sono repliche esatte, come 5000 biglietti di ingresso generici. A volte ne vengono coniati diversi molto simili, ma ognuno leggermente diverso, come nel caso dei biglietti con i posti assegnati. Oppure, può capitare che il creatore voglia creare un NFT in cui viene coniata una sola unità come oggetto da collezione raro e speciale. +Ad esempio, consideriamo un biglietto per un evento sportivo. Proprio come soltanto l'organizzatore di un evento può scegliere quanti biglietti vendere, il creatore di un NFT può decidere quante repliche ne esisteranno. Talvolta queste sono repliche esatte, come 5000 biglietti generici di ingresso. Altre volte, ne sono coniati svariati di molto simili, ma ognuno lievemente differente, come un biglietto con un posto assegnato. In un altro caso, il creatore potrebbe voler coniare un singolo NFT, come un oggetto da collezione raro e speciale. -In questi casi, ogni NFT ha comunque un identificativo univoco (come un codice a barre su un biglietto tradizionale), con un solo proprietario. La scarsità prevista dell'NFT è importante e dipende dal creatore. Un creatore potrebbe voler rendere ogni NFT completamente unico per creare scarsità o avere motivi validi per produrre diverse migliaia di repliche. Ricorda: queste informazioni sono tutte pubbliche. +In questi casi, ogni NFT avrebbe comunque un identificativo univoco (come un codice a barre su un "biglietto" tradizionale), con soltanto un proprietario. La scarsità prevista del NFT conta, e dipende dal creatore. Un creatore potrebbe prevedere di rendere ogni NFT completamente univoco, per generare scarsità, o avere motivazioni per produrne svariate migliaia di repliche. Ricorda: tutte queste informazioni sono pubbliche. -### Royalties {#royalties} +### Royalty {#royalties} -Alcuni NFT pagano automaticamente i diritti d'autore ai loro creatori quando vengono venduti. Si tratta di un concetto ancora in evoluzione, ma è uno dei più potenti. I proprietari originali di [EulerBeats Originals](https://eulerbeats.com/) guadagnano un 8% di diritti d'autore ogni volta che l'NFT viene rivenduto. Alcune piattaforme, come [Foundation](https://foundation.app) e [Zora](https://zora.co/), supportano i diritti d'autore per i loro artisti. +Alcuni NFT pagheranno automaticamente le royalty ai propri creatori, alla vendita. Questo è un concetto ancora in evoluzione, ma è uno dei più potenti. I proprietari originali di [EulerBeats Originals](https://eulerbeats.com/) guadagnano un 8% di diritti d'autore ogni volta che l'NFT viene rivenduto. Alcune piattaforme, come [Foundation](https://foundation.app) e [Zora](https://zora.co/), supportano i diritti d'autore per i propri artisti. -Il sistema è completamente automatico, quindi i creatori possono mettersi comodi e guadagnare sui diritti d'autore mentre il loro lavoro viene venduto da persona a persona. Al momento, i processi connessi ai diritti d'autore sono estremamente manuali e poco precisi, infatti molti creatori non ricevono quello che meritano. Se il tuo NFT è stato programmato con un diritto d'autore, non perderai mai. +Ciò è completamente automatico, così che i creatori possano mettersi comodi e guadagnare le royalty, mentre il loro lavoro viene venduto, da persona a persona. Al momento, comprendere le royalty è un procedimento manuale e privo di precisione; molti creatori non ricevono quanto meritano. Se il tuo NFT è stato programmato con un diritto d'autore, non andrai mai in perdita. -## Per cosa vengono utilizzati i NFT? {#nft-use-cases} +## Per cosa sono utilizzati i NFT? {#nft-use-cases} -Ecco maggiori informazioni su alcuni dei casi d'uso e delle visioni più sviluppate per gli NFT su Ethereum. +Ecco ulteriori informazioni su alcuni dei casi d'uso e visioni più sviluppati per i NFT, su Ethereum. - [Contenuti digitali](#nfts-for-creators) - [Oggetti di gioco](#nft-gaming) - [Nomi di dominio](#nft-domains) - [Oggetti fisici](#nft-physical-items) -- [Investimenti e garanzie reali](#nfts-and-defi) -- [Ticket di accesso](#tokengating) +- [Investimenti e garanzie](#nfts-and-defi) +- [Tokengating](#tokengating) ### Massimizzare i guadagni per i creatori {#nfts-for-creators} -Il più ampio utilizzo degli NFT oggi è nel campo dei contenuti digitali. Questo perché oggi come oggi si tratta di un settore problematico. I creatori di contenuti vedono i loro profitti e i potenziali guadagni inghiottiti dalle piattaforme. +Oggi, l'utilizzo maggiore dei NFT, è nel campo dei contenuti digitali. Questo perché, oggi, l'industria è problematica. I creatori di contenuti vedono i propri profitti e potenziali guadagni, venir inghiottiti dalle piattaforme. -Un artista che pubblica un'opera su un social network genera denaro per la piattaforma che vende annunci ai follower degli artisti. In cambio ottiene l'esposizione, ma l'esposizione non paga le bollette. +Un artista che pubblica un'opera su un social, genera denaro per la piattaforma, che vende annunci ai seguaci degli artisti. In cambio, ottengono visibilità ma, questa, non paga le bollette. -Gli NFT alimentano una nuova economia creativa in cui i creatori non consegnano la proprietà dei loro contenuti alle piattaforme che utilizzano per pubblicizzarli. La proprietà è incorporata nel contenuto stesso. +I NFT alimentano una nuova economia creativa, dove i creatori non consegnano la proprietà dei propri contenuti alle piattaforme che utilizzano per pubblicizzarli. La proprietà è incorporata nel contenuto stesso. -Quando vendono i loro contenuti, i fondi vanno direttamente a loro. Se il nuovo proprietario poi vende gli NFT, il creatore originale può addirittura ricevere i diritti d'autore automaticamente. Ciò è garantito ogni volta che viene venduto perché l'indirizzo del creatore fa parte dei metadati del token, che non possono essere modificati. +Quando vendono i propri contenuti, i fondi vanno direttamente a loro. Poi, se il nuovo proprietario vende il NFT, il creatore originale può persino ricevere automaticamente le royalty. Ciò è garantito ogni volta che viene venduto, perché l'indirizzo del creatore fa parte dei metadati del token; metadati che non possono essere modificati. -
Esplora, acquista o crea il tuo NFT collegato a opere d'arte/oggetti da collezione...
+
Esplora, acquista o crea opere d'arte/oggetti da collezione NFT...
- Esplora i NFT connessi a opere d'arte + Esplora l'arte NFT
#### Il problema del copia/incolla {#nfts-copy-paste} -Gli oppositori spesso tirano in ballo il fatto che gli NFT "sono stupidi", di solito aggiungendo un'immagine di sé mentre eseguono lo screenshot di un'opera d'arte NFT. "Guarda, ora ho quell'immagine gratis!", dicono compiaciuti. +Gli scettici, spesso, tirano in ballo il fatto che i NFT "siano stupidi", solitamente aggiungendo un'immagine di sé, mentre eseguono lo screenshot di un'opera d'arte NFT. "Guardate, ora ho quell'immagine gratis!", dicono compiaciuti. -Beh, sì. Ma cercare su Google un'immagine della Guernica di Picasso ti rende forse il nuovo orgoglioso proprietario di un pezzo di storia dell'arte del valore di diversi milioni di dollari? +Beh, sì. Ma cercare su Google un'immagine della Guernica di Picasso, vi rende gli orgogliosi proprietari di un'opera di storia dell'arte del valore di diversi milioni di euro? -In definitiva, possedere l'oggetto reale ha tanto valore quanto gliene viene attribuito dal mercato. Più un contenuto viene acquisito mediante screenshot, condiviso e generalmente utilizzato, più valore acquisisce. +In definitiva, possedere l'oggetto reale ha tanto valore quanto gliene è attribuito dal mercato. Più un contenuto è acquisito mediante screenshot, condiviso e, in generale, utilizzato, più valore acquisisce. -Possedere l'oggetto reale verificabile avrà sempre più valore che non possederlo. +Possedere l'oggetto verificabilmente reale, avrà sempre molto più valore che non possederlo. -### Aumentare il potenziale di gioco {#nft-gaming} +### Incrementare il potenziale dei videogiochi {#nft-gaming} -Gli NFT hanno destato un notevole interesse tra gli sviluppatori di giochi. Gli NFT possono fornire record di proprietà per gli oggetti di gioco, alimentare le economie dei videogiochi e portare una serie di vantaggi ai giocatori. +I NFT hanno sviluppato notevole interesse da parte degli sviluppatori di videogiochi. I NFT possono fornire registri di proprietà per oggetti di gioco, alimentare le economie di gioco e comportare una serie di benefici per i giocatori. -In molti videogiochi normali è possibile acquistare oggetti da utilizzare nel gioco stesso. Ma se quell'oggetto fosse un NFT, potresti recuperare i tuoi soldi vendendolo quando hai finito di giocare. Potresti persino realizzare un profitto se quell'oggetto diventa più desiderabile. +In molti videogiochi regolari, puoi acquistare oggetti da utilizzare nel gioco stesso. Ma se quell'oggetto fosse stato un NFT, avresti potuto recuperare il tuo denaro, rivendendolo una volta finito di giocare. Potresti persino realizzare un profitto, se quell'oggetto diventa più desiderabile. -Gli sviluppatori di giochi (in veste di emittenti di NFT) potrebbero guadagnare sui diritti d'autore ogni volta che un oggetto viene rivenduto sul mercato aperto. Ciò crea un modello aziendale più vantaggioso per entrambe le parti, in cui sia i giocatori che gli sviluppatori guadagnano dal mercato secondario degli NFT. +Per gli sviluppatori di gioco, in veste di emittenti di NFT, potrebbero guadagnare una royalty a ogni rivendita di un oggetto, sul mercato aperto. Ciò crea un modello aziendale più vantaggioso per ambe le parti, dove sia i giocatori che gli sviluppatori guadagnano dal mercato secondario dei NFT. -Questo significa anche che se un gioco non è più mantenuto dagli sviluppatori, gli oggetti che hai raccolto rimangono tuoi. +Inoltre, ciò significa che se un gioco non è più mantenuto dagli sviluppatori, gli oggetti collezionati, rimangono tuoi. -Alla fine, gli oggetti che sfrutti per il gioco possono sopravvivere al gioco stesso. Anche se un gioco non viene più mantenuto, i tuoi oggetti saranno sempre sotto il tuo controllo. Ciò significa che gli oggetti di gioco diventano cimeli digitali e hanno un valore al di fuori del gioco. +Infine, gli oggetti che sfrutti nel gioco, possono vivere più dei giochi stessi. Anche se un gioco non è più mantenuto, i tuoi oggetti resteranno sempre sotto il tuo controllo. Ciò significa che, questi, diventano cimeli digitali e hanno un valore esterno al gioco. -Decentraland, un gioco di realtà virtuale, consente persino di acquistare NFT che rappresentano appezzamenti di terreno virtuali, che puoi utilizzare come meglio credi. +Decentraland, un gioco in realtà virtuale, ti consente persino di acquistare NFT rappresentanti appezzamenti di terreno virtuali, utilizzabili come meglio credi. -
Scopri i giochi Ethereum, alimentati da NFT...
+
Scopri i giochi di Ethereum, alimentati dai NFT...
- Esplora i giochi basati su NFT + Esplora i giochi NFT
-### Rendere gli indirizzi di Ethereum più facili da ricordare {#nft-domains} +### Rendere gli indirizzi di Ethereum più memorizzabili {#nft-domains} -L'Ethereum Name Service utilizza gli NFT per associare il tuo indirizzo Ethereum a un nome più facile da ricordare, come `mywallet.eth`. Ciò significa che potresti chiedere a qualcuno di inviarti ETH tramite `mywallet.eth` anziché `0x123456789.....`. +Il Servizio del Nome di Ethereum utilizza i NFT per fornire il tuo indirizzo di Ethereum, con un nome più facile da ricordare, come `mywallet.eth`. Ciò significa che potresti chiedere a qualcuno di inviarti degli ETH tramite `mywallet.eth`, piuttosto che tramite `0x123456789.....`. -Il principio è simile a quello di un nome di dominio di un sito web, che rende un indirizzo IP più facile da ricordare. Proprio come i domini, i nomi ENS hanno un valore, di solito in base alla lunghezza e alla pertinenza. Con ENS non è necessario un registro di dominio per facilitare il trasferimento della proprietà. Invece, è possibile scambiare i nomi ENS su un mercato NFT. +Ciò funziona similmente al nome di dominio di un sito web, che rende un indirizzo IP più memorizzabile. E come per i domini, i nomi dell'ENS hanno un valore, solitamente basato sulla lunghezza e la rilevanza. Con l'ENS, non è necessario un registro del dominio per facilitare il trasferimento della proprietà. Invece, puoi scambiare i tuoi nomi ENS su un mercato di NFT. Il tuo nome ENS può: - Ricevere criptovalute e altri NFT. -- Puntare su un sito web decentralizzato, come [ethereum.eth](https://ethereum.eth.link). [Ulteriori informazioni sulla decentralizzazione del tuo sito web](https://docs.ipfs.io/how-to/websites-on-ipfs/link-a-domain/#domain-name-service-dns) -- Memorizzare qualsiasi informazione arbitraria, comprese le informazioni sul profilo come indirizzi e-mail e handle di Twitter. +- Puntare a un sito web decentralizzato, come [ethereum.eth](https://ethereum.eth.link). [Di più sulla decentralizzazione del tuo sito web](https://docs.ipfs.io/how-to/websites-on-ipfs/link-a-domain/#domain-name-service-dns) +- Memorizzare qualsiasi informazione arbitraria, incluse informazioni del profilo, quali indirizzi email e pseudonimi di Twitter. ### Oggetti fisici {#nft-physical-items} -La tokenizzazione degli oggetti fisici non è ancora così sviluppata come le loro controparti digitali. Ci sono però molti progetti che esplorano la tokenizzazione di beni immobili, oggetti di moda unici e altro ancora. +La tokenizzazione degli oggetti fisici non è ancora tanto sviluppata quanto le controparti digitali. Esistono però numerosi progetti che esplorano la tokenizzazione degli immobili, degli articoli di moda unici e altro ancora. -Poiché gli NFT sono essenzialmente atti, un giorno potresti acquistare un'automobile o una casa usando ETH e ricevere in cambio l'atto sotto forma di NFT (nella stessa transazione). Man mano che il mondo diventa sempre più high-tech, non è difficile immaginare una situazione in cui il tuo portafoglio Ethereum diventa la chiave per aprire la tua automobile o la tua casa, ad esempio sbloccando la porta con la prova crittografica della proprietà. +Poiché i NFT sono essenzialmente atti, un giorno potresti acquistare un'auto o una casa utilizzando gli ETH, e ricevere l'atto come un NFT in cambio (nella stessa transazione). All'incrementare dell'alta tecnologia, non è difficile immaginare un mondo in cui il tuo portafoglio di Ethereum diventa la chiave per aprire la tua auto o la tua casa; ad esempio, sbloccando la tua serratura tramite una prova crittografica di proprietà. -Con beni preziosi come automobili e proprietà rappresentabili su Ethereum, è possibile utilizzare gli NFT come garanzia reale nei prestiti decentralizzati. Ciò è particolarmente utile se non sei ricco in termini di denaro o criptovalute ma possiedi oggetti di valore fisici. [Maggiori informazioni sulla DeFi](/defi/) +Con beni preziosi, quali auto e proprietà, rappresentabili su Ethereum, puoi utilizzare i NFT come garanzia nei prestiti decentralizzati. Ciò è particolarmente utile se non sei ricco in termini di contanti o criptovalute, ma possiedi oggetti fisici di valore. [Di più sulla DeFi](/defi/) ### I NFT e la DeFi {#nfts-and-defi} -Il mondo degli NFT e la [finanza decentralizzata (DeFi)](/defi/) stanno iniziando a interagire in diversi modi interessanti. +Il mondo dei NFT e della [finanza decentralizzata (DeFi)](/defi/), stanno iniziando a interagire in svariati, interessanti modi. #### Prestiti garantiti dai NFT {#nft-backed-loans} -Ci sono applicazioni DeFi che consentono di prendere in prestito denaro utilizzando garanzie reali. Ad esempio, dai in garanzia 10 ETH in modo da poter prendere in prestito 5.000 DAI ([una stablecoin](/stablecoins/)). In questo modo si assicura che il mutuante venga rimborsato: se il mutuatario non rimborsa i DAI, la garanzia reale viene inviata al mutuante. Tuttavia, non tutti hanno abbastanza criptoattivi da usare come garanzia. +Esistono delle applicazioni della DeFi che ti consentono di prendere in prestito del denaro, utilizzando delle garanzie. Ad esempio, dai 10 ETH in garanzia, così da poter prendere in prestito 5000 DAI ([una Stablecoin](/stablecoins/)). Ciò assicura che il creditore sia rimborsato: se il debitore non ripaga i DAI, la garanzia è inviata al creditore. Tuttavia, non tutti possiedono abbastanza criptovalute da utilizzare come garanzia. -Una serie di progetti sta iniziando ad esplorare l'utilizzo degli NFT come garanzia reale. Immagina di aver comprato un raro NFT CryptoPunk in passato. Ai prezzi odierni, può valere anche migliaia di dollari. Mettendo questo attivo come garanzia reale, puoi accedere ad un prestito con la stessa serie di regole. Se non ripaghi il DAI, il tuo CryptoPunk verrà inviato al mutuante a titolo di garanzia reale. Questo sistema potrebbe alla fine funzionare con qualsiasi cosa tokenizzata sotto forma di NFT. +Invece, dei progetti stanno iniziando a esplorare l'utilizzo dei NFT come garanzie. Immagina di aver comprato un raro NFT CryptoPunk; ai prezzi odierni, possono valere anche migliaia di dollari. Mettendolo come garanzia, puoi accedere a un prestito con la stessa serie di regole. Se non ripaghi i DAI, il tuo CryptoPunk sarà inviato al creditore come garanzia. Infine, ciò potrebbe funzionare con qualsiasi cosa tu tokenizzi, sotto forma di NFT. -E questo non è difficile su Ethereum, perché entrambi i mondi (NFT e DeFi) condividono la stessa infrastruttura. +E, questo, non è difficile su Ethereum, poiché entrambi i mondi (NFT e DeFi), condividono la stessa infrastruttura. -#### Proprietà frazionata {#fractional-ownership} +#### Multiproprietà {#fractional-ownership} -I creatori di NFT possono anche creare "azioni" per il loro NFT. Così facendo si offre agli investitori e ai fan l'opportunità di possedere parte di un NFT senza doverlo comprare interamente, oltre ad accrescere le opportunità per coniatori e collezionisti di NFT. +I creatori di NFT possono anche creare "azioni" per i propri NFT. Questo dà a investitori e fan, l'opportunità di possedere una parte di un NFT, senza doverlo acquistare per intero. Questo accresce persino di più le opportunità per i coniatori e collezionisti di NFT. -- I NFT frazionati possono essere scambiati su [scambi decentralizzati](/defi/#dex) come Uniswap, non solo sui [mercati dei NFT](/dapps?category=collectibles). Ciò significa più acquirenti e venditori. +- I NFT frazionati sono scambiabili sulle [DEX](/defi/#dex) come Uniswap, non soltanto sui [mercati di NFT](/dapps?category=collectibles). Ciò significa più acquirenti e venditori. - Il prezzo complessivo di un NFT può essere definito dal prezzo delle sue frazioni. - Hai più di un'opportunità di possedere e trarre profitto dagli oggetti a cui tieni. È più difficile avere un prezzo per il possesso di NFT. -Questa idea è ancora sperimentale, ma puoi scoprire maggiori informazioni sulla proprietà frazionata degli NFT nei seguenti scambi: +Quest'idea è ancora sperimentale, ma puoi imparare di più sulla multiproprietà dei NFT, sulle seguenti piattaforme di scambio: - [NIFTEX](https://landing.niftex.com/) - [NFTX](https://gallery.nftx.org/) -In teoria, questo sbloccherebbe la possibilità di fare cose come possedere un'opera di Picasso. Diventeresti un azionista di un NFT collegato a un'opera di Picasso, il che significa che avresti voce in capitolo su aspetti come la ripartizione degli introiti. È molto probabile che un giorno non molto lontano, possedere una frazione di un NFT ti farà entrare in un'organizzazione autonoma decentralizzata (DAO) per la gestione di quell'attivo. +In teoria, questo sbloccherebbe la possibilità di fare cose come possedere parte di un'opera di Picasso. Diverresti un azionista in un NFT di Picasso, a significare che avresti voce in capitolo su cose come la ripartizione degli introiti. È molto probabile che, presto, possedere la frazione di un NFT consentirà l'accesso a un'organizzazione autonoma decentralizzata (DAO), per la gestione di tale risorsa. -Si tratta di organizzazioni alimentate da Ethereum che consentono a sconosciuti, come gli azionisti globali di un attivo, di coordinarsi in modo sicuro senza doversi necessariamente fidare degli altri. Questo perché non un solo centesimo può essere speso senza l'approvazione del gruppo. +Queste, sono organizzazioni alimentate da Ethereum che consentono a sconosciuti, come azionisti globali di una risorsa, di coordinarsi in sicurezza, senza doversi necessariamente fidare di altre persone. Questo perché nemmeno un centesimo può essere speso senza l'approvazione del gruppo. -Come abbiamo detto, si tratta di uno spazio emergente. NFT, DAO e token frazionati si stanno sviluppando a ritmi diversi. Ma tutte le loro infrastrutture esistono e possono lavorare insieme facilmente perché parlano tutte la stessa lingua: Ethereum. Ti suggeriamo quindi di tenere d'occhio questo spazio. +Come menzionato, si tratta di spazi emergenti. NFT, DAO e token frazionati si stanno tutti sviluppando a ritmi differenti. Ma tutte le loro infrastrutture esistono e possono cooperare facilmente, perché parlano tutte la stessa lingua: Ethereum. Quindi, ti suggeriamo di tenerle d'occhio. [Maggiori informazioni sulle DAO](/dao/) ### Certificati d'autenticità {#certificates} -Le aziende che offrono finti certificati di laurea sono a quanto pare un'industria da un miliardo di dollari, che gli NFT possono aiutare a combattere. Gli NFT possono essere un modo sicuro e rapido per verificare le credenziali di laurea di qualcuno. +Le aziende che offrono certificati di laurea falsi, sono a quanto pare un'industria da miliardi di euro, che i NFT possono aiutare a combattere. I NFT possono essere un metodo sicuro e rapido per verificare le credenziali di laurea di qualcuno. -[In Sud Corea, un'università sta già emettendo certificati di laurea in forma di NFT](https://forkast.news/headlines/south-korea-nfts-graduates-hoseo/), nella speranza che gli NFT miglioreranno l'accesso ai servizi amministrativi e impediranno la contraffazione o alterazione delle lauree. [Anche la Trinity Business School (TBS) in Irlanda prevede di offrire gli NFT a partire dal 2023](https://trinitynews.ie/2022/04/business-school-to-offer-degree-nfts/). +[In Corea del Sud, un'università sta già emettendo certificati di laurea sotto forma di NFT](https://forkast.news/headlines/south-korea-nfts-graduates-hoseo/), nella speranza che i NFT miglioreranno l'accesso ai servizi amministrativi, impedendo la contraffazione o alterazione delle stesse. [Anche la Trinity Business School (TBS), in Irlanda, sta pianificando di offrire NFT, a partire dal 2023](https://trinitynews.ie/2022/04/business-school-to-offer-degree-nfts/). ### Ticket di accesso {#tokengating} -Il ticket di accesso tramite NFT (in gergo “Tokengating”) è un modo per limitare l'accesso a qualcosa, sfruttando gli NFT come un modalità di accesso. Questi elementi possono variare enormemente a seconda della piattaforma, ma esempi comuni sono i contenuti riservati, i server di chat privati e, nel mondo dell'e-commerce, i prodotti esclusivi. +Il tokengating, o ticket d'accesso, è un metodo per limitare l'accesso a qualcosa, sfruttando i NFT per sbloccare tale accesso. Questi, possono variare enormemente a seconda della piattaforma, ma sono esempi comuni i contenuti riservati, i server di chat privati e, nel mondo dell'e-commeerce, i prodotti esclusivi. -Una piattaforma che fa tokengating chiederà solitamente all’utente di collegare il suo portafoglio per dimostrare il possesso dell'NFT richiesto. Se si dispone dell'NFT richiesto, si otterrà l'accesso. In caso contrario, l'ingresso rimarrà chiuso. Gli NFT sono un ottimo strumento per questo compito, perché sono unici: non si può fingere di possederli per ottenere l'accesso. +Una piattaforma che fa "tokengating", ti chiederà tipicamente di connettere il tuo portafoglio per dimostrare che tu possieda il NFT necessario. Se disponi del NFT richiesto, otterrai l'accesso. Altrimenti, l'accesso rimarrà negato. I NFT sono un ottimo metodo per farlo per via della loro unicità: non puoi falsificarne la proprietà per ottenere l'accesso. -Poiché gli NFT sono su Ethereum, possono essere utilizzati per sbloccare l'accesso tramite Ethereum su qualsiasi piattaforma che li implementa. Un singolo NFT che possiedi può sbloccare contenuti riservati, server di chat privati e prodotti esclusivi su siti web e applicazioni completamente diversi. +Poiché i NFT sono su Ethereum, sono utilizzabili per sbloccare i tokengate di Ethereum su qualsiasi piattaforma li implementi. Un singolo NFT che possiedi potrebbe sbloccare contenuti limitati, server di chat private e prodotti esclusivi, su siti web e applicazioni completamente differenti. -Se il conio e la distribuzione di NFT riguardano la generazione o la digitalizzazione di una community, il tokengating un modo per coltivarla. Con questo strumento gli NFT trovano impiego più che altro come strumento per l'adesione o la fidelizzazione, e un ottimo modo per dare in modo affidabile i benefici che ne derivano. +Se coniare e distribuire NFT riguarda la generazione o digitalizzazione della community, il tokengating è un modo per coltivarla. Così, i NFT sono più utilizzati come strumenti per adesione o fedelizzazione; nonché come un ottimo modo per consegnare in modo affidabile le ricompense che ne derivano. #### Esempi -- [Collab.land](https://collab.land/) da accesso a delle chat sui server Discord o gruppi Telegram -- [Unlock protocol](https://unlock-protocol.com/) è un protocollo per la creazione di NFT per il tokengating -- [Shopify](https://help.shopify.com/en/manual/products/digital-service-product/nfts) ha un serie crescente di applicazioni che consentono ai commercianti di limitare l'accesso ai prodotti e sconti usando il tokengating +- [Collab.land](https://collab.land/) dà accesso a delle chat su server Discord o gruppi Telegram +- Il [protocollo Unlock](https://unlock-protocol.com/) è un protocollo per il tokengating +- [Shopify](https://help.shopify.com/en/manual/products/digital-service-product/nfts) include sempre più app che consentono ai commercianti di limitare l'accesso ai prodotti e agli sconti -## Ethereum e NFT {#ethereum-and-nfts} +## Ethereum e i NFT {#ethereum-and-nfts} -Ethereum rende possibile il funzionamento degli NFT per vari motivi: +Ethereum rende possibile il funzionamento dei NFT per numerosi motivi: -- La cronologia delle transazioni e i metadati dei token sono verificabili pubblicamente: è semplice dimostrare la storia della proprietà. -- Una volta che una transazione è confermata, è quasi impossibile manipolare quei dati per "rubare" la proprietà. -- Lo scambio di NFT può avvenire peer-to-peer senza bisogno di piattaforme che prelevano buona parte dei compensi. -- Tutti i prodotti Ethereum condividono lo stesso "backend". In altre parole, tutti i prodotti Ethereum possono facilmente capirsi: questo rende i NFT trasferibili tra i vari prodotti. È possibile acquistare un NFT su un prodotto e venderlo su un altro senza problemi. Come creatore puoi elencare i tuoi NFT su più prodotti contemporaneamente: ogni prodotto avrà le informazioni di proprietà più aggiornate. -- Ethereum non dorme mai, e questo significa che i tuoi token saranno sempre disponibili per la vendita. +- Lo storico delle transazioni e i metadati del token sono verificabili pubblicamente: è semplice provare la storia della proprietà. +- Una volta confermata una transazione, è quasi impossibile manipolare quei dati per "rubarne" la proprietà. +- Lo scambio di NFT può verificarsi tra pari, senza necessitare di piattaforme che prelevano grandi parti come compensi. +- Tutti i prodotti di Ethereum condivodno lo stesso "backend". In altre parole, tutti i prodotti di Ethereum possono facilmente comprendersi a vicenda: rendendo i NFT trasferibili tra vari prodotti. Puoi facilmente acquistare un NFT su un prodotto e venderlo su un altro. Come creatore, puoi elencare i tuoi NFT su svariati prodotti allo stesso tempo; ogni prodotto conterrà le informazioni di proprietà più aggiornate. +- Ethereum non dorme mai, a significare che i token saranno sempre disponibili per la vendita. -## Impatto ambientale degli NFT {#environmental-impact-nfts} +## Impatto ambientale dei NFT {#environmental-impact-nfts} -La creazione ed il trasferimento degli NFT sono solo transazioni su Ethereum - il conio, l'acquisto, lo scambio o l'interazione con gli NFT non consumano direttamente energia. Dal momento in cui [la Fusione](/roadmap/merge) Ethereum è una blockchain a bassa consumo energetico, l'impatto ambientale dell'uso di NFT è trascurabile. +La creazione e il trasferimento dei NFT sono semplicemente transazioni di Ethereum: coniare, acquistare, scambiare o interagire con i NFT, non consuma direttamente energia. Da [La Fusione](/roadmap/merge), Ethereum è una blockchain a basso consumo energetico, a significare che l'impatto ambientale dell'utilizzo dei NFT, è trascurabile. -[Scopri di più sul consumo energetico di Ethereum](/energy-consumption/). +[Di più sul consumo energetico di Ethereum](/energy-consumption/). -### Non dare la colpa agli NFT {#nft-qualities} +### Non incolpare i NFT {#nft-qualities} -L'intero ecosistema degli NFT funziona perché Ethereum è decentralizzato e sicuro. +L'intero ecosistema dei NFT funziona perché Ethereum è decentralizzato e sicuro. -Decentralizzato significa che tu e tutti gli altri potete verificare che possiedi qualcosa. Il tutto senza fidarsi di terzi né affidare la custodia a terzi, che possono imporre le proprie regole a piacimento. Significa anche che il tuo NFT è trasferibile tra molti prodotti e mercati diversi. +Decentralizzato a significare che tu, come tutti gli altri, puoi verificare di possedere qualcosa. Il tutto senza affidarti o concedere la custodia a una terza parte, che potrebbe imporre le proprie regole a piacimento. Ciò significa anche che il tuo NFT è trasferibile tra molti prodotti e mercti differenti. -“Sicuro” significa che nessuno può copiare/incollare il tuo NFT o rubartelo. +Sicuro significa che nessuno può copiare e incollare il tuo NFT, o rubarlo. -Queste qualità di Ethereum rendono possibile possedere digitalmente oggetti unici e ottenere un prezzo equo per i tuoi contenuti. Ethereum protegge le risorse usando un meccanismo di consenso decentralizzato che prevede il ['proof-of-stake'](/developers/docs/consensus-mechanisms/pos). Si tratta di un metodo a basse emissioni di carbonio per determinare chi può aggiungere un blocco di transazioni alla catena, ed è considerato più sicuro dell'alternativa ['proof-of-work'](/developers/docs/consensus-mechanisms/pow), ad alto consumo energetico. Gli NFT sono stati associati a elevati consumi energetici perché Ethereum era protetto usando il proof-of-work. Oggi questo non è più vero. +Queste qualità di Ethereum rendono possibile il possesso digitale di oggetti univoci e l'ottenimento di prezzi equi per i propri contenuti. Ethereum protegge le risorse utilizzando un meccanismo di consenso decentralizzato, che prevede il [proof-of-stake](/developers/docs/consensus-mechanisms/pos). Si tratta di un metodo a basse emissioni, per determinare chi possa aggiungere un blocco di transazioni alla catena, ed è considerato più sicuro dell'alternativa ad alto consumo energetico precedente, il [proof-of-work](/developers/docs/consensus-mechanisms/pow). I NFT sono stati associati a elevati consumi energetici perché Ethereum era protetto utilizzando il proof-of-work. Oggi, quest'affermazione non è più vera. #### Coniare NFT {#minting-nfts} Quando si conia un NFT, devono accadere alcune cose: -- Deve essere confermato come un asset sulla blockchain. -- Il saldo del conto del proprietario dev'esser aggiornato per includere tale risorsa. In questo modo sarà successivamente possibile scambiarlo o "possederlo" in modo verificabile. -- Le transazioni che confermano l'esigenza suddetta di esser aggiunti a un blocco e "immortalati" sulla catena. -- Il blocco deve essere confermato da tutti nella rete come "corretto". Questo consenso elimina la necessità di intermediari, in quanto la rete accetta che il NFT esiste e appartiene a te. Inoltre, essendo sulla catena, può essere verificato da chiunque. Questo è uno dei modi in cui Ethereum aiuta i creatori di NFT a massimizzare i propri guadagni. +- Dev'essere confermato come una risorsa sulla blockchain. +- Il saldo del conto del proprietario dev'essere aggiornato per includere tale risorsa. Ciò rende possibile il suo successvo scambio, nonché di "possederlo" in modo verificabile. +- Le transazioni che confermano la suddetta esigenza, devono essere aggiunte a un blocco e "immortalate" sulla catena. +- Il blocco dev'essere confermato da tutti nella rete, come "corretto". Tale consenso elimina la necessità di intermediari, poiché la rete accetta che il NFT esiste e ti appartiene. Inoltre, trovandosi sulla catena, chiunque può verificarlo. Questo è uno dei modi in cui Ethereum aiuta i creatori di NFT a massimizzare i propri guadagni. -Tutte queste attività sono svolte dai produttori e validatori di blocchi. I propositori di blocchi aggiungono la transazione del tuo NFT a un blocco e la trasmettono al resto della rete. I validatori verificano che la transazione sia valida e, poi, la aggiungono ai loro database. Esistono molti incentivi cripto-economici per assicurarsi che i validatori agiscano con onestà. Altrimenti, chiunque potrebbe semplicemente rivendicare di essere il proprietario del NFT da te appena coniato e trasferirne la proprietà in modo fraudolento. +Tutte queste attività sono svolte dai produttori e validatori di blocchi. I propositori di blocchi aggiungono la transazione del tuo NFT a un blocco, trasmettendola al resto della rete. I validatori verificano che la transazione sia valida e, quindi, la aggiungono ai propri database. Esistono molti incentivi cripto-economici, per assicurarsi che i validatori agiscano con onestà. Altrimenti, chiunque potrebbe semplicemente rivendicare di possedere il NFT appena coniato, trasferendo in modo fraudolento la proprietà. -#### Sicurezza degli NFT {#nft-security} +#### Sicurezza dei NFT {#nft-security} -La sicurezza di Ethereum deriva dal proof-of-stake. Il sistema è progettato per disincentivare economicamente le azioni malevole, rendendo Ethereum a prova di manomissione. Questo è ciò che rende possibili gli NFT. Una volta che il blocco contenente la transazione del tuo NFT diventa definitivo, a un utente malevolo servirebbero milioni di ETH per modificarlo. Chiunque esegua il software di Ethereum potrebbe immediatamente rilevare la manomissione malevola di un NFT, e l'utente malevolo sarebbe penalizzato economicamente ed espulso. +La sicurezza di Ethereum deriva dal proof-of-stake. Il sistema è progettato per disincentivare economicamente le azioni malevole, rendendo Ethereum a prova di manomissione. Questo è ciò che rende possibili i NFT. Una volta che il blocco contenente la transazione del tuo NFT è finalizzato, a un utente malevolo servirebbero milioni di ETH per modificarlo. Chiunque esegua il software di Ethereum potrebbe rilevare immediatamente la manomissiione disonesta di un NFT e, l'utente malevolo, sarebbe penalizzato economicamente ed espulso. -I problemi di sicurezza degli NFT sono molto spesso correlati alle truffe di phishing, alle vulnerabilità dei contratti intelligenti o agli errori degli utenti (come esporre inavvertitamente le chiavi private), per questo una buona sicurezza del portafoglio è essenziale per i proprietari di NFT. +I problemi di sicurezza relativi ai NFT sono molto spesso relativi alle truffe di phishing, alle vulnerabilità dei contratti intelligenti o agli errori degli utenti (come esporre inavvertitamente le chiavi private), rendendo fondamentale una buona sicurezza dei portafogli, per i proprietari di NFT. Di più sulla sicurezza -## Costruire con i NFT {#build-with-nfts} +## Creare con i NFT {#build-with-nfts} -Gran parte degli NFT è creata usando uno standard coerente, noto come [ERC-721](/developers/docs/standards/tokens/erc-721/). Ma esistono anche altri standard che potrebbero interessarti. Lo standard [ERC-1155](/developers/docs/standards/tokens/erc-1155/) ammette i token semi-fungibili, particolarmente utili nel campo del gioco. E, più di recente, è stato proposto l'[EIP-2309](https://eips.ethereum.org/EIPS/eip-2309), per rendere molto più efficiente coniare NFT. Questo standard consente di coniarne in un'unica transazione qualunque numero di NFT! +Gran parte dei NFT è creata utilizzando uno standard coerente, noto come [ERC-721](/developers/docs/standards/tokens/erc-721/). Tuttavia, esistono altri standard che potrebbero interessarti. Lo standard [ERC-1155](/developers/docs/standards/tokens/erc-1155/) consente i token semi-fungibili, particolarmente utili nell'ambito videoludico. Più di recente, inoltre, è stata proposta l'[EIP-2309](https://eips.ethereum.org/EIPS/eip-2309), per rendere molto più efficiente il conio di NFT. Questo standard ti consente di coniarne quanti più ne desideri, in una singola transazione! ## Lettura consigliate {#further-reading} -- [Crypto art data](https://cryptoart.io/data) – Richard Chen, aggiornato automaticamente -- [OpenSea: the NFT Bible](https://opensea.io/blog/guides/non-fungible-tokens/) – _Devin Fizner, 10 Gennaio 2020_ -- [A beginner's guide to NFTs](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) – _Linda Xie, Gennaio 2020_ -- [Everything you need to know about the metaverse](https://foundation.app/blog/enter-the-metaverse) – _Foundation team, foundation.app_ -- [No, CryptoArtists Aren’t Harming the Planet](https://medium.com/superrare/no-cryptoartists-arent-harming-the-planet-43182f72fc61) +- [Dati cripto-artistici](https://cryptoart.io/data): Richard Chen, aggiornato automaticamente +- [OpenSea: la Bibbia dei NFT](https://opensea.io/blog/guides/non-fungible-tokens/): _Devin Fizner, 10 Gennaio 2020_ +- [Una guida per principianti ai NFT](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d): _Linda Xie, Gennaio 2020_ +- [Tutto ciò che devi sapere sul metaverso](https://foundation.app/blog/enter-the-metaverse): _Team della Foundation, foundation.app_ +- [No, i cripto-artisti non stanno danneggiando il pianeta](https://medium.com/superrare/no-cryptoartists-arent-harming-the-planet-43182f72fc61) - [Consumo energetico di Ethereum](/energy-consumption/) +- [API NFT di Ethereum](https://www.alchemy.com/list-of/nft-apis-on-ethereum): _Alchemy_ diff --git a/src/content/translations/it/roadmap/account-abstraction/index.md b/src/content/translations/it/roadmap/account-abstraction/index.md new file mode 100644 index 00000000000..c5f6975ed69 --- /dev/null +++ b/src/content/translations/it/roadmap/account-abstraction/index.md @@ -0,0 +1,126 @@ +--- +title: Astrazione account +description: Un panoramica dei piani di Ethereum per rendere i conti degli utenti più semplici e sicuri +lang: it +summaryPoints: + - L'astrazione del conto semplifica molto la creazione di portafogli di contratti intelligenti + - I portafogli di contratti intelligenti semplificano molto la gestione dell'accesso ai conti di Ethereum + - Le chiavi perdute o esposte sono recuperabili utilizzando svariati backup +--- + +# Astrazione account {#account-abstraction} + +Gli utenti interagiscono con Ethereum utilizzando i **[conti posseduti esternamente (EOA)](/glossary/#eoa)**. Questo è il solo modo per avviare una transazione o per eseguire un contratto intelligente. Ciò limita il modo in cui gli utenti possono interagire con Ethereum. Ad esempio, rende difficile eseguire transazioni in massa e richiede agli utenti di mantenere sempre un saldo di ETH per coprire i costi del gas. + +L'astrazione del conto è un modo per risolvere tali problemi, consentendo agli utenti di programmare flessibilmente maggiore sicurezza e una migliore esperienza degli utenti, nei propri conti. Ciò può verificarsi [aggiornando gli EOA](https://eips.ethereum.org/EIPS/eip-3074) così che possano essere controllati da contratti intelligenti, o [aggiornando i contratti intelligenti](https://eips.ethereum.org/EIPS/eip-2938), così che possano avviare transazioni. Queste opzioni richiedono entrambe modifiche al protocollo di Ethereum. Esiste un terzo percorso che comporta l'aggiunta di un [secondo sistema separato di transazioni](https://eips.ethereum.org/EIPS/eip-4337) da eseguire in parallelo al protocollo esistente. Indipendentemente dal percorso, il risultato è l'accesso a Ethereum tramite i portafogli di contratti intelligenti, supportati nativamente come parte del protocollo esistente o tramite una rete di transazioni aggiuntiva. + +I portafogli di contratti intelligenti sbloccano molti benefici per l'utente, tra cui: + +- definire le proprie regole di sicurezza flessibili +- recuperare il proprio conto in caso di perdita delle chiavi +- condividere la sicurezza del proprio conto tra svariati dispositivi o individui +- pagare il gas altrui, o far pagare il proprio a qualcun altro +- raggruppare le transazioni (es. approvare ed eseguire uno scambio in una sola volta) +- incrementare le opportunità per gli svilupptori di dapp e portafogli, per innovare l'esperienza degli utenti + +Tali benefici non sono ad oggi supportati nativamente, poiché soltanto i conti posseduti esternamente ([EOA](https://ethereum.org/en/glossary/#eoa)) possono avviare le transazioni. Gli EOA sono semplicemente coppie di chiavi pubblica-privata. Funzionano come segue: + +- se hai la chiave privata puoi fare _qualsiasi cosa_ entro le regole della Macchina Virtuale di Ethereum (EVM) +- se non hai la chiave privata non puoi fare _nulla_. + +Se perdi le tue chiavi non sono recuperabili e le chiavi rubate danno ai ladri l'accesso istantaneo a tutti i fondi in un conto. + +I portafogli di contratti intelligenti sono la soluzione a tali problemi, ma a oggi sono difficili da programmare poiché, alla fine, qualsiasi logica che implementano dev'essere tradotta in una serie di transazioni dell'EOA, prima che possa essere elaborata da Ethereum. L'astrazione del conto consente ai contratti intelligenti di avviare da soli le transazioni, così che qualsiasi logica che l'utente desideri implementare possa essere programmata nel portafoglio del contratto intelligente stesso ed eseguita su Ethereum. + +Infine, l'astrazione del conto migliora il supporto ai portafogli di contratti intelligenti, semplificandone la creazione e aumentandone la sicurezza di utilizzo. Infine, con l'astrazione del conto, gli utenti possono godere di tutti i benefici di Ethereum, senza conoscere o interessarsi della tecnologia sottostante. + +## Oltre le frasi di seed {#beyond-seed-phrases} + +I conti odierni sono protetti utilizzando chiavi private, calcolate dalle frasi di seed. Chiunque abbia accesso a una frase di seed può scoprire facilmente la chiave privata che protegge un conto e ottenere accesso a tutte le risorse che protegge. Se una chiave privata e una frase di seed sono perdute, non sono mai recuperabili e le risorse che controllano sono congelate per sempre. Proteggere queste frasi di seed è alquanto bizzarro, persino per gli utenti esperti e il phishing delle frasi di seed è uno dei metodi più comuni per truffare gli utenti. + +L'astrazione del conto risolverà tale problema, utilizzando un contratto intelligente per detenere le risorse e autorizzare le transazioni. Questi contratti intelligenti sono quindi decorabili con logica personalizzata, per renderli il più sicuri e su misura possibile per l'utente. Infine, utilizzi ancora le chiavi private per controllare l'accesso al tuo conto, ma con reti di sicurezza che le rendono più facili e sicure da gestire. + +Ad esempio, le chiavi di backup possono essere aggiunte a un portafoglio, così che se perdi o esponi accidentalmente la tua chiave principale, può essere sostituita da una nuova e sicura, con l'autorizzazione dalle chiavi di backup. Potresti proteggere ognuna di queste chiavi in un modo differente, o dividerle tra guardiani fidati. Questo rende molto più difficile, per un ladro, ottenere il pieno controllo sui tuoi fondi. Similmente, puoi aggiungere regole al portafoglio per ridurre l'impatto nel caso in cui la tua chiave principale sia compromessa, ad esempio, potresti consentire le transazioni di basso valore affinché siano verificate da una singola firma, mentre le transazioni di valore superiore richiedono l'approvazione da svariati firmatari autenticati. Esistono altri modi in cui i portafogli di contratti intelligenti possono aiutarti a contrastare i ladri, ad esempio, una lista bianca è utilizzabile per bloccare ogni transazione a meno che non sia verso un indirizzo fidato o verificato da svariate delle tue chiavi pre-approvate. + +### Esempi di logica di sicurezza possono essere integrati in un portafoglio del contratto intelligente: + +- **Autorizzazione multifirma**: Puoi condividere le credenziali di autorizzazione tra svariate persone o dispositivi affidabili. Quindi, il contratto, è configurabile affinché le transazioni di più di un dato valore predeterminato, richiedano l'autorizzazione da una certa porzione (ad esempio, 3/5) delle parti fidate. Ad esempio, le transazioni dal valore elevato potrebbero richiedere l'approvazione sia da un dispositivo mobile che da un portafoglio hardware, o le firme dai conti distribuiti ai membri familiari fidati. +- **Congelamento del conto**: Se un dispositivo è perduto o compromesso, il conto può essere bloccato da un altro dispositivo autorizzato, proteggendo le risorse dell'utente. +- **Recupero del conto**: Hai perso un dispositivo o hai dimenticato una password? Nel paradigma corrente, ciò significa che le tue risorse potrebbero essere state congelate per sempre. Con il portafoglio di un contratto intelligente, puoi impostare dei conti pre-approvati che possano autorizzare nuovi dispositivi e ripristinare l'accesso. +- **Imposta limiti di transazione**: specifica le soglie giornaliere per il valore che può essere trasferito dal conto in un giorno/una settimana/un mese. Ciò significa che, se un utente malevolo ottiene l'accesso al tuo conto, non può prelevare tutto in una volta e hai l'opportunità di congelare e ripristinare l'accesso. +- **Crea liste bianche**: consenti soltanto le transazioni verso certi indirizzi che sai che sono sicuri. Ciò significa che _anche se_ la tua chiave privata è stata rubata, l'utente malevolo non potrebbe inviare i fondi a conti di destinazione non presenti nella lista bianca. Queste liste bianche richiederebbero più firme per modificarle, così che un utente malevolo non possa aggiungere il proprio indirizzo all'elenco, senza avere accesso a svariate delle tue chiavi di backup. + +## Migliore esperienza utente {#better-user-experience} + +L'astrazione del conto consente un'**esperienza dell'utente complessiva migliore**, nonché **maggiore sicurezza**, poiché aggiunge supporto ai portafogli di contratti intelligenti, a livello del protocollo. Il motivo più importante per questo è che fornirà agli sviluppatori di contratti intelligenti, portafogli e applicazioni, molta più libertà di innovare l'esperienza degli utenti, in modi che potrebbero ancora non essere capaci di anticipare. Alcuni miglioramenti ovvi che proverrebbero dall'astrazione del conto, includono il raggruppamento delle transazioni, per velocità ed efficienza. Ad esempio, un semplice scambio dovrebbe essere un'operazione in un click ma, oggi, richiede la firma di diverse transazioni per approvare la spesa di token individuali, prima dell'esecuzione dello scambio. L'astrazione del conto rimuove quella frizione, consentendo il raggruppamento delle transazioni. Inoltre, le transazioni raggruppate potrebbero approvare precisamente il valore corretto di token necessari per ogni transazione, per poi revocare le approvazioni al suo completamento, fornendo maggiore sicurezza. + +La gestione del gas, inoltre, è di molto migliorata con l'astrazione del conto. Non solo le applicazioni possono offrire di pagare le commissioni sul gas degli utenti ma, queste, possono essere pagate in token differenti da ETH, liberando gli utenti dal dover mantenere un saldo di ETH per finanziare le transazioni. Ciò potrebbe funzionare scambiando i token dell'utente per ETH nel contratto, quindi, utilizzando gli ETH per pagare il gas. + + + +La gestione del gas è una delle frizioni principali per gli utenti di Ethereum, principalmente perché gli ETH sono la sola risorsa utilizzabile per pagare le transazioni. Immagina di avere un portafoglio con un saldo di USDC, ma nessun ETH. Non puoi spostare o scambiare quei token USDC, poiché non puoi pagare il gas. Non puoi nemmeno scambiare gli USDC per ETH, poiché anche questo costa del gas. Dovresti inviare altri ETH al tuo conto da una piattaforma di scambio o da un altro indirizzo per risolvere il problema. Con i portafogli di contratti intelligenti, invece, puoi semplicemente pagare il gas in USDC, liberando il tuo conto. Non devi più mantenere un saldo di ETH in tutti i tuoi conti. + +L'astrazione del conto, inoltre, consente agli sviluppatori di dapp di essere creativi con la gestione del gas. Ad esempio, potresti riuscire a iniziare a pagare una commissione fissa mensile alla tua DEX preferita, per delle transazioni illimitate. Le Dapp potrebbero offrire di pagare tutte le tue commissioni di gas per conto tuo, come ricompensa per aver utilizzato la loro piattaforma, o come offerta di inserimento. Per gli sviluppatori, sarebbe molto più facile innovare sul gas, quando i portafogli di contratti intelligenti sono supportati al livello del protocollo. + + + +Le sessioni fidate, inoltre, sono potenzialmente trasformative per le esperienze degli utenti, specialmente per applicazioni come il gaming, in cui grandi numeri di piccole transazioni, potrebbero necessitare dell'approvazione in un breve tempo. Approvare individualmente ogni transazione spezzerebbe l'esperienza di gioco, ma l'approvazione permanente non è sicura. Il portafoglio di un contratto intelligente potrebbe approvare certe transazioni per un dato tempo, fino a un valore specifico o solo per certi indirizzi. + +Inoltre, è interessante considerare come gli acquisti potrebbero cambiare, con l'astrazione del conto. Oggi, ogni transazione dev'essere approvata ed eseguita da un portafoglio pre-finanziato con un importo sufficiente del token corretto. Con l'astrazione del conto, l'esperienza potrebbe somigliare di più allo shopping online di famiglia, in cui un utente potrebbe riempire un "carrello" di oggetti e cliccare una volta per acquistare tutto insieme, con tutta la logica necessaria gestita dal contratto, non dall'utente. + +Esistono solo alcuni esempi di come le esperienze degli utenti potrebbero essere migliorate dall'astrazione del conto, ma ne esisteranno molti altri, che non abbiamo ancora immaginato. L'astrazione del conto libera gli sviluppatori dai vincoli dei EOA dei giorni nostri, consente loro di portare i migliori aspetti del web2 al web3 senza sacrificare la custodia personale e di incidere creativamente sull'inventiva di nuove esperienze degli utenti. + +## Come sarà implementata l'astrazione del conto? {#how-will-aa-be-implemented} + +I portafogli di contratti intelligenti, ad oggi, esistono, ma implementarli è impegnativo poiché l'EVM non li supporta. Invece, si affidano all'avvolgimento di codice relativamente complesso, intorno alle transazioni standard di Ethereum. Ethereum può modificare tale procedimento, consentendo ai contratti intelligenti di avviare le transazioni, gestendo la logica necessaria nei contratti intelligenti di Ethereum, invece che al di fuori della catena. Inoltre, inserire la logica nei contratti intelligenti, incrementa la decentralizzazione di Ethereum, poiché rimuove il bisogno di "staffettisti" operati dagli sviluppatori dei portafogli, di tradurre i messaggi firmati dall'utente, in transazioni regolari di Ethereum. + + + +EIP-2771 introduce il concetto delle meta-transazioni, che consentono a terze parti di pagare i costi del gas degli utenti senza apportare modifiche al protocollo di Ethereum. L'idea è che le transazioni firmate da un utente sono inviate a un contratto `Corriere`. Il corriere è un'entità fidata che verifica che le transazioni siano valide, prima di inviarle a un ripetitore di gas. Ciò avviene all'esterno della catena, evitando il bisogno di pagare il gas. Il ripetitore di gas passa la transazione a un contratto `Destinatario`, pagando il gas necessario per rendere la transazione eseguibile su Ethereum. La transazione è eseguita se il `Corriere` è noto ed è ritenuto attendibile dal `Destinatario`. Questo modello semplifica, per gli sviluppatori, l'implementazione di transazioni a gas zero per gli utenti. + + + + + +L'EIP-4337 è il primo passo verso il supporto dei portafogli di contratti intelligenti nativi in modo decentralizzato, senza richiedere modifiche al protocollo di Ethereum. Invece di modificare il livello del consenso per supportare i portafogli di contratti intelligenti, un nuovo sistema è aggiunto separatamente al normale protocollo di gossip della transazione. Questo sistema di livello superiore si basa su un nuovo oggetto, detto UserOperation, che impacchetta le azioni da un utente, insieme alle firme rilevanti. Questi oggetti UserOperation, quindi, sono trasmessi in un mempool dedicato, dove i validatori possono raccoglierli in una "transazione raggruppata". La transazione raggruppata rappresenta una sequenza di molti UserOperations singoli e può essere inclusa nei blocchi di Ethereum, proprio come una normale transazione, che sarà raccolta dai validatori utilizzando un simile modello di selezione che massimizza le commissioni. + +Anche il funzionamento dei portafogli cambierà sotto EIP-4337. Invece di far reimplementare da ogni portafoglio una logica di sicurezza complessa ma comune, queste funzioni saranno affidate a un contratto del portafoglio globale, noto come "punto d'accesso". Questo, gestirebbe le operazioni come il pagamento delle commissioni e l'esecuzione del codice dell'EVM, così che gli sviluppatori di portafogli possano concentrarsi sul fornire eccellenti esperienze agli utenti. + +Nota: il contratto del punto d'accesso dell'EIP-4337, è stato distribuito alla Rete Principale di Ethereum l'1 marzo 2023. Puoi visualizzare il contratto su Etherscan. + + + + + +L'EIP-2938 mira ad aggiornare il protocollo di Ethereum introducendo un nuovo tipo di transazione, AA_TX_TYPE che include tre campi: nonce, target e data, dove nonce è un contatore di transazioni, target è l'indirizzo del contratto del punto d'accesso, e data è il bytecode dell'EVM. Per eseguire queste transazioni, devono essere aggiunte due nuove istruzioni (note come codici operativi) all'EVM: NONCE e PAYGAS. Il codice operativo NONCE traccia la sequenza della transazione e PAYGAS calcola e preleva il gas necessario per eseguire la transazione dal saldo del contratto. Queste nuove funzionalità consentono a Ethereum di supportare nativamente i portafogli di contratti intelligenti, poiché l'infrastruttura necessaria è integrata nel protocollo di Ethereum. + +Nota che l'EIP-2938 non è correntemente attiva. La community, al momento, preferisce EIP-4337 poiché non richiede modifiche al protocollo. + + + + + +L'EIP-3074 mira ad aggiornare i conti posseduti esternamente di Ethereum, consentendo loro di delegare il controllo a un contratto intelligente. Ciò significa che la logica dei contratti intelligenti potrebbe approvare le transazioni originate da un EOA. Questo consentirebbe funzionalità come la sponsorizzazione del gas e le transazioni raggruppate. Perché funzioni, devono essere aggiunti due nuovi codici operativi all'EVM: AUTH e AUTHCALL. Con l'EIP-3074, i benefici del portafoglio di un contratto intelligente sono resi disponibili senza la necessità di un contratto, invece un tipo specifico di contratto privo di stato, privo di fiducia e non ggiornabile, noto come "invocatore", gestisce le transazioni. + +Nota che EIP-3074 non è correntemente attivo. La community, al momento, preferisce EIP-4337 poiché non richiede modifiche al protocollo. + + + +## Stato attuale {#current-progress} + +I portafogli di contratti intelligenti sono già disponibili, ma sono necessari maggiori aggiornamenti per renderli il più decentralizzati e privi di permessi possibile. EIP-4337 è una proposta matura che non richiede alcuna modifica al protocollo di Ethereum, quindi è possibile che sarà implementata rapidamente. Tuttavia, gli aggiornamenti che alterano il protocollo di Ethereum non sono correntemente in sviluppo attivo, quindi potrebbe essere necessario più tempo per distribuire queste modifiche. Inoltre, è possibile che l'astrazione del conto sia raggiunta in modo soddisfacente da EIP-4337 e non sarà necessaria alcuna modifica al protocollo. + +## Letture consigliate {#further-reading} + +- [erc4337.io](https://www.erc4337.io/) +- [Discussione di gruppo sull'astrazione del conto dal Devcon Bogota](https://www.youtube.com/watch?app=desktop&v=WsZBymiyT-8) +- ["Perché l'astrazione del conto è una svolta per le dapp" da Devcon Bogota](https://www.youtube.com/watch?v=OwppworJGzs) +- ["Astrazione del conto ELI5" da Devcon Bogota](https://www.youtube.com/watch?v=QuYZWJj65AY) +- [Note di "Strada all'Astrazione del Conto" di Vitalik](https://notes.ethereum.org/@vbuterin/account_abstraction_roadmap#Transaction-inclusion-lists) +- [Post del blog di Vitalik sui portafogli di recupero sociale](https://vitalik.ca/general/2021/01/11/recovery.html) +- [Note sull'EIP-2938](https://hackmd.io/@SamWilsn/ryhxoGp4D#What-is-EIP-2938) +- [Documentazione sull'EIP-2938](https://eips.ethereum.org/EIPS/eip-2938) +- [Note sull'EIP-4337](https://medium.com/infinitism/erc-4337-account-abstraction-without-ethereum-protocol-changes-d75c9d94dc4a) +- [Documentazione sull'EIP-4337](https://eips.ethereum.org/EIPS/eip-4337) +- [Documentazione sull'EIP-2771](https://eips.ethereum.org/EIPS/eip-2771) +- ["Basi dell'Astrazione del Conto": Cos'è l'Astrazione del Conto Parte I](https://www.alchemy.com/blog/account-abstraction) diff --git a/src/content/translations/it/roadmap/beacon-chain/index.md b/src/content/translations/it/roadmap/beacon-chain/index.md index 2942b19d4df..0db25c3185e 100644 --- a/src/content/translations/it/roadmap/beacon-chain/index.md +++ b/src/content/translations/it/roadmap/beacon-chain/index.md @@ -13,27 +13,25 @@ summaryPoint3: La Beacon Chain ha introdotto la logica del consenso e il protoco La Beacon Chain è stata attivata l'1 dicembre 2020 e ha formalizzato il proof-of-stake come il meccanismo di consenso di Ethereum con l'aggiornamento della Fusione il 15 settembre 2022. -## Cos'era la Beacon Chain? {#what-is-the-beacon-chain} +## Cos'è la Beacon Chain? {#what-is-the-beacon-chain} -La Beacon Chain era il nome della blockchain di Proof of stake originale, lanciata nel 2020. Fu creata per assicurare che la logica di consenso di Proof of stake fosse stabile e sostenibile prima di abilitarla sulla Rete principale di Ethereum. Di conseguenza, era eseguita insieme all'Ethereum Proof of Work originale. La disattivazione del Proof of Work e l'attivazione del Proof of stake su Ethereum ha richiesto di istruire la Beacon Chain ad accettare le transazioni dalla catena Ethereum originale, a raggrupparle in blocchi e organizzarle in una blockchain usando il meccanismo di consenso basato sul Proof of stake. Allo stesso momento, i client originali di Ethereum hanno disattivato il proprio mining, la propagazione dei blocchi e la logica di consenso, passando tutti questi aspetti alla Beacon Chain. Questo evento è noto come [La Fusione](/roadmap/merge/). Una volta verificatasi La Fusione, non esistevano più due blockchain; era stata creata un'unica catena Proof of stake di di Ethereum. +Beacon Chain era il nome della blockchain di proof of stake originale, lanciata nel 2020. Fu creata per assicurare che la logica di consenso di Proof of stake fosse stabile e sostenibile prima di abilitarla sulla Rete principale di Ethereum. Di conseguenza, era eseguita insieme all'Ethereum Proof of Work originale. La Beacon Chain era una catena di blocchi 'vuoti', ma la disattivazione del proof of work e l'attivazione del proof of stake su Ethereum, hanno richiesto di istruire la Beacon Chain per accettare i dati delle transazioni dai client d'esecuzione, raggrupparli in blocchi, quindi organizzarli in una blockchain utilizzando il meccanismo di consenso basato sul proof of stake. Allo stesso momento, i client originali di Ethereum hanno disattivato il proprio mining, la propagazione dei blocchi e la logica di consenso, passando tutti questi aspetti alla Beacon Chain. Questo evento è noto come [La Fusione](/roadmap/merge/). Una volta verificatasi La Fusion, non esistevano più due blockchain. Invece, ora, esiste un singolo Ethereum di proof of stake, che richiede due client differenti per nodo. La Beacon Chain è ora il livello del consenso, una rete tra pari dei client del consenso, che gestisce il gossip dei blocchi e la logica di consenso, mentre i client originali formano il livello d'esecuzione, responsabile del gossip e dell'esecuzione delle transazioni, e della gestione dello stato di Ethereum. I due livelli possono comunicare tra loro utilizzando l'Engine API. -## Cosa faceva la Beacon Chain? {#what-does-the-beacon-chain-do} +## Cosa fa la beacon chain? {#what-does-the-beacon-chain-do} -La Beacon Chain era il nome dato a un registro di conti che conduceva e coordinava la rete di [staker](/staking/) di Ethereum, prima che questi iniziassero a convalidare transazioni reali di Ethereum. Non elaborava le transazioni, né gestiva le interazioni del contratto intelligente. - -Ha introdotto il motore di consenso (o "livello di consenso") che ha preso il posto del mining di Proof of Work su Ethereum, apportando con esso molti miglioramenti significativi. - -La Beacon Chain è stata un componente fondamentale per [l'Ethereum sicura, ecosostenibile e scalabile che conosciamo ora](/roadmap/vision/). +Beacon Chain è il nome dato a un libro mastro di conti che hanno condotto e coordinato la rete di [staker](/staking/) di Ethereum, prima che questi iniziassero a convalidare i blocchi reali di Ethereum. Però, essa non elabora le transazioni o gestisce le interazioni con i contratti intelligenti, poiché ciò è effettuato nel livello d'esecuzione. La Beacon Chain è responsabile di cose come la gestione dei blocchi e delle attestazioni, l'esecuzione dell'algoritmo di scelta della biforcazione e la gestione di ricompense e sanzioni. Leggi di più sulla nostra [pagina sull'architettura dei nodi](/developers/docs/nodes-and-clients/node-architecture/#node-comparison). ## Impatto della Beacon Chain {#beacon-chain-features} ### Introduzione allo staking {#introducing-staking} -La Beacon Chain ha introdotto la [Proof of stake](/developers/docs/consensus-mechanisms/pos/) in Ethereum. Questo mantiene sicura Ethereum e consente ai validatori di guadagnare più ETH nel processo. In pratica, lo staking prevede di puntare ETH per poter attivare il software del validatore. Come staker, esegui il software che crea e convalida i nuovi blocchi nella catena. +La Beacon Chain ha introdotto la [proof of stake](/developers/docs/consensus-mechanisms/pos/) in Ethereum. Questo mantiene sicura Ethereum e consente ai validatori di guadagnare più ETH nel processo. In pratica, lo staking prevede di puntare ETH per poter attivare il software del validatore. Come staker, esegui il software che crea e convalida i nuovi blocchi nella catena. Lo staking serve a uno scopo simile a quello del [mining](/developers/docs/mining/), ma è differente in molti modi. Il mining richiedeva ingenti spese iniziali sotto forma di hardware potente e consumi energetici, risultando in economie di scala e promuovendo la centralizzazione. Il mining, inoltre, non prevedeva alcun requisito di bloccare le risorse come garanzie, limitando la capacità del protocollo di punire gli utenti malevoli dopo un attacco. -La transizione al Proof of stake ha reso Ethereum significativamente più sicura e decentralizzata rispetto al Proof of Work. Più persone parteciperanno alla rete, più questa diventerà decentralizzata e protetta dagli attacchi. +La transizione al proof of stake ha reso Ethereum significativamente più sicura e decentralizzata rispetto al proof of work. Più persone parteciperanno alla rete, più questa diventerà decentralizzata e protetta dagli attacchi. + +E l'utilizzo del proof of stake come meccanismo di consenso è un componente fondamentale per [l'Ethereum sicuro, ecosostenibile e scalabile che conosciamo ora](/roadmap/vision/). Se sei interessato a diventare un validatore e contribuire a proteggere Ethereum, scopri di più sullo staking. @@ -43,11 +41,11 @@ La transizione al Proof of stake ha reso Ethereum significativamente più sicura Da quando la Beacon Chain si è fusa con la Rete principale originale di Ethereum, la community di Ethereum ha iniziato a cercare di ridimensionare la rete. -La Proof of stake ha il vantaggio di avere un registro di tutti i produttori di blocchi approvati in ogni momento, ognuno con ETH in staking. Questo registro getta le basi per la capacità di dividere e conquistare, ma ripartisce in modo affidabile le specifiche responsabilità della rete. +Il proof of stake ha il vantaggio di avere un registro di tutti i produttori di blocchi approvati in ogni momento, ognuno con ETH in staking. Questo registro getta le basi per la capacità di dividere e conquistare, ma ripartisce in modo affidabile le specifiche responsabilità della rete. -Questa responsabilità è in contrasto con il Poof of Work, in cui i miner non hanno obblighi verso la rete e potrebbero interrompere il mining e disattivare permanentemente il loro software del nodo in un istante, senza ripercussioni. Inoltre, non esiste alcun registro di propositori di blocchi noti e nessun modo affidabile per ripartire le responsabilità della rete in modo sicuro. +Questa responsabilità è in contrasto con il proof of work, in cui i miner non hanno obblighi verso la rete e potrebbero interrompere il mining e disattivare permanentemente il loro software del nodo in un istante, senza ripercussioni. Inoltre, non esiste alcun registro di propositori di blocchi noti e nessun modo affidabile per ripartire le responsabilità della rete in modo sicuro. -[Scopri di più sullo sharding](/roadmap/danksharding/) +[Maggiori informazioni sullo sharding](/roadmap/danksharding/) ## Relazione tra gli aggiornamenti {#relationship-between-upgrades} @@ -63,7 +61,7 @@ Inizialmente la Beacon Chain esisteva separatamente dalla Rete principale di Eth ### Shard chain e beacon chain {#shards-and-beacon-chain} -Lo sharding potrà entrare in modo sicuro nell'ecosistema Ethereum solo quando sarà presente un meccanismo di consenso Proof of stake. La Beacon Chain ha introdotto lo staking, che si è 'fuso' con la Rete principale, spianando la strada allo sharding per contribuire a ridimensionare ulteriormente Ethereum. +Lo sharding potrà entrare in modo sicuro nell'ecosistema Ethereum solo quando sarà presente un meccanismo di consenso proof of stake. La Beacon Chain ha introdotto lo staking, che si è 'fuso' con la Rete principale, spianando la strada allo sharding per contribuire a ridimensionare ulteriormente Ethereum. Shard chain @@ -72,4 +70,5 @@ Lo sharding potrà entrare in modo sicuro nell'ecosistema Ethereum solo quando s ## Letture consigliate - [Maggiori informazioni sugli aggiornamenti futuri di Ethereum](/roadmap/vision) -- [Maggiori informazioni sul proof-of-stake](/developers/docs/consensus-mechanisms/pos) +- [Maggiori informazioni sull'architettura dei nodi](/developers/docs/nodes-and-clients/node-architecture) +- [Maggiori informazioni sul proof of stake](/developers/docs/consensus-mechanisms/pos) diff --git a/src/content/translations/it/roadmap/danksharding/index.md b/src/content/translations/it/roadmap/danksharding/index.md new file mode 100644 index 00000000000..6d9d880c0a6 --- /dev/null +++ b/src/content/translations/it/roadmap/danksharding/index.md @@ -0,0 +1,91 @@ +--- +title: Danksharding +description: Informazioni su Proto-Danksharding e Danksharding - due aggiornamenti sequenziali per scalare Ethereum. +lang: it +summaryPoints: + - Il danksharding è un aggiornamento multi-fase per migliorare la scalabilità e la capacità di Ethereum. + - La prima fase, il Proto-Danksharding, aggiunge i blob di dati ai blocchi + - I blob di dati offrono un modo più economico per i rollup di pubblicare i dati su Ethereum, tali costi possono essere trasferiti agli utenti sotto forma di commissioni di transazione inferiori. + - In seguito, il Dansharding completo diffonderà la responsabilità di verificare i blob di dati tra i sottoinsiemi di nodi, ridimensionando ulteriormente Ethereum, a oltre 100.000 transazioni al secondo. +--- + +# Danksharding {#danksharding} + +Il **Danksharding** è il metodo tramite cui Ethereum diventa una blockchain realmente scalabile ma, per arrivarci, sono necessari diversi aggiornamenti del protocollo. Il **Proto-Danksharding** è un passaggio intermedio, lungo tale percorso. Entrambi mirano a rendere le transazioni sul Livello 2 quanto più possibile economiche per gli utenti e dovrebbero ridimensionare Ethereum a >100.000 transazioni al secondo. + +## Cos'è il Proto-Danksharding? {#what-is-protodanksharding} + +Il Proto-Danksharding, anche noto come [EIP-4844](https://eips.ethereum.org/EIPS/eip-4844), è un metodo per i [rollup](/layer2/#rollups) per aggiungere dati più economici ai blocchi. Il nome proviene dai due ricercatori che hanno proposto l'idea: Protolambda e Dankrad Feist. Al momento, i rollup sono limitati, relativamente all'economicità a cui possono compiere le transazioni degli utenti, dal fatto che pubblicano le proprie transazioni in `CALLDATA`. Ciò è costoso poiché è elaborato da tutti i nodi di Ethereum e risiede per sempre sulla catena, anche se i rollup necessitano dei dati soltanto per un breve periodo. Il Proto-Danksharding introduce i blob di dati, inviabili e collegabili ai blocchi. I dati in tali blob non sono accessibili all'EVM e sono eliminati automaticamente dopo un periodo di tempo fisso (1-3 mesi). Ciò significa che i rollup possono inviare i propri dati in modo molto più economico, trasferendo i risparmi agli utenti finali nella forma di transazioni più economiche. + + + +I rollup sono un metodo per scalare Ethereum raggruppando le transazioni all'esterno della catena e, in seguito, pubblicando i risultati su Ethereum. Un rollup, essenzialmente, si compone di due parti: dati e controllo dell'esecuzione. I dati sono la sequenza completa delle transazioni elaborate da un rollup per produrre il cambiamento di stato pubblicato su Ethereum. Il controllo d'esecuzione è la ri-esecuzione di tali transazioni da un utente onesto (dimostratore) per aassicurarsi che il cambiamento di stato proposto sia corretto. Per poter effettuare il controllo d'esecuzione, i dati della transazione devono essere disponibili per un tempo sufficiente perché chiunque possa scaricarli e controllarli. Ciò significa che qualsiasi comportamento disonesto dal sequenziatore del rollup puà essere identificato e sfidato dal dimostratore. Tuttavia, non è necessario che sia disponibile per sempre. + + + + + +I rollup pubblicano gli impegni ai dati delle proprie transazioni on chain e, inoltre, rendono disponibili i dati effettivi nei blob di dati. Ciò significa che i dimostratori possono verificare che gli impegni siano validi o sfidare i dati che ritengono siano errati. Al livello del nodo, i blob di dati sono conservati nel client del consenso. I client del consenso attestano di aver visto i dati e che sono stati propagati per la rete. Se i dati fossero conservati per sempre, tali client si allargherebberò, determinando grandi requisiti hardware per l'esecuzione di nodi. Invece, i dati, sono eliminati automaticamente dal nodo ogni 1-3 mesi. Le attestazioni del client del consenso dimostrano che vi è stata un'opportunità sufficiente, affinché i dimostratori potessero verificare i dati. I dati effettivi possono essere memorizzati off-chain dagli operatori di rollup, dagli utenti o da terzi. + + + +### Come sono verificati i dati dei blob? {#how-are-blobs-verified} + +I rollup pubblicano le transazioni che eseguono nei blob di dati. Inoltre, pubblicano un "impegno" ai dati. Lo fanno fissando una funzione polinomiale ai dati. Questa è valutabile su vari punti. Ad esempio, se definiamo una funzione estremamente semplice `f(x) = 2x-1`, possiamo valutarla per `x = 1`, `x = 2`, `x = 3`, che danno i risultati `1, 3, 5`. Un dimostratore applica la stessa funzione ai dati, valutandoli sugli stessi punti. Se i dati originali vengono modificati, la funzione non sarà identica e quindi i valori non sono valutati in ciascun punto. In realtà, l'impegno e la prova sono più complicati poiché sono avvolti in funzioni crittografiche. + +### Cos'è KZG? {#what-is-kzg} + +KGZ sta per Kate-Zaverucha-Goldberg, i nomi dei tre [autori originali](https://link.springer.com/chapter/10.1007/978-3-642-17373-8_11) di uno schema che riduce un blob di dati a un piccolo ["impegno" crittografico](https://dankradfeist.de/ethereum/2020/06/16/kate-polynomial-commitments.html). Il blob di dati inviato da un rollup dev'essere verificato per assicurarsi che il rollup si stia comportando correttamente. Ciò richiede la ri-esecuzione delle transazioni nel blob da un dimostratore, per verificare che l'impegno sia valido. Questo equivale, concettualmente, al metodo con cui i client d'esecuzione verificano la validità delle transazioni di Ethereum sul livello 1, utilizzando le prove di Merkle. KZG è una prova alternativa che adatta un'equazione polinomiale ai dati. L'impegno valuta la polinomiale a determinati punti di dati segreti. Un dimostratore si adatterebbe alla stessa polinomiale sui dati, valutandola agli stessi valori e verificando che i risultati corrispondano. Questo è un modo per verificare che sia compatibile con le tecniche di conoscenza zero, utilizzate da alcuni rollup ed, eventualmente, da altre parti del protocollo di Ethereum. + +### Cos'è la cerimonia KZG? {#what-is-a-kzg-ceremony} + +Una cerimonia KZG è un metodo, per molte persone da tutta la community di Ethereum, di generare una stringa casuale segreta di numeri, utilizzabile per verificare dei dati. È molto importante che tale stringa di numeri non sia nota e non possa essere ricreata da nessuno. Per assicurarlo, ogni partecipante alla cerimonia riceve una stringa dal partecipante precedente. Quindi, possono creare dei nuovi valori casuali (ad esempio, consentendo al proprio browser di misurare il movimento del proprio mouse) e mischiandoli con il valore precedente. Quindi, inviano il valore al partecipante successivo e lo eliminano dalla propria macchina locale. Finché una persona nella cerimonia lo fa onestamente, il valore finale sarà sconosciuto a un utente malevolo. La cerimonia KZG dell'EIP-4844 è stata aperta al pubblico e decine di migliaia di persone hanno partecipato per aggiungere la propria entropia. Affinché la cerimonia sia compromessa, il 100% di questi partecipanti avrebbe dovuto essere attivamente disonesto. Dalla prospettiva dei partecipanti, se sanno di essere onesti, non è necessario fidarsi di nessun altro, poiché sanno di aver protetto la cerimonia (soddisfacendo individualmente il requisito del partecipante onesto "1 di N"). + + + +Quando un rollup pubblica i dati in un blob, fornisce un "impegno", pubblicato sulla catena. Questo, è il risultato della valutazione di un adattamento polinomiale ai dati, in certi punti. Questi punti sono definiti dai numeri casuali generati nella cerimonia KZG. I dimostratori, quindi, possono valutare la polinomiale agli stessi punti, per poter verificare i dati; se arrivano agli stessi valori, allora i dati sono corretti. + + + + + +Se qualcuno conoscesse le posizioni casuali utilizzate per l'impegno, sarebbe facile, per loro, generare una nuova polinomiaale che si adatti a quei punti specifici (cioè, una "collisione"). Ciò significa che potrebbero aggiungere o rimuovere i dati dal blob e, comunque, fornire una prova valida. Per impedirlo, invece di dare ai dimostratori le posizioni segrete effettive, ricevono in realtà le posizioni, avvolte in una "scatola nera" crittografica, utilizzando le curve ellittiche. Questi, infatti, rimescolano i valori in modo tale che i valori originali non siano decodificabili, ma con dimostratori e verificatori capaci in algebra, le polinomiali sono ancora valutabili ai punti rappresentati. + + + + + Né il Danksharding, né il Proto-Danksharding seguono il modello di "frammentazione" tradizionale, che mirava alla divisione della blockchain in più parti. Le catene di frammenti non fanno più parte della tabella di marcia. Invece, il Danksharding utilizza il campionamento dei dati distribuiti tra blob, per ridimensionare Ethereum. Ciò è molto più semplice da implementare. Questo modello, talvolta, è stato indicato come "frammentazione dei dati". + + +## Cos'è il Danksharding? {#what-is-danksharding} + +Il Danksharding è la piena realizzazione del ridimensionamento del rollup, avviata con il Proto-Danksharding. Il Dankshaarding comporterà enormi quantità di spazio su Ethereum, dove i rollup potranno riversare i dati compressi delle loro transazioni. Ciò significa che Ethereum potrà supportare centinaia di rollup individuali con facilità, rendendo realtà milioni di transazioni al secondo. + +Ciò funziona espandendo i blob collegati ai blocchi da 1 nel Proto-Danksharding a 64 nel Danksharding completo. Il resto delle modifiche necessarie sono tutti gli aggiornamenti al metodo di operazione dei client del consenso, per consentire loro di gestire i nuovi, grandi blob. Svariate di queste modifiche sono già sulla tabella di marcia per altri scopi, indipendenti dal Danksharding. Ad esempio, il Danksharding richiede la separazione del propositore e del costruttore, per essere implementata. Questo è un aggiornamento che separa le mansioni di costruzione e proposta dei blocchi, tra validatori differenti. Similmente, il campionamento della disponibilità dei dati è necessario per il Danksharding, ma è anche necessario per lo sviluppo di client molto leggeri, che non memorizzano molti dati storici ("client privi di stato"). + + + +La separazione di propositori e costruttori è necessaria per impedire ai singoli validatori di dover generare costosi impegni e prove, per 32 MB di dati del blob. Questo metterebbe a dura prova gli staker domestici e richiederebbe loro di investire in hardware più potenti, danneggiando la decentralizzazione. Invece, i costruttori di blocchi specializzati si prendono la responsabilità di questo costoso lavoro di calcolo. Poi, mettono a disposizione i propri blocchi ai propositori di blocchi per la trasmissione. Il propositore di blocchi, semplicemente, sceglie il blocco più redditizio. Chiunque può verificare i blob in modo economico e rapido, a significare che ogni normale validatore può verificare che i costruttori di blocchi si stiano comportando onestamente. Ciò consente ai blob grandi di essere elaborati, senza sacrificare la decentralizzazione. I costruttori di blocchi malevoli potrebbero semplicemente essere esplusi dalla rete e tagliati; altri arriverebbero al loro posto, poiché la costruzione di blocchi è un'attività redditizia. + + + + + +Il campionamento della disponibilità dei dati è necessario perché i validatori verifichino in modo rapido ed efficace i dati dei blob. Utilizzando il campionmento della disponibilità dei dati, i validatori possono essere davvero certi che i blob di dati fossero disponibili e che siano stati inviati correttamente. Ogni validatore può campionare casualmente alcuni punti di dati e creare una prova, a significare che nessun validatore deve verificare l'intero blob. Se mancano dei dati, saranno identificati rapidamente e il blob sarà respinto. + + + +### Stato attuale {#current-progress} + +Il Danksharding completo dista svariati anni. Tuttavia, il Proto-Danksharding dovrebbe arrivare relativamente presto. Al momento della scrittura (Feb 2023), la cerimonia KZG è ancora aperta e finora ha attirato oltre 50.000 collaboratori. L'[EIP](https://eips.ethereum.org/EIPS/eip-4844) per il Proto-Danksharding è matura, le specifiche sono concordate e i client hanno implementato dei prototipi, attualmente in fase di prova e preparazione alla produzione. La prossima fase è implementare le modifiche su una rete di prova pubblica. Puoi tenerti aggiornato utilizzando la [lista di controllo di prontezza dell'EIP-4844](https://github.com/ethereum/pm/blob/master/Breakout-Room/4844-readiness-checklist.md#client-implementation-status). + +### Letture consigliate {#further-reading} + +- [Note sul Proto-Danksharding](https://notes.ethereum.org/@vbuterin/proto_danksharding_faq) - _Vitalik Buterin_ +- [Note di Dankrad sul Danksharding](https://notes.ethereum.org/@dankrad/new_sharding) +- [Dankrad, Proto e Vitalik discutono sul Danksharding](https://www.youtube.com/watch?v=N5p0TB77flM) +- [La cerimonia KZG](https://ceremony.ethereum.org/) +- [Il discorso di Carl Beekhuizen al Devcon sulle configurazioni attendibili](https://archive.devcon.org/archive/watch/6/the-kzg-ceremony-or-how-i-learnt-to-stop-worrying-and-love-trusted-setups/?tab=YouTube) +- [Maggiori informazioni sul campionamento della disponibilità dei dati per i blob](https://hackmd.io/@vbuterin/sharding_proposal#ELI5-data-availability-sampling) +- [Dankrad Feist su impegni e prove del KZG](https://youtu.be/8L2C6RDMV9Q) +- [Impegni polinomiali KZG](https://dankradfeist.de/ethereum/2020/06/16/kate-polynomial-commitments.html) diff --git a/src/content/translations/it/roadmap/future-proofing/index.md b/src/content/translations/it/roadmap/future-proofing/index.md new file mode 100644 index 00000000000..f65f3cc2d88 --- /dev/null +++ b/src/content/translations/it/roadmap/future-proofing/index.md @@ -0,0 +1,38 @@ +--- +title: Rendere Ethereum a prova di futuro +description: Questi aggiornamenti cementano Ethereum come lo strato fondamentale, resiliente e decentralizzato per il futuro, indipendentemente da ciò che conterrà. +lang: it +image: ../../../../../assets/roadmap/roadmap-future.png +alt: "Roadmap di Ethereum" +template: roadmap +--- + +Alcune parti della tabella di marcia non sono necessariamente richieste per ridimensionare o proteggere Ethereum sul breve termine, ma per organizzarlo per la stabilità e affidabilità future. + +## Resistenza quantistica {#quantum-resistance} + +Parte della protezione crittografica odierna di Ethereum sarà compromessa quando i computer quantistici diverranno una realtà. Sebbene i computer quantistici siano probabilmente a decenni dall'essere una vera minaccia per la crittografia moderna, Ethereum ha una struttura che ne garantisce la sicurezza nei secoli a venire. Ciò significa rendere [Ethereum resistente ai computer quantistici](https://consensys.net/blog/developers/how-will-quantum-supremacy-affect-blockchain/), il prima possibile. + +La sfida affrontata dagli sviluppatori di Ethereum è che l'attuale protocollo di proof-of-stake si affida a uno schema di firme molto efficiente, noto come BLS, per aggregare i voti su blocchi validi. Questo schema di firme è infranto dai computer quantistici, ma le alternative resistenti a essi non sono altrettanto efficaci. + +Gli [schemi di impegno "KZG"](/roadmap/danksharding/#what-is-kzg) utilizzati in svariati punti su Ethereum per generare frasi segrete crittografiche sono noti per la loro vulnerabilità ai computer quantistici. Al momento, il problema viene eluso utilizzando le "configurazioni fidate", in cui molti utenti generano casualità non decodificabili da un computer quantistico. Tuttavia, la soluzione ideale sarebbe semplicemente incorporare, piuttosto, la crittografia sicura contro i computer quantistici. Esistono due approcci principali che potrebbero divenire efficienti sostituti per lo schema BLS: la firma [basata su STARK](https://hackmd.io/@vbuterin/stark_aggregation) e [basata su reticolo](https://medium.com/asecuritysite-when-bob-met-alice/so-what-is-lattice-encryption-326ac66e3175). Queste, sono ancora ricercate e prototipate. + + Leggi su KZG e le configurazioni fidate + +## Un Ethereum più semplice ed efficiente {#simpler-more-efficient-ethereum} + +La complessità crea opportunità per bug o vulnerabilità sfruttabili dagli utenti malevoli. Dunque, parte della tabella di marcia è semplificare Ethereum e rimuovere il codice rimanente dai vari aggiornamenti, ma non più necessario o migliorabile. Una base di codice più snella e semplice è, per gli sviluppatori, più facile da mantenere, nonché da ragionare. + +Esistono diversi aggiornamenti che saranno apportati alla [Macchina Virtuale di Ethereum (EVM)](/developers/docs/evm), per renderla più semplice ed efficiente. Questi includono la [rimozione del codice operativo SELFDESTRUCT](https://hackmd.io/@vbuterin/selfdestruct): un comando raramente utilizzato e non più necessario che, in certe circostanze, può essere pericoloso da usare, specialmente quando combinato con altri aggiornamenti futuri al modello di archiviazione di Ethereum. Inoltre, i client di Ethereum supportano ancora i vecchi tipi di transazioni, che possono ora essere completamente rimossi. Anche il metodo di calcolo del gas è migliorabile e possono essere introdotti metodi più efficienti per il sostegno aritmetico di certe operazioni crittografiche. + +Similmente, esistono aggiornamenti apportabili ad altre parti dei client odierni di Ethereum. Un esempio sono i client d'esecuzione e consenso odierni, che utilizzano un tipo di compressione dei dati differente. Sarebbe molto più facile e intuitivo condividere i dati tra i client, quando lo schema di compressione è unificato per l'intera rete. + +## Stato attuale {#current-progress} + +Gran parte degli aggiornamenti necessari per rendere Ethereum a prova di futuro sono ancora in fase di ricerca e potrebbero essere a distanza di svariati anni dall'essere implementati. Gli aggiornamenti come la rimozione di SELF-DESTRUCT e l'armonizzazione dello schema di compressione utilizzato nei client d'esecuzione e del consenso potrebbero arrivare prima della crittografia resistente ai computer quantistici. + +**Letture consigliate** + +- [Gas](/developers/docs/gas) +- [EVM](/developers/docs/evm) +- [Strutture di dati](/developers/docs/data-structures-and-encoding) diff --git a/src/content/translations/it/roadmap/index.md b/src/content/translations/it/roadmap/index.md new file mode 100644 index 00000000000..7033497a271 --- /dev/null +++ b/src/content/translations/it/roadmap/index.md @@ -0,0 +1,117 @@ +--- +title: Roadmap di Ethereum +description: Il percorso verso una maggiore scalabilità, sicurezza e sostenibilità per Ethereum. +lang: it +template: roadmap +image: ../../assets/roadmap/roadmap-main.png +alt: "Roadmap di Ethereum" +summaryPoints: +buttons: + - label: Ulteriori aggiornamenti + toId: what-changes-are-coming + - label: Aggiornamenti precedenti + to: /history/ + variant: outline +--- + +Ethereum è già una potente piattaforma per il coordinamento globale, ma è ancora in fase di miglioramento. Una serie ambiziosa di miglioramenti trasformerà Ethereum dalla sua forma attuale in una piattaforma completamente scalata e al massimo resiliente. Questi aggiornamenti sono previsti nella tabella di marcia di Ethereum. + +**Per conoscere gli aggiornamenti precedenti a Ethereum, vi preghiamo di visita la nostra pagina [Cronologia](/history/)** + +## Quali cambiamenti stanno arrivando su Ethereum? {#what-changes-are-coming} + +La tabella di marcia Ethereum delinea i miglioramenti specifici che saranno apportati al protocollo in futuro. Nel complesso, la tabella di marcia apporterà i seguenti vantaggi agli utenti di Ethereum: + + + + + + + + +## Perché Ethereum necessita di una tabella di marcia? {#why-does-ethereum-need-a-roadmap} + +Ethereum riceve aggiornamenti regolari che migliorano la sua scalabilità, sicurezza o sostenibilità. Uno dei punti di forza di Ethereum è l'adattamento man mano che nuove idee emergono dalla ricerca e sviluppo. L'adattabilità offre a Ethereum la flessibilità per affrontare le sfide emergenti e tenere il passo con le innovazioni tecnologiche più avanzate. + + + +La tabella di marcia è principalmente il risultato di anni di lavoro da parte di ricercatori e sviluppatori - perché il protocollo è molto tecnico - ma qualsiasi persona motivata può partecipare. Le idee di solito iniziano come discussioni su un forum come [ethresear.ch](https://ethresear.ch/), [Ethereum magicians](https://www.figma.com/exit?url=https%3A%2F%2Fethereum-magicians.org%2F) o il server Eth R&D discord. Possono essere risposte a nuove vulnerabilità che vengono scoperte, suggerimenti da parte di organizzazioni che lavorano nel livello dell'applicazione (come dapps e borse) o da attriti conosciuti per gli utenti finali (come costi o velocità di transazione). Quando queste idee maturano, possono essere proposte come [Ethereum Improvement Proposals](https://eips.ethereum.org/). Tutto questo viene fatto in pubblico in modo che chiunque della comunità possa esprimere la propria opinione in qualsiasi momento. + +[Ulteriori informazioni sulla governance di Ethereum](/governance/) + + + + +

Cos'è stato l'ETH?

+ +

Il termine 'Eth2' è stato comunemente usato per descrivere il futuro di Ethereum prima del passaggio alla proof-of-stake ma è stato gradualmente eliminato a favore di una terminologia più precisa. Originariamente è stato utilizzato per differenziare la rete Ethereum prima del passaggio alla proof-of-stake e la rete successiva, o a volte per fare riferimento ai diversi clienti di Ethereum (i clienti di esecuzione sono stati talvolta denominati clienti ETH1 e i clienti di consenso sono stati talvolta denominati clienti ETH2).

+ +
+ +## La tabella di marcia di Ethereum cambierà nel tempo? {#will-ethereums-roadmap-change-over-time} + +Sì, quasi definitivamente. La tabella di marcia è l'attuale piano per l'aggiornamento di Ethereum, che copre sia i piani a breve termine che quelli futuri. Ci aspettiamo che la tabella di marcia cambi man mano che saranno disponibili nuove informazioni e tecnologie. + +Pensa alla tabella di marcia di Ethereum come a una serie di intenzioni per migliorare Ethereum; è l'ipotesi migliore dei ricercatori e sviluppatori centrali del percorso ottimale di Ethereum. + +## Quando terminerà la tabella di marcia? {#when-will-the-roadmap-be-finished} + +Ethereum implementerà alcuni aggiornamenti nei prossimi sei mesi (ad es. prelievi dallo staking); altri sono meno prioritari e probabilmente non saranno attuati per i prossimi 5-10 anni (ad esempio resistenza quantistica). Dare tempi precisi per ogni aggiornamento è complicato poichémolti elementi della tabella di marcia vengono elaborati in parallelo e sviluppati a velocità diverse. L'urgenza di un aggiornamento può anche cambiare nel tempo a seconda di fattori esterni (ad es. un salto avanti improvviso nelle prestazioni e nella disponibilità di computer quantistici può rendere più urgente la crittografia a resistenza quantistica). + +Un modo in cui pensare allo sviluppo di Ethereum è per analogia all'evoluzione biologica. Una rete in grado di adattarsi alle nuove sfide e di mantenere l'idoneità ha più probabilità di successo rispetto una che oppone resistenza al cambiamento, anche se man mano che la rete diventa sempre più performante, scalabile e sicura, richeiderà meno modifiche al protocollo. + +## Devo fare qualcosa quando c'è un aggiornamento? {#do-i-have-to-do-anything-when-there-is-an-upgrade} + +Gli aggiornamenti tendono a non influenzare gli utenti finali e forniscono migliori esperienze utente e un protocollo più sicuro e forze più modalità di opzioni interazione con Ethereum. Gli usi finali non sono tenuti a partecipare attivamente a un aggiornamento, né sono tenuti a fare nulla per garantire i loro beni. Gli operatori dei nodi dovranno aggiornare i loro client per prepararsi a un aggiornamento. Alcuni aggiornamenti possono portare a modifiche per gli sviluppatori di applicazioni. Ad esempio, gli aggiornamenti della scadenza della cronologia possono indurre gli sviluppatori di applicazioni a prendere i dati storici da nuove fonti. + +## Che cosa sono l'Orlo, lo Spreco, ecc.? {#what-about-the-verge-splurge-etc} + +[Vitalik Buterin ha proposto una visione per la tabella di marcia di Ethereum](https://twitter.com/VitalikButerin/status/1588669782471368704) che è stata organizzata in diverse categorie legate dai loro effetti sull'architettura di Ethereum. Tale visione comprendeva: + +- La Fusione: aggiornamenti relativi al passaggio dal proof-of-work al proof-of-stake +- L'Ondata: aggiornamenti correlati alla scalabilità tramite rollup e frammentazione dei dati +- Il Flagello: aggiornamenti correlati alla resistenza alla censura, alla decentralizzazione e ai rischi di protocollo dal MEV +- L'Orlo: aggiornamenti correlati alla verifica semplificata dei blocchi +- L'Epurazione: aggiornamenti correlati alla riduzione dei costi di calcolo dell'esecuzione dei nodi e semplificazione del protocollo +- Lo Spreco: altri aggiornamenti che non si adattano bene alle categorie precedenti. + +Abbiamo deciso di non utilizzare questa terminologia perché volevamo utilizzare un modello più semplice e incentrato sull'utente. Sebbene utilizziamo un linguaggio incentrato sugli utenti, la visione resta la stessa proposta da Vitalik. + +## Cos'è la frammentazione? {#what-about-sharding} + +La frammentazione consiste nella divisione della blockchain di Ethereum, così che dei sottoinsiemi di validatori siano responsabili soltanto per una frazione dei dati totali. Questo doveva essere il metodo originariamente inteso per il ridimensionamento di Ethereum. Tuttavia, i rollup di livello 2 si sono sviluppati molto più velocemente del previsto, fornendo già un grande ridimensionamento, e ne forniranno molto altro dopo l'implementazione del Proto-Danksharding. Ciò significa che le "catene di frammenti" non sono più necessarie e sono state rimosse dalla tabella di marcia. + +## Cerchi aggiornamenti tecnici specifici? {#looking-for-specific-technical-upgrades} + +- [Danksharding](/roadmap/danksharding) - Il Danksharding rende i rollup di livello 2 molto più economici, aggiungendo dei "blob" di dati ai blocchi di Ethereum. +- [Prelievi di Staking](/staking/withdrawals): L'aggiornamento di Shanghai/Capella ha consentito i prelievi di staking su Ethereum, consentendo alle persone di sbloccare i propri ETH in staking. +- [Finalità dello spazio singolo](/roadmap/single-slot-finality): Invece di attendere quindici minuti, i blocchi potrebbero essere proposti e finalizzati nello stesso spazio. Ciò è più comodo per le app e molto più difficile da attaccare. +- [Separazione tra propositori e costruttori](/roadmap/pbs): Divisione delle mansioni di costruzione e proposta dei blocchi tra validatori separati, creando un metodo più giusto, resistente alla censura ed efficiente per Ethereum, per arrivare al consenso. +- [Elezione segreta di un capo](/roadmap/secret-leader-election): Una crittografia intelligente è utilizzabile per assicurarsi che l'identità del propositore di blocchi corrente non sia resa pubblica, proteggendolo da certi tipi di attacchi. +- [Astrazione del conto](/roadmap/account-abstraction): L'astrazione del conto è una classe di aggiornamenti che supportano nativamente i portafogli di contratti intelligenti su Ethereum, invece di dover utilizzare middleware complessi. +- [Alberi di Verkle](/roadmap/verkle-trees): Gli alberi di Verkle sono strutture di dati utilizzabili per consentire i client privi di stato su Ethereum. Questi client "privi di stato" richiederanno una minuscola quantità di spazio di archiviazione, ma potranno comunque verificare i nuovi blocchi. +- [Assenza di stato](/roadmap/statelessness): i client privi di stato potranno verificare i nuovi blocchi senza dover memorizzare grandi quantità di dati. Questo fornirà tutti i benefici dell'operazione di un nodo, con soltanto una minuscola frazione dei costi odierni. diff --git a/src/content/translations/it/roadmap/merge/index.md b/src/content/translations/it/roadmap/merge/index.md index 1c019092dc0..c9f55308670 100644 --- a/src/content/translations/it/roadmap/merge/index.md +++ b/src/content/translations/it/roadmap/merge/index.md @@ -91,15 +91,18 @@ title="Sviluppatori di dapp e contratti intelligenti" contentPreview="The Merge was designed to have minimal impact on smart contract and dapp developers." id="developers"> -La Fusione comporta modifiche al consenso, che includono anche modifiche correlate a: +La Fusione è stata accompagnata da modifiche al consenso, incluse anche modifiche relative a:< -- la struttura del blocco -- tempistiche dello slot/blocco -- modifiche all'opcode -- fonti di casualità su catena -- concetto di _testa sicura_ e _blocchi finalizzati_ +
    +
  • struttura del blocco
  • +
  • tempistiche spazio/blocco
  • +
  • modifiche ai codici operativi
  • +
  • fonti di casualità su catena on-chain
  • +
  • concetto di testa sicura e blocchi finalizzati
  • +
+ +Per ulteriori informazioni, consulta questo post del blog di Tim Beiko su Come La Fusione Influenza il Livello d'Applicazione di Ethereum. -Per ulteriori informazioni, dai un'occhiata a questo post del blog di Tim Beiko su [Come La Fusione Influisce sul Livello di Applicazione di Ethereum](https://blog.ethereum.org/2021/11/29/how-the-merge-impacts-app-layer/). ## La Fusione e il consumo energetico {#merge-and-energy} @@ -115,26 +118,29 @@ La Fusione ha inoltre gettato le basi per ulteriori aggiornamenti di scalabilit + Esistono due tipi di nodi di Ethereum: i nodi che possono proporre blocchi e quelli che non possono. I nodi che propongono blocchi sono solo una minima parte dei nodi totali su Ethereum. Questa categoria include i nodi di mining in modalità Proof of Work (PoW) e i nodi validatori in modalità Proof of stake (PoS). Questa categoria richiede l'impegno di risorse economiche (come la potenza di hash della GPU nel Proof of Work o ETH in staking nel Proof of stake) in cambio della capacità di proporre occasionalmente il blocco successivo e ottenere le ricompense del protocollo. Gli altri nodi sulla rete (cioè, la maggioranza) non devono impegnare alcuna risorsa economica oltre a un computer di livello consumer con 1-2 TB di spazio di archiviazione disponibile e una connessione a Internet. Questi nodi non propongono blocchi, tuttavia, rivestono un ruolo critico nel proteggere la rete, considerando responsabili tutti i propositori di blocco, ascoltando nuovi blocchi e verificandone la validità all'arrivo, secondo le regole di consenso della rete. Se il blocco è valido, il nodo continua a propagarlo per la rete. Se per qualsiasi motivo il blocco non è valido, il software del nodo lo scarterà come non valido e ne interromperà la propagazione. -Eseguire un nodo che non produce blocchi è possibile per chiunque in entrambi i meccanismi di consenso (Proof of Work o Proof of stake); è _fortemente consigliato_ a tutti gli utenti che ne hanno i mezzi. Eseguire un nodo è estremamente prezioso per Ethereum e offre benefici aggiuntivi a ogni persona che ne esegue uno, come maggiore sicurezza, privacy e resistenza alla censura. +Eseguire un nodo che non produce blocchi è possibile per chiunque, in entrambi i meccanismi di consenso (proof-of-work o proof-of-stake); si vivamente consigliato a tutti gli utenti, se ne hanno i mezzi. Eseguire un nodo è estremamente prezioso per Ethereum e offre benefici aggiuntivi a ogni persona che ne esegue uno, come maggiore sicurezza, privacy e resistenza alla censura. -L'abilità per chiunque di eseguire il proprio nodo è _assolutamente essenziale_ per mantenere la decentralizzazione della rete Ethereum. +L'abilità per chiunque di gestire il proprio nodo è assolutamente essenziale per mantenere la decentralizzazione della rete di Ethereum. -[Maggiori informazione sull'esecuzione del proprio nodo](/run-a-node/) +Ulteriori informazioni sull'esecuzione di un proprio nodo + Le commissioni del gas sono un prodotto della domanda di rete relativo alla capacità della rete. La Fusione ha reso obsoleto l'uso del Proof of Work, passando al Proof of stake per il consenso, ma non ha modificato significativamente alcun parametro che influenzi direttamente la capacità o il volume di rete. -Con una [tabella di marcia incentrata sul rollup](https://ethereum-magicians.org/t/a-rollup-centric-ethereum-roadmap/4698), gli sforzi si concentrano su scalare l'attività degli utenti al [livello 2](/layer-2/), abilitando allo stesso tempo la Rete principale di livello 1 come livello di accordo decentralizzato sicuro, ottimizzato per l'archiviazione dei dati di rollup per aiutare a rendere esponenzialmente più economiche le transazioni di rollup. La transizione al Proof of stake è un precursore essenziale per realizzarlo. [Di più su gas e commissioni.](/developers/docs/gas/) +Con una tabella di marcia incentrata sui rollup, gli sforzi si concentrano sul ridimensionamento delle attività degli utenti al livello 2, consentendo alla Rete Principale di Livello 1 di essere un livello di accordo decentralizzato e sicuro, ottimizzato per l'archiviazione dei dati dei rollup, per aiutare a rendere esponenzialmente più economiche le transazioni dei rollup. La transizione al Proof of stake è un precursore essenziale per realizzarlo. Ulteriori informazioni su gas e commissioni. + -Gli ETH in staking e le ricompense di staking continuano a esser bloccate, senza possibilità di prelievo. I prelievi sono pianificati per il prossimo aggiornamento di Shanghai. - +contentPreview="False, but staking withdrawals have since been enabled via the Shanghai/Capella upgrade."> - -Questo potrebbe sembrare controintuitivo rispetto alla nota precedente, ovvero che i prelievi non saranno abilitati fino all'aggiornamento di Shanghai, ma i validatori HANNO accesso immediato alle ricompense/MEV delle commissioni ottenute durante le proposte dei blocchi. +Inizialmente, dopo La Fusione, gli staker potevano accedere soltanto alle mance delle commissioni e la MEV guadagnate come conseguenza delle proposte di blocchi. Queste ricompense sono accreditate a un conto non di staking, controllato dal validatore (noto come il destinatario della commissione) e sono immediatamente disponibili. Queste ricompense sono separate dalle ricompense del protocollo, per l'esecuzione dei doveri del validatore. -Il protocollo emette ETH come una ricompensa ai validatori per aver contribuito al consenso. Il livello di consenso tiene conto degli ETH appena emessi, in cui un validatore ha un indirizzo univoco che detiene i suoi ETH in staking e le ricompense del protocollo. Questi ETH sono bloccati fino a Shanghai. +Dall'aggiornamento della rete di Shanghai/Capella, gli staker possono ora designare un indirizzo di prelievo per iniziare a ricevere pagamenti automatici di qualsiasi saldo di staking in eccesso (ETH superiori a 32, da ricompense del protocollo). Questo aggiornamento, inoltre, ha consentito la capacità di un validatore di sbloccare e rivendicare l'intero saldo all'uscita dalla rete. + +Maggiori informazioni sui prelievi in staking -Gli ETH sul livello di esecuzione sono contabilizzati separatamente dal livello di consenso. Quando gli utenti eseguono le transazioni sulla Rete Principale di Ethereum, devono esser pagati degli ETH per coprire il gas, inclusa una mancia al validatore. Questi ETH sono già sul livello di esecuzione, NON sono appena stati emessi dal protocollo e sono disponibili immediatamente al validatore (a condizione che un indirizzo `fee recipient` adatto sia fornito al software client). -Dopo che l'aggiornamento di Shanghai avrà consento i prelievi, tutti i validatori saranno incentivati a prelevare il proprio saldo di staking oltre i 32 ETH, poiché questi fondi non si aggiungono al rendimento e sono altrimenti bloccati. A seconda dell'APR (determinato dagli ETH in staking totali), potrebbero esser incentivati a uscire dai loro validatori per rivendicare il proprio saldo per intero o metterne potenzialmente in staking persino di più usando le proprie ricompense per ottenere maggiori rendimenti. +Quando l'aggiornamento di Shnanghai/Capella ha consentito i prelievi, i validatori sono stati incentivati a prelevare il proprio saldo di staking superiore a 32 ETH, poiché questi fondi non si sommano alla resa e sono altrimenti bloccati. A seconda dell'APR (determinato dagli ETH in staking totali), potrebbero esser incentivati a uscire dai loro validatori per rivendicare il proprio saldo per intero o metterne potenzialmente in staking persino di più usando le proprie ricompense per ottenere maggiori rendimenti. + +Un importante avvertimento, qui, le uscite dei validatori completi sono limitate in tasso dal protocollo e soltanto un certo numero di validatori può uscire, per ogni epoca (ogni 6,4 minuti). Questo limite fluttua a second del numero di validatori attivi, ma equivale, all'incirca, allo 0,33% degli ETH in staking totali, che possono uscire dalla rete in un singolo giorno. -Ecco un'importante avvertenza, le uscite complete dai validatori sono limitate in termini di frequenza dal protocollo, quindi solo sei validatori possono uscire per ogni epoca (ogni 6,4 minuti, quindi 1350 al giorno o solo circa 43.200 ETH al giorno degli oltre 10 milioni di ETH in staking). Questo limite di frequenza si regola a seconda degli ETH in staking totali e impedisce un esodo di massa di fondi. Inoltre, impedisce a un potenziale utente malevolo di usare il suo saldo di staking per commettere un illecito passibile di slashing e di uscire dal suo saldo di staking per intero nella stessa epoca prima che il protocollo possa applicare la sanzione di slashing. +Ciò impedisce un esodo di massa dei fondi in staking. Inoltre, previene che un potenziale utente malevolo, con accesso a una grande porzione degli ETH in staking totali, commetta un illecito passibile di slashing e prelevi per intero i saldi del validatore incriminato di staking per intero nella stessa epoca prima che il protocollo possa applicare la sanzione di slashing. -L'APR è intenzionalmente dinamico, consentendo a un mercato di staker di ponderare quanto vogliano essere pagati per contribuire a proteggere la rete. Quando i prelievi saranno abilitati, se la frequenza sarà troppo bassa, allora i validatori usciranno a una frequenza limitata dal protocollo. Questo porterà gradualmente all'aumento dell'APR per chiunque rimanga, attirando staker nuovi o di ritorno. +L'APR, inoltre, è intenzionalmente dinamico, consentendo a un mercato di staker di bilanciare quanto desiderano essere pagati per contribuire alla protezione della rete. Se il tasso è troppo basso, i validatori usciranno a un tasso limitato dal protocollo. Questo porterà gradualmente all'aumento dell'APR per chiunque rimanga, attirando staker nuovi o di ritorno. ## Cos'è successo a 'Eth2'? {#eth2} @@ -203,9 +207,9 @@ I blocchi sono invece proposti dai nodi di convalida, che ottengono ETH in staki ### La Fusione e l'aggiornamento di Shanghai {#merge-and-shanghai} -Per poter semplificare e massimizzare l'attenzione sulla riuscita della transizione al Proof of stake, l'aggiornamento de La Fusione non ha incluso alcune funzionalità annunciate, come la possibilità di prelevare gli ETH in staking. Si prevede che l'aggiornamento di Shanghai segua La Fusione, abilitando la possibilità di prelievo per gli staker. +Per poter semplificare e massimizzare l'attenzione sulla riuscita della transizione al Proof of stake, l'aggiornamento de La Fusione non ha incluso alcune funzionalità annunciate, come la possibilità di prelevare gli ETH in staking. Questa funzionalità è stata abilitata separatamente, con l'aggiornamento di Shanghai/Capella. -Rimani aggiornato sul [Problema di pianificazione dell'aggiornamento di Shanghai su GitHub](https://github.com/ethereum/pm/issues/450), o sul [Blog di Ricerca e Sviluppo dell'EF](https://blog.ethereum.org/category/research-and-development/). Per i curiosi, scoprite di più su [Cosa succede dopo la Fusione](https://youtu.be/7ggwLccuN5s?t=101), presentato da Vitalik all'evento ETHGlobal di aprile 2021. +Per i curiosi, scoprite di più su [Cosa succede dopo la Fusione](https://youtu.be/7ggwLccuN5s?t=101), presentato da Vitalik all'evento ETHGlobal di aprile 2021. ### La Fusione e lo sharding {#merge-and-data-sharding} diff --git a/src/content/translations/it/roadmap/merge/issuance/index.md b/src/content/translations/it/roadmap/merge/issuance/index.md new file mode 100644 index 00000000000..5c102d06e26 --- /dev/null +++ b/src/content/translations/it/roadmap/merge/issuance/index.md @@ -0,0 +1,134 @@ +--- +title: In che modo La Fusione ha influenzato l'offerta di ETH +description: Analisi dell'impatto de La Fusione sull'offerta di ETH +lang: it +--- + +# In che modo La Fusione ha influenzato l'offerta di ETH {#how-the-merge-impacts-ETH-supply} + +La Fusione ha rappresentato la transizione delle reti di Ethereum dal proof-of-work al proof-of-stake, verificatasi a settembre 2022. Il metodo di emissione degli ETH ha subito delle modifiche al momento di tale transizione. Precedentemente, i nuovi ETH erano emessi da due fonti: il livello d'esecuzione (cioè la Rete Principale) e il livello di consenso (cioè La Beacon Chain). Da La Fusione, l'emissione sul livello d'esecuzione è ora pari a zero. Analizziamolo. + +## Componenti dell'emissione di ETH {#components-of-eth-issuance} + +Possiamo spezzare la fornitura di ETH in due forze principali: emissione e bruciatura. + +L'**emissione** di ETH è il procedimento di creazione di ETH, che precedentemente non esisteva. La **bruciatura** di ETH è quando gli ETH esistenti vengono distrutti, rimuovendoli dalla circolazione. Il tasso di emissione e bruciatura viene calcolato su diversi parametri e, il saldo tra di essi, determina il tasso di inflazione/deflazione di ether risultante. + + + +- Prima di passare al proof of stake, i miner emettevano approssimativamente 13.000ETH/giorno +- Gli staker emettono approssimativamente 1.700 ETH/giorno, sulla base di un totale di circa 14 milioni di ETH in staking +- L'emissione di staking esatta fluttua a seconda dell'importo totale di ETH in staking +- **Da La Fusione, restano approssimativamnte soltanto 1.700 ETH/giorno, riducendo la nuova emissione totale di ETH di circa l'88%** +- La bruciatura: questa, fluttua secondo la domanda di rete. _Se_ per un dato giorno si osserva un prezzo di gas medio di almeno 16 gwei, questo compensa effettivamente i circa 1.700 ETH emessi ai validatori e porta l'inflazione netta di ETH a zero, o meno, per quel giorno. + + + +## Pre-Fusione (storico) {#pre-merge} + +### Emissione del livello d'esecuzione {#el-issuance-pre-merge} + +Sotto il proof of work, i miner interagivano soltanto con il livello d'esecuzione, venendo ricompensati con ricompense dei blocchi, se erano i primi a risolvere il blocco successivo. Dall'[aggiornamento di Costantinopoli](/history/#constantinople) nel 2019, questa ricompensa era di 2 ETH per blocco. I miner, inoltre, erano ricompensati per la pubblicazione di blocchi [ommer](/glossary/#ommer), blocchi validi che non finivano nella catena più lunga/canonica. Queste ricompense erano massimizzate a 1,75 ETH per ommer ed erano _da sommarsi_ alla ricompensa emessa dal blocco canonico. Il processo di mining era un'attività economicamente intensiva che, storicamente, richiedeva elevati livelli di emissione di ETH per essere sostenuta. + +### Emissione del livello del consenso {#cl-issuance-pre-merge} + +La [Beacon Chain](/history/#beacon-chain-genesis) è stata attivata nel 2020. Invece dei miner, è protetta dai validatori, che utilizzano il proof of stake. Questa catena è stata avviata dagli utenti di Ethereum, che depositavano ETH a senso unico in uno smart contract sulla Rete Principale (il livello d'esecuzione), ascoltato dalla Beacon Chain, accreditando l'utente con un importo equivalente di ETH, sulla nuova catena. Fino alla Fusione, i validatori della Beacon Chain non stavano elaborando le transazioni e, fondamentalmente, arrivavano al consenso sullo stato dello stesso gruppo di validatori. + +I validatori sulla Beacon Chain sono ricompensati con ETH per l'attestazione allo stato della catena e la proposta di blocchi. Le ricompense (o penalità) sono calcolate e distribuite a ogni epoca (ogni 6,4 minuti) a seconda delle prestazioni del validatore. Le ricompense del validatore sono **significativamente** inferiori a quelle di mining, emesse precedentemente sotto il proof-of-work (pari a 2 ETH circa ogni 13,5 secondi), poiché l'operazione di un nodo di convalida non è altrettanto intenso dal punto di vista economico e quindi non richiede né garantisce una ricompensa altrettanto elevata. + +### Analisi sulle emissioni pre-Fusione {#pre-merge-issuance-breakdown} + +Offerta totale di ETH: **circa 120.520.000 ETH** (al momento della Fusione a settembre 2022) + +**Emissione del livello d'esecuzione:** + +- Era stimata a 2,08 ETH ogni 13,3 secondi\*: **circa 4.930.000** ETH emessi in un anno +- Il risultato è un tasso d'inflazione **di circa il 4,09%** (4,93M l'anno / 120,5M totali) +- \*Ciò include i 2 ETH per blocco canonico, più una media di 0,08 ETH nel tempo dai blocchi ommer. Inoltre, utilizza 13,3 secondi, l'obiettivo temporale di base del blocco senza alcuna influenza da una [bomba di difficoltà](/glossary/#difficulty-bomb). ([Vedi fonte](https://bitinfocharts.com/ethereum/)) + +**Emissione del livello d'esecuzione:** + +- Utilizzando i 14.000.000 di ETH totali in staking, il tasso di emissione di ETH è approssimativamente di 1700 ETH/giorno ([Vedi fonte](https://ultrasound.money/)) +- Il risultato è **circa 620.500** ETH emessi in un anno +- Il risultato è un tasso d'inflazione **approssimativamente dello 0,52%** (620.5K l'anno / 119.3M totali) + + +Tasso di emissione annualizzato totale (pre-Fusione): circa 4,61% (4,09% + 0,52%)

+Circa l'88,7% dell'emissione andava ai miner sul livello d'esecuzione (4,09 / 4,61 * 100)

+Circa l'11,3% era emesso agli staker sul livello del consenso (0,52 / 4,61 * 100) +
+ +## Post-Fusione (oggi) {#post-merge} + +### Emissione del livello d'esecuzione {#el-issuance-post-merge} + +L'emissione del livello d'esecuzione dalla Fusione è pari a zero. Il proof-of-work non è più un mezzo valido per la produzione di blocchi, secondo le regole aggiornate del consenso. Tutta l'attività del livello d'esecuzione è impacchettata nei "blocchi della Beacon", pubblicati e attestati dai validatori del proof-of-stake. Le ricompense per l'attestazione e pubblicazione dei blocchi della Beacon sono considerate separatamente sul livello del consenso. + +### Emissione del livello del consenso {#cl-issuance-post-merge} + +L'emissione del livello di consenso continua ad oggi, così come prima della Fusione, con piccole ricompense per i validtori che attestano a e propongono i blocchi. Le ricompense dei validatori continuano a maturare ai _saldi dei validatori_, gestiti nel livello del consenso. A differenza dei conti correnti (conti di "esecuzione"), che possono effettuare transazioni sulla Rete Principale, questi conti separati di Ethereum non possono operare liberamente con altri conti di Ethereum. I fondi in questi conti sono prelevabili esclusivamente a un singolo indirizzo d'esecuzione specificato. + +Dall'aggiornamento di Shanghai/Capella, avvenuto ad aprile 2023, questi prelievi sono stati consentiti per gli staker. Gli staker sono incentivati a rimuovere i propri _guadagni/ricompense (per saldi superiori a 32 ETH)_, poiché, tali fondi non contribuirebbero altrimenti al loro peso di staking (che si massimizza a 32 ETH). + +Gli staker, inoltre, potrebbero scegliere di uscire e prelevare l'intero saldo del loro validatore. Per assicurare la stabilità di Ethereum, il numero di validatori in uscita simultanea è limitato. + +Approssimativamente lo 0,33% del conteggio totale dei validatori può uscire in un dato giorno. Di default, possono uscire quattro (4) validatori per epoca (ogni 6,4 minuti, o 900 al giorno). Un (1) validatore aggiuntivo può uscire per ogni 65.536 (216) validatori aggiuntivi su 262.144 (218). Ad esempio, con oltre 327.680 validatori, potrebbero uscirne cinque (5) per epoca (1.125 al giorno). Sei (6) sarebbero autorizzati con un conteggio di validatori attivi totali superiore a 393.216 e così via. + +All'aumentare del numero di validatori che prelevano, il numero massimo di validatori in uscita sarà ridotto gradualmente a un minimo di quattro, per evitare intenzionalmente che vengano prelevati contemporaneament egrandi quantitativi destabilizzanti di ETH in staking. + +### Analisi dell'inflazione post-Fusione {#post-merge-inflation-breakdown} + +- Offerta totale di ETH: **circa 120.520.000 ETH** (al momento della Fusione a settembre 2022) +- Emissione del livello d'esecuzione: **0** +- Emissione del livello di consenso: come sopra, tasso di emissione annualizzato **approssimativo dello 0,52%** (con 14 milioni di ETH in staking totali) + + +Tasso di emissione annualizzato totale: circa 0,52%

+Riduzione netta nell'emissione annuale di ETH: circa 88,7% ((4,61%-0,52%) / 4,61% * 100) +
+ +## La bruciatura {#the-burn} + +La forza opposta all'emissione di ETH è il tasso a cui gli ETH sono bruciati. Per l'esecuzione di una transazione su Ethereum, dev'essere pagata una commissione minima (nota come "commissione di base"), che fluttua continuamente (da blocco a blocco), a seconda dell'attività di rete. La commissione è pagata in ETH ed è _necessaria_ affinché la transazione sia considerata valida. Questa commissione viene _bruciata_ durante il procedimento della transazione, rimuovendola dalla circolazione. + + +La bruciatura delle commissioni è divenuta attiva con l'aggiornamento di Londra ad agosto 2021 e resta immutata da La Fusione. + + +Oltre alla bruciatura della commissione, implementata dall'aggiornamento di Londra, i validatori, inoltre, possono incorrere in sanzioni per essere online o, peggio, possono ricevere tagli per l'infrazione di regole specifiche che minacciano la sicurezza della rete. Queste, risultano in una riduzione degli ETH dal saldo di quel validatore, che non è ricompensato direttamente a nessun altro conto, bruciandoli/rimuovendoli effettivamente dalla circolazione. + +### Calcolare il prezzo medio del gas per la deflazione {#calculating-average-gas-price-for-deflation} + +Come discusso sopra, l'importo di ETH emessi in un dato giorno dipende dagli ETH in staking totali. Al momento della scrittura, questo equivale a circa 1700 ETH/giorno. + +Per determinare il prezzo medio del gas necessario a compensare completamente tale emissione in un dato periodo di 24 ore, inizieremo calcolando il numero totale di blocchi in un giorno, dato il tempo di un blocco di 12 secondi: + +- `(1 blocco / 12 secondi) * (60 secondi/minuto) = 5 blocchi/minuto` +- `(5 blocchi/minuto) * (60 minuti/ora) = 300 blocchi/ora` +- `(300 blocchi/ora) * (24 ore/giorno) = 7200 blocchi/giorno` + +Ogni blocco indirizza `15x10^6 gas/blocco` ([di più sul gas](/developers/docs/gas/)). Utilizzandolo, possiamo risolvere per il prezzo medio del gas (in unità di gwei/gas), necessario per compensare l'emissione, data un'emissione totale giornaliera di 1700 ETH: + +- `7200 blocchi/giorno * 15x10^6 gas/blocco *`**`Y gwei/gas`**`* 1 ETH/ 10^9 gwei = 1700 ETH/giorno` + +Risolvendo per `Y`: + +- `Y = (1700(10^9))/(7200 * 15(10^6)) = (17x10^3)/(72 * 15) = 16 gwei` (arrotondando soltanto alle due cifre significative) + +Un altro metodo per riorganizzare questo ultimo passaggio sarebbe sostituire `1700` con una variabile `X` che rappresenti l'emissione giornaliera di ETH e semplificare il resto a: + +- `Y = (X(10^3)/(7200 * 15)) = X/108` + +Possiamo semplificarlo e scriverlo come una funzione di `X`: + +- `f(X) = X/108` dove `X` è l'emissione giornaliera di ETH, e `f(X)` rappresenta il prezzo di gwei/gas necessario per compensare tutti i nuovi ETH emessi. + +Quindi, ad esempio, se `X` (emissione giornaliera di ETH) sale a 1800 secondo gli ETH totali in staking, `f(X)` (gwei necessari per compensare tutta l'emissione) sarebbe `17 gwei` (utilizzando le 2 cifre significative) + +## Ulteriori letture {#further-reading} + +- [La fusione](/roadmap/merge/) +- [Ultrasound.money](https://ultrasound.money/) - _Pannelli di controllo disponibili per visualizzare l'emissione e la bruciatura di ETH in tempo reale_ +- [Rilevare l'Emissione di Ethereum](https://www.attestant.io/posts/charting-ethereum-issuance/) - _Jim McDonald 2020_ diff --git a/src/content/translations/it/roadmap/pbs/index.md b/src/content/translations/it/roadmap/pbs/index.md new file mode 100644 index 00000000000..7c9f91e7123 --- /dev/null +++ b/src/content/translations/it/roadmap/pbs/index.md @@ -0,0 +1,51 @@ +--- +title: Separazione proponente-sviluppatore +description: Scopri come e perché i validatori di Ethereum divideranno le proprie responsabilità di costruzione e trasmissione dei blocchi. +lang: it +--- + +# Separazione proponente-sviluppatore {#proposer-builder-separation} + +I validatori odierni di Ethereum creano _e_ trasmettono i blocchi. Raggruppano le transazioni che hanno sentito nella rete di gossip e le impacchettano in un blocco, inviato ai pari sulla rete di Ethereum. La **separazione tra propositore e costruttore (PBS)** divide queste mansioni tra più validatori. I costruttori di blocchi diventano responsabili della creazione dei blocchi e li offrono al propositore di blocchi, in ogni spazio. Il propositore di blocchi non può visualizzare i contenuti del blocco, semplicemente, sceglie il più profittevole, pagando una commissione al suo costruttore, prima di inviarlo i suoi pari. + +Questo è un aggiornamento importante per svariati motivi. Primo, crea opportunità per prevenire la censura delle transazioni al livello del protocollo. Secondo, impedisce ai validatori hobbisti di essere "battuti" dalla concorrenza di utenti istituzionali, che possono meglio ottimizzare la redditività della costruzione del proprio blocco. Terzo, aiuta a ridimensionare Ethereum, consentendo gli aggiornamenti di Danksharding. + +## PBS e resistenza alla censura {#pbs-and-censorship-resistance} + +La separazione dei costruttori e propositori di blocchi complica per i costruttori di blocchi la censura delle transazioni. Questo perché, dei criteri di inclusione relativamente complessi possono essere aggiunti, assicurando che non avvenga alcuna censura, prima della proposta del blocco. Poiché il propositore di blocchi è un'entità separata dal costruttore di blocchi, può assumere il ruolo di protettore, contro la censura dei costruttori di blocchi. + +Ad esempio, possono essere introdotti degli elenchi di inclusione, così che quando i validatori entrano a conoscenza delle transazioni ma non le vedono incluse nei blocchi, possono imporle come necessarie nel blocco successivo. L'elenco di inclusione è generato dal mempool locale dei propositori di blocchi (l'elenco di transazioni di cui sono a conoscenza) ed è inviato ai loro pari, poco prima che un blocco sia proposto. Se una delle transazioni dall'elenco di inclusione è mancante, il propositore potrebbe rifiutare il blocco, aggiungere le transazioni mancanti prima di proporle o proporle e far sì che siano rifiutate dagli altri validatori, quando la ricevono. Inoltre, esiste una versione potenzialmente più efficiente di questa idea, che afferma che i costruttori devono utilizzare completamente lo spazio disponibile del blocco e, altrimenti, le transazioni sono aggiunte dall'elenco di inclusione del propositore. Questa è ancora un'area di ricerca attiva e la configurazione ottimale per gli elenchi di inclusione non è ancora stata determinata. + +I [mempool crittografati](https://www.youtube.com/watch?v=fHDjgFcha0M&list=PLpktWkixc1gUqkyc1-iE6TT0RWQTBJELe&index=3), inoltre, potrebbero rendere impossibile per costruttori e propositori, sapere quali transazioni stiano includendo in un blocco, dopo che questo è già stato trasmesso. + + + +Potenti organizzazioni possono spingere i validatori a censurare le transazioni da o verso certi indirizzi. I validatori si conformano alla sollecitazione, rilevando gli indirizzi nella blacklist nel gruppo di transazioni e omettendole dai blocchi che propongono. Dopo la PBS, non sarà più possibile poiché i propositori di blocchi non sapranno quali transazioni stanno trasmettendo nei propri blocchi. Potrebbe essere importante, per certi individui o app, conformarsi alle regole di censura, ad esempio, quando è emanata una legge nella loro regione. In tali casi, la conformità si verifica a livello di applicazione, mentre il protocolo rimane privo di permessi e di censura. + + + +## PBS e MEV {#pbs-and-mev} + +Il **Valore Massimo Estraibile (MEV)** fa riferimento ai validatori che massimizzano la propria redditività, ordinando favorevolmente le transazioni. Esempi comuni includono gli scambi di arbitraggio sulle piattaforme di scambio decentralizzate (es. frontrunning di una grande vendita o un grande acquisto) o identificazione di opportunità per liquidare posizioni della DeFi. La massimizzazione del MEV richiede conoscenze tecniche sofisticate e software personalizzati aggiunti ai normali validatori, rendendo più probabile che gli operatori istituzionali surclassino i validatori individuali e hobbisti all'estrazione del MEV. Ciò significa che i rendimenti da staking potrebbero essere maggiori con operatori centralizzati, creando una forza centralizzante che disincentiva lo staking domestico. + +La PBS risolve questo problema, riconfigurando l'economia del MEV. Invece del propositore di blocchi che svolge la propria ricerca del MEV seleziona semplicement eun blocco fra i tanti che gli vengono offerti dai costruttori di blocchi. I costruttori di blocchi potrebbero aver compiuto una sofisticata estrazione del MEV, ma la ricompensa va al propositore di blocchi. Ciò significa che, anche se un piccolo gruppo di costruttori di blocchi specializzati domina l'estrazione del MEV, la ricompensa potrebbe andare a qualsiasi validatore sulla rete, inclusi gli staker domestici in solo. + + + +Gli individui potrebbero essere incentivati a mettere in staking in gruppo, piuttosto che per conto proprio, grazie alle ricompense migliorate, offerte dalle sofisticate strategie di MEV. La separazione della costruzione e proposta dei blocchi significa che il MEV estratto sarà distribuito su più validatori, piuttosto che centralizzato con il ricercatore di MEV più efficiente. Al contempo, consentire ai costruttori di blocchi specializzati di esistere prende l'onere di costruzione dei blocchi dai singoli individui, impededendo ai singoli di rubare il MEV per se stessi, pur massimizzando il numero di validatori individuali e indipendenti, che possono verificare che i blocchi siano onesti. Il concetto importante è la "asimmetria tra dimostratore e verificatore", che fa riferimento all'idea che la produzione centralizzata dei blocchi vada bene, finché è una rete di validatori robusta e massimamente decentralizzata, capace di provare che i blocchi sono onesti. La decentralizzazione è un mezzo, non un obiettivo finale; ciò che vogliamo sono blocchi onesti. + + +## PBS e Danksharding {#pbs-and-danksharding} + +Il danksharding è come Ethereum si ridimensionerà a circa 100.000 transazioni al seecondo e minimizzerà le commissioni per gli utenti dei rollup. Si affida alla PBS poiché si somma al carico di lavoro per i costruttori di blocchi, che dovranno calcolare prove fino a 64MB dei dati di rollup, in meno di 1 secondo. Ciò probabilmente richiederà costruttori specializzati, che possano dedicare hardware importanti a questa attività. Tuttavia, nella situazione corrente, la costruzione dei blocchi potrebbe divenire sempre più centralizzata, con operatori più sofisticati e potenti, grazie all'estrazione del MEV. La separazione tra propositori e costruttori è un modo per abbracciare tale realtà, impedendogli di esercitare una forza centrale sulla validazione dei blocchi (la parte importante) o sulla distribuzione delle ricompense di staking. Un ottimo beneficio collaterale è che i costruttori di blocchi specializzati sono anche disposti e capaci di calcolare le prove di dati necessarie per il Danksharding. + +## Stato attuale {#current-progress} + +La PBS è in una fase di ricerca avanzata, ma esistono ancora delle importanti domande di design che devono essere risolte prima che possa essere prototipata nei client di Ethereum. Non esistono ancora delle specifiche finalizzate. Ciò significa che la PBS potrebbe ancora richiedere qualche anno. Consulta lo [stato della ricerca](https://notes.ethereum.org/@vbuterin/pbs_censorship_resistance) più recente. + +## Letture consigliate {#further-reading} + +- [Stato della ricerca: resistenza alla censura sotto PBS](https://notes.ethereum.org/@vbuterin/pbs_censorship_resistance) +- [Design di mercato delle commissioni pratici per PBS](https://ethresear.ch/t/proposer-block-builder-separation-friendly-fee-market-designs/9725) +- [PBS e resistenza alla censura](https://notes.ethereum.org/@fradamt/H1TsYRfJc#Secondary-auctions) +- [Elenchi di inclusione](https://notes.ethereum.org/@fradamt/H1ZqdtrBF) diff --git a/src/content/translations/it/roadmap/scaling/index.md b/src/content/translations/it/roadmap/scaling/index.md new file mode 100644 index 00000000000..9e37af0687c --- /dev/null +++ b/src/content/translations/it/roadmap/scaling/index.md @@ -0,0 +1,47 @@ +--- +title: Ridimensionare Ethereum +description: I rollup raggruppano le transazioni al di fuori della catena, riducendo i costi per l'utente. Tuttavia, il metodo con cui i rollup utilizzano i dati al momento è troppo costoso e questo limita l'economicità delle transazioni. Il Proto-Danksharding lo corregge. +lang: it +image: ../../../../../assets/roadmap/roadmap-transactions.png +alt: "Roadmap di Ethereum" +template: roadmap +--- + +Ethereum è ridimensionato utilizzando i [livelli 2](/layer-2/#rollups) (anche noti come rollup), che raggruppano le transazioni, inviando il risultato a Ethereum. Sebbene i rollup siano fino a otto volte meno costosi che sulla Rete Principale di Ethereum, è possibile ottimizzare ulteriormente i rollup per ridurre i costi per gli utenti finali. Inoltre, i rollup, si affidano ad alcuni componenti centralizzati che gli sviluppatori possono rimuovere, al maturare dei rollup. + + +
    +
  • I rollup odierni sono all'incirca da 3 a 8 volte più economici del livello 1
  • +
  • I rollup ZK ridurranno presto le commissioni di circa da 40 a 100 volte
  • +
  • I cambiamenti in arrivo su Ethereum forniranno un ulteriore ridimensionamento di circa 100-1000 volte
  • +
  • Gli utenti dovrebbero beneficiare dalle transazioni dal costo inferiore a $0,001
  • +
+
+ +## Rendere più economici i dati {#making-data-cheaper} + +I rollup raccolgono grandi numeri di transazioni, le eseguono e poi inviano i risultati a Ethereum. Ciò genera molti dati che devono essere disponibili apertamente, così che tutti possano eseguire le transazioni da soli, verificando che l'operatore del rollup sia onesto. Se qualcuno trova una discrepanza, può generare una sfida. + +### Proto-Danksharding {#proto-danksharding} + +I dati dei rollup sono memorizzati permanentemente su Ethereum, il che può essere costoso. Oltre il 90% dei costi di transazione pagati sui rollup è causato da tale archiviazione dei dati. Per ridurre i costi di transazione, possiamo spostare i dati in una nuova archiviazione temporanea a 'blob'. I blob sono più economici poiché non sono permanenti; sono eliminati da Ethereum una volta che non sono più necessari. Archiviare i dati dei rollup a lungo termine diviene la responsabilità delle persone che lo necessitano, come gli operatori dei rollup, le piattaforme di scambio, i servizi di indicizzazione, ecc. Aggiungere le transazioni di blob a Ethereum è parte di un aggiornamento noto come "Proto-Danksharding". La sua distribuzione dovrebbe avvenire in tempi relativamente brevi, forse verso la fine del 2023. + +Dopo che le transazionidia blob saranno divenute parte del protocollo di Ethereum tramite il Proto-Danksharding, sarà possibile aggiungere molti blob ai blocchi di Ethereum. Questo sarà un altro ridimensionamento sostanziale (di circa 100 volte) del volume di Ethereum e riduzione dei costi di transazione. + +### Danksharding {#danksharding} + +La seconda fase dell'espansione dei dati di blob è complicata poiché richiede nuovi metodi di verifica dei dati di rollup disponibili sulla rete e si affida alla separazione, da parte dei validatori, delle proprie responsabilità di costruzione e proposta dei blocchi. Inoltre, richiede un metodo per provare crittograficamente che i validatori abbiano verificato piccoli sotto nsiemi dei dati dei blob. + +Questa seconda fase è nota come [“Danksharding”](/roadmap/danksharding/). Probabilmente, trascorreranno diversi anni prima della sua completa implementazione. Il danksharding si affida ad altri sviluppi come la [separazione della costruzione e della proposta dei blocchi](/roadmap/pbs) e nuovi design della rete che consentano a essa di confermare efficientemente che i dati siano disponibili, campionando casualmente pochi kilobyte per volta, procedimento noto come [campionamento della disponibilità dei dati (o DAS)](/developers/docs/data-availability). + +Di più sul Danksharding + +## Decentralizzare i rollup {#decentralizing-rollups} + +I [rollup](/layer-2) stanno già ridimensionando Ethereum. Un [ecosistema ricco di progetti di rollup](https://l2beat.com/scaling/tvl) sta consentendo agli utenti di eseguire le transazioni rapidamente ed economicamente, con numerose garanzie di sicurezza. Tuttavia, i rollup sono stati avviati utilizzando sequenziatori centralizzati (computer che eseguono tutta l'elaborazione e aggregazione delle transazioni, prima di inviarle a Ethereum). Ciò è vulnerabile alla censura, poiché gli operatori del sequenziatore sono sanzionabili, corrompibili o, compromessi in altri modi. Al contempo, i [rollup variano](https://l2beat.com) nel modo in cui convalidano i dati in entrata. Il metodo migliore è che i "dimostratori" inviino prove di frode o prove di validità, ma non tutti i rollup sono ancora a quel punto. Persino quei rollup che utilizzano le prove di validità/frode, utilizzano un piccolo gruppo di dimostratori noti. Dunque, il prossimo passaggio critico nel ridimensionare Ethereum è distribuire la responsabilità di operare i sequenziatori e i dimostratori, tra più persone. + +Maggiori informazioni sui rollup + +## Stato attuale {#current-progress} + +Il Proto-Danksharding potrebbe essere uno dei primi punti della tabella di marcia da implementare. I passaggi di calcolo decentralizzati richiesti per configurarlo sono già in lavorazione e, diversi client, hanno implementato dei prototipi per gestire i dati dei blob. Il Danksharding completo richiederà probabilmente ancora diversi anni, poiché si affida su diversi altri punti della tabella di marcia, ancora da completare. La decentralizzazione dell'infrastruttura dei rollup è probabilmente un processo graduale: esistono molti rollup differenti che stanno creando sistemi lievemente differenti e si decentralizzeranno completamente a velocità diverse. diff --git a/src/content/translations/it/roadmap/secret-leader-election/index.md b/src/content/translations/it/roadmap/secret-leader-election/index.md new file mode 100644 index 00000000000..36ef1aad78d --- /dev/null +++ b/src/content/translations/it/roadmap/secret-leader-election/index.md @@ -0,0 +1,44 @@ +--- +title: Elezioni segrete del leader +description: Spiegazione di come l'elezione segreta di un capo possa aiutare a proteggere i validatori dagli attacchi +lang: it +summaryPoints: + - L'indirizzo IP dei propositori di blocchi può essere noto in anticipo, rendendoli vulnerabili agli attacchi + - L'elezione segreta del capo nasconde l'identità dei validatori, così che non possano essere conosciuti in anticipo + - Un'estensione di quest'idea è rendere casuale la selezione del validatore, per ogni spazio. +--- + +# Elezioni segrete del leader {#single-secret-leader-election} + +Nel meccanismo di consenso odierno basato sul [proof-of-stake](/developers/docs/consensus-mechanisms/pos), l'elenco di propositori di blocchi in entrata è pubblico ed è possibile mapparne gli indirizzi IP. Ciò significa che gli utenti malevoli potrebbero identificare quali valori dovrebbero proporre a un blocco e li prendono di mira con un attacco di negazione del servizio (DOS), che li lascia incapaci di proporre il proprio blocco in tempo. + +Questo potrebbe creare opportunità di profitto per un utente malevolo. Ad esempio, un propositore di blocchi selezionato per lo spazio `n+1` potrebbe compiere un attacco DOS nei confronti del propositore allo spazio `n`, così che perda l'opportunità di proporre un blocco. Questo consentirebbe al propositore di blocchi che attacca di estrarre il MEV da entrambi gli slot, o di prendere tutte le transazioni che dovrebbero essere divise tra i due blocchi e invece includerli tutti in una volta, ottenendo tutte le commissioni associate. Questo potrebbe influenzare i validatori domestici più di quelli istituzionali sofisticati, che possono utilizzare metodi più avanzati per proteggersi dagli attacchi DOS e, dunque, potrebbero essere una forza centralizzante. + +Esistono svariate soluzioni a questo problema. Una è la [Tecnologia del Validatore Distribuita](https://github.com/ethereum/distributed-validator-specs), che mira a diffondere le varie mansioni correlate all'operazione di un validatore tra più macchine, con ridondanza, così che sia molto più complicato, per un utente malevolo, prevenire la proposta di un blocco in uno slot particolare. Tuttavia, la soluzione più robusta è l'**Elezione Segreta di un Singolo Capo (SSLE)**. + +## Elezione segreta di un singolo capo {#secret-leader-election} + +Nella SSLE, si utilizza una crittografia intelligente per assicurarsi che soltanto il validatore selezionato sappia di esser stato selezionato. Ciò funziona facendo inviare a ogni validatore un impegno a una frase segreta condivisa. Gli impegni sono mescolati e riconfigurati così che nessuno possa mapparli ai validatori, ma che ogni validatore sa quale gli appartiene. Poi, si sceglie un impegno a caso. Se un validatore rileva che è stato scelto il proprio impegno, sa che è il suo turno di proporre un blocco. + +L'implementazione principale di quest'idea si chiama [Whisk](https://ethresear.ch/t/whisk-a-practical-shuffle-based-ssle-protocol-for-ethereum/11763). Che funziona come segue: + +1. I validatori si impegnano a una frase segreta condivisa. Lo schema di impegno è progettato così che possa essere vincolato all'identità di un validatore, nonché casualizzato, così che nessuna terza parte possa decodificarlo e collegare un impegno specifico a un validatore specifico. +2. All'inizio di un'epoca, una serie casuale di validatori è scelta per campionare gli impegni da 16.384 validatori, utilizzando RANDAO. +3. Per i prossimi 8182 spazi (1 giorno), i propositori di blocchi mescolano e randomizzano un sottoinsieme di impegni, utilizzando la propria entropia privata. +4. Dopo il termine del rimescolamento, RANDAO è utilizzato per creare un elenco ordinato di impegni. Questo elenco è mappato agli spazi di Ethereum. +5. I validatori vedono che il proprio impegno è collegato a uno spazio specifico e, quando quello spazio arriva, propongono un blocco. +6. Questi passaggi si ripetono così che l'assegnazione degli impegni agli spazi sia sempre di molto in avanti rispetto allo spazio corrente. + +Questo impedisce agli utenti malevolo di sapere in anticipo quale validatore nello specifico proporrà il prossimo blocco, impedendo l'abilità di compiere attacchi DOS. + +## Elezione segreta di un capo non singolo (SnSLE) {#secret-non-single-leader-election} + +Inoltre, esiste una proposta separata che mira a creare uno scenario in cui ogni validatore ha una possibilità casuale di proporre un blocco in ogni spazio, similmente a come la proposta del blocco era decisa sotto proof-of-work, nota come **elezione segreta di un capo non singolo (SnSLE)**. Un metodo semplice per compierla è utilizzare la funzione RANDAO per selezionare casualmente i validatori nel protocollo di oggi. L'idea con RANDAO è che un numero sufficientemente casuale è generato, mischiando gli hash inviati da molti validatori indipendenti. Nella SnSLE, questi hash potrebbero essere utilizzati per scegliere il propositore di blocchi successivo, ad esempio, scegliendo l'hash dal valore più basso. L'intervallo di hash validi potrebbe essere limitato, per sintonizzarsi alla probabilità che siano selezionati dei validatori singoli in ogni spazio. Affermando che l'hash dev'essere inferiore a `2^256 * 5 / N`, dove `N` è il numero di validatori attivi, la possibilità che ogni singolo validatore sia selezionato in ogni spazio sarebbe di `5/N`. In qusto esempio, esisterebbe una probabilità del 99,3% che almeno un propositore generi un hash valido in ogni spazio. + +## Stato attuale {#current-progress} + +SSLE e SnSLE sono entrambi in fase di ricerca. Ancora non esiste una specifica finalizzata per alcuna delle due idee. SSLE e SnSLE sono proposte concorrenti che potrebbero entrambe non essere implementate. Prima di distribuirle, necessitano di ulteriore ricerca e sviluppo, prototipazione e implementazione sulle reti di prova pubbliche. + +## Letture consigliate {#further-reading} + +- [SnSLE](https://ethresear.ch/t/secret-non-single-leader-election/11789) diff --git a/src/content/translations/it/roadmap/security/index.md b/src/content/translations/it/roadmap/security/index.md new file mode 100644 index 00000000000..e0e213fde70 --- /dev/null +++ b/src/content/translations/it/roadmap/security/index.md @@ -0,0 +1,48 @@ +--- +title: Un Ethereum più sicuro +description: Ethereum è la piattaforma di contratti intelligenti più sicura e decentralizzata che esista. Tuttavia, restano ancora da implementare alcuni miglioramenti in modo che Ethereum resti resiliente a qualsiasi livello di attacco anche in un futuro lontano. +lang: it +image: ../../../../../assets/roadmap/roadmap-security.png +alt: "Roadmap di Ethereum" +template: roadmap +--- + +Ethereum è già una piattaforma di contratti intelligenti molto sicura e decentralizzata. Tuttavia, restano ancora da implementare alcuni miglioramenti in modo che Ethereum resti resiliente a qualsiasi tipo di attacco anche in un futuro lontano. Questi, includono lievi modifiche a come i client di Ethereum affrontano i blocchi in competizione, nonché aumentare come la velocità di rete considera i blocchi ["finalizzati"](/developers/docs/consensus-mechanisms/pos/#finality) (a significare che non sono modificabili senza estreme perdite economiche da parte di un utente malevolo). + +Esistono anche dei miglioramenti che complicano la censura delle transazioni, rendendo i propositori di blocchi ciechi ai contenuti effettivi dei propri blocchi, e nuovi modi per identificare quando un client sta censurando. Insieme, questi miglioramenti aggiorneranno il protocollo di proof-of-stake, così che gli utenti, singoli e aziendali, abbiano l'istantanea fiducia nelle proprie app, nei propri dati e risorse su Ethereum. + +## Prelievi di staking {#staking-withdrawals} + +L'aggiornamento dal proof-of-work al proof-of-stake è iniziato quando i pionieri di Ethereum hanno messo in "staking" i propri ETH in un contratto di deposito. Tali ETH sono utilizzati per proteggere la rete. Tuttavia, questi ETH non sono ancora sbloccabili e restituibili agli utenti. Consentire agli ETH di essere prelevati è una parte critica dell'aggiornamento del proof-of-stake. Oltre ai prelievi, che sono un componente fondamentale di un protocollo di proof-of-stake pienamente funzionale, consentire i prelievi è un bene anche per la sicurezza di Ethereum, poiché consentono agli staker di utilizzare le proprie ricompense in ETH per altri scopi non di staking. Ciò significa che gli utenti che desiderano liquidità non debbano affidarsi ai derivati liquidi di staking (LSD), che possono essere una forza centralizzante su Ethereum. Si prevede che questo aggiornamento sarà completato il 12 aprile 2023. + +Informazioni sui prelievi + +## Difendersi dagli attacchi {#defending-against-attacks} + +Esistono dei miglioramenti apportabili al protocollo di [proof-of-stake](/developers/docs/consensus-mechanisms/pos/) di Ethereum che vanno oltre i prelievi. Uno è noto come [view-merge](https://ethresear.ch/t/view-merge-as-a-replacement-for-proposer-boost/13739), un algoritmo di scelta della biforcazione più sicuro, che complica certi tipi di attacchi più sofisticati. + +Ridurre il tempo di finalizzazione dei blocchi di Ethereum, fornirebbe una migliore esperienza agli utenti e impedirebbe i sofisticati attacchi di "riorganizzazione", in cui gli utenti malevoli provano a rimescolare i blocchi molto recenti, per estrarre profitto o censurare certe transazioni. La [**finalità dello spazio singolo (SSF)**](/roadmap/single-slot-finality/) è un metodo per ridurre il ritardo di finalizzazione. In questo momento, esistono 15 minuti di blocchi, che un utente malevolo potrebbe teoricamente convincere altri validatori a riconfigurare. Con la SSF, ce ne sono 0. Gli utenti, dagli individui alle app e le piattaforme di scambio, beneficiano dalla veloce garanzia che le proprie transazioni non saranno ripristinate, e la rete ne beneficia arrestando un'intera classe di attacchi. + +Informazioni sulla finalità dello spazio singolo + +## Difendersi dalla censura {#defending-against-censorship} + +La decentralizzazione impedisce che validatori singoli o in piccoli gruppi diventino troppo influenti. Le nuove tecnologie di staking possono aiutare ad assicurare che i validatori di Ethereum restino il più decentralizzati possibile, difendendoli da guasti hardware, software e di rete. Ciò include software che condividono le responsabilità del validatore tra più nodi. Questo è noto come **tecnologia del validatore distribuita (DVT)**. I gruppi di staking sono incentivati a utilizzare la DVT, poiché consente a più computer di partecipare collettivamente alla validazione, aggiungendo ridondanza e tolleranza ai guasti. Inoltre, divide le chiavi del validatore tra diversi sistemi, piuttosto che far eseguire più validatori ai singoli operatori. Questo complica la coordinazione di attacchi tra operatori disonesti contro Ethereum. Nel complesso, l'idea è quella di ricavare benefici per la sicurezza, eseguendo i validatori come _comunità_ piuttosto che come individui. + +Informazioni sulla tecnologia del validatore distribuita + +L'implementazione della **separazione tra propositore e costruttore (PBS)** migliorerà drasticamente le difese integrate di Ethereum contro la censura. La PBS consente a ogni validatore di creare un blocco e un altro per trasmetterli per la rete di Ethereum. Questo assicura che i guadagni derivati dagli algoritmi di massimizzazione del profitto professionali di costruzione dei blocchi siano condivisi equamente per la rete, **impedendo la concentrazione dello stake** con gli staker istituzionali dalle migliori prestazioni nel tempo. Il propositore di blocchi seleziona il blocco più redditizio offertogli da un mercato di costruttori di blocchi. Per censurare, spesso un propositore di blocchi dovrebbe scegliere un blocco meno redditizio, che sarebbe **economicamente irrazionale e anche ovvio per il resto dei validatori** sulla rete. + +Esistono potenziali componenti aggiuntivi alla PBS, quali transazioni crittografate ed elenchi d'inclusione, che potrebbero ulteriormente migliorare la resistenza alla censura di Ethereum. Questi rendono il costruttore e il propositore di blocchi cieco alle transazioni effettive incluse nei propri blocchi. + +Leggi sulla separazione tra propositore e costruttore + +## Proteggere i validatori {#protecting-validators} + +È possibile che un utente malevolo sofisticato possa identificare i prossimi validatori e spammarli per impedire loro di proporre blocchi; questo è noto come un attacco di **negazione del servizio (o DoS)**. L'implementazione dell'[**elezione segreta di un capo (SLE)**](/roadmap/secret-leader-election), proteggerà da questo tipo di attacchi, impedendo ai propositori di blocchi di essere noti in anticipo. Ciò funziona rimescolando continuamente una serie di impegni crittografici che rappresentano i propositori di blocchi candidati, e utilizzarne l'ordine per determinare quale validatore sia selezionato, in modo che soltanto gli stessi validatori sappiano il proprio ordine in anticipo. + +Leggi sull'elezione segreta di un capo + +## Stato attuale {#current-progress} + +Gli aggiornamenti di sicurezza sulla tabella di marcia sono in fasi di ricerca avanzate, ma non dovrebbero essere implementati per un po'. I prossimi passaggi per view-merge, PBS, SSF e SLE sono quelli di finalizzazione di una specifica e inizio di costruzione dei prototipi. diff --git a/src/content/translations/it/roadmap/single-slot-finality/index.md b/src/content/translations/it/roadmap/single-slot-finality/index.md new file mode 100644 index 00000000000..68c0b4d9cf8 --- /dev/null +++ b/src/content/translations/it/roadmap/single-slot-finality/index.md @@ -0,0 +1,66 @@ +--- +title: Finalità dello spazio singolo +description: Spiegazione della finalità dello spazio singolo +lang: it +--- + +# Finalità dello spazio singolo {#single-slot-finality} + +Perché un blocco di Ethereum sia finalizzato, sono necessari circa 15 minuti. Tuttavia, possiamo far validare i blocchi al meccanismo di consenso di Ethereum, in modo più efficiente, riducendo drasticamente il tempo di finalizzazione. Invece di attendere quindici minuti, i blocchi potrebbero essere proposti e finalizzati nello stesso blocco. Questo concetto è noto come **finalità dello spazio singolo (o SSF)**. + +## Cos'è la finalità? {#what-is-finality} + +Nel meccanismo di consenso basato sul proof-of-stake di Ethereum, la finalità si riferisce alla garanzia che un blocco non sia alterabile o rimovibile dalla blockchain, senza bruciare almeno il 33% degli ETH in staking totali. Questa è la sicurezza 'cripto-economica', poiché la confidenza proviene dai costi estremamente elevati associati al cambiamento dell'ordine o del contenuto della catena, che impedirebbe a qualsiasi attore economico razionale di provarci. + +## Perché mirare a una finalità più rapida? {#why-aim-for-quicker-finality} + +I tempi correnti per la finalità sono diventati troppo lunghi. Gran parte degli utenti non vogliono attendere 15 minuti per la finalità ed è scomodo per app e piattaforme di scambio, che potrebbero volere un volume di transazione elevato per attendere così tanto, per essere certi che le proprie transazioni siano permanenti. Inoltre, avere un ritardo tra la proposta e la finalizzazione di un blocco, crea un'opportunità per delle brevi riorganizzazioni, che un utente malevolo potrebbe utilizzare per censurare certi blocchi, o estrarre il MEV. Il meccanismo che affronta l'aggiornamento dei blocchi in fasi, inoltre, è abbastanza complesso ed è stato corretto diverse volte per chiudere delle vulnerabilità di sicurezza, rendendolo una delle parti della base di codice di Ethereum in cui è più probabile che emergano piccoli bug. Questi problemi potrebbero essere eliminati riducendo il tempo alla finalità in un singolo spazio. + +## Il compromesso tra decentralizzazione, tempo e costi di gestione {#the-decentralization-time-overhead-tradeoff} + +La garanzia di finalità non è una proprietà immediata di un nuovo blocco: ci vuole del tempo affinché un nuovo blocco sia finalizzato. Il motivo è che i validatori che rappresentano almeno i 2/3 degli ETH in staking totali sulla rete, devono votare per il blocco ("attestarlo"), perché sia considerabile come finalizzato. Ogni nodo di convalida sulla rete deve elaborare le attestazioni dagli altri nodi per poter sapere se un blocco ha ottenuto tale soglia di 2/3 o no. + +Più è breve il tempo consentito per raggiungere la finalizzazione, maggiore è la potenza di calcolo necessaria a ogni nodo perché l'elaborazione dell'attestazione sia eseguita più velocemente. Inoltre, più nodi di convalida esistono sulla rete, più attestazioni devono essere elaborate per ogni blocco, da aggiungere alla potenza d'elaborazione necessaria. Più potenza di elaborazione è necessaria, meno persone possono partecipare a causa della necessità di hardware più costoso, per operare ogni nodo di convalida. Aumentare il tempo tra blocchi riduce la potenza di calcolo necessaria a ogni nodo ma allunga il tempo di finalizzazione, poiché le attestazioni sono elaborate più lentamente. + +Dunque, esiste un compromesso tra i costi di gestione (potenza di calcolo), la decentralizzazione (il numero di nodi che possono partecipare alla convalida della catena) e il tempo di finalizzazione. Il sistema ideale equilibra la minima potenza di calcolo, la massima decentralizzazione e il tempo di finalizzazione minimo. + +Il meccanismo di consenso corrente di Ethereum equilibra questi tre parametri: + +- **Impostando lo stake minimo su 32 ETH**. Questo imposta un limite massimo sul numero delle attestazioni dei validatori che devono essere elaborate dai singoli nodi e, dunque, un limite massimo sui requisiti di calcolo per ogni nodo. +- **Impostando il tempo di finalizzazione a circa 15 minuti**. Questo da' abbastanza tempo ai validatori operati su normali computer domestici di elaborare in sicurezza le attestazioni per ogni blocco. + +Con l'attuale design del meccanismo, per poter ridurre il tempo di finalizzazione, è necessario ridurre il numero di validatori sulla rete o aumentare i requisiti hardware per ogni nodo. Tuttavia, esistono dei miglioramenti apportabili all'elaborazione delle attestazioni che possono consentire il conteggio di ulteriori attestazioni senza aumentare i costi di gestione di ogni nodo. L'elaborazione più efficiente consentirà la determinazione della finalità in un singolo spazio, piuttosto che su due epoche. + +## Percorsi allo SSF {#routes-to-ssf} + + + +Il meccanismo di consenso attuale combina le attestazioni da più validatori, noti come commissioni, per ridurre il numero di messaggi che ogni validatore deve elaborare per convalidare un blocco. Ogni validatore ha l'opportunità di attestare in ogni epoca (32 spazi), ma in ogni spazio, soltanto un sottoinsieme di validatori attesta, noto come 'commissione'. Lo fanno dividendosi in reti secondarie, in cui alcuni validatori sono selezionati per essere 'aggregatori'. Questi combinano ognuno tutte le firme che vedono da altri validatori nella propria rete secondaria in una singola firma aggregata. L'aggregatore che include il numero massimo di singoli contributi, ne passa la firma aggregata al propositore di blocchi, che la include nel blocco insieme alla firma aggregata da altre commissioni. + +Questo procedimento fornisce la capacità sufficiente per ogni validatore di votare in ogni epoca, poiché `32 spazi * 64 commissioni * 256 validatori per commissione = 524.288 validatori per epoca`. Al momento della scrittura (febbraio 2023), esistono circa 513.000 validatori attivi. + +In questo schema, è possibile per ogni validatore, votare esclusivamente su un blocco, distribuendo le proprie attestazioni per l'intera epoca. Tuttavia, esistono potenzialmente dei metodi per migliorare il meccanismo, così che _ogni validatore abbia la possibilità di attestare a ogni spazio_. + + +Dalla progettazione del meccanismo di consenso di Ethereum, lo schema di aggregazione delle firme (BLS), è stato ben più scalabile di quanto si pensasse inizialmente, mentre è stata migliorata anche l'abilità dei client di elaborare e verificare le firme. Si è scoperto che le attestazioni di elaborazione da un gran numero di validatori è in realtà possibile, entro un singolo spazio. Ad esempio, con un milione di validatori che votano due volte per ogni spazio e con i tempi dello spazio regolati a 16 secondi, i nodi dovrebbero verificare a un tasso minimo di 125.000 aggregazioni al secondo, per elaborare tutto il milione di attestazioni nello spazio. In realtà, un normale computer richiede circa 500 nanosecondi per eseguire la verifica di una firma, a significare che se ne possono eseguire 125.000 in circa 62,5 ms; molto meno della soglia di un secondo. + +Ulteriori incrementi d'efficienza potrebbero derivare dalla creazione di super-commissioni di, ad esempio, 125.000 validatori selezionati casualmente, per spazio. Solo questi validatori possono votare su un blocco e, dunque, solo questo sottoinsieme di validatori decide se un blocco è finalizzato. La bontà di questa idea dipende dal costo che vorrebbe la community per un attacco di successo su Ethereum. Questo perché, invece di richiedere i 2/3 dell'ether in staking totale, un utente malevolo potrebbe finalizzare un blocco disonesto con i 2/3 degli ether in staking _in quella super-commissione_. Questa è un'area di ricerca ancora attiva, ma sembra plausibile che perché un insieme di validatori sia abbastanza grande da richiedere le super-commissioni, il costo di attaccarne una sarebbe estremamente elevato (es., il costo denominato di ETH dell'attacco sarebbe di `2/3 * 125.000 * 32 = circa 2,6 milioni di ETH`). Il costo dell'attacco è regolabile aumentando le dimensioni dell'insieme di validatori (ad esempio, regolando le dimensioni del validatore, così che il costo dell'attacco sia pari a 1 milione di ether, 4 milioni di ether, 10 milioni di ether, etc.). I [sondaggi preliminari](https://youtu.be/ojBgyFl6-v4?t=755) della community sembrano suggerire che 1-2 milioni di ether siano un costo accettabile dell'attacco, implicando circa da 65.536 a 97.152 validatori per super-commissione. + +Tuttavia, la verifica non è la vera impasse: è l'aggregazione della firma a sfidare realmente i nodi del validatore. Ridimensionare l'aggregazione delle firme richiederebbe probabilmente l'aumento del numero di validatori per ogni rete secondaria, aumentandone il numero, o aggiungendo ulteriori livelli d'aggregazione (cioè, implementando commissioni delle commissioni). Parte della soluzione potrebbe essere consentire degli agreggatori specializzati, similmente a come la costruzione del blocco e la generaazione degli impegni per i dati dei rollup sarà affidata a costruttori di blocchi specializzati, sotto la separazione propositore-costruttore (PBS) e il Danksharding. + +## Qual è il ruolo della regola di scelta della biforcazione nello SSF? {#role-of-the-fork-choice-rule} + +Il meccanismo del consenso odierno si affida a un rigoroso accoppiamento tra il dispositivo di finalità (l'algoritmo che determina se i 2/3 dei validatori hanno attestato a una certa catena) e la regola di scelta della biforcazione (l'algoritmo che decide quale catena è quella corretta, quando ci sono più opzioni). L'algoritmo di scelta della biforcazione considera soltanto i blocchi \_dall'\_ultimo blocco finalizzato. Sotto lo SSF, non ci sarebbe alcun blocco da considerare per la regola di scelta della biforcazione, poiché la finalità si verifica nello stesso spazio in cui è proposto il blocco. Ciò significa che sotto lo SSF, l'algoritmo di scelta \_o\_\_\_ il dispositivo di finalità sarebbero attivi in ogni momento. Il dispositivo di finalità finalizzerebbe i blocchi in cui i 2/3 dei validatori erano online e stavano attestando in modo onesto. Se un blocco non riuscisse a superare la soglia dei 2/3, la regola di scelta della biforcazione entrerebbe in gioco per determinare quale catena seguire. Questo, inoltre, crea un'opportunità per mantenere il meccanismo di perdita dell'inattività che recupera una catena in cui >1/3 dei validatori è offline, sebbene con delle sfumature aggiuntive. + +## Questioni irrisolte {#outstanding-issues} + +Il problema con il ridimensionamento dell'aggregazione, aumentando il numero di validatori per rete secondaria è che comporta un maggiore carico sulla rete tra pari. Il problema con l'aggiunta di livelli di aggregazioni è che è abbastanza complesso progettare e aggiungere latenza (cioè, potrebbe volerci di più per il propositore del blocco di ricevere da tutti gli aggregatori della rete secondaria). Inoltre, non è chiaro come affrontare lo scenario in cui ci siano più validatori attivi sulla rete di quanti fattibilmente ne possano essere elaborati in ogni spazio, anche con l'aggregazione di firme BLS. Una soluzione potenziale è che, poiché tutti i validatori attestano in ogni slot e non esistono commissioni sotto lo SSF, il limite di 32 ETH sul saldo effettivo potrebbe essere interamente rimosso, a significare che gli operatori che gestiscono più validatori potrebbero consolidare i propri ETH in staking ed eseguirne meno, riducendo il numero di messaggi che i nodi di convalida devono elaborare per tenere conto dell'intero insieme di validatori. Ciò si affida sull'accordo da parte dei grandi staker, di consolidare i propri validatori. Inoltre, è possibile imporre un limite fisso sul numero di validatori o sull'importo di ETH in staking, in ogni momento. Tuttavia, ciò richiede dei meccanismi per decidere quali validatori possono partecipare e quali no, responsabili di creare effetti secondari indesiderati. + +## Stato attuale {#current-progress} + +Lo SSF è nella fase di ricerca. Non dovrebbe essere distribuito per svariati anni, possibilmente dopo altri aggiornamenti sostanziali come gli [alberi di Verkle](/roadmap/verkle-trees/) e il [Danksharding](/roadmap/danksharding]). + +## Letture consigliate {#further-reading} + +- [Vitalik sullo SSF all'EDCON 2022](https://www.youtube.com/watch?v=nPgUKNPWXNI) +- [Note di Vitalik: Percorsi alla finalità dello spazio singolo](https://notes.ethereum.org/@vbuterin/single_slot_finality) diff --git a/src/content/translations/it/roadmap/statelessness/index.md b/src/content/translations/it/roadmap/statelessness/index.md new file mode 100644 index 00000000000..bb80535a87e --- /dev/null +++ b/src/content/translations/it/roadmap/statelessness/index.md @@ -0,0 +1,103 @@ +--- +title: Assenza di stato, scadenza di stato e scadenza dello storico +description: Spiegazione della scadenza dello storico e dell'assenza di stato su Ethereum +lang: it +--- + +# Assenza di stato, scadenza di stato e scadenza dello storico {#statelessness} + +L'abilità di operare i nodi di Ethereum su hardware modesti è fondamentale per la vera decentralizzazione. Questo perché operare un nodo da' agli utenti la possibilità di verificare le informazioni, eseguendo controlli crittografici indipendentemente, piuttosto che fidandosi di una terza parte per alimentare i dati. Eseguire un nodo consente agli utenti di inviare le transazioni direttamente alla rete tra pari di Ethereum, piuttosto che doversi fidare di un intermediario. La decentralizzazione non è possibile se tali benefici sono disponibili soltanto per gli utenti con hardware costoso. Invece, i nodi dovrebbero poter operare con requisiti di elaborazione e memoria estremamente modesti, così che possano funzionare su dispositivi mobili, micro-computer o impercettibilmente su un computer di casa. + +Oggi, i requisiti di spazio su disco sono la principale barriera che impedisce l'accesso universale ai nodi. Questo, principalmente, è dovuto al bisogno di memorizzare grandi pezzi dei dati di stato di Ethereum. Questi dati di stato contengono le informazioni critiche necessarie per elaborare correttamente i nuovi blocchi e le nuove transazioni. Al momento della scrittura, è consigliata una SSD veloce da 2TB per eseguire un nodo completo di Ethereum. Per un nodo che non elimina alcun dato vecchio, i requisiti di archiviazione crescono a circa 14GB/settimana e i nodi d'archivio che memorizzano tutti i dati dalla genesi arrivano a circa 12TB (al momento della scrittura, a febbraio 2023). + +Dischi rigidi più economici sono utilizzabili per memorizzare i dati più vecchi, ma sono troppo lenti per tenere il passo con i blocchi in entrata. Mantenere i modelli di archiviazione correnti per i client mentre i dati diventano più economici e facili da archiviare è soltanto temporaneo e, una soluzione parziale al problema, poiché la crescita dello stato di Ethereum è 'senza limiti', a significare che i requisiti d'archiviazione possono soltanto aumentare e, i miglioramenti tecnologici dovranno sempre mantenere il passo con la continua crescita di stato. Invece, i client devono trovare metodi per verificare i blocchi e le transazioni, senza affidarsi alla ricerca dei dati sui database locali. + +## Ridurre l'archiviazione per i nodi {#reducing-storage-for-nodes} + +Esistono vari metodi per ridurre la quantità di dati che ogni nodo deve memorizzare, ognuno richiedente l'aggiornamento del protocollo principale di Ethereum, in misure diverse: + +- **Scadenza dello storico**: consente ai nodi di scartare i dati di stato precedenti a X blocchi, senza modificare la gestione dei dati di stato del client di Ethereum +- **Scadenza di stato**: consente ai dati di staato non utilizzati di frequente di divenire inattivi. I dati inattivi sono ignorabili dai client, finché non sono "resuscitati". +- **Assenza di stato debole**: solo i produttori di blocchi necessitano dell'accesso ai dati di stato completi, altri nodi possono verificare i blocchi senza un database di stato locale. +- **Assenza di stato forte**: nessun nodo necessita dell'accesso ai dati di stato completi. + +## Scadenza dei dati {#data-expiry} + +### Scadenza dello storico {#history-expiry} + +La scadenza dello storico si riferisce ai client, che rimuovono i dati vecchi che è improbabile che necessiteranno, così da memorizzare soltanto una piccola quantità di dati storici, abbandonando i dati precedenti, quando arrivano i nuovi dati. Esistono due motivi per cui i client necessitano dei dati storici: sincronizzazione e servizio delle richieste di dati. Originariamente, i client dovevano sincronizzarsi dal blocco di genesi, verificando che ogni blocco successivo fosse corretto fino alla testa della catena. Oggi, i client utilizzano i "punti di controllo di soggettività deboli" per farsi strada alla testa della catena. Questi punti di controllo sono punti di partenza affidabili, come avere un blocco di genesi vicino al presente, piuttosto che all'inizio di Ethereum. Ciò significa che i client possono rilasciare tutte le informazioni precedenti al punto di controllo di soggettività debole più recente, senza perdere la capacità di sincronizzarsi con la testa della catena. I client, al momento, servono le richieste (in arrivo tramite JSON-RPC) per i dati storici, prendendole dai propri database locali. Tuttavia, con la scadenza dello storico non sarà possibile se i dati richiesti sono stati eliminati. È nel servire questi dati storici che sono necessarie delle soluzioni innovative. + +Un'opzione è che i client richiedano i dati storici dai pari, utilizzando una soluzione come la Portal Network. La Portal Network è una rete tra pari in via di sviluppo per servire i dati storici, in cui ogni nodo memorizza una piccola parte dello storico di Ethereum, così che l'intero storico esista, ma distribuito sulla rete. Le richieste sono servite ricercando i pari che memorizzano i dati rilevanti e richiedendoli. Altrimenti, poiché generalmente sono le app a richiedere l'accesso ai dati storici, può diventare loro responsabilità memorizzarli. Potrebbero anche esistere abbastanza utenti altruisti nello spazio di Ethereum, desiderosi di mantenere gli archivi storici. Potrebbe essere una DAO, eseguita per gestire l'archiviazione dei dati storici o, idealmente, sarebbe una combinazione di tali opzioni. Questi fornitori potrebbero servire i dati in molti modi, come su un torrent, FTP, Filecoin o IPFS. + +La scadenza dello storico è piuttosto controversa perché finora Ethereum ha sempre garantito implicitamente la disponibilità di qualsiasi dato storico. Una sincronizzazione completa dalla genesi è sempre stata possibile come standard, anche se si affida alla ricostruzione di alcuni dati precedenti da delle istantanee. La scadenza dello storico sposta la responsabilità di fornire questa garanzia, all'esterno del protocollo principale di Ethereum. Questo potrebbe introdurre nuovi rischi di censura, se delle organizzazioni centralizzate finissero per intervenire nel fornire i dati storici. + +L'EIP-4444 non è ancora pronto alla distribuzione, ma è in discussione attiva. È interessante notare che, le sfide con l'EIP-4444 non sono molto tecniche, ma prevalentemente relative alla gestione della community. Perché possa essere distribuita, è necessario coinvolgere la community, così che includa non soltanto accordo, ma anche impegni a memorizzare e servire i dati storici, da entità affidabili. + +Questo aggiornamento, fondamentalmente, non modifica come i nodi di Ethereum gestiscono i dati di stato, modifica semplicemente come i dati storici siano accessibili. + +### Scadenza dello stato {#state-expiry} + +La scadenza di stato fa riferimento alla rimozione dello stato dai singoli nodi, se non è stato acceduto di recente. Esistono vari modi per implementarlo, tra cui: + +- **Scadenza per noleggio**: addebitando un "noleggio" ai conti e facendoli scadere quando il noleggio raggiunge lo zero +- **Scadenza per tempo**: rendendo i conti inattivi se non si verifica alcuna lettura/scrittura a quel conto, per un dato periodo di tempo + +La scadenza per noleggio potrebbe essere un noleggio diretto addebitato ai conti per mantenerli nel database dello stato attivo. La scadenza per tempo potrebbe essere un conto alla rovescia dall'ultima interazione del conto, o una scadenza periodica di tutti i conti. Potrebbero inoltre esistere dei meccanismi che combinano gli elementi dei modelli basati su tempo e affitto, ad esempio, i conti individuali persistono nello stato attivo se pagano delle piccole commissioni, prima della scadenza. Con la scadenza di stato è importante notare che lo stato inattivo **non è eliminato**, è soltanto memorizzato separatamente da quello attivo. Lo stato inattivo può essere resuscitato nello stato attivo. + +Questo dovrebbe probabilmente funzionare con un albero di stato per periodi di tempo specifici (forse di circa 1 anno). Ogni volta che inizia un nuovo periodo, inizia un albero di stato completamente nuovo. Solo l'albero di stato corrente è modificabile, tutti gli altri sono immutabili. I nodi di Ethereum devono contenere soltanto l'albero di stato corrente e il successivo più recente. Questo richiede un metodo per mettere in sequenza un indirizzo, con il periodo in cui esiste. Esistono [svariati metodi possibili](https://ethereum-magicians.org/t/types-of-resurrection-metadata-in-state-expiry/6607) per farlo, ma l'opzione principale richiede l'[allungamento degli indirizzi](https://ethereum-magicians.org/t/increasing-address-size-from-20-to-32-bytes/5485) per accomodare le informazioni aggiuntive, con il beneficio aggiunto che gli indirizzi più lunghi sono più sicuri. Il punto della tabella di marcia che fa questo è detto [estensione dello spazio dell'indirizzo](https://ethereum-magicians.org/t/increasing-address-size-from-20-to-32-bytes/5485). + +Analogamente alla scadenza dello storico, sotto la scadenza di stato, la responsabilità di memorizzare i vecchi dati di stato è rimossa dai singoli utenti e spinta ad altre entità, come fornitori centralizzati, membri altruisti dell community o soluzioni decentralizzate più futuristiche, come la Portal Network. + +La scadenza dello stato è ancora in fase di ricerca e non è ancora pronta alla distribuzione. La scadenza di stato potrebbe verificarsi dopo i client privi di stato e la scadenza dello storico, poiché questi aggiornamenti rendono più facilmente gestibili le grandi dimensioni di stato per gran parte dei validatori. + +## Assenza di stato {#statelessness} + +L'assenza di stato è un termine un po' improprio perché non si riferisce al concetto di eliminazione dello "stato", ma coinvolge delle modifiche alla gestione dei dati di stato dai nodi di Ethereum. L'assenza di stato stessa si presenta in due modalità: debole e forte. L'assenza di stato debole consente a gran parte dei nodi di essere privi di stato, dando la responsabilità dell'archiviazione dello stato a pochi. L'assenza di stato forte rimuove completamente il bisogno, per qualsiasi nodo, di memorizzare i dati di stato completi. Sia l'assenza di stato debole che forte offrono i seguenti benefici ai normali validatori: + +- sincronizzazione quasi istantanea +- abilità di convalidare i blocchi fuori ordine +- nodi capaci di operare con requisiti hardware molto ridotti (es. su telefoni) +- nodi che operano su dischi rigidi economici, perché non è richiesta alcuna lettura/scrittura del disco +- compatibilità con aggiornamenti futuri alla crittografia di Ethereum + +### Assenza di stato debole {#weak-statelessness} + +L'assenza di stato debole richiede modifiche a come i nodi di Ethereum verificano i cambiamenti di stato, ma non elimina completamente il bisogno di archiviare lo stato su tutti i nodi sulla rete. Invece, l'assenza di stato dà la responsabilità d'archiviazione dello stato ai propositori di blocchi, mentre tutti gli altri nodi sulla rete verificano i blocchi senza memorizzare i dati di stato completi. + +**Nell'assenza di stato debole, la proposta dei blocchi richiede l'accesso ai dati di stato completi, ma la verifica dei blocchi no** + +Perché ciò si verifichi, devono già essere stati implementati gli [alberi di Verkle](../verkle-trees) nei client di Ethereum. Gli alberi di Verkle sono strutture di dati sostitutive per memorizzare i dati di stato di Ethereum, che consentono a "testimoni" di dati di dimensioni ridotte e fisse, di essere passati tra i pari e utilizzati per verificare i blocchi, invece di verificarli rispetto ai database locali. Anche la [separazione tra propositori e costruttori](/roadmap/pbs/) è necessaria poiché consente ai costruttori di blocchi di essere nodi specializzati con hardware più potente, essendo coloro che necessitano di accedere ai dati di stato completi. + + + +L'assenza di stato si affida ai costruttori di blocchi che mantengono una copia dei dati di stato completi, così che possano generare testimoni utilizzabili per verificare il blocco. Gli altri nodi non necessitano di accedere ai dati di stato, tutte le informazioni necessarie per verificare il blocco sono disponibili nel testimone. Ciò crea una situazione in cui proporre un blocco è costoso, ma verificarlo è economico, implicando che meno operatori eseguiranno un nodo di proposta dei blocchi. Tuttavia, la decentralizzazione dei propositori di blocchi non è fondamentale, finché quanti più partecipanti possibili possono verificare indipendentemente che i blocchi proposti siano validi. + +Leggi di più sulle note di Dankrad + + +I propositori di blocchi utilizzano i dati di stato per creare dei "testimoni": la serie minima di dati che prova i valori dello stato modificati dalle transazioni in un blocco. Gli altri validatori non detengono lo stato, memorizzano semplicemente la radice di stato (un hash dell'intero stato). Ricevono un blocco e un testimone e li utilizzano per aggiornare la radice di stato. Questo rende un nodo di convalida estremamente leggero. + +L'assenza di stato debole è in uno stato avanzato di ricerca, ma si affida all'implementazione della separazione tra propositori e costruttori e degli Alberi di Verkle, così che i piccoli testimoni possano essere passati tra pari. Ciò significa che l'assenza di stato debole è probabilmente a pochi anni dalla Rete Principale di Ethereum. + +### Assenza di stato forte {#strong-statelessness} + +L'assenza di stato forte rimuove il bisogno di qualsiasi blocco, di memorizzare i dati di stato. Invece, le transazioni sono inviate con i testimoni, aggregabili dai produttori di blocchi. I produttori di blocchi sono quindi responsabili della memorizzazione di soltanto quello stato, necessario per generare testimoni per i conti rilevanti. La responsabilità per lo stato è quasi interamente trasferita agli utenti, poiché inviano i testimoni e 'accedono agli elenchi' per dichiarare con quali conti e quali chiavi d'archiviazione stanno interagendo. + +L'assenza di stato forte è la soluzione più elegante per ridurre i requisiti del disco per i nodi, ma richiede aggiornamenti sostanziali al protocollo di Ethereum. È ancora nella fase di ricerca e non sarà probabilmente distribuita per svariati anni. + +## Stato attuale {#current-progress} + +L'assenza di stato completa è ancora in fase di ricerca ed è probabilmente distante di diversi anni dall'implementazione. L'assenza di stato debole, la scadenza dello storico e la scadenza dello stato sono tutte pietre miliari vero la completa assenza di stato. Anch'esse sono ancora in fase di sviluppo. Non esiste alcuna garanzia che tutte queste proposte saranno implementate, ad esempio, se la scadenza di stato è implementate per prima, non sarebbe necessario implementare anche la scadenza dello storico. Esistono anche altri punti della tabella di marcia, come gli [Alberi di Verkle](/roadmap/verkle-trees) e la [Separazione tra propositori e costruttori](/roadmap/pbs), che necessitano di essere completati per primi. + +## Letture consigliate {#further-reading} + +- [AMA sull'assenza di stato di Vitalik](https://www.reddit.com/r/ethereum/comments/o9s15i/impromptu_technical_ama_on_statelessness_and/) +- [Una teoria sulla gestione delle dimensioni dello stato](https://hackmd.io/@vbuterin/state_size_management) +- [Limitazione dello stato di risurrezione e conflitto minimizzati](https://ethresear.ch/t/resurrection-conflict-minimized-state-bounding-take-2/8739) +- [Percorsi all'assenza di stato e alla scadenza dello stato](https://hackmd.io/@vbuterin/state_expiry_paths) +- [Specifiche dell'EIP-4444](https://eips.ethereum.org/EIPS/eip-4444) +- [Alex Stokes sull'EIP-4444](https://youtu.be/SfDC_qUZaos) +- [Perché l'assenza di stato è così importante](https://dankradfeist.de/ethereum/2021/02/14/why-stateless.html) +- [Le note del concetto originale del client privo di stato](https://ethresear.ch/t/the-stateless-client-concept/172) +- [Informazioni sulla scadenza dello stato](https://hackmd.io/@vbuterin/state_size_management#A-more-moderate-solution-state-expiry) +- [Ulteriori informazioni sulla scadenza di stato](https://hackmd.io/@vbuterin/state_expiry_paths#Option-2-per-epoch-state-expiry) diff --git a/src/content/translations/it/roadmap/user-experience/index.md b/src/content/translations/it/roadmap/user-experience/index.md new file mode 100644 index 00000000000..7ab2722f81d --- /dev/null +++ b/src/content/translations/it/roadmap/user-experience/index.md @@ -0,0 +1,36 @@ +--- +title: Migliorare l'esperienza degli utenti +description: Per molti, è ancora troppo complesso utilizzare Ethereum. Per incoraggiare l'adozione di massa, Ethereum deve ridurre drasticamente le proprie barriere d'accesso; gli utenti devono ricevere i benefici dell'accesso decentralizzato, privo di permessi e resistente alla censura a Ethereum, ma dev'essere privo di frizione, tanto quanto utilizzare una tradizionale app del web2. +lang: it +image: ../../../../../assets/roadmap/roadmap-ux.png +alt: "Roadmap di Ethereum" +template: roadmap +--- + +L'utilizzo di Ethereum dev'essere semplificato; dalla gestione delle chiavi e dei portafogli all'avvio delle transazioni. Per facilitare l'adozione di massa, Ethereum deve aumentare drasticamente la facilità d'uso, consentendo agli utenti di sperimentare un accesso privo di permessi e resistente alla censura a Ethereum, con l'esperienza priva di attrito dell'utilizzo delle app Web2. + +## Oltre le frasi di seed {#no-more-seed-phrases} + +I conti di Ethereum sono protetti da una coppia di chiavi, utilizzate per identificare i conti (chiave pubblica) e firmare i messaggi (chiave privata). Una chiave privata è come una password principale; consente di completare l'accesso a un conto di Ethereum. Questo è un metodo di operazione differente per le persone che hanno più dimestichezza con le banche e le app Web2, che gestiscono i conti per conto di un utente. Perché Ethereum raggiunga l'adozione di massa senza affidarsi a terze parti centralizzate, deve esistere un metodo diretto e privo di attrito per un utente, per prendere custodia delle proprie risorse e mantenere il controllo dei propri dati senza dover comprendere la crittografia delle chiavi pubbliche e private e la gestione delle chiavi. + +La soluzione è utilizzare portafogli di contratti intelligenti per interagire con Ethereum. I portafogli di contratti intelligenti creano modi per proteggere i conti se le chiavi sono perdute o rubate, opportunità per un migliore rilevamento e difesa dalle truffe e consentono ai portafogli di ottenere nuove funzionalità. Sebbene i portafogli di contratti intelligenti esistano oggi, sono imbarazzanti da creare perché il protocollo di Ethereum necessita di supportarli meglio. Questo supporto aggiuntivo è noto come astrazione del conto. + +Di più sull'astrazione del conto + +## Nodi per tutti + +Gli utenti che operano nodi non devono fidarsi di terze parti per fornire loro i dati e possono interagire rapidamente, privatamente e senza permessi con la blockchain di Ethereum. Tuttavia, al momento, operare un nodo richiede una conoscenza tecnica e sostanziale spazio su disco, a significare che molte persone devono invece fidarsi di degli intermediari. + +Esistono diversi aggiornamenti che semplificheranno l'esecuzione dei nodi, riducendo di molto il consumo di risorse. Il metodo di archiviazione dei dati sarà modificato per utilizzare una struttura molto più efficiente a livello di spazio, nota come **Albero di Verkle**. Inoltre, con l'[assenza di stato](/roadmap/statelessness) o la [scadenza dei dati](/roadmap/statelessness/#data-expiry), i nodi di Ethereum non dovranno memorizzare una copia degli interi dati di stato di Ethereum, riducendo drasticamente i requisiti di spazio su disco. I [nodi leggeri](/developers/docs/nodes-and-clients/light-clients/) offriranno molti benefici dell'operare un nodo completo, ma potranno facilmente operare su smartphone o in semplici app per browser. + +Leggi di più sugli alberi di Verkle + +Con questi aggiornamenti, le barriere all'esecuzione di un nodo sono ridotte effettivamente a zero. Gli utenti beneficeranno di un accesso sicuro e privo di permessi a Ethereum, senza dover sacrificare notevole spazio su disco o CPU sul proprio computer o il proprio dispositivo mobile e non dovranno affidarsi a terze parti per l'accesso a dati o alla rete, utilizzando le app. + +## Stato attuale {#current-progress} + +I portafogli di contratti intelligenti sono già disponibili, ma sono necessari maggiori aggiornamenti per renderli il più decentralizzati e privi di permessi possibile. L'EIP-4337 è un proposta matura che non richiede alcuna modifica al protocollo di Ethereum. Il contratto intelligente principale necessario per l'EIP-4337 è stato distribuito a marzo 2023. + +L'assenza di stato completa è ancora in fase di ricerca ed è probabilmente distante di diversi anni dall'implementazione. Esistono diverse pietre miliari sul percorso alla completa assenza di stato, inclusa la scadenza dei dati, che potrebbe essere implementata prima. Devono prima essere completati altri punti della tabella di marcia, come gli [Alberi di Verkle](/roadmap/verkle-trees/) e la [Separazione tra propositori e costruttori](/roadmap/pbs/). + +Le reti di prova degli alberi di Verkle sono già in esecuzione e la prossima fase, consiste nell'operare client che consentano gli alberi di Verkle su reti pubbliche dapprima private, quindi pubbliche. Puoi aiutare ad accelerare il progresso distribuendo contratti alle reti di prova od operando dei client delle reti di prova. diff --git a/src/content/translations/it/roadmap/verkle-trees/index.md b/src/content/translations/it/roadmap/verkle-trees/index.md new file mode 100644 index 00000000000..a62079a30b9 --- /dev/null +++ b/src/content/translations/it/roadmap/verkle-trees/index.md @@ -0,0 +1,65 @@ +--- +title: Alberi di Verkle +description: Una descrizione di alto livello degli alberi di Verkle e di come saranno utilizzati per aggiornare Ethereum +lang: it +summaryPoints: + - Scopri cosa sono gli alberi di Verkle + - Leggi perché gli alberi di Verkle sono un utile aggiornamento per Ethereum +--- + +# Alberi di Verkle {#verkle-trees} + +Gli alberi di Verkle (un neologismo tra "Impegno Vettoriale" e "Alberi di Merkle") sono strutture di dati utilizzabili per aggiornare i nodi di Ethereum, così che possano smettere di archiviare grandi quantità di dati di stato, senza perdere l'abilità di convalidare i blocchi. + +## Assenza di stato {#statelessness} + +Gli alberi di Verkle sono un passaggio fondamentale sul percorso per i client di Ethereum privi di stato. I client privi di stato sono quelli che non devono memorizzare l'intero database di stato per poter convalidare i blocchi in entrata. Invece di utilizzare la propria copia dello stato di Ethereum per verificare i blocchi, utilizzano un "testimone" ai dati di stato che arriva con il blocco. Un testimone è una raccolta di pezzi individuali dei dati di stato, necessaria per eseguire una serie particolare di transazioni, nonché una prova crittografica che il testimone sia davvero parte dei dati completi. Il testimone è utilizzato _invece_ del database di stato. Perché funzioni, i testimoni devono essere molto piccoli, così che siano trasmissibili in sicurezza per la rete, in tempo per essere convalidati dai validatori entro uno spazio di 12 secondi. La struttura attuale dei dati di stato non è adatta, poiché i testimoni sono troppo grandi. Gli alberi di Verkle risolvono questo problema consentendo piccoli testimoni e rimuovendo una delle principali barriere ai client privi di stato. + + + +I client di Ethereum, al momento, utilizzano una struttura di dati nota come Albero di Patricia di Merkle per memorizzarne i dati di stato. Le informazioni sui singoli conti sono memorizzati come foglie su un albero e, le coppie di foglie, ricevono ripetutamente un hash finché non ne resta soltanto uno. Questo hash finale è noto come la "radice". Per verficare i blocchi, i client di Ethereum eseguono tutte le transazioni in un blocco e aggiornano il proprio albero di stato locale. Il blocco è considerato valido se la radice dell'albero locale è identica a quella fornita dal propositore di blocchi, poiché qualsiasi differenza nel calcolo effettuato dal propositore del blocco e dal nodo di convalida, formerebbe un hash di radice completamente differente. Il problema è che la verifica della blockchain richiede che ogni client memorizzi l'intero albero di stato per il blocco di testa e per diversi blocchi storici (di default, su Geth, sono mantenuti i dati di stato per 128 blocchi oltre la testa). Ciò richiede che i client abbiano accesso a una grande quantità di spazio su disco, limitando l'esecuzione dei nodi completi su hardware economici e poco potenti. Una soluzione è aggiornare l'albero di stato a una struttura più efficiente (l'albero di Verkle), riepilogabile utilizzando un piccolo "testimone" ai dati, condivisibile invece dei dati di stato completi. Riformattare i dati di stato in un albero di Verkle è una pietra miliare per spostarsi verso i client privi di stato. + + + +## Cos'è un testimone e perché è necessario? {#what-is-a-witness} + +Verificare un blocco significa rieseguire le transazioni contenute nel blocco, applicando le modifiche all'albero di stato di Ethereum e calcolando il nuovo hash della radice. Un blocco verificato è uno il cui hash della radice di stato calcolato equivale a quello fornito con il blocco (poiché ciò preclude che il propositore del blocco abbia realmente effettuato il calcolo che dice di aver effettuato). Nei client odierni di Ethereum, aggiornare lo stato richiede l'accesso all'intero albero di stato, una grande struttura di dati che dev'essere archiviata localmente. Un testimone contiene soltanto i frammenti dei dati di stato necessari per eseguire le transazioni nel blocco. Un validatore può quindi utilizzare soltanto quei frammenti per verificare che il propositore di blocchi abbia eseguito le transazioni del blocco e aggiornato correttamente lo stato. Tuttavia, ciò significa che il testimone dev'essere trasferito tra i pari sulla rete di Ethereum abbastanza rapidamente da essere ricevuto ed elaborato da ogni nodo, in sicurezza, entro uno spazio di 12 secondi. Se il testimone è troppo grande, per alcuni nodi potrebbe volerci troppo per scaricarlo e tenere il passo con la catena. Questa è una forza centralizzante, poiché significa che soltanto i nodi con connessioni a Internet veloci, possono partecipare alla convalida dei blocchi. Con gli alberi di Verkle non è necessario memorizzare lo stato sul proprio disco rigido; _tutto_ ciò che serve per verificare un blocco, si trova nel blocco stesso. Purtroppo, i testimoni producibili dagli alberi di Merkle sono troppo grandi per supportare i client privi di stato. + +## Perché gli alberi di Verkle consentono testimoni più piccoli? {#why-do-verkle-trees-enable-smaller-witnesses} + +La struttura di un Albero di Merkle rende le dimensioni dei testimoni molto grandi, troppo per trasmetterli in sicurezza tra pari entro uno spazio di 12 secondi. Questo perché il testimone è un percorso che connette i dati, tenuti tra le foglie, all'hash della radice. Per verificare i dati è necessario non soltanto avere tutti gli hash intermedi che connettono ogni foglia alla radice, ma anche tutti i nodi "gemelli". Ogni nodo nella prova ha un gemello, con cui è eseguito l'hash per creare quello successivo. Questi sono molti dati. Gli alberi di Verkle riducono le dimensioni dei testimoni accorciando la distanza tra le foglie dell'albero e la sua radice, nonché eliminando la necessità di provare i nodi gemelli per verificare l'hash della radice. Una maggiore efficienza di spazio sarà ottenuta utilizzando un potente schema di impegno polinomiale, invece dell'impegno vettoriale con hash. L'impegno polinomiale consente al testimone di avere una dimensione fissa indipendentemente dal numero di foglie che prova. + +Sotto lo schema di impegno polinomiale, i testimoni hanno dimensioni gestibili, facilmente trasferibili sulla rete tra pari. Questo consente ai client di verificare i cambiamenti di stato in ogni blocco con una quantità minima di dati. + + + +Le dimensioni dei testimoni variano a seconda del numero di foglie che include. Supponendo che il testimone copra 1000 foglie, un testimone per un albero di Merkle occuperebbe all'incirca 3,5 MB (ipotizzando 7 livelli all'albero). Un testimone per gli stessi dati in un albero di Verkle (ipotizzando 4 livelli all'albero) occuperebbe circa 150 kB; **circa 23 volte più piccolo**. Questa riduzione delle dimensioni del testimone consentirà ai testimoni del client di essere accettabilmente piccoli. I testimoni polinomiali variano da 0,128 a 1 kB a seconda di quale specifico impegno polinomiale è utilizzato. + + + +## Qual è la struttura di un albero di Verkle? {#what-is-the-structure-of-a-verkle-tree} + +Gli alberi di Verkle sono coppie `(key,value)` in cui le chiavi sono elementi da 32 byte composte da uno _stelo_ di 31 byte e un _suffisso_ di un singolo byte. Queste chiavi sono organizzate in nodi _estensione_ e nodi _interni_. I nodi d'estensione rappresentano un singolo stelo per 256 figli con suffissi differenti. Anche i nodi interni hanno 256 figli, ma possono essere altri nodi d'estensione. La differenza principale tra la struttura dell'albero di Verkle e dell'albero di Merkle è che il primo è molto più piatto, a significare che ci sono meno nodi intermedi che collegano una foglia alla radice e dunque sono richiesti meno dati per generare una prova. + +![](./verkle.png) + +[Leggi di più sulla struttura degli alberi di Verkle](https://blog.ethereum.org/2021/12/02/verkle-tree-structure) + +## Stato attuale {#current-progress} + +Le reti di prova dell'albero di Verkle sono già in esecuzione, ma servono ancora aggiornamenti sostanziali e straordinari, necessari a supportarli. Puoi aiutare ad accelerare il progresso distribuendo contratti alle reti di prova od operando dei client delle reti di prova. + +[Esplora la rete di prova di Verkle di Beverly Hills](https://beverlyhills.ethpandaops.io) + +[Guarda Guillaume Ballet spiegare la rete di prova di Verkle di Condrieu](https://www.youtube.com/watch?v=cPLHFBeC0Vg) (nota che la rete di prova di Condrieu era in proof-of-work e, ora, è stata sospesa dalla [rete di prova di Kaustinen](https://kaustinen.ethdevops.io)). + +## Letture consigliate {#further-reading} + +- [Dankrad Feist spiega gli alberi di Verkle su PEEPanEIP](https://www.youtube.com/watch?v=RGJOQHzg3UQ) +- [Guillaume Ballet spiega gli alberi di Verkle all'ETHGlobal](https://www.youtube.com/watch?v=f7bEtX3Z57o) +- ["Come gli alberi di Verkle rendono Ethereum snello e succinto" di Guillaume Ballet al Devcon 6](https://www.youtube.com/watch?v=Q7rStTKwuYs) +- [Piper Merriam sui client privi di stato dall'ETHDenver 2020](https://www.youtube.com/watch?v=0yiZJNciIJ4) +- [Dankrad Fiest spiega gli alberi di Verkle e l'assenza di stato al podcast "Zero Knowledge"](https://zeroknowledge.fm/episode-202-stateless-ethereum-verkle-tries-with-dankrad-feist/) +- [Vitalik Buterin sugli alberi di Verkle](https://vitalik.ca/general/2021/06/18/verkle.html) +- [Dankrad Feist sugli alberi di Verkle](https://dankradfeist.de/ethereum/2021/06/18/verkle-trie-for-eth1.html) +- [Documentazione sull'EIP degli alberi di Verkle](https://notes.ethereum.org/@vbuterin/verkle_tree_eip#Illustration) diff --git a/src/content/translations/it/staking/pools/index.md b/src/content/translations/it/staking/pools/index.md index 13427eaf88e..54bc7bbcc4a 100644 --- a/src/content/translations/it/staking/pools/index.md +++ b/src/content/translations/it/staking/pools/index.md @@ -17,7 +17,7 @@ summaryPoints: I pool di staking sono un approccio collaborativo per consentire a molti, con quantità minori di ETH, di ottenere i 32 ETH necessari per attivare un insieme di chiavi di validazione. La funzionalità di pooling non è supportata nativamente all'interno del protocollo, quindi le soluzioni sono state sviluppate separatamente per rispondere a questa esigenza. -Alcuni pool operano utilizzando i contratti intelligenti, dove i fondi possono essere depositati in un contratto, che gestisce e traccia in modo affidabile il tuo stake, e ti emette un token che rappresenta questo valore. Altri pool potrebbero non coinvolgere i contratti intelligenti ed essere invece mediati al di fuori dalla catena. +Alcuni pool operano utilizzando i contratti intelligenti, dove i fondi possono essere depositati in un contratto, che gestisce e traccia senza fiducia il tuo stake, e ti emette un token che rappresenta questo valore. Altri pool potrebbero non coinvolgere i contratti intelligenti ed essere invece mediati al di fuori dalla catena. ## Perché mettere in stake con un pool? {#why-stake-with-a-pool} @@ -64,11 +64,7 @@ Tipicamente, i token di liquidità ERC-20 sono emessi agli staker che rappresent -Al momento, è impossibile prelevare fondi da un validatore di Ethereum, il che limita l'abilità di riscattare effettivamente il tuo token di liquidità per le ricompense in ETH bloccate nel livello del consenso. - -L'aggiornamento della rete Shanghai introdurrà la funzionalità di prelievo, pianificata per il primo o secondo trimestre del 2023. Tutti gli ETH in staking resteranno bloccati fino ad allora. - -Dopo questo aggiornamento, i conti dei validatori che sostengono i pool di staking avranno la possibilità di uscire e prelevare ETH al proprio indirizzo designato di prelievo. Ciò consentirà di riscattare la porzione di stake per gli ETH sottostanti. Confrontati con il tuo fornitore per scoprire come supporta tale funzionalità. +Subito! L'aggiornamento della rete di Shanghai/Capella è avvenuto ad aprile 2023 e ha introdotto i prelievi di staking. I conti del validatore che sostengono i pool di staking hanno ora la possibilità di uscire e prelevare ETH al proprio indirizzo di prelievo designato. Ciò consente di riscattare la propria parte di stake per gli ETH sottostanti. Confrontati con il tuo fornitore per scoprire come supporta tale funzionalità. Altrimenti, i pool che usano un token di liquidità ERC-20 consentono agli utenti di scambiarlo nel mercato aperto, consentendoti di vendere la tua posizione di staking, "prelevando" effettivamente senza rimuovere realmente ETH dal contratto di staking. diff --git a/src/content/translations/it/staking/saas/index.md b/src/content/translations/it/staking/saas/index.md index fe382d081ef..5d1cef0d760 100644 --- a/src/content/translations/it/staking/saas/index.md +++ b/src/content/translations/it/staking/saas/index.md @@ -58,7 +58,7 @@ Hai un suggerimento per un fornitore di staking come servizio che abbiamo diment ## Domande frequenti {#faq} - Le disposizioni differiranno da fornitore a fornitore, ma in genere, sarai guidato alla configurazione di qualsiasi chiave di firma necessaria (una per 32 ETH) e al loro caricamento al tuo fornitore per consentirgli di validare per conto tuo. Le sole chiavi di firma non danno alcuna possibilità di prelevare, trasferire o spendere i tuoi fondi. Tuttavia, forniscono la possibilità di trasmettere voti a favore di un consenso, il che, se non fatto propriamente, può risultare in sanzioni offline o tagli. +Le disposizioni differiranno da fornitore a fornitore, ma in genere, sarai guidato alla configurazione di qualsiasi chiave di firma necessaria (una per 32 ETH) e al loro caricamento al tuo fornitore per consentirgli di validare per conto tuo. Le sole chiavi di firma non danno alcuna possibilità di prelevare, trasferire o spendere i tuoi fondi. Tuttavia, forniscono la possibilità di trasmettere voti a favore di un consenso, il che, se non fatto propriamente, può risultare in sanzioni offline o tagli. @@ -66,25 +66,25 @@ Sì. Ogni conto si compone sia di chiavi di firma che di chiavi di Le chiavi di prelievo BLS sono utilizzate per firmare un messaggio una tantum che dichiara a chi dovrebbero andare le ricompense di staking del conto del livello d'esecuzione e i fondi prelevati. Una volta trasmesso questo messaggio, le chiavi di prelievo BLS non saranno più necessarie. Invece, il controllo dei fondi prelevati è permanentemente delegato all'indirizzo fornito. Ciò consente di impostare un indirizzo di prelievo protetto tramite l'archiviazione a freddo, minimizzando il rischio per i tuoi fondi del validatore, anche se qualcun altro controlla le chiavi di firma del tuo validatore. -Aggiornare le credenziali di prelievo è un passaggio necessario per abilitare i prelievi con l'aggiornamento Shanghai. Questo processo comporta la generazione delle chiavi di prelievo, utilizzando la tua frase di seed mnemonica. Assicurati di eseguire il backup di questa frase di seed in sicurezza o non potrai generare le tue chiavi di prelievo quando arriverà il momento. +Aggiornare le credenziali di prelievo è un passaggio necessario per consentire i prelievi\*. Questo processo comporta la generazione delle chiavi di prelievo, utilizzando la tua frase di seed mnemonica. -Gli staker che lo hanno già fornito con il deposito iniziale, non dovranno impostare un indirizzo di prelievo. Confrontati con il tuo fornitore SaaS per ricevere assistenza con la preparazione del validatore. +Accertati di eseguire in sicurezza il backup di questa frase di seed, o non potrai generare le tue chiavi di prelievo quando arriverà il momento. + +\*Gli staker che hanno fornito un indirizzo di prelievo con il deposito iniziale non hanno necessità di impostarle. Confrontati con il tuo fornitore SaaS per ricevere assistenza con la preparazione del validatore. -Quando metti 32 ETH in stake con un fornitore di SaaS, quegli ETH sono ancora depositati al contratto di deposito di staking ufficiale. Come tali, gli staker di SaaS sono limitati dalle stesse limitazioni di prelievo degli staker in solo e i prelievi non saranno abilitati fino all'aggiornamento Shanghai. - -I prelievi di staking saranno implementati nel prossimo aggiornamento Shanghai, previsto tra il primo e il secondo trimestre del 2023. Dopodiché, gli staker dovranno fornire un indirizzo di prelievo (se non è fornito sul deposito iniziale) e i pagamenti delle ricompense inizieranno a essere distribuiti automaticamente su base periodica ogni pochi giorni. +I prelievi di staking sono stati implementati nell'aggiornamento di Shanghai/Capella, ad aprile 2023. Gli staker devono fornire un indirizzo di prelievo (se non è stato fornito al deposito iniziale) e i pagamenti delle ricompense inizieranno a essere distribuiti automaticamente su base periodica, a intervalli di pochi giorni. -Ciò consentirà anche di sbloccare i fondi usciti. I validatori possono uscire completamente da tale ruolo e riceveranno il loro saldo per intero all'indirizzo di prelievo fornito. +I validatori, inoltre, possono uscire interamente come tali, il che sbloccherà il loro saldo in ETH rimanente per il prelievo. I conti che hanno fornito un indirizzo di prelievo d'esecuzione e hanno completato il procedimento di uscita riceveranno interamente il proprio saldo all'indirizzo di prelievo fornito durante la successiva pulizia dei validatori. Di più sulle ricompense di staking -Usando un fornitore di Saas, affidi l'operazione del tuo nodo a qualcun altro. Questo comporta il rischio delle scarse prestazioni del nodo, che non dipendono da te. Nell'evento in cui il tuo validatore sia tagliato, il saldo del tuo validatore sarà sanzionato e forzatamente rimosso dal pool dei validatori. Questi fondi saranno bloccati finché i prelievi non saranno abilitati a livello del protocollo. +Usando un fornitore di Saas, affidi l'operazione del tuo nodo a qualcun altro. Questo comporta il rischio delle scarse prestazioni del nodo, che non dipendono da te. Nell'evento in cui il tuo validatore sia tagliato, il saldo del tuo validatore sarà sanzionato e forzatamente rimosso dal pool dei validatori. -L'imminente aggiornamento Shanghai introduce la funzionalità di prelievo, che ai fini dell'attivazione richiede di fornire un indirizzo di prelievo. Questo potrebbe essere stato fornito al deposito iniziale. Altrimenti, le chiavi di firma del validatore dovranno essere utilizzate per firmare un messaggio che dichiari un indirizzo di prelievo, al momento dell'aggiornamento. +Fino al completamento del procedimento di taglio/uscita, questi fondi saranno trasferiti all'indirizzo di prelievo assegnato al validatore. Ciò richiede di fornire un indirizzo di prelievo, per poter essere abilitato. Questo potrebbe essere stato fornito al deposito iniziale. Altrimenti, le chiavi di prelievo del validatore dovranno essere usate per firmare un messaggio che dichiari un indirizzo di prelievo. Se non è stato fornito alcun indirizzo di prelievo, i fondi resteranno bloccati finché non sarà fornito. Contatta il singolo fornitore di SaaS per ulteriori dettagli su qualsiasi opzione di garanzia o assicurazione e per le istruzioni su come fornire un indirizzo di prelievo. Se preferisci avere il pieno controllo della configurazione del tuo validatore, scopri di più su come fare staking in solo dei tuoi ETH. diff --git a/src/content/translations/it/staking/solo/index.md b/src/content/translations/it/staking/solo/index.md index 92c506f9e5f..2faf14a36c2 100644 --- a/src/content/translations/it/staking/solo/index.md +++ b/src/content/translations/it/staking/solo/index.md @@ -40,32 +40,37 @@ Lo staking in solo richiede una maggiore responsabilità, ma fornisce il massimo Per quanto vorremmo che lo staking in solo fosse accessibile e privo di rischi per tutti, questa non è la realtà. Esistono alcune serie considerazioni pratiche da tenere a mente prima di scegliere di mettere i tuoi ETH in staking in solo. - - Quando utilizzi il tuo nodo, dovresti dedicare del tempo a imparare come usare il software che hai scelto. Questo include la lettura della documentazione pertinente e seguire i canali di comunicazione di tali team di sviluppo. - Più comprendi il software che stai operando e il funzionamento del proof-of-stake, meno rischioso sarà come staker e più sarà facile risolvere qualsiasi problema che potrebbe sorgere lungo il percorso da operatore del nodo. - - - La configurazione del nodo richiede un livello di dimestichezza ragionevole con il computer, sebbene nuovi strumenti stiano semplificando le procedure con il tempo. La comprensione dell'interfaccia della riga di comando è utile, ma non più rigorosamente richiesta. - Richiede anche una configurazione hardware molto basilare e una minima comprensione delle specifiche consigliate minime. - - - Proprio come le chiavi private proteggono il tuo indirizzo di Ethereum, dovrai generare chiavi specificamente per il tuo validatore. Devi comprendere come mantenere al sicuro qualsiasi frase di seed o chiave privata. -

Sicurezza di Ethereum e prevenzione delle truffe

-
- - Il prelievo degli ETH in staking o delle ricompense dal saldo di un validatore non è ancora supportato. Il supporto per i prelievi è pianificato per il prossimo aggiornamento Shanghai. Dopodiché, gli utenti potranno aderire per ricevere automaticamente i pagamenti delle ricompense e potranno prelevare il saldo per intero per ricevere i fondi. - - - L'hardware, talvolta, si guasta, le connessioni di rete generano errori e il software del client a volte necessita di aggiornamenti. La manutenzione del nodo è inevitabile e richiederà occasionalmente la tua attenzione. Vorrai assicurarti di esser consapevole di qualsiasi aggiornamento di rete anticipato o di altri aggiornamenti critici del client. - - - Le tue ricompense sono proporzionali al tempo in cui il tuo validatore è online e sta attestando propriamente. Le interruzioni comportano sanzioni proporzionali a quanti altri validatori sono offline nello stesso momento, ma non risultano in tagli. Anche la larghezza di banda conta, poiché le ricompense sono ridotte per le attestazioni che non sono ricevute in tempo. I requisiti varieranno, ma si consiglia un minimo di 10 Mb/s in upload e download. - - - Differente dalle sanzioni di inattività per esser offline, il taglio è una sanzione molto più seria, riservata alle infrazioni malevole. Operando un client di minoranza con le tue chiavi caricate su una sola macchina per volta, il tuo rischio di esser tagliato è minimizzato. Detto ciò, tutti gli staker devono esser consapevoli dei rischi di taglio. - -

Ulteriori informazioni sul taglio e il ciclo di vita del validatore

-
+ +Quando utilizzi il tuo nodo, dovresti dedicare del tempo a imparare come usare il software che hai scelto. Questo include la lettura della documentazione pertinente e seguire i canali di comunicazione di tali team di sviluppo. + +Più comprendi il software che stai operando e il funzionamento del proof-of-stake, meno rischioso sarà come staker e più sarà facile risolvere qualsiasi problema che potrebbe sorgere lungo il percorso da operatore del nodo. + + + +La configurazione del nodo richiede un livello di dimestichezza ragionevole con il computer, sebbene nuovi strumenti stiano semplificando le procedure con il tempo. La comprensione dell'interfaccia della riga di comando è utile, ma non più rigorosamente richiesta. + +Richiede anche una configurazione hardware molto basilare e una minima comprensione delle specifiche consigliate minime. + + + +Proprio come le chiavi private proteggono il tuo indirizzo di Ethereum, dovrai generare delle chiavi specificamente per il tuo validatore. Devi comprendere come mantenere al sicuro qualsiasi frase di seed o chiave privata. + +Sicurezza di Ethereum e prevenzione delle truffe + + + +L'hardware, talvolta, si guasta, le connessioni di rete generano errori e il software del client a volte necessita di aggiornamenti. La manutenzione del nodo è inevitabile e richiederà occasionalmente la tua attenzione. Vorrai assicurarti di esser consapevole di qualsiasi aggiornamento di rete anticipato o di altri aggiornamenti critici del client. + + + +Le tue ricompense sono proporzionali al tempo in cui il tuo validatore è online e sta attestando propriamente. Le interruzioni comportano sanzioni proporzionali a quanti altri validatori sono offline nello stesso momento, ma non risultano in tagli. Anche la larghezza di banda conta, poiché le ricompense sono ridotte per le attestazioni che non sono ricevute in tempo. I requisiti varieranno, ma si consiglia un minimo di 10 Mb/s in upload e download. + + + +Differente dalle sanzioni di inattività per esser offline, il taglio è una sanzione molto più seria, riservata alle infrazioni malevole. Operando un client di minoranza con le tue chiavi caricate su una sola macchina per volta, il tuo rischio di esser tagliato è minimizzato. Detto ciò, tutti gli staker devono esser consapevoli dei rischi di taglio. + +Maggiori informazioni su tagli e il ciclo di vita del validatore +
@@ -78,8 +83,6 @@ Quando saranno attivi, riceverai le ricompense in ETH, che saranno depositate pe Se lo desideri, puoi smettere di essere un validatore; in questo modo viene meno il requisito di essere online e si interrompe qualsiasi ulteriore ricompensa. Il saldo rimanente sarà poi prelevato all'indirizzo di prelievo che hai indicato durante la configurazione. -_L'aggiornamento Shanghai è necessario per consentire i pagamenti delle ricompense e i prelievi completi dei validatori in uscita._ - [Di più sulle ricompense di staking](/staking/withdrawals/) ## Inizia con il Launchpad di Staking {#get-started-on-the-staking-launchpad} @@ -126,14 +129,14 @@ Esistono alcune domande molto comuni sullo staking che meritano di essere affron -Un _validatore_ è un'entità virtuale che risiede su Ethereum e partecipa al consenso del protocollo di Ethereum. I validatori sono rappresentati da un saldo, una chiave pubblica e altre proprietà. Un _client del validatore_ è il software che agisce per conto del validatore, detenendone e usandone la chiave privata. Un singolo client del validatore può detenere molte coppie di chiavi, controllando molti validatori. +Un validatore è un'entità virtuale che risiede su Ethereum e partecipa al consenso del protocollo di Ethereum. I validatori sono rappresentati da un saldo, una chiave pubblica e altre proprietà. Un client del validatore è il software che agisce per conto del validatore detenendone e usandone la chiave privata. Un singolo client del validatore può detenere molte coppie di chiavi, controllando molti validatori. Ogni coppia di chiavi associata ad un validatore richiede esattamente 32 ETH per esser attivata. Maggiori ETH depositati in una singola serie di chiavi non aumentano le potenziali ricompense, poiché ogni validatore è limitato a un saldo effettivo di 32 ETH. Questo significa che lo staking è effettuato in incrementi di 32 ETH, ognuno con la propria serie di chiavi e il proprio saldo. -Non depositare più di 32 ETH per un singolo validatore. Non aumenterà le tue ricompense e sarà bloccato fino all'aggiornamento Shanghai pianificato. +Non depositare più di 32 ETH per un singolo validatore. Non incrementerà le tue ricompense. Se un indirizzo di prelievo è stato impostato per il validatore, i fondi in eccesso oltre i 32 ETH saranno prelevati automaticamente a tale indirizzo durante la successiva pulizia dei validatori. Se lo staking in solo sembra troppo impegnativo per te, considera di usare un fornitore di staking come servizio, o se stai operando con meno di 32 ETH, dai un'occhiata ai pool di staking. @@ -155,8 +158,10 @@ Operare un client di super maggioranza (ogni client usato da oltre 2/3 della ret I bug equivalenti in un client di minoranza non sarebbero mai finalizzati e, ciò risulterebbe in un voto di contorno, con la semplice conseguenza di sanzioni d'inattività, non tagli. -

Scopri di più sull'importanza di eseguire un client di minoranza.

-

Scopri di più sulla prevenzione dei tagli

+
@@ -173,14 +178,12 @@ Sebbene un server privato virtuale (VPS) possa essere usato come sostitutivo del Più client del validatore operano su una soluzione d'archiviazione su cloud centralizzata singola, più diventa pericoloso per questi utenti. Ogni evento che porta questi fornitori offline, che sia un attacco, domande regolatorie o solo guasti energetici o a Internet, manderanno offline al contempo ogni client del validatore che si basi su tale server. Le sanzioni offline sono proporzionali a quanti altri sono offline contemporaneamente. Usare un VPS aumenta notevolmente il rischio che le sanzioni offline saranno più severe e aumenta il rischio di fughe quadratiche o tagli nel caso in cui il guasto sia abbastanza grande. Per minimizzare i tuoi rischi e i rischi alla rete, gli utenti sono vivamente incoraggiati a procurarsi e utilizzare il proprio hardware. - -Ulteriori informazioni su ricompense e sanzioni -Al momento dell'aggiornamento Shanghai, saranno disponibili i pagamenti delle ricompense e i prelievi completi per i validatori in uscita. I prelievi di ogni tipo dalla beacon chain richiedono l'impostazione delle credenziali di prelievo. +I prelievi di ogni tipo dalla beacon chain richiedono l'impostazione delle credenziali di prelievo. -I nuovi staker le hanno impostate al momento della generazione della chiave e del deposito. Gli staker esistenti che non le hanno già impostate, potranno aggiornare le proprie chiavi per supportare tale funzionalità, dopo l'aggiornamento Shanghai. +I nuovi staker le hanno impostate al momento della generazione della chiave e del deposito. Gli staker esistenti che non lo hanno già impostato, possono aggiornare le proprie chiavi per supportare questa funzionalità. Una volta impostate le credenziali di prelievo, i pagamenti delle ricompense (gli ETH accumulati oltre i 32 iniziali) saranno distribuiti periodicamente e automaticamente all'indirizzo di prelievo. @@ -197,4 +200,3 @@ Per sbloccare e ricevere il tuo intero saldo, devi inoltre completare il process - [How to: acquistare l'hardware del validatore di Ethereum](https://www.youtube.com/watch?v=C2wwu1IlhDc) - _EthStaker 2022_ - [Passo dopo Passo: come unirsi alla Testnet di Ethereum 2.0](https://kb.beaconcha.in/guides/tutorial-eth2-multiclient) - _Butta_ - [Suggerimenti per la prevenzione dei tagli di Eth2](https://medium.com/prysmatic-labs/eth2-slashing-prevention-tips-f6faa5025f50) - _Raul Jordan 2020_ -- [Ricompense e sanzioni su Ethereum 2.0](https://consensys.net/blog/codefi/rewards-and-penalties-on-ethereum-20-phase-0/) - _James BeckMarch 2020_ diff --git a/src/content/translations/it/staking/withdrawals/index.md b/src/content/translations/it/staking/withdrawals/index.md new file mode 100644 index 00000000000..acfe47b3807 --- /dev/null +++ b/src/content/translations/it/staking/withdrawals/index.md @@ -0,0 +1,218 @@ +--- +title: Prelievi di staking +description: Pagina di riepilogo su cosa sono i prelievi push di staking, come funzionano e cosa devono fare gli staker per ottenere le proprie ricompense +lang: it +template: staking +image: ../../../../../assets/staking/leslie-withdrawal.png +alt: Leslie il rinoceronte con le sue ricompense di staking +sidebarDepth: 2 +summaryPoints: + - L'aggiornamento di Shanghai/Capella ha reso possibili i prelievi di staking su Ethereum + - Gli operatori del validatore devono fornire un indirizzo di prelievo per consentirli + - Le ricompense sono distribuite automaticamente a intervalli di pochi giorni + - I validatori che escono interamente dallo staking riceveranno il saldo rimanente +--- + + +I prelievi di staking sono stati resi possibili con l'aggiornamento di Shanghai/Capella, verificatosi il 12 aprile 2023. Ulteriori informazioni su Shanghai/Capella + + +I **prelievi di staking** si riferiscono ai trasferimenti di ETH dal conto di un validatore sul livello di consenso di Ethereum (la Beacon Chain) al livello d'esecuzione in cui possono essere spostati. + +I **pagamenti di ricompense dei saldi in eccesso** rispetto ai 32 ETH saranno inviati automaticamente e regolarmente a un indirizzo di prelievo collegato a ogni validatore, una volta fornito dall'utente. Gli utenti, inoltre, possono **uscire interamente dallo staking**, sbloccando il proprio intero saldo del validatore. + +## Ricompense di staking {#staking-rewards} + +I pagamenti delle ricompense sono elaborati automaticamente per i conti dei validatori attivi con un saldo effettivo massimizzato di 32 ETH. + +Qualsiasi saldo superiore a 32 ETH guadagnato tramite le ricompense non contribuisce effettivamente al capitale, né aumenta il peso di tale validatore sulla rete, pertanto è prelevato automaticamente come pagamento di una ricompensa a intervalli di pochi giorni. A parte fornire un indirizzo di prelievo una tantum, queste ricompense non richiedono alcuna azione da parte dell'operatore del validatore. Tutto questo è avviato sul livello di consenso, dunque non è necessario alcun carburante (commissione di transazione) in nessun passaggio. + +### Come siamo arrivati qui? {#how-did-we-get-here} + +Negli ultimi anni, Ethereum ha subito diversi aggiornamenti della rete, passando a una rete protetta dagli stessi ETH invece che dall'elevato consumo derivato dal mining, com'era in passato. La partecipazione al consenso su Ethereum è nota come "staking", poiché i partecipanti bloccano volontariamente gli ETH, mettendoli "a disposizione" ("at stake", in inglese) per poter partecipare alla rete. Gli utenti che seguono le regole saranno ricompensati, mentre i tentativi di barare saranno penalizzati. + +Dal lancio del contratto di deposito di staking a novembre 2020, alcuni coraggiosi pionieri di Ethereum hanno volontariamente bloccato i propri fondi per attivare i "validatori", conti speciali aventi il diritto di attestare formalmente e proporre blocchi, seguendo le regole della rete. + +Prima dell'aggiornamento di Shanghai/Capella, non era possibile utilizzare i propri ETH in staking o accedervi. Ma ora, puoi optare per ricevere automaticamente le tue ricompense in un determinato conto e, inoltre, puoi prelevare i tuoi ETH in staking quando preferisci. + +### Come mi preparo? {#how-do-i-prepare} + + + +### Avvisi importanti {#important-notices} + +Fornire un indirizzo di prelievo è un passaggio necessario per qualsiasi conto del validatore affinché sia idoneo per il prelievo di ETH dal suo saldo. + + + A ogni conto del validatore è assegnabile solo un unico indirizzo di prelievo, una volta. Una volta che un indirizzo è scelto e inviato alla Beacon Chain, questo non può essere cancellato o modificato. Ricontrolla la proprietà e l'accuratezza dell'indirizzo fornito prima di inviarlo. + + +Nel mentre, non esiste alcuna minaccia ai tuoi fondi per non averlo fornito, supponendo che la tua frase mnemonica/di seed sia rimasta al sicuro offline e non sia stata compromessa in alcun modo. La mancata aggiunta delle credenziali di prelievo lascerà semplicemente gli ETH bloccati nel conto del validatore finché non sarà fornito un indirizzo di prelievo. + +## Uscire interamente dallo staking {#exiting-staking-entirely} + +Fornire un indirizzo di prelievo è necessario prima che _qualsiasi_ fondo possa esser trasferito all'esterno del saldo di un conto del validatore. + +Gli utenti che desiderano uscire interamente dallo staking, prelevando il proprio intero saldo, devono inoltre firmare e trasmettere un messaggio di "uscita volontaria" con le chiavi del validatore, avviando così il procedimento di uscita dallo staking. Ciò avviene con il tuo client validatore e inviandolo al tuo nodo beacon, e non richiede carburante. + +Il processo di uscita di un validatore dallo staking richiede periodi di tempo variabili, a seconda di quanti altri stanno uscendo contemporaneamente. Una volta completato, questo conto non sarà più responsabile dell'esecuzione dei doveri della rete dei validatori e non sarà più idoneo per ricevere ricompense, né avrà i propri ETH "in staking". A questo punto, il conto sarà contrassegnato come interamente "prelevabile". + +Una volta che un conto è contrassegnato come "prelevabile", e le credenziali sono state fornite, un utente non deve fare altro che aspettare. I conti sono ripuliti automaticamente e continuamente dai propositori di blocchi per verificare la presenza di fondi in uscita idonei e il saldo del tuo conto sarà trasferito interamente (anche noto come "prelievo completo") durante la successiva pulizia. + +## Quando saranno abilitati i prelievi di staking? {#when} + +I prelievi di staking sono già operativi! La funzionalità di prelievo è stata abilitata come parte dell'aggiornamento di Shanghai/Capella, verificatosi il 12 aprile 2023. + +L'aggiornamento di Shanghai/Capella ha consentito di rivendicare gli ETH precedentemente messi in staking, in conti regolari di Ethereum. Ciò ha chiuso il ciclo della liquidità di staking e ha portato Ethereum un passo più avanti nel suo percorso per la costruzione di un ecosistema decentralizzato sostenibile, scalabile e sicuro. + +- [Maggiori informazioni sulla storia di Ethereum](/history/) +- [Maggiori informazioni sulla tabella di marcia di Ethereum](/roadmap/) + +## Come funzionano i pagamenti dei prelievi? {#how-do-withdrawals-work} + +Che un dato validatore sia o meno idoneo per un prelievo è determinato dallo stato del conto del validatore stesso. Nessun input dell'utente, in alcun dato momento, è necessario per determinare se un conto dovrebbe avviare o meno un prelievo; l'intero processo è effettuato automaticamente dal livello di consenso in un ciclo continuo. + +### Preferisci un approccio visivo all'apprendimento? {#visual-learner} + +Dai un'occhiata a questa spiegazione dei prelievi di staking di Ethereum, di Finematics: + + + +### "Pulizia" dei validatori {#validator-sweeping} + +Quando è pianificato che un validatore proponga il prossimo blocco, è necessario costruire una coda di prelievo, composta da un massimo di 16 prelievi idonei. Ciò avviene iniziando originariamente dall'indice 0 del validatore, determinando se esista un prelievo idoneo per questo conto secondo le regole del protocollo e, in tal caso, aggiungendolo alla coda. Il validatore impostato per proporre il blocco successivo riprenderà da dove si è fermato il precedente, procedendo indefinitamente in ordine. + + +Pensa a un orologio analogico. La lancetta dell'orologio indica l'ora, progredisce in una direzione, non salta nessuna ora e, infine, torna nuovamente all'inizio dopo aver raggiunto l'ultimo numero.

+Ora invece che da 1 a 12, immagina che l'orologio vada da 0 a N(il numero totale di conti del validatore mai registrati sulla Beacon Chain, oltre 500.000 a gennaio 2023).

+La lancetta dell'orologio punta al validatore successivo che deve essere controllato in cerca di prelievi idonei. Inizia a 0 e procede controllando tutti i conti, senza saltarne nessuno. Quando viene raggiunto l'ultimo validatore, il ciclo continua ricominciando dall'inizio. +
+ +#### Verificare un conto per i prelievi {#checking-an-account-for-withdrawals} + +Mentre un propositore controlla i validatori per i possibili prelievi, ogni validatore verificato è valutato rispetto a una breve serie di domande per determinare se dovrebbe essere innescato un prelievo e, in tal caso, quanti ETH dovrebbero essere prelevati. + +1. **È stato fornito un indirizzo di prelievo?** Se non è stato fornito alcun indirizzo di prelievo, il conto viene saltato e non viene avviato alcun prelievo. +2. **Il validatore è uscito ed è idoneo al prelievo?** Se il validatore è uscito interamente e abbiamo ricevuto l'epoca in cui tale conto è considerato come "prelevabile", sarà elaborato un prelievo completo. Questo, trasferirà l'intero saldo rimanente all'indirizzo di prelievo. +3. **Il saldo effettivo è massimizzato a 32?** Se il conto ha le credenziali di prelievo, non è interamente uscito e ha ricompense superiori a 32 in attesa, sarà elaborato un prelievo parziale, che trasferirà esclusivamente le ricompense superiori a 32 all'indirizzo di prelievo dell'utente. + +Esistono solo due azioni intraprese dagli operatori del validatore durante il ciclo di vita di un validatore che influenzano direttamente tale flusso: + +- Fornire le credenziali di prelievo per consentire qualsiasi forma di prelievo +- Uscire dalla rete, innescando un prelievo completo + +### Zero carburante {#gas-free} + +Questo approccio ai prelievi di staking evita di richiedere agli staker di inviare manualmente una transazione richiedendo un importo particolare di ETH da prelevare. Ciò significa che **non è necessario alcun carburante (commissione di transazione)** e che il prelievo non compete per lo spazio del blocco del livello d'esecuzione esistente. + +### Con quale frequenza riceverò le mie ricompense di staking? {#how-soon} + +In un unico blocco può essere elaborato un massimo di 16 prelievi. A tale frequenza, possono essere elaborati 115.200 validatori al giorno (supponendo che non vi sia alcuno slot mancante). Come indicato in precedenza, i validatori privi di prelievi idonei saranno saltati, riducendo il tempo necessario per terminare la pulizia. + +Espandendo tale calcolo, possiamo stimare il tempo necessario a elaborare un dato numero di prelievi: + + + +| Numero di prelievi | Tempo di completamento | +| :----------------: | :--------------------: | +| 400.000 | 3,5 giorni | +| 500.000 | 4,3 giorni | +| 600.000 | 5,2 giorni | +| 700.000 | 6,1 giorni | +| 800.000 | 7,0 giorni | + + + +Come vedi, la frequenza rallenta con l'aumento dei validatori sulla rete. Un aumento degli slot mancanti potrebbe rallentarla proporzionalmente, ma questo rappresenta generalmente il lato più lento dei possibili risultati. + +## Domande frequenti {#faq} + + +No, il processo per fornire le credenziali di prelievo è una tantum e queste non sono modificabili una volta inviate. + + + +Impostando un indirizzo di prelievo del livello d'esecuzione, le credenziali di prelievo per quel validatore sono state cambiate permanentemente. Ciò significa che le vecchie credenziali non funzioneranno più e che le nuove credenziali dirigono a un conto del livello d'esecuzione. + +Gli indirizzi di prelievo possono essere un contratto intelligente (controllato dal suo codice) o un conto posseduto esternamente (EOA, controllato dalla sua chiave privata). Attualmente questi conti non hanno alcun modo di comunicare un messaggio al livello di consenso che segnali una modifica delle credenziali del validatore, e aggiungere questa funzionalità aggiungerebbe una complessità non necessaria al protocollo. + +Come alternativa alla modifica dell'indirizzo di prelievo per un dato validatore, gli utenti potrebbero scegliere di impostare un contratto intelligente come proprio indirizzo di prelievo che potrebbe gestirebbe la rotazione delle chiavi, come Safe. Gli utenti che impostano i propri fondi al proprio EOA possono eseguire un'uscita completa per prelevare tutti i propri fondi in staking, per poi rimetterli in staking utilizzando nuove credenziali. + + + + +Se fai parte di un pool di staking o detieni derivati di staking liquidi, dovresti consultare il tuo fornitore per ottenere ulteriori dettagli sulla gestione dei prelievi di staking, poiché ogni servizio opera in modo diverso. + +In generale, gli utenti dovrebbero essere liberi di rivendicare i propri ETH in staking sottostanti, o di modificare il fornitore di staking che utilizzano. Se un pool in particolare sta diventando troppo grande, è possibile uscire, riscattare i fondi e rimetterli in staking con un fornitore di dimensioni minori. O, se hai accumulato abbastanza ETH, potresti fare staking da casa. + + + + +Sì, a condizione che il tuo validatore abbia fornito un indirizzo di prelievo. Questo deve essere fornito una volta per abilitare inizialmente qualsiasi prelievo, poi i pagamenti delle ricompense saranno innescati automaticamente a intervalli di pochi giorni, a ogni pulizia del validatore. + + + + +No, se il tuo validatore è ancora attivo sulla rete, un prelievo completo non si verificherà automaticamente. Questo richiede l'avvio manuale di un'uscita volontaria. + +Una volta che un validatore ha completato il procedimento di uscita e supponendo che il conto abbia le credenziali di prelievo, il saldo rimanente sarà then prelevato durante la successivapulizia del validatore. + + + + +I prelievi sono progettati per avvenire automaticamente, trasferendo qualsiasi ETH che non sta contribuendo attivamente allo staking. Ciò include i saldi completi dei conti che hanno completato il procedimento di uscita. + +Non è possibile richiedere manualmente importi specifici di ETH da prelevare. + + + + +Gli operatori del validatore dovrebbero visitare la pagina dei Prelievi del Launchpad di Staking, dove troveranno ulteriori dettagli su come preparare il proprio validatore ai prelievi. preparato, tempistica degli eventi e ulteriori dettagli sul funzionamento dei prelievi. + +Per testare la tua configurazione su una rete di prova, visita prima il Launchpad di Staking della Rete di Prova di Goerli per iniziare. + + + + +No. Una volta che un validatore è uscito e che il suo intero saldo è stato prelevato, qualsiasi fondo aggiuntivo depositato a quel validatore sarà automaticamente trasferito all'indirizzo di prelievo durante la pulizia successiva del validatore. Per rimettere gli ETH in staking, deve essere abilitato un nuovo validatore. + + +## Letture consigliate {#further-reading} + +- [Prelievi del Launchpad di Staking](https://launchpad.ethereum.org/withdrawals) +- [EIP-4895: La Beacon Chain spinge i prelievi come operazioni](https://eips.ethereum.org/EIPS/eip-4895) +- [Ethereum Cat Herders - Shanghai](https://www.ethereumcatherders.com/shanghai_upgrade/index.html) +- [PEEPanEIP #94: Prelievo di ETH in staking (testing) con Potuz e Hsiao-Wei Wang](https://www.youtube.com/watch?v=G8UstwmGtyE) +- [PEEPanEIP#68: EIP-4895: Prelievi push della Beacon Chain come operazioni con Alex Stokes](https://www.youtube.com/watch?v=CcL9RJBljUs) +- [Informazioni sul saldo effettivo del validatore](https://www.attestant.io/posts/understanding-validator-effective-balance/) diff --git a/src/intl/it/learn-quizzes.json b/src/intl/it/learn-quizzes.json index 8b0b1d68717..5f7f6d391ff 100644 --- a/src/intl/it/learn-quizzes.json +++ b/src/intl/it/learn-quizzes.json @@ -1,3 +1,312 @@ { - "page-assets-merge": "La Fusione" + "correct": "Corretto", + "explanation": "Spiegazione", + "next-question": "Prossima domanda", + "score": "Punteggio", + "see-results": "Visualizza i risultati", + "share-results": "Condividi i risultati", + "submit-answer": "Invia risposta", + "test-your-knowledge": "Metti alla prova le tue conoscenze", + "total": "Totale", + "try-again": "Riprova", + "a001-prompt": "La principale differenza tra Ethereum e Bitcoin è:", + "a001-a-label": "Ethereum non ti consente di inviare pagamenti ad altre persone", + "a001-a-explanation": "Sia Bitcoin che Ethereum ti consentono di inviare pagamenti ad altre persone.", + "a001-b-label": "Puoi eseguire programmi informatici su Ethereum", + "a001-b-explanation": "Ethereum è programmabile. Ciò significa che puoi inserire qualsiasi programma sulla blockchain di Ethereum.", + "a001-c-label": "Puoi eseguire programmi informatici su Bitcoin", + "a001-c-explanation": "A differenza di Ethereum, Bitcoin non è programmabile e non può eseguire programmi informatici arbitrari.", + "a001-d-label": "Hanno loghi differenti", + "a001-d-explanation": "Hanno loghi differenti! Ma non è la principale differenza tra i due.", + "a002-prompt": "La criptovaluta nativa di Ethereum si chiama:", + "a002-a-label": "Ether", + "a002-a-explanation": "Ether è la criptovaluta nativa della rete di Ethereum.", + "a002-b-label": "Ethereum", + "a002-b-explanation": "Ethereum è la blockchain, ma la sua valuta nativa non si chiama Ethereum. Questo è un equivoco comune.", + "a002-c-label": "Ethercoin", + "a002-c-explanation": "A differenza di molte altre criptovalute, la criptovaluta nativa di Ethereum non contiene la parola 'coin'.", + "a002-d-label": "Bitcoin", + "a002-d-explanation": "Bitcoin (B maiuscola) è stata la prima blockchain creata, bitcoin (B minuscola) è la sua criptovaluta nativa.", + "a003-prompt": "Chi controlla Ethereum?", + "a003-a-label": "Sviluppatori", + "a003-a-explanation": "Gli sviluppatori sono fondamentali per costruire e migliorare Ethereum, ma non sono il gruppo che mantiene in funzione Ethereum.", + "a003-b-label": "Miner", + "a003-b-explanation": "Il mining non è più possibile dalla Fusione. Non ci sono più 'miner' su Ethereum.", + "a003-c-label": "La Ethereum Foundation", + "a003-c-explanation": "La Ethereum Foundation non svolge alcun ruolo significativo nell'esecuzione quotidiana dei nodi di Ethereum.", + "a003-d-label": "Chiunque esegua un nodo", + "a003-d-explanation": "Chiunque esegua un nodo è una parte fondamentale dell'infrastruttura di Ethereum. Se non lo hai già fatto, valuta di eseguirne uno.", + "a004-prompt": "Dal lancio di Ethereum, quante volte è andata offline la sua rete?", + "a004-a-label": "Mai", + "a004-b-label": "Una volta", + "a004-c-label": "Quattro volte", + "a004-d-label": "Più di dieci volte", + "a004-explanation": "Ethereum non è mai andata offline dal suo lancio.", + "a005-prompt": "Ethereum consuma più elettricità di:", + "a005-a-label": "YouTube", + "a005-a-explanation": "YouTube utilizza approssimativamente 244 Terawatt all'anno. Ethereum consuma 0,01 Terawatt all'anno.", + "a005-b-label": "Netflix", + "a005-b-explanation": "Netflix utilizza approssimativamente 94 Terawatt all'anno. Ethereum consuma 0,01 Terawatt all'anno.", + "a005-c-label": "PayPal", + "a005-c-explanation": "PayPal utilizza approssimativamente 0,26 Terawatt all'anno. Ethereum consuma 0,01 Terawatt all'anno.", + "a005-d-label": "Nessuna delle precedenti", + "a005-d-explanation": "Ethereum utilizza 0,01 Terawatt all'anno. Meno di YouTube (circa 244 TW/anno), Netfliix (circa 94 TW/anno) e PayPal (circa 0,26 TW/anno).", + "b001-prompt": "Ether è anche noto come:", + "b001-a-label": "ETC", + "b001-a-explanation": "ETC è il simbolo di Ethereum Classic.", + "b001-b-label": "ETR", + "b001-b-explanation": "ETR non è un simbolo di ether o di qualsiasi altra criptovaluta significativa.", + "b001-c-label": "ETH", + "b001-c-explanation": "ETH è il simbolo di ether su Ethereum.", + "b001-d-label": "BTC", + "b001-d-explanation": "BTC è il simbolo di bitcoin sulla rete di Bitcoin.", + "b002-prompt": "Su Ethereum, le commissioni di rete sono pagate in:", + "b002-a-label": "bitcoin", + "b002-a-explanation": "\"bitcoin\" in minuscolo è la criptovaluta nativa della rete di Bitcoin.", + "b002-b-label": "ETH", + "b002-b-explanation": "Ether (ETH) è la criptovaluta nativa di Ethereum. Tutte le commissioni di rete su Ethereum sono pagate in ETH.", + "b002-c-label": "USD", + "b002-c-explanation": "Non è possibile pagare le commissioni di rete su Ethereum in USD (dollari statunitense), o qualsiasi altra valuta legale.", + "b002-d-label": "R/Ethereum", + "b002-d-explanation": "Ethereum è la rete, ma le commissioni di rete di Ethereum sono pagate in ETH.", + "b003-prompt": "Lo staking su Ethereum aiuta a proteggere la rete perché:", + "b003-a-label": "Gli staker possono bandire le persone se non gli piace ciò che stanno facendo", + "b003-a-explanation": "Gli staker non possono censurare arbitrariamente gli utenti.", + "b003-b-label": "Se uno staker prova a imbrogliare la rete, rischia di perdere i propri ETH", + "b003-b-explanation": "Gli staker rischiano di perdere significativi importi di ETH se si comportano in modo malevolo contro la rete. Ciò è noto come taglio.", + "b003-c-label": "Gli staker utilizzano computer potenti per dimostrare il proof-of-work", + "b003-c-explanation": "Gli staker non necessitano di potenti hardware per mettere i propri ETH in staking. Ethereum ha smesso di utilizzare il proof-of-work alla Fusione.", + "b003-d-label": "Gli staker subiscono KYC prima di essere accettati come validatori", + "b003-d-explanation": "Lo staking su Ethereum è senza autorizzazioni e non richiede KYC.", + "b004-prompt": "ETH è prezioso perché:", + "b004-a-label": "ETH è necessario per fare qualsiasi cosa su Ethereum", + "b004-a-explanation": "Questa risposta è parzialmente corretta, ma è solo una delle motivazioni per cui gli ETH sono preziosi.", + "b004-b-label": "ETH è una valuta peer-to-peer incensurabile", + "b004-b-explanation": "Questa risposta è parzialmente corretta, ma è solo una delle motivazioni per cui gli ETH sono preziosi.", + "b004-c-label": "ETH è usato come garanzia per i prestiti di criptovalute", + "b004-c-explanation": "Questa risposta è parzialmente corretta, ma è solo una delle motivazioni per cui gli ETH sono preziosi.", + "b004-d-label": "Tutte le precedenti", + "b004-d-explanation": "Le transazioni su Ethereum sono censurabili, gli ETH sono necessari per effettuare qualsiasi transazione su Ethereum e sono fondamentali per la stabilità dell'ecosistema della DeFi.", + "c001-prompt": "Il Web3 consente agli utenti di possedere risorse digitali direttamente, tramite:", + "c001-a-label": "DAO", + "c001-a-explanation": "Le DAO (organizzazioni autonome decentralizzate) sono comunità di proprietà dei membri prive di una leadership centralizzata.", + "c001-b-label": "NFT", + "c001-b-explanation": "I NFT (token non fungibili) forniscono un modo per rappresentare qualsiasi cosa unica come una risorsa basata su Ethereum.", + "c001-c-label": "ENS", + "c001-c-explanation": "L'ENS (Ethereum Name Service) è un servizio di denominazione decentralizzata per la blockchain di Ethereum.", + "c001-d-label": "GitHub", + "c001-d-explanation": "GitHub è una piattaforma centralizzata atta principalmente a memorizzare il codice utilizzando il controllo della versione distribuita. GitHub non consente la proprietà dei tuoi dati o delle risorse digitali.", + "c002-prompt": "Web1 era di sola lettura, Web2 è di lettura e scrittura, Web3 è stato descritto come:", + "c002-a-label": "di lettura, scrittura e vendita", + "c002-a-explanation": "Web3 non è stato descritto così.", + "c002-b-label": "di lettura, scrittura e archiviazione", + "c002-b-explanation": "Web3 non è stato descritto così.", + "c002-c-label": "di lettura, scrittura e proprietà", + "c002-c-explanation": "Web3 consente agli utenti di possedere i propri dati e, dunque, è stato descritto come di 'lettura, scrittura e proprietà', un miglioramento al rispetto al Web2, che è solo di 'lettura e scrittura'.", + "c002-d-label": "di lettura, scrittura e acquisto", + "c002-d-explanation": "Web3 non è stato descritto così.", + "c003-prompt": "Quale interazione del web non si affida a fornitori di pagamento di terze parti?", + "c003-a-label": "Web1", + "c003-a-explanation": "Web1 non aveva pagamenti nativi incorporati.", + "c003-b-label": "Web2", + "c003-b-explanation": "Web2 non ha pagamenti nativi incorporati.", + "c003-c-label": "Web3", + "c003-c-explanation": "Web3 prevede pagamenti nativi incorporati con le criptovalute, come ETH.", + "c003-d-label": "Tutte le precedenti", + "c003-d-explanation": "Web1 e Web2 non hanno pagamenti nativi incorporati.", + "c004-prompt": "Il termine 'Web3' è stato coniato da:", + "c004-a-label": "Gavin Wood", + "c004-a-explanation": "Gavin Wood, un co-fondatore di Ethereum, è stato accreditato per aver coniato il termine Web3 poco dopo il lancio di Ethereum nel 2015.", + "c004-b-label": "Steve Jobs", + "c004-b-explanation": "Steve Jobs non ha coniato il termine 'Web3'.", + "c004-c-label": "Vitalik Buterin", + "c004-c-explanation": "Vitalik Buterin, pur essendo il fondatore originale di Ethereum, non ha coniato il termine 'Web3'.", + "c004-d-label": "Elon Musk", + "c004-d-explanation": "Elon Musk non ha coniato il termine 'Web3'.", + "c005-prompt": "Puoi avere un unico accesso resistente alla censura in tutto il web utilizzando:", + "c005-a-label": "Accesso con Facebook", + "c005-a-explanation": "L'Accesso con Facebook non è resistente alla censura.", + "c005-b-label": "Accesso con Google", + "c005-b-explanation": "L'Accesso con Google non è resistente alla censura.", + "c005-c-label": "Accesso con Ethereum", + "c005-c-explanation": "L'Accesso con Ethereum è l'unica opzione resistente alla censura ed è utilizzabile su qualsiasi applicazione web.", + "c005-d-label": "Accesso con Twitter", + "c005-d-explanation": "L'Accesso con Twitter non è resistente alla censura.", + "d001-prompt": "Il tipo di portafoglio più sicuro è:", + "d001-a-label": "Un portafoglio mobile", + "d001-a-explanation": "I portafogli mobili detengono le chiavi private su un dispositivo mobile che, tipicamente, ha connessioni a Internet e potrebbe esser compromesso da altri software.", + "d001-b-label": "Un portafoglio hardware", + "d001-b-explanation": "Le chiavi private di un portafoglio hardware sono memorizzate su un dispositivo dedicato che può essere tenuto isolato da Internet e dalle altre applicazioni sui tuoi dispositivi.", + "d001-c-label": "Un portafoglio web", + "d001-c-explanation": "I portafogli web sono meno sicuri dei portafogli hardware poiché le chiavi private sono memorizzate su un dispositivo connesso a Internet.", + "d001-d-label": "Un portafoglio desktop", + "d001-d-explanation": "I portafogli desktop detengono le chiavi private sul disco rigido di un computer che, tipicamente, ha connessioni a Internet e potrebbe essere compromesso da altri software.", + "d002-prompt": "Tra le opzioni presentate, qual è il metodo più sicuro per memorizzare la tua frase di seed?", + "d002-a-label": "In una foto sul tuo telefono", + "d002-a-explanation": "Questa non è l'opzione più sicura. Se questa foto è caricata su un'archiviazione in cloud, un hacker potrebbe ottenerla e accedere al tuo conto.", + "d002-b-label": "In un file sul tuo computer", + "d002-b-explanation": "Questa non è l'opzione più sicura. Gli hacker cercano sempre più spesso le informazioni relative a criptovalute sui dispositivi di destinazione. Se un hacker accede al file contenente la tua frase di seed otterrà l'accesso al tuo conto.", + "d002-c-label": "Scritta su carta", + "d002-c-explanation": "Delle opzioni disponibili, annotare la tua frase di seed su carta è la più sicura.", + "d002-d-label": "In un messaggio di testo a un membro fidato della famiglia", + "d002-d-explanation": "Non dovresti mai inviare la tua frase di seed in un messaggio a qualcuno. Il messaggio potrebbe essere intercettato da una terza parte e, anche se ti fidi assolutamente di questa persona, non sai chi potrebbe accedere al suo telefono.", + "d003-prompt": "A chi dovresti dare la tua frase di seed / le tue chiavi private?", + "d003-a-label": "Qualcuno che stai pagando", + "d003-a-explanation": "Non dovresti mai dare la tua frase di seed o le tue chiavi private a nessuno. Invece, invia i token all'indirizzo del loro portafoglio tramite una transazione.", + "d003-b-label": "Per accedere a una dapp o a un portafoglio", + "d003-b-explanation": "Non dovresti mai dare la tua frase di seed o le tue chiavi private per accedere al tuo portafoglio o alla tua dapp.", + "d003-c-label": "Staff di supporto", + "d003-c-explanation": "Non dovresti mai dare la tua frase di seed o le tue chiavi private a nessuno che affermi di essere parte dello staff di supporto. Chiunque te lo chieda è un truffatore.", + "d003-d-label": "A nessuno", + "d003-d-explanation": "Idealmente, non dovresti mai dare a nessuno la tua frase di seed o le tue chiavi private. Se ti fidi completamente di qualcuno dandogli l'accesso assoluto ai tuoi fondi (come il/la coniuge), potresti decidere di condividere tali informazioni con questa persona.", + "d004-prompt": "Un portafoglio e un conto su Ethereum sono la stessa cosa.", + "d004-a-label": "Vero", + "d004-a-explanation": "Un portafoglio è un'interfaccia visiva utilizzata per interagire con un conto di Ethereum.", + "d004-b-label": "Falso", + "d004-b-explanation": "Un portafoglio è un'interfaccia visiva utilizzata per interagire con un conto di Ethereum.", + "e001-prompt": "Perché dovresti utilizzare delle password univoche per tutti i tuoi conti?", + "e001-a-label": "Nel caso in cui una delle piattaforme subisca una violazione dei dati", + "e001-a-explanation": "Questa risposta è corretta, ma ci sono anche altre risposte corrette.", + "e001-b-label": "Nel caso in cui qualcuno alle tue spalle scopra la tua password", + "e001-b-explanation": "Questa risposta è corretta, ma ci sono anche altre risposte corrette.", + "e001-c-label": "Nel caso in cui un malware, come un key-logger, rubi la tua password", + "e001-c-explanation": "Questa risposta è corretta, ma ci sono anche altre risposte corrette.", + "e001-d-label": "Tutte le precedenti", + "e001-d-explanation": "Tutte le risposte sono corrette. Utilizzare password univoche è il metodo migliore per impedire a chiunque altro di accedere al tuo conto.", + "e002-prompt": "In seguito alla Fusione, gli ETH devono essere aggiornati in ETH2.", + "e002-a-label": "Vero", + "e002-a-explanation": "Non devi aggiornare i tuoi ETH in ETH2. Gli ETH2 non esistono e questa è una narrativa comune utilizzata dai truffatori.", + "e002-b-label": "Falso", + "e002-b-explanation": "Non devi aggiornare i tuoi ETH in ETH2. Gli ETH2 non esistono e questa è una narrativa comune utilizzata dai truffatori.", + "e003-prompt": "I giveaway di ETH sono:", + "e003-a-label": "Un ottimo modo per ottenere altri ETH", + "e003-a-explanation": "I giveaway di ETH sono truffe progettate per rubare i tuoi ETH e altri token. Non sono mai un buon modo per ricevere altri ETH.", + "e003-b-label": "Sempre autentici", + "e003-b-explanation": "I giveaway di ETH non sono mai autentici.", + "e003-c-label": "Comunemente eseguiti da membri di spicco della community", + "e003-c-explanation": "I membri di spicco della community non effettuano giveaway di ETH. I truffatori fingono che degli individui ben noti, come Elon Musk, stiano effettuando giveaway per dare alla propria truffa un senso di legittimità.", + "e003-d-label": "Sono molto probabilmente truffe", + "e003-d-explanation": "I giveaway di ETH sono sempre truffe. Segnalare e ignorare i truffatori è la cosa migliore da fare.", + "e004-prompt": "Le transazioni di Ethereum sono reversibili.", + "e004-a-label": "Vero", + "e004-a-explanation": "Le transazioni di Ethereum non sono reversibili. Chiunque ti dica altrimenti sta forse provando a truffarti.", + "e004-b-label": "Falso", + "e004-b-explanation": "Le transazioni di Ethereum non sono reversibili. Chiunque ti dica altrimenti sta forse provando a truffarti.", + "f001-prompt": "Gli NFT sono definiti in modo più esaustivo come:", + "f001-a-label": "risorse digitali univoche", + "f001-a-explanation": "Gli NFT rappresentano una risorsa digitale univoca.", + "f001-b-label": "opere d'arte digitali", + "f001-b-explanation": "Gli NFT rappresentano una risorsa digitale univoca, comunemente un'opera d'arte digitale, ma non si limitano all'arte.", + "f001-c-label": "biglietti per eventi esclusivi", + "f001-c-explanation": "Gli NFT rappresentano una risorsa digitale univoca, come un sistema di biglietteria, ma non si limita ai biglietti.", + "f001-d-label": "contratti giuridicamente vincolanti", + "f001-d-explanation": "Sebbene un contratto potrebbe rappresentare un NFT, gli NFT non sono appannaggio esclusivo dei contratti giuridicamente vincolanti.", + "f002-prompt": "Due NFT che rappresentano la stessa opera d'arte sono la stessa cosa.", + "f002-a-label": "Vero", + "f002-a-explanation": "Gli NFT sono non fungibili. Ciò significa che anche se rappresentano una stessa opera d'arte digitale, sono comunque identificabili univocamente. Nel mondo artistico tradizionale potrebbero somigliare a originali e ristampe.", + "f002-b-label": "Falso", + "f002-b-explanation": "Gli NFT sono non fungibili. Ciò significa che anche se rappresentano una stessa opera d'arte digitale, sono comunque identificabili univocamente. Nel mondo artistico tradizionale potrebbero somigliare a originali e ristampe.", + "f003-prompt": "Gli NFT rappresentano comunemente:", + "f003-a-label": "La password per il tuo portafoglio", + "f003-a-explanation": "Questo è un rischio di sicurezza e, in generale, una cattiva idea!", + "f003-b-label": "Proprietà di un oggetto digitale univoco", + "f003-b-explanation": "Gli NFT rappresentano comunemente la proprietà di un oggetto digitale univoco.", + "f003-c-label": "Il tuo saldo di ETH corrente", + "f003-c-explanation": "Gli NFT non possono rappresentare arbitrariamente il tuo saldo di ETH.", + "f003-d-label": "Tutte le precedenti", + "f003-d-explanation": "Gli NFT rappresentano comunemente la proprietà di un oggetto digitale univoco, non i saldi di ETH o le password del portafoglio.", + "f004-prompt": "Gli NFT hanno aiutato a creare una nuova:", + "f004-a-label": "economia per i curatori", + "f004-a-explanation": "Gli NFT hanno aiutato a creare una nuova economia per i creatori, non per i curatori.", + "f004-b-label": "economia carbonica", + "f004-b-explanation": "Gli NFT hanno aiutato a creare una nuova economia per i creatori, non carbonica.", + "f004-c-label": "economia per i creatori", + "f004-c-explanation": "Gli NFT hanno aiutato a creare una nuova economia per i creatori.", + "f004-d-label": "economia per i dogi", + "f004-d-explanation": "Gli NFT hanno aiutato a creare una nuova economia per i creatori, non per i dogi 🐶.", + "f005-prompt": "Gli NFT su Ethereum sono dannosi per l'ambiente", + "f005-a-label": "Vero", + "f005-a-explanation": "Dalla Fusione (transizione al proof-of-stake), qualsiasi transazione ha avuto un impatto trascurabile sull'ambiente.", + "f005-b-label": "Falso", + "f005-b-explanation": "Dalla Fusione (transizione al proof-of-stake), qualsiasi transazione ha avuto un impatto trascurabile sull'ambiente.", + "g001-prompt": "Le reti della blockchain di livello 2 servono a:", + "g001-a-label": "Ridimensionare Ethereum", + "g001-a-explanation": "Lo scopo principale dei rollup e di altre soluzioni di livello 2 è ridimensionare Ethereum.", + "g001-b-label": "Effettuare pagamenti", + "g001-b-explanation": "Lo scopo principale dei rollup e di altre soluzioni di livello 2 è ridimensionare Ethereum.", + "g001-c-label": "Acquistare NFT", + "g001-c-explanation": "Lo scopo principale dei rollup e di altre soluzioni di livello 2 è ridimensionare Ethereum.", + "g001-d-label": "Decentralizzare Ethereum", + "g001-d-explanation": "Lo scopo principale dei rollup e di altre soluzioni di livello 2 è ridimensionare Ethereum.", + "g002-prompt": "Ai fini del ridimensionamento, le reti di livello 1 più alternative si sono principalmente sacrificate in termini di:", + "g002-a-label": "Sicurezza", + "g002-a-explanation": "Le reti di Livello 1 più alternative sacrificano la sicurezza e qualcos'altro a favore del ridimensionamento.", + "g002-b-label": "Decentralizzazione", + "g002-b-explanation": "Le reti di Livello 1 più alternative sacrificano la decentralizzazione e qualcos'altro a favore del ridimensionamento.", + "g002-c-label": "Prezzo dei token", + "g002-c-explanation": "Il prezzo dei token non inficia la capacità di ridimensionamento.", + "g002-d-label": "Sicurezza e decentralizzazione", + "g002-d-explanation": "Le reti di Livello 1 più alternative sacrificano la sicurezza e la decentralizzazione per consentire il ridimensionamento.", + "g003-prompt": "Quali delle seguenti soluzioni non sono considerate di livello 2?", + "g003-a-label": "Validium", + "g003-a-explanation": "I Validium non sono considerati soluzioni di livello 2 poiché non derivano la sicurezza o la disponibilità dei dati da Ethereum", + "g003-b-label": "Catene secondarie", + "g003-b-explanation": "Le sidechain non sono considerate soluzioni di livello 2 poiché non derivano la sicurezza o la disponibilità dei dati da Ethereum.", + "g003-c-label": "Blockchain di livello 1 alternative", + "g003-c-explanation": "Le blockchain di livello 1 alternative non sono considerate soluzioni di livello 2.", + "g003-d-label": "Tutte le precedenti", + "g003-d-explanation": "Validium, sidechain e blockchain di livello 1 alternative non sono considerate soluzioni di livello 2 poiché non derivano la sicurezza o la disponibilità dei dati da Ethereum.", + "g004-prompt": "Perché Ethereum non ha un livello 2 'ufficiale'?", + "g004-a-label": "Gli sviluppatori principali sono troppo impegnati a lavorare a Ethereum", + "g004-a-explanation": "Non ci sono piani per un livello 2 'ufficiale' su Ethereum poiché trarremo vantaggio da un'ampia varietà di approcci per la progettazione di soluzioni di livello 2.", + "g004-b-label": "Come L1, alla fine Ethereum raggiungerà un proprio ridimensionamento di massa", + "g004-b-explanation": "Non ci sono piani per un livello 2 'ufficiale' su Ethereum poiché trarremo vantaggio da un'ampia varietà di approcci per la progettazione di soluzioni di livello 2.", + "g004-c-label": "Gli sviluppatori principali stanno ancora discutendo tra rollup ottimistici e zk", + "g004-c-explanation": "Non ci sono piani per un livello 2 'ufficiale' su Ethereum poiché trarremo vantaggio da un'ampia varietà di approcci per la progettazione di soluzioni di livello 2.", + "g004-d-label": "Ethereum trarrà vantaggio da un'ampia varietà di approcci per la progettazione di un L2", + "g004-d-explanation": "Non ci sono piani per un livello 2 'ufficiale' su Ethereum poiché trarremo vantaggio da un'ampia varietà di approcci per la progettazione di soluzioni di livello 2.", + "h001-prompt": "La Fusione ha spostato Ethereum su quale meccanismo di consenso?", + "h001-a-label": "Proof of Work", + "h001-a-explanation": "Il proof-of-work era il meccanismo di consenso utilizzato prima della Fusione.", + "h001-b-label": "Proof of Stake", + "h001-b-explanation": "Corretto! La Fusione ha spostato Ethereum al proof-of-stake.", + "h001-c-label": "Proof of Authority", + "h001-c-explanation": "Ethereum non utilizza e mai utilizzerà il proof-of-authority sulla Rete Principale di Ethereum.", + "h001-d-label": "Tutte le precedenti", + "h001-d-explanation": "Non sarebbe possibile, per Ethereum, disporre di tutti questi meccanismi di consenso in una volta.", + "h002-prompt": "La Fusione ha ridotto il consumo energetico di Ethereum del:", + "h002-a-label": "50%", + "h002-a-explanation": "Il consumo energetico di Ethereum è stato ridotto del 99,95% dopo che La Fusione ha consentito la transizione dal proof-of-work al proof-of-stake.", + "h002-b-label": "62,5%", + "h002-b-explanation": "Il consumo energetico di Ethereum è stato ridotto del 99,95% dopo che La Fusione ha consentito la transizione dal proof-of-work al proof-of-stake.", + "h002-c-label": "90%", + "h002-c-explanation": "Il consumo energetico di Ethereum è stato ridotto del 99,95% dopo che La Fusione ha consentito la transizione dal proof-of-work al proof-of-stake.", + "h002-d-label": "99,95%", + "h002-d-explanation": "Il consumo energetico di Ethereum è stato ridotto del 99,95% dopo che La Fusione ha consentito la transizione dal proof-of-work al proof-of-stake.", + "h003-prompt": "Quando si è verificata La Fusione?", + "h003-a-label": "15 settembre 2022", + "h003-a-explanation": "La Fusione si è verificata il 15 settembre 2022 alle 06:42:42 (UTC).", + "h003-b-label": "1 dicembre 2021", + "h003-b-explanation": "La Fusione si è verificata più tardi. L'1 dicembre 2022 è stata lanciata la Beacon Chain.", + "h003-c-label": "27 novembre 2013", + "h003-c-explanation": "La Fusione si è verificata più tardi. Il 27 novembre 2013 è stato rilasciato il whitepaper di Ethereum.", + "h003-d-label": "31 ottobre 2008", + "h003-d-explanation": "La Fusione si è verificata più tardi. Il 31 ottobre è il giorno di rilascio del Whitepaper di Bitcoin.", + "h004-prompt": "La Fusione ha comportato che gli utenti abbiano dovuto scambiare i propri ETH per ETH2:", + "h004-a-label": "Vero", + "h004-a-explanation": "ETH non è cambiato in alcun momento prima, durante o dopo La Fusione. L'idea di 'aggiornare' gli ETH in ETH2 era una tattica comune utilizzata dagli utenti malevoli per truffare altri utenti.", + "h004-b-label": "Falso", + "h004-b-explanation": "ETH non è cambiato in alcun momento prima, durante o dopo La Fusione. L'idea di 'aggiornare' gli ETH in ETH2 era una tattica comune utilizzata dagli utenti malevoli per truffare altri utenti.", + "h005-prompt": "Il livello di consenso di Ethereum era precedentemente noto come:", + "h005-a-label": "Proof of Work", + "h005-a-explanation": "Il proof-of-work era il meccanismo di consenso utilizzato prima della Fusione.", + "h005-b-label": "Eth2", + "h005-b-explanation": "Prima di essere rinominato livello di consenso, era originariamente chiamato 'Eth2'.", + "h005-c-label": "Eth1", + "h005-c-explanation": "Eth1 era il nome originale dato al livello di esecuzione, non al livello del consenso.", + "h005-d-label": "Staking", + "h005-d-explanation": "Lo staking consiste nel depositare ETH in un contratto intelligente, per aiutare a proteggere la catena.", + "page-assets-merge": "La fusione", + "security": "Sicurezza", + "page-what-is-ethereum-what-is-ether": "Cos'è un ether?" } diff --git a/src/intl/it/page-about.json b/src/intl/it/page-about.json index c6039f27fdb..e93fb395545 100644 --- a/src/intl/it/page-about.json +++ b/src/intl/it/page-about.json @@ -24,10 +24,8 @@ "page-about-p-8": "Hai un'idea su come migliorare ethereum.org? Ci piacerebbe collaborare con te!", "page-what-is-ethereum-energy-consumption-chart-legend": "Consumo di energia annuale in TWh/anno", "page-upgrades-post-merge-banner-governance-ood": "Alcuni contenuti su questa pagina sono obsoleti dopo La Fusione. Sei pregato di effettuare una PR, se vorresti contribuire.", - "energy-consumption-chart-youtube-label": "YouTube", - "energy-consumption-chart-gold-mining-galaxy-label": "Gold mining (Galaxy Digital)", "energy-consumption-chart-global-data-centers-label": "Centri elaborazione dati globali", - "energy-consumption-chart-gold-mining-cbeci-label": "Gold mining (CBECI)", + "energy-consumption-gold-mining-cbeci-label": "Estrazione dell'oro", "energy-consumption-chart-btc-pow-label": "BTC PoW", "energy-consumption-chart-netflix-label": "Netflix", "energy-consumption-chart-eth-pow-label": "ETH PoW", diff --git a/src/intl/it/page-dapps.json b/src/intl/it/page-dapps.json index d9c713ce983..33ce6721cab 100644 --- a/src/intl/it/page-dapps.json +++ b/src/intl/it/page-dapps.json @@ -1,95 +1,97 @@ { - "page-dapps-1inch-logo-alt": "Logo 1inch", - "page-dapps-aave-logo-alt": "Logo Aave", + "page-dapps-1inch-logo-alt": "Logo di 1inch", + "page-dapps-dexguru-logo-alt": "Logo di DexGuru", + "page-dapps-aave-logo-alt": "Logo di Aave", "page-dapps-add-button": "Suggerisci dapp", "page-dapps-add-title": "Aggiungi dapp", - "page-dapps-audius-logo-alt": "Logo Audius", - "page-dapps-augur-logo-alt": "Logo Augur", - "page-dapps-axie-infinity-logo-alt": "Logo Axie Infinity", + "page-dapps-audius-logo-alt": "Logo di Audius", + "page-dapps-augur-logo-alt": "Logo di Augur", + "page-dapps-axie-infinity-logo-alt": "Logo di Axie Infinity", "page-dapps-balancer-logo-alt": "Logo di Balancer", - "page-dapps-brave-logo-alt": "Logo Brave", + "page-dapps-brave-logo-alt": "Logo di Brave", "page-dapps-category-arts": "Arte e moda", "page-dapps-category-browsers": "Browser", - "page-dapps-category-collectibles": "Articoli da collezione digitali", + "page-dapps-category-collectibles": "Oggetti da collezione digitali", "page-dapps-category-competitive": "Competizione", "page-dapps-category-computing": "Strumenti di sviluppo", - "page-dapps-category-dex": "Scambio di token", + "page-dapps-category-dex": "Scambi di token", "page-dapps-category-investments": "Investimenti", - "page-dapps-category-lending": "Prestiti", + "page-dapps-category-lending": "Assunzione ed erogazione di prestiti", "page-dapps-category-lottery": "Crowdfunding", "page-dapps-category-marketplaces": "Marketplace", "page-dapps-category-music": "Musica", "page-dapps-category-payments": "Pagamenti", - "page-dapps-category-insurance": "Assicurazione", - "page-dapps-category-portfolios": "Portafogli", + "page-dapps-category-insurance": "Assicurazioni", + "page-dapps-category-portfolios": "Portfolio", "page-dapps-category-trading": "Mercati di scambio e previsione", "page-dapps-category-utilities": "Utilità", "page-dapps-category-worlds": "Mondi virtuali", "page-dapps-choose-category": "Scegli una categoria", - "page-dapps-collectibles-benefits-1-description": "Quando un'opera d'arte viene tokenizzata su Ethereum, la proprietà può essere dimostrata da chiunque. Puoi tracciare il percorso dell'opera dalla creazione all'attuale proprietario. Questo previene le falsificazioni.", + "page-dapps-collectibles-benefits-1-description": "Quando l'arte è tokenizzata su Ethereum, la proprietà è dimostrabile da chiunque. Puoi monitorare il percorso dell'opera d'arte dalla sua creazione, al suo proprietario attuale. Ciò previene le falsificazioni.", "page-dapps-collectibles-benefits-1-title": "La proprietà è dimostrabile", - "page-dapps-collectibles-benefits-2-description": "Pagare per riprodurre musica in streaming o acquistare opere d'arte è decisamente più giusto nei confronti degli artisti. Con Ethereum c'è meno bisogno di intermediari. E se gli intermediari sono necessari, i loro costi non sono così elevati perché le piattaforme non hanno bisogno di pagare per l'infrastruttura della rete.", - "page-dapps-collectibles-benefits-2-title": "Più giusto nei confronti degli autori", - "page-dapps-collectibles-benefits-3-description": "Gli articoli da collezione tokenizzati sono legati al tuo indirizzo Ethereum, non alla piattaforma. Quindi puoi vendere articoli, come ad esempio oggetti di un gioco, su qualsiasi marketplace Ethereum e non solo all'interno del gioco.", - "page-dapps-collectibles-benefits-3-title": "Gli articoli da collezione sono legati a te", - "page-dapps-collectibles-benefits-4-description": "Gli strumenti e i prodotti che ti permettono di tokenizzare le tue opere d'arte e venderle esistono già! E i tuoi token possono essere venduti su qualsiasi piattaforma di articoli da collezione Ethereum.", - "page-dapps-collectibles-benefits-4-title": "Infrastruttura già esistente", - "page-dapps-collectibles-benefits-description": "Si tratta di applicazioni incentrate sulla proprietà digitale, che aumentano il potenziale di guadagno per gli autori e inventano nuovi modi per investire nei tuoi autori preferiti e nel loro lavoro.", - "page-dapps-collectibles-benefits-title": "articoli da collezione decentralizzati e streaming", - "page-dapps-collectibles-button": "Arte e articoli da collezione", + "page-dapps-collectibles-benefits-2-description": "Pagare per riprodurre musica o acquistare opere d'arte è più corretto nei confronti degli artisti. Con Ethereum, la necessità degli intermediari è ridotta. E, se questi sono necessari, i loro costi non sono così tanto elevati, poiché le piattaforme non necessitano di pagare per l'infrastruttura della rete.", + "page-dapps-collectibles-benefits-2-title": "Più corretto per i creatori", + "page-dapps-collectibles-benefits-3-description": "Gli oggetti da collezione tokenizzati sono legati al tuo indirizzo di Ethereum, non alla piattaforma. Quindi, puoi vedere cose come gli oggetti di gioco su qualsiasi mercato di Ethereum, non soltanto nel gioco stesso.", + "page-dapps-collectibles-benefits-3-title": "Gli oggetti da collezione sono legati a te", + "page-dapps-collectibles-benefits-4-description": "Gli strumenti e prodotti per tokenizzare la tua arte e venderla, esistono già! E i tuoi token possono essere venduti su qualsiasi piattaforma di oggetti da collezione di Ethereum.", + "page-dapps-collectibles-benefits-4-title": "Infrastruttura pre-esistente", + "page-dapps-collectibles-benefits-description": "Si tratta di applicazioni incentrate sulla proprietà digitale, incrementando il potenziale di guadagno per i creatori e inventando nuovi metodi per investire sui tuoi creatori preferiti e sul loro lavoro.", + "page-dapps-collectibles-benefits-title": "oggetti da collezione decentralizzati e streaming", + "page-dapps-collectibles-button": "Arte e oggetti da collezione", "page-dapps-collectibles-description": "Si tratta di applicazioni incentrate sulla proprietà digitale, che aumentano il potenziale di guadagno per gli autori e inventano nuovi modi per investire nei tuoi autori preferiti e nel loro lavoro.", - "page-dapps-collectibles-title": "Opere d'arte e articoli da collezione decentralizzati", - "page-dapps-compound-logo-alt": "Logo Compound", - "page-dapps-cryptopunks-logo-alt": "Logo CryptoPunks", - "page-dapps-cryptovoxels-logo-alt": "Logo Cryptovoxels", - "page-dapps-dapp-description-1inch": "Ti aiuta a evitare uno slippage elevato dei prezzi aggregando quelli migliori.", - "page-dapps-dapp-description-aave": "Presta i tuoi token per ottenere interessi e preleva in qualsiasi momento.", - "page-dapps-dapp-description-async-art": "Crea, colleziona e scambia #ProgrammableArt. Dipinti digitali divisi in “Livelli” che è puoi usare per influenzare l'immagine generale. Ogni Master e Layer è un token ERC721.", - "page-dapps-dapp-description-audius": "Piattaforma di streaming decentralizzata. Ascolti = soldi per gli autori, non etichette.", + "page-dapps-collectibles-title": "Opere d'arte e oggetti da collezione decentralizzati", + "page-dapps-compound-logo-alt": "Logo di Compound", + "page-dapps-cryptopunks-logo-alt": "Logo di CryptoPunks", + "page-dapps-cryptovoxels-logo-alt": "Logo di Cryptovoxels", + "page-dapps-dapp-description-1inch": "Ti aiuta a evitare lo scivolamento elevato dei prezzi, aggregando quelli migliori.", + "page-dapps-dapp-description-aave": "Presta i tuoi token per maturare interessi, e preleva in qualsiasi momento.", + "page-dapps-dapp-description-async-art": "Crea, colleziona e scambia i dipinti digitali #ProgrammableArt, suddivisi in \"Livelli\", utilizzabili per influenzare l'immagine generale. Ogni Master e Layer è un token ERC-721.", + "page-dapps-dapp-description-audius": "Piattaforma di streaming decentralizzata. Ascolti = denaro per i creatori, non per le etichette.", "page-dapps-dapp-description-augur": "Scommetti sui risultati di sport, economia e altri eventi mondiali.", - "page-dapps-dapp-description-axie-infinity": "Scambia e fai combattere creature chiamate Axies. E guadagna mentre giochi. Disponibile su dispositivo mobile", - "page-dapps-dapp-description-balancer": "Balancer è un manager automatico del portafoglio e una piattaforma di trading.", + "page-dapps-dapp-description-axie-infinity": "Scambia e fai combattere creature, dette Axies. E guadagna giocando; disponibile su dispositivi mobili", + "page-dapps-dapp-description-balancer": "Balancer è un gestore automatico del portfolio, nonché piattaforma di trading.", "page-dapps-dapp-description-brave": "Guadagna token per navigare sul browser e supporta i tuoi autori preferiti.", - "page-dapps-dapp-description-cent": "Un social network in cui guadagni denaro pubblicando NFT.", + "page-dapps-dapp-description-cent": "Un social network in cui guadagni denaro, pubblicando NFT.", "page-dapps-dapp-description-compound": "Presta i tuoi token per ottenere interessi e preleva in qualsiasi momento.", - "page-dapps-dapp-description-cryptopunks": "Acquista, fai un'offerta e metti in vendita punk. Uno dei primi token da collezione su Ethereum.", - "page-dapps-dapp-description-cryptovoxels": "Crea gallerie d'arte, costruisci negozi e compra terreni. Un mondo virtuale Ethereum.", + "page-dapps-dapp-description-cryptopunks": "Acquista, rilancia e offri punk in vendita: uno dei primi token da collezione, su Ethereum.", + "page-dapps-dapp-description-cryptovoxels": "Crea gallerie d'arte e negozi e acquista terreni: un mondo virtuale di Ethereum.", "page-dapps-dapp-description-dark-forest": "Conquista pianeti in un universo infinito, generato proceduralmente e con specifiche crittografiche.", - "page-dapps-dapp-description-decentraland": "Colleziona, vendi e acquista terre virtuali in un mondo virtuale che puoi esplorare.", - "page-dapps-dapp-description-ens": "Nomi facili da usare per gli indirizzi Ethereum e siti decentralizzati.", - "page-dapps-dapp-description-foundation": "Investi in edizioni uniche di opere d'arte digitali e scambiale con altri acquirenti.", - "page-dapps-dapp-description-gitcoin": "Guadagna criptovalute lavorando con software open-source.", - "page-dapps-dapp-description-gitcoin-grants": "Crowdfunding per progetti della community Ethereum con contributi amplificati", - "page-dapps-dapp-description-gods-unchained": "Gioco di carte scambiabili strategico. Guadagna carte giocando e poi vendile nella vita reale.", - "page-dapps-dapp-description-golem": "Accedi a potenza di calcolo condivisa o noleggia le tue risorse.", - "page-dapps-dapp-description-radicle": "Collaborazione sicura basata su codice peer-to-peer senza intermediari.", - "page-dapps-dapp-description-loopring": "Piattaforma di trading peer-to-peer realizzata per essere veloce.", - "page-dapps-dapp-description-marble-cards": "Crea e scambia carte digitali uniche basate su URL.", - "page-dapps-dapp-description-matcha": "Cerca più cambi per aiutarti a trovare i prezzi migliori.", - "page-dapps-dapp-description-nifty-gateway": "Acquista opere on-chain dai migliori artisti, atleti, marchi e autori.", - "page-dapps-dapp-description-oasis": "Scambia, prendi in prestito e risparmia con Dai, uno stablecoin di Ethereum.", + "page-dapps-dapp-description-decentraland": "Colleziona e scambia terreni virtuali in un mondo virtuale, tutto da esplorare.", + "page-dapps-dapp-description-ens": "Nomi intuitivi per gli utenti, per indirizzi di Ethereum e siti decentralizzati.", + "page-dapps-dapp-description-foundation": "Investi in edizioni uniche di opere d'arte digitali, e scambia articoli con altri acquirenti.", + "page-dapps-dapp-description-gitcoin": "Guadagna criptovalute lavorando con software open source.", + "page-dapps-dapp-description-gitcoin-grants": "Crowdfunding per progetti della community di Ethereum, con contributi amplificati", + "page-dapps-dapp-description-gods-unchained": "Gioco strategico di carte scambiabili. Ottieni carte giocando, e rivendile nella vita reale.", + "page-dapps-dapp-description-golem": "Accedi a potenza di calcolo condivisa, o noleggia le tue risorse.", + "page-dapps-dapp-description-radicle": "Collaborazione tra pari al codice sicura e priva di intermediari.", + "page-dapps-dapp-description-loopring": "Piattaforma di trading tra pari, realizzata per essere veloce.", + "page-dapps-dapp-description-marble-cards": "Crea e scambia carte digitali uniche, basate sugli URL.", + "page-dapps-dapp-description-matcha": "Cerca più piattaforme di scambio per aiutarti a trovare i prezzi migliori.", + "page-dapps-dapp-description-nifty-gateway": "Acquista opere su catena dagli artisti, atleti, marchi e creatori più popolari.", + "page-dapps-dapp-description-oasis": "Scambia, prendi in prestito e risparmia con DAI, una Stablecoin di Ethereum.", "page-dapps-dapp-description-opensea": "Acquista, vendi, scopri e scambia beni in edizione limitata.", - "page-dapps-dapp-description-opera": "Invia criptovalute dal tuo browser a esercenti, altri utenti e app.", - "page-dapps-dapp-description-poap": "Raccogli NFT dimostrando di aver partecipato a diversi eventi virtuali o di persona. Usali per partecipare a lotterie, votare, collaborare o semplicemente per vantarti.", - "page-dapps-dapp-description-polymarket": "Scommetti sui risultati. Effettua negoziazioni sui mercati dell'informazione.", + "page-dapps-dapp-description-opera": "Invia criptovalute dal tuo browser ai commercianti, ad altri utenti e alle app.", + "page-dapps-dapp-description-poap": "Colleziona NFT che dimostrano che hai partecipato a diversi eventi virtuali o fisici. Utilizzali per partecipare a lotterie, votare, collaborare, o semplicemente per vantarti.", + "page-dapps-dapp-description-polymarket": "Scommetti sui risultati. Scambia sui mercati di informazioni.", "page-dapps-dapp-description-pooltogether": "Una lotteria dove non puoi perdere. Premi ogni settimana.", - "page-dapps-dapp-description-index-coop": "Un fondo indicizzato sulle criptovalute che espone il tuo portafoglio ai migliori token DeFi.", - "page-dapps-dapp-description-nexus-mutual": "Copertura senza l'agenzia d'assicurazione. Proteggiti dai bug e le hack dei contratti intelligenti.", - "page-dapps-dapp-description-etherisc": "Un modello di assicurazione decentralizzata utilizzabile da chiunque per creare la propria copertura assicurativa.", - "page-dapps-dapp-description-zapper": "Monitora il tuo portafoglio e usa una gamma di prodotti DeFi da un'interfaccia.", - "page-dapps-dapp-description-zerion": "Gestisci il tuo portafoglio e valuta semplicemente ogni singolo asset di DeFi sul mercato.", - "page-dapps-dapp-description-rotki": "Strumento di monitoraggio del portfolio open source, analisi, contabilità e rendicontazione fiscale, che rispetta la tua privacy.", - "page-dapps-dapp-description-krystal": "Una piattaforma unica per accedere a tutti i tuoi servizi DeFi preferiti.", - "page-dapps-dapp-description-rarible": "Crea, vendi e compra articoli da collezione tokenizzati.", + "page-dapps-dapp-description-index-coop": "Un fondo indicizzato di criptovalute, che espone al tuo portafoglio i migliori token della DeFi.", + "page-dapps-dapp-description-nexus-mutual": "Copertura senza l'agenzia assicurativa. Proteggiti dai bug e le hack dei contratti intelligenti.", + "page-dapps-dapp-description-etherisc": "Un modello assicurativo decentralizzato utilizzabile da chiunque, per creare la propria copertura assicurativa.", + "page-dapps-dapp-description-zapper": "Monitora il tuo portfolio e utilizza svariati prodotti della DeFi, da una singola interfaccia.", + "page-dapps-dapp-description-zerion": "Gestisci il tuo portfolio e, semplicemente, valuta ogni singola risorsa della DeFi sul mercato.", + "page-dapps-dapp-description-rotki": "Strumento di monitoraggio, analisi, contabilità e rendicontazione fiscale open source, che rispetta la tua privacy.", + "page-dapps-dapp-description-krystal": "Un'unica piattaforma, per accedere a tutti i tuoi servizi della DeFi preferiti.", + "page-dapps-dapp-description-rarible": "Crea, vendi e acquista oggetti da collezione tokenizzati.", "page-dapps-dapp-description-sablier": "Trasmetti denaro in tempo reale.", - "page-dapps-dapp-description-superrare": "Acquista opere d'arte digitali direttamente dagli artisti o nei mercati secondari.", - "page-dapps-dapp-description-token-sets": "Strategie di investimento in criptovalute che si riequilibrano automaticamente.", + "page-dapps-dapp-description-superrare": "Acquista opere d'arte digitali direttamente dagli artisti, o nei mercati secondari.", + "page-dapps-dapp-description-token-sets": "Strategie di investimento in criptovalute, che si riequilibrano automaticamente.", "page-dapps-dapp-description-tornado-cash": "Invia transazioni anonime su Ethereum.", - "page-dapps-dapp-description-uniswap": "Scambia token in modo facile o fornisci token per ricompense %.", + "page-dapps-dapp-description-uniswap": "Scambia semplicemente token o fornisci token per ricompense in percentuale.", + "page-dapps-dapp-description-dexguru": "Un terminale di trading privo di custodia, per i trader della DeFi", "page-dapps-docklink-dapps": "Introduzione alle dApp", "page-dapps-docklink-smart-contracts": "Contratti intelligenti", - "page-dapps-dark-forest-logo-alt": "Logo Dark Forest", - "page-dapps-decentraland-logo-alt": "Logo Decentraland", + "page-dapps-dark-forest-logo-alt": "Logo di Dark Forest", + "page-dapps-decentraland-logo-alt": "Logo di Decentraland", "page-dapps-index-coop-logo-alt": "Logo di Index Coop", "page-dapps-nexus-mutual-logo-alt": "Logo di Nexus Mutual", "page-dapps-etherisc-logo-alt": "Logo di Etherisc", @@ -97,120 +99,120 @@ "page-dapps-zerion-logo-alt": "Logo di Zerion", "page-dapps-rotki-logo-alt": "Logo di Rotki", "page-dapps-krystal-logo-alt": "Logo di Krystal", - "page-dapps-desc": "Trova un'applicazione Ethereum da provare.", - "page-dapps-doge-img-alt": "Figura di un cane che usa un computer", - "page-dapps-editors-choice-dark-forest": "Gioca contro altri utenti per conquistare pianeti e prova la tecnologia avanzatissima di scaling/privacy di Ethereum. Forse per coloro che già conoscono Ethereum.", - "page-dapps-editors-choice-description": "Alcune dapps che il team di ethereum.org adora in questo momento. Esplora più dapps qui sotto.", - "page-dapps-editors-choice-foundation": "Investi nella cultura. Compra, scambia e vendi opere d'arte digitali uniche e moda da alcuni incredibili artisti, musicisti e marchi.", + "page-dapps-desc": "Trova un'applicazione di Ethereum da provare.", + "page-dapps-doge-img-alt": "Illustrazione di un cane di razza doge, che utilizza un computer", + "page-dapps-editors-choice-dark-forest": "Gioca contro gli altri per conquistare pianeti e testa l'avanzatissima tecnologia di ridimensionamento e privacy di Ethereum. Forse, per coloro che conoscono già Ethereum.", + "page-dapps-editors-choice-description": "Alcune dapp del momento, adorate dal team di ethereum.org. Esplora altre dapp qui sotto.", + "page-dapps-editors-choice-foundation": "Investi in cultura. Acquista, scambia e vendi opere d'arte digitali uniche e moda da alcuni incredibili artisti, musicisti e marchi.", "page-dapps-editors-choice-header": "Scelte da noi", - "page-dapps-editors-choice-pooltogether": "Acquista un biglietto per la lotteria senza perdita. Ogni settimana, l'interesse generato dall'intera biglietteria viene inviato ad un fortunato vincitore. Riprendi i tuoi soldi quando vuoi.", - "page-dapps-editors-choice-uniswap": "Scambia i tuoi token con facilità. Uno dei preferiti della community, che ti permette di scambiare token con altri attraverso la rete.", - "page-dapps-ens-logo-alt": "Logo Ethereum Name Service", - "page-dapps-explore-dapps-description": "Molte dapp sono ancora in fase sperimentale, e si stanno testando le possibilità delle reti decentralizzate. Ma ci sono già stati successi nelle categorie tecnologia, finanza, giochi e articoli da collezione.", + "page-dapps-editors-choice-pooltogether": "Acquista un biglietto per la lotteria senza perdita. Ogni settimana, l'interesse generato dall'intero gruppo di biglietti, è inviato a un vincitore fortunato. Riprendi i tuoi soldi quando preferisci.", + "page-dapps-editors-choice-uniswap": "Scambia facilmente i tuoi token. Uno dei preferiti della community, che ti consente di scambiare token con gente, per tutta la rete.", + "page-dapps-ens-logo-alt": "Logo del Servizio del Nome di Ethereum", + "page-dapps-explore-dapps-description": "Molte dapp sono ancora sperimentali e stanno sperimentando con le possibilità delle reti decentralizzate. Ma ci sono già stati successi nelle categorie di tecnologia, finanza, videogiochi e oggetti da collezione.", "page-dapps-explore-dapps-title": "Esplora le dapp", - "page-dapps-features-1-description": "Una volta distribuito su Ethereum, il codice di una dapp non può essere rimosso. E chiunque può utilizzare le funzionalità della dapp, anche se il team che le ha sviluppate si è sciolto. Una volta su Ethereum, rimane lì.", + "page-dapps-features-1-description": "Una volta distribuito su Ethereum, il codice della dapp non può essere rimosso. E chiunque può utilizzare le funzionalità della dapp; anche se il team della dapp si scioglie, puoi continuare a utilizzarla. Una volta su Ethereum, vi rimane.", "page-dapps-features-1-title": "Nessun proprietario", - "page-dapps-features-2-description": "Nessuno può impedirti di usare una dapp o di inviare le transazioni. Ad esempio, se Twitter fosse su Ethereum, nessuno potrebbe bloccare il tuo profilo o impedirti di twittare.", - "page-dapps-features-2-title": "Nessuna censura", - "page-dapps-features-3-description": "Poiché Ethereum ha ETH, i pagamenti sono nativi di Ethereum. Gli sviluppatori non devono preoccuparsi dell'integrazione con intermediari terzi.", + "page-dapps-features-2-description": "Neessuno può impedirti di utilizzare una dapp o di inviare le transazioni. Ad esempio, se Twitter fosse su Ethereum, nessuno potrebbe bloccare il tuo profilo o impedirti di twittare.", + "page-dapps-features-2-title": "Libera dalla censura", + "page-dapps-features-3-description": "Poiché Ethereum ha gli ETH, i pagamenti sono nativi a Ethereum. Gli sviluppatori non devono preoccuparsi di integrarsi con fornitori di pagamento di terze parti.", "page-dapps-features-3-title": "Pagamenti integrati", - "page-dapps-features-4-description": "Il codice delle dapp è spesso aperto e compatibile per natura. I team sviluppano regolarmente utilizzando il lavoro di altri. Se vuoi permettere agli utenti di scambiare token nella tua dapp, puoi semplicemente integrare il codice di un'altra dapp.", + "page-dapps-features-4-description": "Il codice della dapp è spesso aperto e compatibile per natura. I team creano regolarmente utilizzando il lavoro altrui. Se desideri consentire agli utenti di scambiare token nella tua dapp, basta integrare il codice di un'altra dapp.", "page-dapps-features-4-title": "Plug and play", - "page-dapps-features-5-description": "Con gran parte delle dapp, non devi condividere la tua identità del mondo reale. Il tuo conto di Ethereum è il tuo accesso e necessiti soltanto di un portafoglio.", - "page-dapps-features-5-title": "Un solo login anonimo", - "page-dapps-features-6-description": "La crittografia assicura che gli utenti malevoli non possano forgiare transazioni e altre interazioni della dapp per conto tuo. Autorizzi le azioni delle dapp con il tuo conto di Ethereum, solitamente tramite il tuo portafoglio, così che le tue credenziali restino al sicuro.", - "page-dapps-features-6-title": "Il potere della crittografia", - "page-dapps-features-7-description": "Una volta che la dapp è su Ethereum, risulterà non disponibile solo se anche Ethereum non sarà disponibile. Le reti delle dimensioni di Ethereum sono notoriamente difficili da attaccare.", - "page-dapps-features-7-title": "Addio ai tempi di inattività", - "page-dapps-finance-benefits-1-description": "I servizi finanziari in esecuzione su Ethereum non hanno requisiti di iscrizione. Se disponi di fondi e di una connessione a Internet, puoi già partire.", + "page-dapps-features-5-description": "Con gran parte delle dapp, non devi condividere la tua identità reale. Il tuo conto di Ethereum è il tuo accesso, e necessiti soltanto di un portafoglio.", + "page-dapps-features-5-title": "Un accesso anonimo", + "page-dapps-features-6-description": "La crittografia assicura che gli utenti malevoli non possano forgiare le transazioni e le interazioni con altre dapp per conto tuo. Autorizzi le azioni della dapp con il tuo conto di Ethereum, solitamente tramite il tuo portafoglio, quindi, le tue credenziali restano al sicuro.", + "page-dapps-features-6-title": "Sostenute dalla crittografia", + "page-dapps-features-7-description": "Una volta che la dapp è su Ethereum, smetterà di essere disponibile soltanto se Ethereum non sarà più disponibile. Le reti delle dimensioni di Ethereum sono notoriamente difficili da attaccare.", + "page-dapps-features-7-title": "Nessuna inattività", + "page-dapps-finance-benefits-1-description": "I servizi finanziari operati su Ethereum non hanno requisiti di iscrizione. Se hai dei fondi e una connessione a Internet, sei pronto.", "page-dapps-finance-benefits-1-title": "Accesso aperto", - "page-dapps-finance-benefits-2-description": "C'è un intero mondo di token con cui è possibile interagire attraverso questi prodotti finanziari. La gente crea nuovi token su Ethereum in continuazione.", - "page-dapps-finance-benefits-2-title": "Una nuova economia basata su token", - "page-dapps-finance-benefits-3-description": "I team hanno creato gli stablecoin, una criptovaluta meno volatile che permette di sperimentare e utilizzare le criptovalute senza i rischi e le incertezze associate.", + "page-dapps-finance-benefits-2-description": "Esiste un intero mondo di token con cui puoi interagire, tramite questi prodotti finanziari. La gente crea nuovi token su Ethereum, in continuazione.", + "page-dapps-finance-benefits-2-title": "Una nuova economia basata sui token", + "page-dapps-finance-benefits-3-description": "I team hanno creato le Stablecoin: criptovalute meno volatili. Queste, ti consentono di sperimentare con e di utilizzare le criptovalute, senza rischi e incertezze.", "page-dapps-finance-benefits-3-title": "Stablecoin", - "page-dapps-finance-benefits-4-description": "I prodotti finanziari nello spazio Ethereum sono tutti modulari e compatibili tra loro. Sul mercato si affacciano nuove configurazioni di questi moduli in continuazione, che aumentano le possibilità offerte dalle criptovalute.", + "page-dapps-finance-benefits-4-description": "I prodotti finanziari nello spazio di Ethereum sono tutti modulari e compatibili tra loro. Le nuove configurazioni di tali moduli si affacciano continuamente sul mercato, aumentando le possibilità offerte dalle criptovalute.", "page-dapps-finance-benefits-4-title": "Servizi finanziari interconnessi", - "page-dapps-finance-benefits-description": "Perché Ethereum permette alle applicazioni finanziarie decentralizzate di prosperare?", + "page-dapps-finance-benefits-description": "Cos'è che consente alle applicazioni finanziarie decentralizzate, di prosperare su Ethereum?", "page-dapps-finance-benefits-title": "finanza decentralizzata", "page-dapps-finance-button": "Finanza", - "page-dapps-finance-description": "Si tratta di applicazioni incentrate sull'offerta di servizi finanziari tramite criptovalute. Offrono l'equivalente di prestiti, interessi e pagamenti privati, senza richiedere dati personali.", + "page-dapps-finance-description": "Si tratta di applicazioni incentrate sulla creazione di servizi finanziari, utilizzando le criptovalute. Offrono assunzione ed erogazione di prestiti, maturazione di interessi e pagamenti privati, senza richiedere alcun dato personale.", "page-dapps-finance-title": "Finanza decentralizzata", - "page-dapps-foundation-logo-alt": "Logo della Fondazione", - "page-dapps-gaming-benefits-1-description": "Gli oggetti sono negoziabili sui mercati degli articoli da collezione, che si tratti di terre virtuali o carte scambiabili. Gli oggetti dei tuoi giochi hanno valore reale.", - "page-dapps-gaming-benefits-1-title": "Gli oggetti dei giochi valgono il doppio come token", - "page-dapps-gaming-benefits-2-description": "Gli articoli sono tuoi e in alcuni casi anche i tuoi progressi, non delle aziende di gioco. Quindi non perderai nulla se l'azienda che ha creato il gioco viene attaccata, ha un malfunzionamento dei server o fallisce.", - "page-dapps-gaming-benefits-2-title": "I tuoi salvataggi sono salvi!", - "page-dapps-gaming-benefits-3-description": "Allo stesso modo i pagamenti di Ethereum possono essere verificati da chiunque, i giochi possono utilizzare questa qualità per garantire equità. In teoria, tutto è verificabile, dal numero di colpi critici alle dimensioni della cassa di guerra di un avversario.", + "page-dapps-foundation-logo-alt": "Logo della Ethereum Foundation", + "page-dapps-gaming-benefits-1-description": "Che si tratti di terreni virtuali o carte scambiabili, i tuoi oggetti sono scambiabili sui mercati di oggetti da collezione. I tuoi oggetti di gioco hanno un valore reale.", + "page-dapps-gaming-benefits-1-title": "Gli oggetti di gioco raddoppiano di valore come token", + "page-dapps-gaming-benefits-2-description": "Possiedi i tuoi oggetti e, in alcuni casi, i tuoi progressi, non le aziende videoludiche. Quindi, non perderai nulla se l'azienda che ha prodotto il gioco viene attaccata, soffre di un malfunzionamento dei server, o fallisce.", + "page-dapps-gaming-benefits-2-title": "I tuoi salvataggi sono al sicuro", + "page-dapps-gaming-benefits-3-description": "Così come i pagamenti di Ethereum sono disponibili per la verifica da parte di chiunque, i giochi possono sfruttare tale qualità per assicurare l'equità. In teoria, tutto è verificabile: dal numero di colpi critici alle dimensioni della cassa di guerra di un avversario.", "page-dapps-gaming-benefits-3-title": "Correttezza verificabile", - "page-dapps-gaming-benefits-description": "Perché Ethereum permette alle applicazioni di gaming decentralizzate di prosperare?", - "page-dapps-gaming-benefits-title": "giochi decentralizzati", + "page-dapps-gaming-benefits-description": "Cos'è che consente ai videogiochi decentralizzati, di prosperare su Ethereum?", + "page-dapps-gaming-benefits-title": "videogiochi decentralizzati", "page-dapps-gaming-button": "Gaming", - "page-dapps-gaming-description": "Si tratta di applicazioni che si concentrano sulla creazione di mondi virtuali e sul combattere contro altri giocatori usando articoli da collezione che hanno un valore nel mondo reale.", - "page-dapps-gaming-title": "Giochi decentralizzati", - "page-dapps-get-some-eth-description": "Le azioni dapp costano una commissione di transazione", - "page-dapps-get-started-subtitle": "Per provare una dapp, ti serve un portafoglio e qualche ETH. Un portafoglio ti permetterà di connetterti o di accedere. E avrai bisogno di ETH per pagare tutte le commissioni di transazione.", + "page-dapps-gaming-description": "Si tratta di applicazioni incentrate sulla creazione di mondi virtuali e combattimento con altri giocatori, utilizzando oggetti da collezione aventi un valore reale.", + "page-dapps-gaming-title": "Videogiochi decentralizzati", + "page-dapps-get-some-eth-description": "Le azioni delle dapp costano una commissione di transazione", + "page-dapps-get-started-subtitle": "Per provare una dapp, necessiterai di un portafoglio e di degli ETH. Un portafoglio ti consentirà di connetteri o di accedere. E necessiterai di degli ETH per pagare qualsiasi commissione di transazione.", "page-dapps-get-started-title": "Primi passi", - "page-dapps-gitcoin-grants-logo-alt": "Logo Gitcoin Grants", - "page-dapps-gitcoin-logo-alt": "Logo Gitcoin", - "page-dapps-gods-unchained-logo-alt": "Logo Gods Unchained", - "page-dapps-golem-logo-alt": "Logo Golem", + "page-dapps-gitcoin-grants-logo-alt": "Logo di Gitcoin Grants", + "page-dapps-gitcoin-logo-alt": "Logo di Gitcoin", + "page-dapps-gods-unchained-logo-alt": "Logo di Gods Unchained", + "page-dapps-golem-logo-alt": "Logo di Golem", "page-dapps-radicle-logo-alt": "Logo di Radicle", "page-dapps-hero-header": "Strumenti e servizi basati su Ethereum", - "page-dapps-hero-subtitle": "Le dapp sono un movimento crescente di applicazioni che usano Ethereum per interrompere modelli di business o inventarne di nuovi.", - "page-dapps-how-dapps-work-p1": "Il codice di backend (contratti intelligenti) delle dapp opera su una rete decentralizzata e non su un server centralizzato. Le dapp utilizzano la blockchain per l'archiviazione dei dati e i contratti intelligenti per la logica della loro app.", - "page-dapps-how-dapps-work-p2": "Un contratto intelligente è come una serie di regole che risiedono sulla catena, visibile a tutti e operata esattamente secondo tali regole. Immagina un distributore automatico: se gli fornisci abbastanza fondi e la selezione corretta, otterrai l'articolo che desideri. E come i distributori, i contratti intelligenti possono contenere fondi, proprio come il tuo conto di Ethereum. Questo consente al codice di mediare accordi e transazioni.", - "page-dapps-how-dapps-work-p3": "Una volta distribuite le dapp sulla rete di Ethereum, non puoi modificarle. Le dapp possono esser decentralizzate perché sono controllate dalla logica scritta nel contratto, non da un individuo o un'azienda.", + "page-dapps-hero-subtitle": "Le dapp sono un movimento crescente di applicazioni, che utilizzano Ethereum per interrompere i modelli aziendali o inventarne di nuovi.", + "page-dapps-how-dapps-work-p1": "Il codice del backend (contratti intelligenti) delle dapp, opera su una rete decentralizzata, non su un server centralizzato. Utilizzano la blockchain di Ethereum per l'archiviazione dei dati e i contratti intelligenti pr la logica dell'app.", + "page-dapps-how-dapps-work-p2": "Un contratto intelligente è una serie di regole che risiedono sulla catena, visibili a tutti e operati esattamente secondo tali regole. Immagina un distributore automatico: se gli fornisci abbastanza fondi e la selezione corretta, otterrai l'articolo desiderato. E come i distributori automatici, i contratti intelligenti possono detenere fondi molto simili al tuo conto di Ethereum. Ciò consente al codice di mediare accordi e transazioni.", + "page-dapps-how-dapps-work-p3": "Una volta distribuite le dapp sulla rete di Ethereum, non puoi modificarle. Le dapp possono essere decentralizzate poiché controllate dalla logica scritta nel contratto, non da un individuo o da un'azienda.", "page-dapps-how-dapps-work-title": "Come funzionano le dapp", "page-dapps-learn-callout-button": "Inizia a sviluppare", - "page-dapps-learn-callout-description": "Il nostro portale degli sviluppatori della community contiene documenti, strumenti e framework per aiutarti a costruire una dapp.", - "page-dapps-learn-callout-image-alt": "Figura di una mano che costruisce un simbolo ETH da mattoncini di Lego.", - "page-dapps-learn-callout-title": "Impara a costruire una dapp", - "page-dapps-loopring-logo-alt": "Logo Loopring", - "page-dapps-magic-behind-dapps-description": "Le dapp potrebbero sembrare normali app. In realtà, dietro le quinte, hanno alcune qualità speciali, perché ereditano tutti i superpoteri di Ethereum. Questo è ciò che rende le dapp diverse dalle app.", + "page-dapps-learn-callout-description": "Il nostro portale per sviluppatori della community include documentazioni, strumnti e quadri per aiutarti a creare la tua dapp.", + "page-dapps-learn-callout-image-alt": "Illustrazione di una mano, che crea un simbolo degli ETH, realizzato con mattoncini Lego.", + "page-dapps-learn-callout-title": "Impara a creare una dapp", + "page-dapps-loopring-logo-alt": "Logo di Loopring", + "page-dapps-magic-behind-dapps-description": "Le dapp potrebbero somigliare ad app regolari. In realtà, dietro le quinte, hanno alcune qualità speciali, poiché ereditano tutti i superpoteri di Ethereum. Ecco ciò che rende le dapp differenti dalle app.", "page-dapps-magic-behind-dapps-link": "Cosa rende Ethereum straordinario?", "page-dapps-magic-behind-dapps-title": "La magia delle dapp", "page-dapps-magic-title-1": "La magia", "page-dapps-magic-title-2": "delle", - "page-dapps-magician-img-alt": "Figura di maghi", - "page-dapps-marble-cards-logo-alt": "logo marble.cards", + "page-dapps-magician-img-alt": "Illustrazione di dei maghi", + "page-dapps-marble-cards-logo-alt": "Logo di marble.cards", "page-dapps-async-logo-alt": "Logo di Async", - "page-dapps-matcha-logo-alt": "Logo Matcha", - "page-dapps-mobile-options-header": "Cerca un'altra categoria", - "page-dapps-nifty-gateway-logo-alt": "Logo Nifty Gateway", - "page-dapps-oasis-logo-alt": "Logo Oasis", - "page-dapps-opensea-logo-alt": "Logo OpenSea", - "page-dapps-opera-logo-alt": "Logo Opera", - "page-dapps-polymarket-logo-alt": "Logo Polymarket", - "page-dapps-poap-logo-alt": "Logo del protocollo Proof of Attendance", - "page-dapps-pooltogether-logo-alt": "Logo PoolTogether", - "page-dapps-rarible-logo-alt": "Logo Rarible", + "page-dapps-matcha-logo-alt": "Logo di Matcha", + "page-dapps-mobile-options-header": "Sfoglia un'altra categoria", + "page-dapps-nifty-gateway-logo-alt": "Logo di Nifty Gateway", + "page-dapps-oasis-logo-alt": "Logo di Oasis", + "page-dapps-opensea-logo-alt": "Logo di OpenSea", + "page-dapps-opera-logo-alt": "Logo di Opera", + "page-dapps-polymarket-logo-alt": "Logo di Polymarket", + "page-dapps-poap-logo-alt": "Logo del Protocollo di Prova di Partecipazione", + "page-dapps-pooltogether-logo-alt": "Logo di PoolTogether", + "page-dapps-rarible-logo-alt": "Logo di Rarible", "page-dapps-ready-button": "Via!", "page-dapps-ready-description": "Scegli una dapp da provare", - "page-dapps-ready-title": "Pronti?", - "page-dapps-sablier-logo-alt": "Logo Sablier", - "page-dapps-set-up-a-wallet-button": "Trova portafoglio", - "page-dapps-set-up-a-wallet-description": "Un portafoglio è il tuo “login” per una dapp", + "page-dapps-ready-title": "Pronto?", + "page-dapps-sablier-logo-alt": "Logo di Sablier", + "page-dapps-set-up-a-wallet-button": "Trova un portafoglio", + "page-dapps-set-up-a-wallet-description": "Un portafoglio è il tuo \"accesso\" per una dapp", "page-dapps-set-up-a-wallet-title": "Configura un portafoglio", - "page-dapps-superrare-logo-alt": "Logo SuperRare", + "page-dapps-superrare-logo-alt": "Logo di SuperRare", "page-dapps-technology-button": "Tecnologia", - "page-dapps-technology-description": "Si tratta di applicazioni incentrate sul decentramento degli strumenti di sviluppo, l'integrazione dei sistemi criptoeconomici nella tecnologia esistente e la creazione di mercati per il lavoro di sviluppo open-source.", + "page-dapps-technology-description": "Si tratta di applicazioni incentrate sulla decentralizzazione degli strumenti per sviluppatori, incorporando sistemi criptoeconomici nella tecnologia esistente e creando mercati per il lavoro di sviluppo open source.", "page-dapps-technology-title": "Tecnologia decentralizzata", - "page-dapps-token-sets-logo-alt": "Logo Token Set", - "page-dapps-tornado-cash-logo-alt": "Logo Tornado Cash", - "page-dapps-uniswap-logo-alt": "Logo Uniswap", + "page-dapps-token-sets-logo-alt": "Logo di Token Set", + "page-dapps-tornado-cash-logo-alt": "Logo di Tornado Cash", + "page-dapps-uniswap-logo-alt": "Logo di Uniswap", "page-dapps-wallet-callout-button": "Trova portafoglio", - "page-dapps-wallet-callout-description": "I portafogli sono a loro volta delle dapp. Trovane uno basato sulle caratteristiche che più ti aggradano.", - "page-dapps-wallet-callout-image-alt": "Figura di un robot.", + "page-dapps-wallet-callout-description": "Anche i portafogli sono dapp. Trovane uno a seconda delle funzionalità adatte a te.", + "page-dapps-wallet-callout-image-alt": "Illustrazione di un robot.", "page-dapps-wallet-callout-title": "Visualizza i portafogli", "page-dapps-warning-header": "Fai sempre ricerche per verificare", - "page-dapps-warning-message": "Ethereum è una nuova tecnologia e la maggior parte delle applicazioni sono nuove. Prima di depositare grandi quantità di denaro, assicurati di conoscere i rischi.", + "page-dapps-warning-message": "Ethereum è una nuova tecnologia e, gran parte delle applicazioni, sono nuove. Prima di depositare qualsiasi grande quantità di denaro, assicurati di comprenderne i rischi.", "page-dapps-what-are-dapps": "Cosa sono le dapp?", - "page-dapps-more-on-defi-button": "Maggiori informazioni sulla finanza decentralizzata", - "page-dapps-more-on-nft-button": "Maggiori informazioni sugli oggetti collezionabili tokenizzati", - "page-dapps-more-on-nft-gaming-button": "Ulteriori informazioni sugli oggetti in-game tokenizzati", - "page-dapps-dapp-description-pwn": "Prestiti facili, garantiti da qualsiasi token o NFT su Ethereum.", - "page-dapps-pwn-image-alt": "Logo PWN", - "foundation": "Fondazione", + "page-dapps-more-on-defi-button": "Di più sulla finanza decentralizzata", + "page-dapps-more-on-nft-button": "Di più sugli oggetti collezionabili tokenizzati", + "page-dapps-more-on-nft-gaming-button": "Di più sugli oggetti di gioco tokenizzati", + "page-dapps-dapp-description-pwn": "Prestiti facili, garantiti da qualsiasi token o NFT, su Ethereum.", + "page-dapps-pwn-image-alt": "Logo di PWN", + "foundation": "Foundation", "transaction-fees": "Che cosa sono le commissioni sulle transazioni?", "page-wallets-get-some": "Ottieni ETH" } diff --git a/src/intl/it/page-learn.json b/src/intl/it/page-learn.json new file mode 100644 index 00000000000..53a25baffb8 --- /dev/null +++ b/src/intl/it/page-learn.json @@ -0,0 +1,139 @@ +{ + "toc-learn-hub": "Learn Hub", + "toc-what-is-crypto-ethereum": "Cosa sono le criptovalute ed Ethereum?", + "toc-how-do-i-use-ethereum": "Come posso utilizzare Ethereum?", + "toc-what-is-ethereum-used-for": "Per cosa è utilizzato Ethereum?", + "toc-strengthen-the-ethereum-network": "Rafforzare la rete di Ethereum", + "toc-learn-about-the-ethereum-protocol": "Impara sul protocollo di Ethereum", + "toc-learn-about-the-ethereum-community": "Impara sulla community di Ethereum", + "toc-books-and-podcasts": "Libri e podcast", + "hero-header": "Informazioni su Ethereum", + "hero-subtitle": "La tua guida educativa al mondo di Ethereum. Scopri come funziona e come connetterti. Questa pagina include articoli, guide e risorse tecnici e non tecnici.", + "hero-button-lets-get-started": "Iniziamo", + "what-is-crypto-1": "Potresti aver sentito parlare di criptovalute, Bitcoin e blockchain. Questa pagina ti aiuterà ad apprendere come sono legate a Ethereum.", + "what-is-crypto-link-1": "E, in ogni caso, cos'è Ethereum?", + "what-is-crypto-2": "Bitcoin consente a chiunque di trasferire denaro globalmente. Anche Ethereum lo fa e consente a chiunque di creare e concordare qualsiasi tipo di contratto che possa immaginare. È sia resiliente che flessibile: qualsiasi programma informatico può essere eseguito su Ethereum.", + "what-is-ethereum-card-title": "Cos'è Ethereum?", + "what-is-ethereum-card-description": "Se sei nuovo, inizia qui ad apprendere perché Ethereum è importante.", + "what-is-ethereum-card-image-alt": "Illustrazione di una persona che sbircia in un bazar, che rappresenta Ethereum.", + "what-is-eth-card-title": "Cos'è ETH?", + "what-is-eth-description": "Ether (ETH) è la valuta alla base della rete e delle app di Ethereum.", + "where-can-i-get-eth-card-title": "Dove posso ottenere degli ETH?", + "where-can-i-get-eth-card-description": "Esistono molti modi per ottenere ETH, a seconda della tua posizione.", + "additional-reading-more-on-ethereum-basics": "Ulteriori informazioni sui fondamenti di Ethereum", + "additional-reading-what-are-smart-contracts": "Cosa sono i contratti intelligenti?", + "additional-reading-a-developers-intro": "Un'introduzione a Ethereum per gli sviluppatori", + "additional-reading-what-is-web3": "Cos'è web3?", + "additional-reading-value": "Cos'è il valore?", + "additional-reading-decentralize-everything": "Decentralizza tutto", + "how-do-i-use-ethereum-1": "Utilizzare Ethereum è come trasferirsi in un posto nuovo. Inizialmente sembrerà poco familiare, e ognuno si trasferisce per i propri motivi. Nonostante ciò, la prima cosa di cui avrai bisogno sono le nuove chiavi. Il software che crea e detiene le chiavi per la tua nuova casa è chiamato \"portafoglio\".", + "what-is-a-wallet-card-title": "Cos'è un portafoglio?", + "what-is-a-wallet-card-description": "I portafogli sono come portachiavi: memorizzano ciò che ti serve per ottenere l'accesso ai luoghi a cui tieni.", + "what-is-a-wallet-card-alt": "Figura di un robot.", + "find-a-wallet-card-title": "Trova un portafoglio", + "find-a-wallet-card-description": "Ti aiuteremo a trovare il portafoglio migliore a seconda delle caratteristiche che più ti importano.", + "find-a-wallet-button": "Elenco di portafogli", + "crypto-security-basics-card-title": "Fondamenti di sicurezza", + "crypto-security-basics-card-description": "Scopri come identificare le truffe e come evitare i trucchi più comuni.", + "crypto-security-basics-card-button": "Mantieni la sicurezza", + "things-to-consider-banner-title": "Cose da considerare utilizzando Ethereum", + "things-to-consider-banner-1": "Ogni transazione di Ethereum richiede una commissione nella forma di ETH, anchse se devi spostare token differenti basati su Ethereum, come gli stablecoin USDC o DAI.", + "things-to-consider-banner-2": "Le commissioni possono essere elevate a seconda del numero di persone che sta provando a utilizzare Ethereum, quindi consigliamo di utilizzare i", + "things-to-consider-banner-layer-2": "Livelli 2", + "additional-reading-more-on-using-ethereum": "Ulteriori informazioni sull'utilizzo di Ethereum", + "additional-reading-how-to-register-an-ethereum-account": "Come \"registrare\" un conto di Ethereum", + "additional-reading-how-to-use-a-wallet": "Come utilizzare un portafoglio", + "additional-reading-support-for-ethereum-and-wallets": "Supporto per Ethereum e i portafogli", + "additional-reading-layer-2": "Livello 2: ridurre le commissioni di transazione", + "what-is-ethereum-used-for-1": "Ethereum ha portato alla creazione di nuovi prodotti e servizi capaci di migliorare diverse aree delle nostre vite. Siamo ancora agli inizi, ma c'è molto di cui essere entusiasti.", + "defi-card-title": "Finanza Decentralizzata (DeFi)", + "defi-card-description": "Esplora un sistema finanziario alternativo, costruito senza banche e aperto a tutti.", + "defi-card-button": "Cos'è la DeFi?", + "stablecoins-card-title": "Stablecoin", + "stablecoins-card-description": "Le criptovalute sono ancorate al valore di una valuta, una materia prima o qualche altro strumento finanziario.", + "stablecoins-card-button": "Cosa sono le stablecoin?", + "nft-card-title": "Token non fungibili (NFT)", + "nft-card-description": "Rappresentano la proprietà di oggetti unici, dall'arte a titoli di proprietà fino a biglietti di concerti.", + "nft-card-button": "Cosa sono i NFT?", + "dao-card-title": "Organizzazioni autonome decentralizzate (DAO)", + "dao-card-description": "Consentono nuovi metodi per coordinare il lavoro senza un capo.", + "dao-card-button": "Cosa sono le DAO?", + "dapp-card-title": "Applicazioni decentralizzate (dapps)", + "dapp-card-description": "Creano un'economia digitale di servizi peer-to-peer.", + "dapp-card-button": "Esplora le dapp", + "emerging-use-cases-title": "Casi d'uso emergenti", + "emerging-use-cases-description": "Inoltre, esistono altre industrie di spicco create o migliorate con Ethereum:", + "play-to-earn": "Giochi play-to-earn (P2E)", + "fundraising-through-quadratic-funding": "Raccolte fondi tramite finanziamenti quadratici", + "supply-chain-management": "Gestione della filiera", + "more-on-ethereum-use-cases": "Maggiori informazioni sui casi d'uso di Ethereum", + "more-on-ethereum-use-cases-link": "La blockchain nei paesi in via di sviluppo", + "strengthening-the-ethereum-network-description": "Puoi aiutare a proteggere Ethereum e allo stesso tempo ottenere ricompense mettendo i tuoi ETH in staking. Esistono diverse opzioni per lo staking, a seconda della tua conoscenza tecnica e di quanti ETH possiedi.", + "staking-ethereum-card-title": "Staking su Ethereum", + "staking-ethereum-card-description": "Scopri come iniziare a mettere in staking i tuoi ETH.", + "staking-ethereum-card-button": "Inizia a fare staking", + "run-a-node-card-title": "Gestire un nodo", + "run-a-node-card-description": "Rivesti un ruolo cruciale nella rete di Ethereum eseguendo un nodo.", + "learn-about-ethereum-protocol-description": "Per gli utenti più interessati alla parte tecnica della rete di Ethereum.", + "energy-consumption-card-title": "Consumo energetico", + "energy-consumption-card-description": "Quanta energia è consumata da Ethereum?", + "energy-consumption-card-button": "Ethereum è green?", + "ethereum-upgrades-card-title": "Roadmap di Ethereum", + "ethereum-upgrades-card-description": "La tabella di marcia di Ethereum la rende più scalabile, sicura e sostenibile.", + "ethereum-upgrades-card-button": "Esplora la roadmap", + "ethereum-whitepaper-card-title": "Whitepaper di Ethereum", + "ethereum-whitepaper-card-description": "La proposta originale di Ethereum scritta da Vitalik Buterin nel 2014.", + "ethereum-whitepaper-card-button": "Leggi il whitepaper", + "more-on-ethereum-protocol-title": "Maggiori informazioni sul protocollo di Ethereum", + "more-on-ethereum-protocol-ethereum-for-developers": "Ethereum per sviluppatori", + "more-on-ethereum-protocol-eips": "Proposte di miglioramento di Ethereum (EIP)", + "more-on-ethereum-protocol-history": "Storia di Ethereum", + "more-on-ethereum-protocol-governance": "Governance", + "more-on-ethereum-protocol-bridges": "Bridge", + "more-on-ethereum-protocol-kernel": "Kernel", + "more-on-ethereum-protocol-week-in-ethereum": "Settimana in Ethereum News", + "ethereum-community-description": "Il successo di Ethereum è dovuto alla sua community incredibilmente dedicata. Migliaia di persone motivanti e motivate aiutano a far avanzare la visione di Ethereum. Vieni a unirti a noi!", + "community-hub-card-title": "Hub della community", + "community-hub-card-description": "La nostra community include persone da tutte le provenienze sociali.", + "community-hub-card-alt": "Illustrazione di un gruppo di costruttori che lavorano insieme.", + "community-hub-card-button": "Esplora di più", + "get-involved-card-title": "Come posso partecipare?", + "get-involved-card-description": "Tu (sì, tu!) sei il benvenuto a contribuire alla community di Ethereum.", + "online-communities-card-title": "Community online", + "online-communities-card-description": "Le community online forniscono un'ottima opportunità per porre domande più specifiche o essere coinvolti.", + "online-communities-card-button": "Esplora le community", + "books-about-ethereum": "Libri su Ethereum e le criptovalute", + "proof-of-stake-title": "Proof of Stake", + "proof-of-stake-description": "13 settembre 2022 - Vitalik Buterin, Nathan Schneider", + "cryptopians-title": "The Cryptopians", + "cryptopians-description": "22 febbraio 2022 - Laura Shin", + "out-of-the-ether-title": "Out of the Ether", + "out-of-the-ether-description": "29 settembre 2020 - Matthew Leising", + "the-infinite-machine-title": "The Infinite Machine", + "the-infinite-machine-description": "14 luglio 2020 - Camila Russo", + "the-age-of-cryptocurrency-title": "The Age of Cryptocurrency", + "the-age-of-cryptocurrency-description": "12 gennaio 2016 - Paul Vigna, Michael J. Casey", + "the-truth-machine-title": "The Truth Machine", + "the-truth-machine-description": "27 febbraio 2018 - Paul Vigna, Michael J. Casey", + "digital-gold-title": "Digital Gold", + "digital-gold-description": "24 maggio 2021 - Nathaniel Popper", + "kings-of-crypto-title": "Kings of Crypto", + "kings-of-crypto-description": "15 dicembre 2020 - Jeff John Roberts", + "mastering-ethereum-title": "Mastering Ethereum", + "mastering-ethereum-description": "23 dicembre 2018 - Andreas M. Antonopoulos, Gavin Wood Ph.D.", + "podcasts-about-ethereum": "Podcast su Ethereum e le criptovalute", + "bankless-title": "Bankless", + "bankless-description": "Una guida alla cripto finanza", + "uncommon-core-title": "Uncommon Core", + "uncommon-core-description": "Esplora la natura trasformativa della valuta a fiducia minimizzata e dei servizi finanziari", + "zeroknowledge-title": "Zero Knowledge", + "zeroknowledge-description": "Approfondisci la tecnologia che supporterà il web decentralizzato emergente e la community che lo sta costruendo", + "epicenter-title": "Epicenter", + "epicenter-description": "Esplora le implicazioni tecniche, economiche e sociali dell'industria delle Cripto", + "unchained-title": "Unchained", + "unchained-description": "Offre approfondimenti sulle persone che stanno creando l'Internet decentralizzato, i dettagli di tale tecnologia che potrebbero sostenere il nostro futuro e alcuni degli argomenti più spinosi sulle cripto, come regolamenti, sicurezza e privacy", + "into-the-bytecode-title": "Into the Bytecode", + "into-the-bytecode-description": "Un podcast sulle idee alla base delle cripto", + "the-daily-gwei-title": "The Daily Gwei", + "the-daily-gwei-description": "Riepiloghi, aggiornamenti e analisi delle notizie di Ethereum" +} diff --git a/src/intl/it/page-stablecoins.json b/src/intl/it/page-stablecoins.json index a21b7cff9db..cc19b2df48b 100644 --- a/src/intl/it/page-stablecoins.json +++ b/src/intl/it/page-stablecoins.json @@ -1,166 +1,166 @@ { - "page-stablecoins-accordion-borrow-crypto-collateral": "Garanzia per le criptovalute", - "page-stablecoins-accordion-borrow-crypto-collateral-copy": "Con Ethereum puoi prendere in prestito direttamente da altri utenti senza scambiare i tuoi ETH. Questo può rappresentare un vantaggio: alcuni lo fanno per accumulare più ETH.", - "page-stablecoins-accordion-borrow-crypto-collateral-copy-p2": "Ma poiché il prezzo dell'ETH è instabile, serviranno garanzie extra. Significa che se vuoi prendere in prestito 100 stablecoin avrai probabilmente bisogno di almeno $150 in ETH. Questo sistema protegge il sistema e i prestatori.", - "page-stablecoins-accordion-borrow-crypto-collateral-link": "Maggiori informazioni su stablecoin supportati da criptovalute", + "page-stablecoins-accordion-borrow-crypto-collateral": "Garanzia per criptovalute", + "page-stablecoins-accordion-borrow-crypto-collateral-copy": "Con Ethereum, puoi prendere in prestito direttamente da altri utenti, senza scambiare i tuoi ETH. Questo può rappresentare un vantaggio: alcuni lo fanno per accumulare più ETH.", + "page-stablecoins-accordion-borrow-crypto-collateral-copy-p2": "Ma poiché il prezzo degli ETH è volatile, serviranno garanzie in più. Ciò significa che se desideri prendere in prestito 100 Stablecoin, necessiterai probabilmente di almeno $150 in ETH. Ciò protegge il sistema e i creditori.", + "page-stablecoins-accordion-borrow-crypto-collateral-link": "Di più sulle Stablecoin sostenute da criptovalute", "page-stablecoins-accordion-borrow-pill": "Avanzate", - "page-stablecoins-accordion-borrow-places-intro": "Queste dapp ti permettono di prendere in prestito stablecoin usando criptovalute come garanzia. Alcuni accettano altri token e anche ETH.", - "page-stablecoins-accordion-borrow-places-title": "Dove prendere in prestito stablecoin", - "page-stablecoins-accordion-borrow-requirement-1": "Un portafoglio Ethereum", - "page-stablecoins-accordion-borrow-requirement-1-description": "Servirà un portafoglio per usare una dapp", + "page-stablecoins-accordion-borrow-places-intro": "Queste dapp ti consentono di prendere in prestito delle Stablecoin, utilizzando le criptovalute come garanzia. Alcune accettano altre token, nonché ETH.", + "page-stablecoins-accordion-borrow-places-title": "Dove prendere Stablecoin in prestito", + "page-stablecoins-accordion-borrow-requirement-1": "Un portafoglio di Ethereum", + "page-stablecoins-accordion-borrow-requirement-1-description": "Necessiterai di un portafoglio per utilizzare una dapp", "page-stablecoins-accordion-borrow-requirement-2": "Ether (ETH)", - "page-stablecoins-accordion-borrow-requirement-2-description": "Serviranno ETH come garanzia e/o per le commissioni sulle transazioni", - "page-stablecoins-accordion-borrow-requirements-description": "Per prendere in prestito stablecoin servirà la dapp giusta. Avrai anche bisogno di un portafoglio e di alcuni ETH.", - "page-stablecoins-accordion-borrow-risks-copy": "Se usi ETH come garanzia e il relativo valore cala, la tua garanzia non coprirà gli stablecoin che hai generato. Questo causerà la liquidazione dei tuoi ETH e potresti subire una penale. Quindi se vuoi prendere in prestito stablecoin devi tenere d'occhio il prezzo di ETH.", - "page-stablecoins-accordion-borrow-risks-link": "Ultimo prezzo di ETH", + "page-stablecoins-accordion-borrow-requirement-2-description": "Necessiterai di degli ETH per la garanzia e/o per le commissioni sulle transazioni", + "page-stablecoins-accordion-borrow-requirements-description": "Per prendere in prestito delle Stablecoin, dovrai utilizzare la giusta dapp. Inoltre, necessiterai di un portafoglio e di degli ETH.", + "page-stablecoins-accordion-borrow-risks-copy": "Se utilizzi gli ETH come garanzia e il loro valore cala, la tua garanzia non coprirà le Stablecoin generate. Questo, causerà la liquidazione dei tuoi ETH e potresti incorrere in una penale. Quindi, se prendi in prestito delle Stablecoin, dovrai tenere d'occhio il prezzo degli ETH.", + "page-stablecoins-accordion-borrow-risks-link": "Prezzo di ETH più recente", "page-stablecoins-accordion-borrow-risks-title": "Rischi", - "page-stablecoins-accordion-borrow-text-preview": "Puoi prendere in prestito alcuni stablecoin usando criptovalute come garanzia, che dovrai ripagare.", + "page-stablecoins-accordion-borrow-text-preview": "Puoi prendere in prestito delle Stablecoin utilizzando le criptovalute come garanzia, che dovrai ripagare.", "page-stablecoins-accordion-borrow-title": "Prendi in prestito", - "page-stablecoins-accordion-buy-exchanges-title": "Borse popolari", - "page-stablecoins-accordion-buy-requirement-1": "Borse e portafogli di criptovalute", - "page-stablecoins-accordion-buy-requirement-1-description": "Controlla quali servizi puoi usare in base al luogo in cui vivi", - "page-stablecoins-accordion-buy-requirements-description": "Un conto con una borsa o un portafoglio da cui puoi acquistare direttamente le criptovalute. Potresti averne già usato qualcuno per ottenere degli ETH. Controlla quali servizi puoi utilizzare dove vivi.", - "page-stablecoins-accordion-buy-text-preview": "Molte borse e portafogli ti permettono di acquistare direttamente stablecoin. Potrebbero essere applicate restrizioni geografiche.", + "page-stablecoins-accordion-buy-exchanges-title": "Piattaforme di scambio popolari", + "page-stablecoins-accordion-buy-requirement-1": "Piattaforme di scambio e portafogli di criptovalute", + "page-stablecoins-accordion-buy-requirement-1-description": "Consulta i servizi che puoi utilizzare dove vivi", + "page-stablecoins-accordion-buy-requirements-description": "Un conto con una piattaforma di scambio o un portafoglio, da cui puoi acquistare criptovalute direttamente. Potresti averne già utilizzato qualcuno per ottenere degli ETH. Consulta quali servizi puoi utilizzare dove vivi.", + "page-stablecoins-accordion-buy-text-preview": "Molte piattaforme di scambio e portafogli ti consentono di acquistare direttamente le Stablecoin. Potrebbero essere applicate delle restrizioni geografiche.", "page-stablecoins-accordion-buy-title": "Acquista", - "page-stablecoins-accordion-buy-warning": "Le borse centralizzate potrebbero quotare solo stablecoin ancorati al valore di valute nazionali come USDC, Tether o altre. Potresti non essere in grado di acquistarli direttamente, ma dovresti essere in grado di scambiarli a fronte di ETH o altre criptovalute che puoi acquistare sulla piattaforma.", - "page-stablecoins-accordion-earn-project-1-description": "Soprattutto lavoro tecnico per il movimento del software open source.", - "page-stablecoins-accordion-earn-project-2-description": "Tecnologia, contenuti e altri lavori per la community MakerDao (il team che ha creato Dai).", - "page-stablecoins-accordion-earn-project-3-description": "Se davvero sai il fatto tuo, trova bug per guadagnare Dai.", - "page-stablecoins-accordion-earn-project-bounties": "Ricompense Gitcoin", - "page-stablecoins-accordion-earn-project-bug-bounties": "Ricompense per i bug sul livello di consenso", + "page-stablecoins-accordion-buy-warning": "Le piattaforme di scambio centralizzate potrebbero elencare soltanto Stablecoin supportate da valute legali, quali USDC, Tether e altre. Potresti non riuscire ad acquistarle direttamente, ma dovresti poterle scambiare da ETH o altre criptovalute, acquistabili sulla piattaforma.", + "page-stablecoins-accordion-earn-project-1-description": "Prevalentemente lavoro tecnico per il movimento dei software open source.", + "page-stablecoins-accordion-earn-project-2-description": "Tecnologia, contenuti e altri incarichi per la community di MakerDao (il team che ha creato DAI).", + "page-stablecoins-accordion-earn-project-3-description": "Se sai davvero il fatto tuo, trova i bug per guadagnare DAI.", + "page-stablecoins-accordion-earn-project-bounties": "Ricompense in Gitcoin", + "page-stablecoins-accordion-earn-project-bug-bounties": "\"Cacce ai bug\" del livello del consenso", "page-stablecoins-accordion-earn-project-community": "Community di MakerDao", - "page-stablecoins-accordion-earn-projects-copy": "Sono piattaforme che ti pagano in stablecoin per il tuo lavoro.", - "page-stablecoins-accordion-earn-projects-title": "Dove guadagnare stablecoin", + "page-stablecoins-accordion-earn-projects-copy": "Si tratta di piattaforme che ti pagheranno in Stablecoin per il tuo lavoro.", + "page-stablecoins-accordion-earn-projects-title": "Dove guadagnare delle Stablecoin", "page-stablecoins-accordion-earn-requirement-1": "Un portafoglio Ethereum", - "page-stablecoins-accordion-earn-requirement-1-description": "Ti servirà un portafoglio per ricevere gli stablecoin che guadagni", - "page-stablecoins-accordion-earn-requirements-description": "Gli stablecoin sono un ottimo metodo di pagamento per lavori o servizi, perché il loro valore è stabile. Ma ti servirà un portafoglio per ricevere i pagamenti.", - "page-stablecoins-accordion-earn-text-preview": "Puoi guadagnare stablecoin lavorando su progetti all'interno dell'ecosistema Ethereum.", + "page-stablecoins-accordion-earn-requirement-1-description": "Necessiterai di un portafoglio per ricevere le Stablecoin guadagnate", + "page-stablecoins-accordion-earn-requirements-description": "Le stablecoin sono un ottimo metodo di pagamento per lavori e servizi, poiché il loro valore è stabile. Ma necessiterai di un portafoglio per ricevere i pagamenti.", + "page-stablecoins-accordion-earn-text-preview": "Puo guadagnare delle Stablecoin lavorando a dei progetti, nell'ecosistema di Ethereum.", "page-stablecoins-accordion-earn-title": "Guadagna", "page-stablecoins-accordion-less": "Meno", "page-stablecoins-accordion-more": "Altro", "page-stablecoins-accordion-requirements": "Cosa ti servirà", - "page-stablecoins-accordion-swap-dapp-intro": "Se già possiedi ETH e un portafoglio, puoi usare queste dapp per scambiare stablecoin.", - "page-stablecoins-accordion-swap-dapp-link": "Scopri di più sulle borse decentralizzate", - "page-stablecoins-accordion-swap-dapp-title": "Dapp per scambiare token", - "page-stablecoins-accordion-swap-editors-tip": "Scelte degli editor", - "page-stablecoins-accordion-swap-editors-tip-button": "Trova portafogli", - "page-stablecoins-accordion-swap-editors-tip-copy": "Ottieni un portafoglio che ti permetta di acquistare ETH e scambiarli con token, inclusi gli stablecoin, direttamente.", - "page-stablecoins-accordion-swap-pill": "Raccomandato", + "page-stablecoins-accordion-swap-dapp-intro": "Se possiedi già degli ETH e un portafoglio, puoi utilizzare queste dapp per scambiarli con delle Stablecoin.", + "page-stablecoins-accordion-swap-dapp-link": "Di più sulle piattaforme di scambio decentralizzate", + "page-stablecoins-accordion-swap-dapp-title": "Dapp per scambiare i token", + "page-stablecoins-accordion-swap-editors-tip": "Consigli degli editori", + "page-stablecoins-accordion-swap-editors-tip-button": "Trova i portafogli", + "page-stablecoins-accordion-swap-editors-tip-copy": "Ottieni un portafoglio che ti consenta di acquistare ETH e scambiarli per dei token, Stablecoin incluse, direttamente.", + "page-stablecoins-accordion-swap-pill": "Consigliato", "page-stablecoins-accordion-swap-requirement-1": "Un portafoglio Ethereum", - "page-stablecoins-accordion-swap-requirement-1-description": "Ti servirà un portafoglio per autorizzare lo scambio e depositare le tue monete", + "page-stablecoins-accordion-swap-requirement-1-description": "Necessiterai di un portafoglio per autorizzare lo scambio e depositare le tue valute", "page-stablecoins-accordion-swap-requirement-2": "Ether (ETH)", "page-stablecoins-accordion-swap-requirement-2-description": "Per pagare lo scambio", - "page-stablecoins-accordion-swap-text-preview": "Puoi trovare la maggior parte degli stablecoin sulle borse decentralizzate. In questo modo, puoi scambiare tutti i tipi di token che hai con lo stablecoin che preferisci.", + "page-stablecoins-accordion-swap-text-preview": "Puoi selezionare gran parte delle Stablecoin sulle piattaforme di scambio decentralizzate. Quindi, puoi scambiare qualsiasi token che potresti possedere, per una Stablecoin che desideri.", "page-stablecoins-accordion-swap-title": "Scambia", - "page-stablecoins-algorithmic": "Algoritmico", + "page-stablecoins-algorithmic": "Algoritmica", "page-stablecoins-algorithmic-con-1": "Devi fidarti dell'algoritmo (o essere in grado di leggerlo).", - "page-stablecoins-algorithmic-con-2": "Il saldo delle tue monete cambierà in base alla quantità totale in circolazione.", - "page-stablecoins-algorithmic-description": "Questi stablecoin non sono supportati da nessun'altra risorsa. Un algoritmo venderà i token se il prezzo dovesse scendere sotto il valore desiderato o fornirà token se il valore dovesse salire oltre l'importo desiderato. Dato che il numero di questi token in circolazione cambia regolarmente, il numero dei token che possiedi cambierà, ma rispecchierà sempre la tua quota.", - "page-stablecoins-algorithmic-pro-1": "Non servono garanzie.", - "page-stablecoins-algorithmic-pro-2": "Controllato da un algoritmo pubblico.", + "page-stablecoins-algorithmic-con-2": "Il tuo saldo cambierà a seconda dell'offerta totale.", + "page-stablecoins-algorithmic-description": "Queste Stablecoin non sono sostenute da alcuna altra risorsa. Invece, un algoritmo venderà i token se il prezzo ricade sotto il valore desiderato e fornirà token se il valore supera l'importo desiderato. Poiché il numero di tali token in circolazione cambia regolarmente, il numero di token che possiedi cambierà, ma rifletterà sempre la tua quota.", + "page-stablecoins-algorithmic-pro-1": "Nessuna garanzia necessaria.", + "page-stablecoins-algorithmic-pro-2": "Controllata da un algoritmo pubblico.", "page-stablecoins-bank-apy": "0,05%", - "page-stablecoins-bank-apy-source": "Il tasso medio pagato dalle banche sui conti di risparmio di base, federalmente iscritti, negli USA.", + "page-stablecoins-bank-apy-source": "Il tasso medio pagato dalle banche su conti di risparmio di base, iscritti federalmente, negli Stati Uniti.", "page-stablecoins-bank-apy-source-link": "Fonte", "page-stablecoins-bitcoin-pizza": "La famigerata Pizza Bitcoin", - "page-stablecoins-bitcoin-pizza-body": "Nel 2010, qualcuno ha comprato 2 pizze pagandole 10.000 bitcoin. A quei tempi il valore era pari a circa 41 dollari. Ad oggi, equivarrebbero a milioni di dollari. Ci sono altri esempi di transazioni non proprio vantaggiose nella storia di Ethereum. Gli stablecoin risolvono questo problema, così puoi gustarti una buona pizza senza perdere ETH.", + "page-stablecoins-bitcoin-pizza-body": "Nel 2010, qualcuno acquistò 2 pizze per 10.000 bitcoin. Al tempo, il valore era pari a circa $37 EUR. Nel mercato odierno, equivarrebbero a milioni di dollari. Esistono simili transazioni non proprio vantaggiose, nella storia di Ethereum. Le Stablecoin risolvono tale problema, così che possa goderti la tua pizza, senza perdere i tuoi ETH.", "page-stablecoins-coin-price-change": "Variazione del prezzo della moneta (ultimi 30 giorni)", - "page-stablecoins-crypto-backed": "Basati su criptovalute", - "page-stablecoins-crypto-backed-con-1": "Meno stabili rispetto agli stablecoin ancorati al valore di valute nazionali.", + "page-stablecoins-crypto-backed": "Sostenuti da criptovalute", + "page-stablecoins-crypto-backed-con-1": "Meno stabili delle Stablecoin sostenute da valute legali.", "page-stablecoins-crypto-backed-con-2": "Devi tenere d'occhio il valore della garanzia della criptovaluta.", - "page-stablecoins-crypto-backed-description": "Questi stablecoin sono legati ad altre criptovalute, come ETH. Il loro prezzo dipende dal valore della risorsa sottostante (o garanzia), che può essere volatile. Siccome il valore di ETH può fluttuare, per questi stablecoin servono garanzie extra, per essere sicuri che il prezzo rimanga il più stabile possibile. Si potrebbe dire che il valore di 1$ di uno stablecoin basato su criptovaluta ha una risorsa criptovaluta sottostante del valore di almeno 2$. Quindi, se il prezzo di ETH dovesse scendere, dovranno essere utilizzati più ETH per sostenere il prezzo dello stablecoin; in caso contrario, lo stablecoin perderebbe il proprio valore.", - "page-stablecoins-crypto-backed-pro-1": "Trasparenti e completamente decentralizzati.", - "page-stablecoins-crypto-backed-pro-2": "Trasformabili rapidamente in altre criptovalute.", + "page-stablecoins-crypto-backed-description": "Queste Stablecoin sono sostenute da altre cripto-risorse, come gli ETH. Il loro prezzo dipende dal valore della risorsa sottostante (o garanzia), che può essere volatile. Poiché il valore degli ETH può fluttuare, per queste Stablecoin sono necessarie garanzie extra, per assicurarsi che il prezzo rimanga il più stabile possibile. Si potrebbe dre che il valore di 1$ di una Stablecoin sostenuta da criiptovalute, abbia una risorsa di criptovaluta sottostante dal valore di almeno 2$. Quindi, se il prezzo di ETH cala, devono essere utilizzati più ETH per sostenere la Stablecoin, altrimenti, queste, perderebbero il proprio valore.", + "page-stablecoins-crypto-backed-pro-1": "Trasparenti e completamente decentralizzate.", + "page-stablecoins-crypto-backed-pro-2": "Rapidamente trasformabili in altre risorse di criptovalute.", "page-stablecoins-crypto-backed-pro-3": "Nessun custode esterno: tutte le risorse sono controllate dai conti di Ethereum.", - "page-stablecoins-dai-banner-body": "Il Dai è probabilmente lo stablecoin decentralizzato più famoso. Il suo valore è circa di un dollaro ed è ampiamente accettato nelle dapp.", - "page-stablecoins-dai-banner-learn-button": "Scopri di più sul Dai", - "page-stablecoins-dai-banner-swap-button": "Scambia ETH per Dai", - "page-stablecoins-dai-banner-title": "Dai", - "page-stablecoins-dai-logo": "Logo Dai", - "page-stablecoins-editors-choice": "Scelti da noi", - "page-stablecoins-editors-choice-intro": "Sono probabilmente gli esempi più noti al momento di stablecoin e delle monete che abbiamo trovato utili per l'uso delle dapp.", + "page-stablecoins-dai-banner-body": "DAI è probabilmente la Stablecoin decentralizzata più famosa. Il suo valore è di circa un dollaro ed è ampiamente accettata tra le varie dapp.", + "page-stablecoins-dai-banner-learn-button": "Impara su DAI", + "page-stablecoins-dai-banner-swap-button": "Scambia ETH per DAI", + "page-stablecoins-dai-banner-title": "DAI", + "page-stablecoins-dai-logo": "Il logo di DAI", + "page-stablecoins-editors-choice": "Le scelte degli editori", + "page-stablecoins-editors-choice-intro": "Questi sono probabilmente gli esempi più noti di Stablecoin al momento, nonché le monete che riteniamo utili, per l'utilizzo delle dapp.", "page-stablecoins-explore-dapps": "Esplora le dapp", - "page-stablecoins-fiat-backed": "Ancorato al valore delle valute nazionali", - "page-stablecoins-fiat-backed-con-1": "Centralizzato: qualcuno deve rilasciare i token.", - "page-stablecoins-fiat-backed-con-2": "Richiede un controllo per assicurare che l'azienda abbia sufficienti riserve.", - "page-stablecoins-fiat-backed-description": "Fondamentalmente un \"pagherò\" per una valuta tradizionale (di solito dollari). Usi la tua valuta legale per acquistare un tipo di stablecoin che poi potrai incassare successivamente e riscattare con la tua valuta originale.", - "page-stablecoins-fiat-backed-pro-1": "Sicuro contro la volatilità tipica delle criptovalute.", + "page-stablecoins-fiat-backed": "Sostenute da valute legali", + "page-stablecoins-fiat-backed-con-1": "Centralizzata: qualcuno deve emettere i token.", + "page-stablecoins-fiat-backed-con-2": "Richiede il controllo, per assicurarsi che l'azienda abbia riserve sufficienti.", + "page-stablecoins-fiat-backed-description": "Fondamentalmente una cambiale per una valuta legale tradizionale (solitamente, i dollari). Utilizzi la tua valuta legale per acquistare una Stablecoin, che puoi successivamente incassare e riscattare, per la tua valuta originale.", + "page-stablecoins-fiat-backed-pro-1": "Sicure contro la volatilità delle criptovalute.", "page-stablecoins-fiat-backed-pro-2": "Le variazioni di prezzo sono minime.", - "page-stablecoins-find-stablecoin": "Trova uno stablecoin", - "page-stablecoins-find-stablecoin-how-to-get-them": "Come ottenere stablecoin", - "page-stablecoins-find-stablecoin-intro": "Sono disponibili centinaia di stablecoin. Qui te ne mostriamo alcuni per aiutarti a muovere i primi passi. Se non conosci ancora il mondo Ethereum, ti raccomandiamo di fare prima qualche ricerca.", + "page-stablecoins-find-stablecoin": "Trova una Stablecoin", + "page-stablecoins-find-stablecoin-how-to-get-them": "Come ottenere le stablecoin", + "page-stablecoins-find-stablecoin-intro": "Sono disponibili centinaia di Stablecoin. Eccone alcune per aiutarti a muovere i primi passi. Se sei nuovo su Ethereum, ti consigliamo di fare prima qualche ricerca.", "page-stablecoins-find-stablecoin-types-link": "Diversi tipi di stablecoin", "page-stablecoins-get-stablecoins": "Come ottenere stablecoin", - "page-stablecoins-hero-alt": "I tre maggiori stablecoin per capitalizzazione: Dai, USDC e Tether.", - "page-stablecoins-hero-button": "Ottieni stablecoin", - "page-stablecoins-hero-header": "Moneta digitale per l'utilizzo quotidiano", - "page-stablecoins-hero-subtitle": "Gli stablecoin sono token Ethereum progettati per mantenere un valore fisso, anche quando il prezzo di ETH cambia.", - "page-stablecoins-interest-earning-dapps": "Dapp che permettono di maturare interessi", - "page-stablecoins-meta-description": "Introduzione agli stablecoin Ethereum: cosa sono, come ottenerli e perché sono importanti.", + "page-stablecoins-hero-alt": "Le tre Stablecoin principali per capitalizzazione di mercato: DAI, USDC e Tether.", + "page-stablecoins-hero-button": "Ottieni delle stablecoin", + "page-stablecoins-hero-header": "Denaro digitale per l'utilizzo quotidiano", + "page-stablecoins-hero-subtitle": "Le Stablecoin sono token di Ethereum, progettati per mantenere un valore fisso, anche al cambiare del prezzo degli ETH.", + "page-stablecoins-interest-earning-dapps": "Dapp di maturazione degli interessi", + "page-stablecoins-meta-description": "Un'introduzione alle Stablecoin di Ethereum: cosa sono, come ottenerle e perché sono importanti.", "page-stablecoins-precious-metals": "Metalli preziosi", "page-stablecoins-precious-metals-con-1": "Centralizzati: qualcuno deve emettere i token.", - "page-stablecoins-precious-metals-con-2": "Devi fidarti dell'emittente dei token e delle riserve di metallo prezioso.", - "page-stablecoins-precious-metals-description": "Come le monete ancorate al valore di valute nazionali, questi stablecoin usano risorse come l'oro per mantenere stabile il proprio valore.", + "page-stablecoins-precious-metals-con-2": "Devi fidarti dell'emittente del token e delle riserve del metallo prezioso.", + "page-stablecoins-precious-metals-description": "Come le monete sostenute dalle valute legali, queste Stablecoin utilizzano risorse come l'oro, per mantenere il proprio valore.", "page-stablecoins-precious-metals-pro-1": "Protetti dalla volatilità delle criptovalute.", - "page-stablecoins-prices": "Prezzi degli stablecoin", - "page-stablecoins-prices-definition": "Gli stablecoin sono criptovalute non soggette a volatilità. Possiedono molte delle peculiarità di ETH ma il loro valore è stabile, similmente alle valute tradizionali. Quindi hai accesso a moneta stabile che puoi utilizzare su Ethereum. ", - "page-stablecoins-prices-definition-how": "Come viene garantita la stabilità degli stablecoin", - "page-stablecoins-research-warning": "Ethereum è una nuova tecnologia e la maggior parte delle applicazioni è nuova. Assicurati di essere consapevole dei rischi e deposita solo somme che puoi permetterti di perdere.", + "page-stablecoins-prices": "Prezzi delle Stablecoin", + "page-stablecoins-prices-definition": "Le Stablecoin sono criptovalute prive di volatilità. Condividono molte delle peculiarità degli ETH, ma il loro valore è stabile, similmente alle valute tradizionali. Così, hai accesso a una moneta stabile, utilizzabile su Ethereum. ", + "page-stablecoins-prices-definition-how": "Come viene garantita la stabilità delle Stablecoin", + "page-stablecoins-research-warning": "Ethereum è una nuova tecnologia e, gran parte delle applicazioni, sono nuove. Assicurati di essere a conoscenza dei rischi e deposita soltanto ciò che puoi permetterti di perdere.", "page-stablecoins-research-warning-title": "Fai sempre le tue ricerche di verifica", - "page-stablecoins-save-stablecoins": "Risparmio con gli stablecoin", - "page-stablecoins-save-stablecoins-body": "Gli stablecoin hanno solitamente un tasso di interesse più alto della media perché c'è molta domanda per prenderli in prestito. Queste sono dapp che permettono di ottenere interessi sugli stablecoin in tempo reale depositandoli in un pool di prestiti. Proprio come nel mondo bancario, fornisci token a chi li richiede in prestito ma potrai comunque prelevarli, insieme agli interessi, in qualsiasi momento.", - "page-stablecoins-saving": "Metti a frutto le tue riserve di stablecoin e guadagna interessi. Come sempre nel mondo delle criptovalute, il rendimento annuo percentuale (APY, Annual Percentage Yields) può cambiare giornalmente a seconda della domanda e dell'offerta in tempo reale.", - "page-stablecoins-stablecoins-dapp-callout-description": "Dai un occhio alle dapp Ethereum. Gli stablecoin sono spesso più utili per le transazioni quotidiane.", - "page-stablecoins-stablecoins-dapp-callout-image-alt": "Figura di un cane.", - "page-stablecoins-stablecoins-dapp-callout-title": "Usa i tuoi stablecoin", - "page-stablecoins-stablecoins-dapp-description-1": "Piazze di scambio per molti stablecoin, tra cui Dai, USDC, TUSD, USDT e altri. ", - "page-stablecoins-stablecoins-dapp-description-2": "Presta stablecoin e guadagna interessi e $COMP, il token proprietario di Compound.", - "page-stablecoins-stablecoins-dapp-description-3": "Piattaforma di trading dove puoi guadagnare interessi sui tuoi Dai e USDC.", - "page-stablecoins-stablecoins-dapp-description-4": "App progettata per risparmiare Dai.", - "page-stablecoins-stablecoins-feature-1": "Gli stablecoin sono globali e possono essere inviati via Internet. Una volta ottenuto un conto di Ethereum, sono semplici da ricevere o inviare.", - "page-stablecoins-stablecoins-feature-2": "La domanda di stablecoin è alta, quindi puoi guadagnare interessi prestando i tuoi. Assicurati di essere a conoscenza dei rischi prima di procedere al prestito.", - "page-stablecoins-stablecoins-feature-3": "Gli stablecoin sono scambiabili con ETH e altri token Ethereum. Molte dapp si basano su stablecoin.", - "page-stablecoins-stablecoins-feature-4": "Gli stablecoin sono protetti dalla crittografia. Nessuno può fare transazioni per tuo conto.", + "page-stablecoins-save-stablecoins": "Risparmia con le Stablecoin", + "page-stablecoins-save-stablecoins-body": "Spesso, le Stablecoin, hanno un tasso di interesse superiore alla media, poiché vi è molta domanda per prenderle in prestito. Esistono delle dapp che consentono di maturare interessi sulle tue Stablecoin in tempo reale, depositandole in un gruppo di prestito. Proprio come nel mondo bancario, stai fornendo token ai debitori, ma puoi prelevarli, insieme ai tuoi interessi, in qualsiasi momento.", + "page-stablecoins-saving": "Metti a frutto i tuoi risparmi di Stablecoin e matura interessi. Come sempre, nel mondo delle criptovalute, il Rendimento Annuo Percentuale (APY), può cambiare giornalmente, a seconda della domanda e dell'offerta in tempo reale.", + "page-stablecoins-stablecoins-dapp-callout-description": "Dai un'occhiata alle dapp di Ethereum: le Stablecoin sono spesso più utili per le transazioni quotidiane.", + "page-stablecoins-stablecoins-dapp-callout-image-alt": "Illustrazione di un cane di razza doge.", + "page-stablecoins-stablecoins-dapp-callout-title": "Controlla le tue Stablecoin", + "page-stablecoins-stablecoins-dapp-description-1": "Mercati per molte Stablecoin, tra cui DAI, USDC, TUSD, USDT e altre. ", + "page-stablecoins-stablecoins-dapp-description-2": "Presta stablecoin e matura interessi e $COMP, il token di Compound.", + "page-stablecoins-stablecoins-dapp-description-3": "Una piattaforma di trading in cui puoi maturare interessi sulle tue DAI e USDC.", + "page-stablecoins-stablecoins-dapp-description-4": "Un'app progettata per risparmiare sulle DAI.", + "page-stablecoins-stablecoins-feature-1": "Le Stablecoin sono globali e possono essere inviate via Internet. Sono facili da ricevere e inviare, una volta che possiedi un conto di Ethereum.", + "page-stablecoins-stablecoins-feature-2": "La domanda per le Stablecoin è elevata, quindi, puoi maturare interessi, prestando le tue. Assicurati di essere consapevole dei rischi, prima di procedere al prestito.", + "page-stablecoins-stablecoins-feature-3": "Le stablecoin sono scambiabili per ETH e altri token di Ethereum. Molte dapp si affidano alle stablecoin.", + "page-stablecoins-stablecoins-feature-4": "Le Stablecoin sono protette dalla crittografia. Nessuno può forgiare transazioni per tuo conto.", "page-stablecoins-stablecoins-meta-description": "Introduzione agli stablecoin Ethereum: cosa sono, come ottenerli e perché sono importanti.", "page-stablecoins-stablecoins-table-header-column-1": "Valuta", "page-stablecoins-stablecoins-table-header-column-2": "Capitalizzazione di mercato", "page-stablecoins-stablecoins-table-header-column-3": "Tipo di garanzia", "page-stablecoins-stablecoins-table-type-crypto-backed": "Criptovaluta", - "page-stablecoins-stablecoins-table-type-fiat-backed": "Valuta a corso legale", + "page-stablecoins-stablecoins-table-type-fiat-backed": "Valuta legale", "page-stablecoins-stablecoins-table-type-precious-metals-backed": "Metalli preziosi", - "page-stablecoins-table-error": "Impossibile caricare stablecoin. Prova ad aggiornare la pagina.", - "page-stablecoins-table-loading": "Caricamento dati stablecoin in corso...", + "page-stablecoins-table-error": "Impossibile caricare le Stablecoin. Prova ad aggiornare la pagina.", + "page-stablecoins-table-loading": "Caricamento dei dati delle Stablecoin...", "page-stablecoins-title": "Stablecoin", - "page-stablecoins-top-coins": "Principali stablecoin per capitalizzazione di mercato", + "page-stablecoins-top-coins": "Stablecoin più popolari per capitalizzazioni di mercato", "page-stablecoins-top-coins-intro": "La capitalizzazione di mercato è", - "page-stablecoins-top-coins-intro-code": "il numero totale di token esistenti moltiplicato per il valore del token. Questa lista è dinamica e i progetti elencati qui non sono necessariamente approvati dal team di ethereum.org.", + "page-stablecoins-top-coins-intro-code": "il numero totale di token esistenti, moltiplicato per il valore per token. Questo elenco è dinamico e i progetti qui elencati non sono necessariamente sponsorizzati dal team di ethereum.org.", "page-stablecoins-types-of-stablecoin": "Come funzionano: tipi di stablecoin", - "page-stablecoins-usdc-banner-body": "USDC è probabilmente il più famoso tra gli stablecoin ancorati al valore di valute nazionali. Vale circa un dollaro ed è basato su Circle e Coinbase.", + "page-stablecoins-usdc-banner-body": "USDC è probabilmente la Stablecoin sostenuta da valuta legale più famosa. Il suo valore è approssimativamente di un dollaro, e si basa su Circle e Coinbase.", "page-stablecoins-usdc-banner-learn-button": "Scopri di più su USDC", "page-stablecoins-usdc-banner-swap-button": "Scambia ETH per USDC", "page-stablecoins-usdc-banner-title": "USDC", - "page-stablecoins-usdc-logo": "Logo USDC", + "page-stablecoins-usdc-logo": "Il logo di USDC", "page-stablecoins-why-stablecoins": "Perché stablecoin?", "page-stablecoins-how-they-work-button": "Come funzionano", - "page-stablecoins-why-stablecoins-body": "ETH, come Bitcoin, ha un prezzo volatile perché è una nuova tecnologia. Quindi potrebbe essere consigliabile non spenderlo regolarmente. Gli stablecoin rispecchiano il valore delle valute tradizionali per dare accesso a una moneta stabile che puoi usare su Ethereum.", - "page-stablecoins-more-defi-button": "Maggiori informazioni sulla finanza decentralizzata (DeFi)", - "page-stablecoins-tools-title": "Scopri di più sugli stablecoin", - "page-stablecoins-tools-stablecoinswtf-description": "Stablecoins.wtf offre un pannello di controllo con dati di mercato storici, statistiche e contenuti educativi per gli stablecoin più importanti.", + "page-stablecoins-why-stablecoins-body": "ETH, come Bitcoin, ha un prezzo volatile perché è una nuova tecnologia. Quindi, potresti non volerne spendere in modo regolare. Le Stablecoin rispecchiano il valore delle valute tradizionali, per darti accesso a denaro stabile, utilizzabile su Ethereum.", + "page-stablecoins-more-defi-button": "Di più sulla finanza decentralizzata (DeFi)", + "page-stablecoins-tools-title": "Impara di più sulle Stablecoin", + "page-stablecoins-tools-stablecoinswtf-description": "Stablecoins.wtf offre un pannello di controllo con dati di mercato storici, statistiche e contenuti educativi, per le Stablecoin più importanti.", "page-dapps-ready-button": "Via!", "pros": "Pro", "cons": "Contro", - "1inch-logo": "Logo 1inch", - "aave-logo": "Logo Aave", - "binance-logo": "Logo Binance", - "bittrex-logo": "Logo Bittrex", - "coinbase-logo": "Logo Coinbase", - "coinmama-logo": "Logo Coinmama", - "compound-logo": "Logo Compound", + "1inch-logo": "Logo di 1inch", + "aave-logo": "Logo di Aave", + "binance-logo": "Logo di Binance", + "bittrex-logo": "Logo di Bittrex", + "coinbase-logo": "Logo di Coinbase", + "coinmama-logo": "Logo di Coinmama", + "compound-logo": "Logo di Compound", "example-projects": "Progetti di esempio", - "gemini-logo": "Logo Gemini", - "gitcoin-logo": "Logo Gitcoin", - "loopring-logo": "Logo Loopring", - "makerdao-logo": "Logo MakerDao", - "matcha-logo": "Logo Matcha", - "oasis-logo": "Logo Oasis", - "uniswap-logo": "Logo Uniswap" + "gemini-logo": "Logo di Gemini", + "gitcoin-logo": "Logo di Gitcoin", + "loopring-logo": "Logo di Loopring", + "makerdao-logo": "Logo di MakerDao", + "matcha-logo": "Logo di Matcha", + "oasis-logo": "Logo di Oasis", + "uniswap-logo": "Logo di Uniswap" } diff --git a/src/intl/it/page-staking.json b/src/intl/it/page-staking.json index f1974bb0b29..9ee972e2169 100644 --- a/src/intl/it/page-staking.json +++ b/src/intl/it/page-staking.json @@ -1,11 +1,30 @@ { + "comp-withdrawal-comparison-current-title": "Staker attuali", + "comp-withdrawal-comparison-current-li-1": "Alcuni utenti potrebbero aver fornito un indirizzo di prelievo alla prima configurazione del proprio deposito di staking; questi utenti non devono fare altro", + "comp-withdrawal-comparison-current-li-2": "Gran parte degli staker non ha fornito un indirizzo di prelievo al deposito iniziale, e dovrà aggiornare le proprie credenziali di prelievo. Il Launchpad di Staking contiene le istruzioni su come farlo", + "comp-withdrawal-comparison-current-p": "Qui puoi inserire il numero del tuo indice del validatore per verificare se devi ancora aggiornare le tue credenziali (lo puoi trovare nei log del tuo client):", + "comp-withdrawal-comparison-new-title": "Nuovi staker (che non hanno ancora depositato)", + "comp-withdrawal-comparison-new-li-1": "Di default, i nuovi staker che cercano di abilitare automaticamente i pagamenti delle ricompense e la funzionalità di prelievo dovrebbero fornire un indirizzo di prelievo di Ethereum che controllano quando generano le chiavi del validatore utilizzando lo strumento Staking Deposit CLI", + "comp-withdrawal-comparison-new-li-2": "Ciò non è necessario al momento del deposito, ma farà sì che non sia necessario aggiornare tali chiavi in seguito per sbloccare i propri fondi", + "comp-withdrawal-comparison-new-p": "Il Launchpad di Staking ti guiderà nello staking.", + "comp-withdrawal-comparison-new-link": "Visita il Launchpad di Staking", + "comp-withdrawal-credentials-placeholder": "Indice del validatore", + "comp-withdrawal-credentials-error": "Ops! Ricontrolla il numero di indice del validatore e riprova.", + "comp-withdrawal-credentials-upgraded-1": "L'indice del validatore {{validatorIndex}} è pronto per iniziare a ricevere ricompense!", + "comp-withdrawal-credentials-upgraded-2": "Credenziali di prelievo collegate all'indirizzo di esecuzione:", + "comp-withdrawal-credentials-not-upgraded-1": "Questo validatore deve essere aggiornato.", + "comp-withdrawal-credentials-not-upgraded-1-testnet": "Il validatore della rete di prova di Goerli deve essere aggiornato.", + "comp-withdrawal-credentials-not-upgraded-2": "Le istruzioni su come aggiornarlo sono attualmente disponibili sul Launchpad di Staking", + "comp-withdrawal-credentials-verify-mainnet": "Verifica sulla Rete Principale", + "comp-withdrawal-credentials-verify-goerli": "Verifica su Goerli", + "page-staking-withdrawals-when": "Spedita!", "page-staking-image-alt": "Immagine della mascotte Rhino per il launchpad di staking.", "page-staking-benefits-1-title": "Ottieni ricompense", "page-staking-benefits-1-description": "Le ricompense sono date per azioni che aiutano la rete a raggiungere il consenso. Otterrai ricompense per l'esecuzione di software che raggruppano propriamente le transazioni in nuovi blocchi e che verificano il lavoro di altri validatori, perché è questo quello che mantiene l'esecuzione della catena in sicurezza.", "page-staking-benefits-2-title": "Migliore sicurezza", "page-staking-benefits-2-description": "La rete diventa più forte contro gli attacchi allo staking di più ETH, poiché poi richiede altri ETH per controllare una maggioranza della rete. Per diventare una minaccia, dovresti detenere la maggioranza dei validatori, il che significa che dovresti controllare la maggioranza degli ETH nel sistema, e sono molti!", "page-staking-benefits-3-title": "Più sostenibile", - "page-staking-benefits-3-description": "Gli staker non necessitano di computer ad alta potenza per partecipare al sistema di proof-of-stake, basta un computer fisso o uno smartphone. Questo renderà Ethereum migliore per l'ambiente.", + "page-staking-benefits-3-description": "Gli staker non devono eseguire calcoli di proof-of-work ad alto consumo energetico per partecipare alla protezione della rete, il che significa che i nodi di staking possono essere eseguiti su hardware relativamente modesti consumando pochissima energia.", "page-staking-benefits-3-link": "Di più sul consumo energetico di Ethereum", "page-staking-description": "Lo staking è l'atto di depositare 32 ETH per attivare il software del validatore. In qualità di validatore, sarai responsabile dell'archiviazione dei dati, dell'elaborazione delle transazioni e dell'aggiunta di nuovi blocchi alla blockchain. Questo proteggerà Ethereum per tutti e ti farà guadagnare nuovi ETH nel processo.", "page-staking-hero-title": "Come fare staking con i tuoi ETH", @@ -21,6 +40,7 @@ "page-staking-learn-more-saas": "Scopri di più sullo staking come un servizio", "page-staking-dropdown-pools": "Staking in pool", "page-staking-dropdown-withdrawals": "Informazioni sui prelievi", + "page-staking-dropdown-dvt": "Tecnologia del validatore distribuita", "page-staking-more-on-pools": "Di più sullo staking in pool", "page-staking-learn-more-pools": "Scopri di più sullo staking in pool", "page-staking-section-what-title": "Cos'è lo staking?", @@ -130,6 +150,9 @@ "page-staking-stats-box-metric-1": "ETH in staking totali", "page-staking-stats-box-metric-2": "Validatori totali", "page-staking-stats-box-metric-3": "APR corrente", + "page-staking-stats-box-metric-1-tooltip": "Somma di ETH in staking sulla Beacon Chain, esclusi i saldi superiori a 32 ETH", + "page-staking-stats-box-metric-2-tooltip": "Numero di conti dei validatori attualmente attivati sulla Beacon Chain", + "page-staking-stats-box-metric-3-tooltip": "Rendimento finanziario annualizzato medio per validatore nelle ultime 24 ore", "page-staking-section-comparison-subtitle": "Non esiste una soluzione univoca per lo staking e ognuna è unica. Qui confronteremo alcuni dei rischi, delle ricompense e dei requisiti dei diversi metodi in cui puoi fare staking.", "page-staking-section-comparison-rewards-title": "Ricompense", "page-staking-section-comparison-solo-rewards-li1": "Ricompense massime: ricevi ricompense complete direttamente dal protocollo", @@ -167,10 +190,10 @@ "page-staking-faq-4-question": "Lo staking è già attivo?", "page-staking-faq-4-answer-p1": "Sì. Lo staking è attivo dall'1 dicembre 2020", "page-staking-faq-4-answer-p2": "Ciò significa che lo staking è correntemente operativo: gli utenti possono depositare i propri ETH, operare un client validatore e iniziare a guadagnare ricompense.", - "page-staking-faq-4-answer-p3": "La Fusione è avvenuta il 15 settembre 2022 e, da allora, Ethereum è stato pienamente protetto dagli ETH in staking.", + "page-staking-faq-4-answer-p3": "L'aggiornamento di Shanghai/Capella è stato completato il 12 aprile 2023, consentendo i prelievi di staking e chiudendo il ciclo sulla liquidità di staking.", "page-staking-faq-5-question": "Quando potrò prelevare i miei ETH in staking?", - "page-staking-faq-5-answer-p1": "La funzionalità di prelievo dovrebbe essere inclusa nel prossimo aggiornamento della rete, denominato Shanghai. Questo aggiornamento della rete è stimato per la prima metà del 2023, con riserva di modifiche fino al completamento. Dopo l'aggiornamento di Shanghai, gli staker potranno prelevare le proprie ricompense e/o deposito principale dal saldo del proprio validatore, se lo desidereranno.", - "page-staking-faq-5-answer-p2": "Nel frattempo, gli staker guadagneranno comunque le ricompense, nella forma di commissioni e MEV alla proposta di blocchi, che sono rese disponibili immediatamente, tramite l'indirizzo del destinatario della commissione impostato.", + "page-staking-faq-5-answer-p1": "Subito! Gli staker sono liberi di prelevare le proprie ricompense e/o i propri depositi principali dal proprio saldo del validatore se lo desiderano.", + "page-staking-faq-5-answer-p2": "Gli staker guadagneranno ricompense anche sotto forma di commissioni e MEV quando propongono blocchi; queste sono rese disponibili immediatamente tramite l’indirizzo del destinatario della commissione impostato.", "page-staking-faq-5-answer-link": "Di più sui prelievi di staking", "page-staking-further-reading-1-link": "Perché il Proof of Stake (Nov 2020)", "page-staking-further-reading-author-vitalik-buterin": "Vitalik Buterin", @@ -196,5 +219,6 @@ "page-staking-meta-title": "Staking su Ethereum", "page-staking-withdrawals-important-notices": "Avvisi importanti", "page-staking-withdrawals-important-notices-desc": "I prelievi non sono ancora disponibili. Per ulteriori informazioni, si prega di leggere le FAQ sulla fusione e post-fusione di Eth2.", - "page-upgrades-merge-btn": "Maggiori informazioni sulla fusione" + "page-upgrades-merge-btn": "Maggiori informazioni sulla fusione", + "subscribe-to-ef-blog": "Iscriviti al Blog della EF per ricevere notifiche email per gli annunci più recenti sul protocollo." } diff --git a/src/intl/it/page-upgrades-get-involved-bug-bounty.json b/src/intl/it/page-upgrades-get-involved-bug-bounty.json new file mode 100644 index 00000000000..8abaed05d24 --- /dev/null +++ b/src/intl/it/page-upgrades-get-involved-bug-bounty.json @@ -0,0 +1,47 @@ +{ + "page-upgrades-get-involved-btn-1": "Vedi client", + "page-upgrades-get-involved-btn-2": "Maggiori informazioni sullo staking", + "page-upgrades-get-involved-btn-3": "Trova bug", + "page-upgrades-get-involved-bug": "Un bug potrebbe essere:", + "page-upgrades-get-involved-bug-hunting": "Alla ricerca di bug", + "page-upgrades-get-involved-bug-hunting-desc": "Trova e segnala i bug nelle specifiche dell'aggiornamento del livello del consenso o dei client stessi. Puoi guadagnare fino a 50.000 USD e raggiungere un posto sulla classifica.", + "page-upgrades-get-involved-bug-li": "problemi di non conformità della specifica", + "page-upgrades-get-involved-bug-li-2": "bug che infrangono la finalità", + "page-upgrades-get-involved-bug-li-3": "vettori denial of service (DOS)", + "page-upgrades-get-involved-bug-li-4": "e molto altro...", + "page-upgrades-get-involved-desc-1": "Eseguire un client significa essere un partecipante attivo di Ethereum. Il client aiuterà a tenere traccia delle transazioni e controllare nuovi blocchi.", + "page-upgrades-get-involved-desc-2": "Se hai ETH, puoi fare staking per diventare un validatore e contribuire a proteggere la rete. Come validatore puoi ottenere ricompense in ETH.", + "page-upgrades-get-involved-desc-3": "Unisciti agli sforzi di test della community! Aiuta a provare gli aggiornamenti di Ethereum prima che siano rilasciati, trova bug e guadagna ricompense.", + "page-upgrades-get-involved-ethresearch-1": "Sharding", + "page-upgrades-get-involved-ethresearch-2": "La fusione", + "page-upgrades-get-involved-ethresearch-3": "Esecuzione frammentata", + "page-upgrades-get-involved-ethresearch-4": "Tutti gli argomenti di ricerca", + "page-upgrades-get-involved-how": "Come vuoi partecipare?", + "page-upgrades-get-involved-how-desc": "La community di Ethereum ne beneficerà se un maggior numero di persone esegue i client, fa staking e cerca bug.", + "page-upgrades-get-involved-join": "Unisciti alla ricerca", + "page-upgrades-get-involved-join-desc": "Come gran parte delle cose su Ethereum, molta ricerca è pubblica. Ciò significa che puoi prendere parte alle discussioni o semplicemente leggere ciò che i ricercatori di Ethereum hanno da dire. ethresear.ch copre numerosi argomenti, inclusi gli aggiornamenti del consenso, i rollup e molto altro.", + "page-upgrades-get-involved-meta-description": "Come partecipare agli aggiornamenti di Ethereum: eseguire nodi, stake, cacciare bug e altro.", + "page-upgrades-get-involved-run-clients": "Esegui una coppia di client", + "page-upgrades-get-involved-run-clients-desc": "Un 'client' è il software che esegue la blockchain e, nel caso di Ethereum, un nodo completo necessita di operare una coppia di client: uno del livello d'esecuzione e uno del livello di consenso. Un nodo completo può verificare le transazioni e, se ha anche ETH in staking, può creare nuovi blocchi. Ogni client ha le proprie funzionalità ma esegue, nel complesso, la stessa funzione, quindi ti incoraggiamo a scegliere un client di minoranza quando possibile, per mantenere diverso e sicuro il pool del client.", + "page-upgrades-get-involved-run-clients-desc-link": "Maggiori informazioni sulla diversità del client.", + "page-upgrades-get-involved-run-clients-execution": "Client del livello d'esecuzione", + "page-upgrades-get-involved-run-clients-execution-desc": "Questi client erano precedentemente definiti client di 'Eth1', ma questo termine è stato deprecato in favore di client del 'livello d'esecuzione'.", + "page-upgrades-get-involved-run-clients-consensus": "Client del livello di consenso", + "page-upgrades-get-involved-run-clients-consensus-desc": "Questi client erano precedentemente definiti client di 'Eth2', ma questo termine è stato deprecato in favore di client del 'livello del consenso'.", + "page-upgrades-get-involved-stake": "Fai staking con i tuoi ETH", + "page-upgrades-get-involved-stake-desc": "Ora puoi fare staking con i tuoi ETH per contribuire a proteggere la beacon chain.", + "page-upgrades-get-involved-stake-eth": "Fai staking con gli ETH", + "page-upgrades-get-involved-subtitle": "Ecco tutti i modi in cui puoi aiutare con Ethereum e gli sforzi futuri correlati agli aggiornamenti.", + "page-upgrades-get-involved-title-1": "Esegui un client", + "page-upgrades-get-involved-title-2": "Fai staking con i tuoi ETH", + "page-upgrades-get-involved-title-3": "Trova bug", + "page-upgrades-get-involved-written-c-sharp": "Scritto in C#", + "page-upgrades-get-involved-written-go": "Scritto in Go", + "page-upgrades-get-involved-written-java": "Scritto in Java", + "page-upgrades-get-involved-written-javascript": "Scritto in JavaScript", + "page-upgrades-get-involved-written-nim": "Scritto in Nim", + "page-upgrades-get-involved-written-rust": "Scritto in Rust", + "page-upgrades-get-involved": "Partecipa all'aggiornamento di Ethereum", + "page-upgrades-get-involved-2": "Partecipa", + "page-upgrades-bug-bounty-leaderboard-points": "punti" +} diff --git a/src/intl/it/page-upgrades-index.json b/src/intl/it/page-upgrades-index.json index 3fe6af9b44c..adc9f241f08 100644 --- a/src/intl/it/page-upgrades-index.json +++ b/src/intl/it/page-upgrades-index.json @@ -150,7 +150,7 @@ "page-upgrades-secure": "Più sicura", "page-upgrades-secure-desc": "Ethereum deve essere più sicura; man mano che l'adozione di Ethereum aumenta, il protocollo deve essere più protetto da tutte le forme di attacco.", "page-upgrades-shard-date": "Lo sharding seguirà La Fusione in più fasi, tra il 2023 e il 2024.", - "page-upgrades-shard-desc": "Lo sharding espanderà la capacità di Ethereum di memorizzare dati e opererà in armonia con i L2 per scalare il volume e ridurre le commissioni della rete. Lo sharding sarà lanciato in diverse fasi.", + "page-upgrades-shard-desc": "Danksharding espanderà la capacità di Ethereum di immagazzinare dati e lavorare in armonia con L2 per scalare la portata e ridurre i costi di rete. Danksharding verrà implementato in più fasi, a partire da ProtoDanksharding.", "page-upgrades-shard-estimate": "Stima: 2023-2024", "page-upgrades-shard-lower": "Maggiori informazioni sullo sharding", "page-upgrades-shard-title": "Sharding", @@ -170,8 +170,8 @@ "page-upgrades-upgrades-docking": "La fusione", "page-upgrades-energy-consumption": "Maggiori informazioni sul consumo energetico di Ethereum", "page-upgrades-upgrading": "Aggiornare Ethereum a nuovi livelli", - "page-roadmap-vision": "La vision", - "page-roadmap-vision-btn": "Di più sulla visione di Ethereum", + "page-roadmap-vision": "La visione", + "page-roadmap-vision-btn": "Maggiori informazioni sulla visione di Ethereum", "page-roadmap-vision-desc": "Per portare Ethereum nella rete principale e servire tutta l'umanità, dobbiamo rendere Ethereum più scalabile, sicura e sostenibile.", "page-upgrades-what-happened-to-eth2-title": "Che è successo a 'Eth2?'", "page-upgrades-what-happened-to-eth2-1": "Il termine 'Eth2' era comunemente usato prima della Fusione, ma è in fase di graduale eliminazione in favore di una terminologia più precisa.", @@ -203,5 +203,5 @@ "docs-nav-proof-of-stake": "Proof of Stake", "docs-nav-proof-of-work": "Proof of Work", "page-upgrades-get-involved-ethresearch-1": "Sharding", - "page-upgrades-get-involved-ethresearch-2": "La Fusione" + "page-upgrades-get-involved-ethresearch-2": "La fusione" } diff --git a/src/intl/it/page-upgrades-vision.json b/src/intl/it/page-upgrades-vision.json new file mode 100644 index 00000000000..66f325e71bc --- /dev/null +++ b/src/intl/it/page-upgrades-vision.json @@ -0,0 +1,67 @@ +{ + "page-roadmap-vision-2014": "Leggi un post del blog del 2014 sulla proof of stake", + "page-roadmap-vision-2021": "Visualizza un post del blog del 2021 sull'evoluzione della tabella di marcia di Ethereum", + "page-roadmap-vision-2022": "Visualizza un post del blog del 2022: Guida per autostoppisti a Ethereum", + "page-roadmap-vision-2021-updates": "Visualizza un post del blog del 2021 sugli aggiornamenti del protocollo di Ethereum", + "page-roadmap-vision-desc-1": "Ethereum deve ridurre la congestione della rete e aumentare la velocità per servire meglio una base di utenti globale.", + "page-roadmap-vision-desc-2": "L'esecuzione di un nodo diventa sempre più difficile man mano che la rete cresce. E diventerà ancora più difficile con il lavoro svolto per ampliare la rete.", + "page-roadmap-vision-desc-3": "Ethereum utilizza troppa energia elettrica. La tecnologia che mantiene la rete sicura deve essere più sostenibile.", + "page-roadmap-vision-ethereum-node": "Maggiori informazioni sui nodi", + "page-roadmap-vision-future": "Un futuro digitale su scala globale", + "page-roadmap-vision-meta-desc": "Una panoramica dell'impatto che gli aggiornamenti avranno su Ethereum e le sfide che dovranno affrontare.", + "page-roadmap-vision-meta-title": "Visione di Ethereum", + "page-roadmap-vision-mining": "Maggiori informazioni sul mining", + "page-roadmap-vision-problems": "Problemi odierni", + "page-roadmap-vision-scalability": "Scalabilità", + "page-roadmap-vision-scalability-desc": "Ethereum deve essere in grado di gestire una maggiore quantità di transazioni per secondo senza aumentare la dimensione dei nodi nella rete. I nodi sono elementi essenziali della rete, archiviano ed eseguono la blockchain. Aumentare la dimensione dei nodi non è una soluzione pratica perché solo chi dispone di computer costosi e potenti potrebbe farlo.\nPer ampliarsi, Ethereum ha bisogno di gestire un numero maggiore di transazioni al secondo, abbinate a più nodi. Più nodi significa più sicurezza.", + "page-roadmap-vision-scalability-desc-3": "I rollup di livello 2 ampliano Ethereum spostando le transazioni off-chain e pubblicando esclusivamente dati di riepilogo su Ethereum. Questo raggruppamento aumenta il volume di Ethereum, riducendo drasticamente i costi per gli utenti.", + "page-roadmap-vision-scalability-desc-4": "I rollup necessitano di archiviazione a basso costo sul livello 1 per rendere le transazioni quanto più economiche possibili per gli utenti. Questa sarà fornita nella forma di blob, collegati ai blocchi di Ethereum. Infine, molti blob saranno collegati ai blocchi di Ethereum, fornendo archiviazione economica per molti rollup.", + "page-roadmap-vision-security": "Sicurezza", + "page-roadmap-vision-security-desc": "Gli aggiornamenti pianificati migliorano la sicurezza di Ethereum contro gli attacchi coordinati.", + "page-roadmap-vision-security-desc-3": "Nel proof of stake una maggiore sicurezza deriva da maggiori disincentivi cripto-economici agli attacchi. Questo perché, utilizzando il proof of stake, i validatori che proteggono la rete devono fare staking nel protocollo con importanti quantità di ETH. Se dovessero provare ad attaccare la rete, il protocollo potrebbe distruggere automaticamente i loro ETH.", + "page-roadmap-vision-security-desc-5": "Tuttavia, è anche importante che gli aggiornamenti che proteggono i validatori dagli attacchi denial-of-service, ne migliorino l'anonimato e che siano presto implementate la costruzione e la propagazione separate del blocco. Questi aggiornamenti proteggono i singoli validatori e l'intera rete dagli attacchi di vitalità e dalla censura.", + "page-roadmap-vision-security-desc-5-link": "Maggiori informazioni sul proof of stake", + "page-roadmap-vision-security-desc-10": "Staking significa anche che non è necessario investire in hardware d'élite per partecipare direttamente al consenso. Questo dovrebbe incoraggiare più utenti a diventare validatori, aumentando la decentralizzazione della rete e riducendo la superficie di attacco.", + "page-roadmap-vision-security-staking": "Fai staking con gli ETH", + "page-roadmap-vision-security-validator": "Puoi diventare validatore facendo staking con i tuoi ETH.", + "page-roadmap-vision-staking-lower": "Maggiori informazioni sullo staking", + "page-roadmap-vision-subtitle": "Far crescere Ethereum fino a che non sarà abbastanza potente per aiutare tutta l'umanità.", + "page-roadmap-vision-sustainability": "Sostenibilità", + "page-roadmap-vision-sustainability-desc-1": "Ethereum è ora una blockchain ecosostenibile. Il consumo energetico è stato ridotto di circa il 99,95% quando si è passati dal proof of work al proof of stake.", + "page-roadmap-vision-sustainability-desc-2": "Ethereum è ora protetta tramite lo staking, non dalla potenza di calcolo.", + "page-roadmap-vision-sustainability-desc-3": "Questo aumento della sostenibilità comporta anche benefici di sicurezza: l'ether in staking rende molto più costoso attaccare la catena rispetto alla modalità Proof of Work, ma rende meno costoso proteggerla poiché devono esser emessi meno nuovi ETH per pagare i validatori, rispetto ai miner.", + "page-roadmap-vision-sustainability-desc-8": "Il passaggio al Proof of Stake ha reso Ethereum più ecosostenibile e sicura. È una piattaforma a basse emissioni carboniche per creare app e organizzazioni.", + "page-roadmap-vision-sustainability-subtitle": "Ethereum è una blockchain ecosostenibile con una forte sicurezza cripto-economica.", + "page-roadmap-vision-title": "La visione di Ethereum", + "page-roadmap-vision-title-1": "Rete congestionata", + "page-roadmap-vision-title-2": "Spazio su disco", + "page-roadmap-vision-title-3": "Troppa energia", + "page-roadmap-vision-trilemma-cardtext-1": "Gli aggiornamenti di Ethereum lo renderanno scalabile, sicuro e decentralizzato. Lo staking ha abbassato la barriera della partecipazione e limitato le economie di scala, creando una rete più grande e più decentralizzata.", + "page-roadmap-vision-trilemma-cardtext-2": "Le reti blockchain sicure e decentralizzate richiedono che ogni nodo verifichi tutte le transazioni elaborate dalla catena. Questa mole di lavoro limita il numero di transazioni che possono essere effettuate in un dato momento. Decentralizzazione e sicurezza corrispondono a quello che è oggi la blockchain di Ethereum.", + "page-roadmap-vision-trilemma-cardtext-3": "Le reti decentralizzate funzionano inviando informazioni sulle transazioni attraverso i nodi: tutta la rete deve essere a conoscenza di ogni cambiamento di stato. Ampliare il numero di transazioni al secondo in una rete decentralizzata crea rischi di sicurezza perché più sono le transazioni, più aumenta il ritardo, più alta sarà la probabilità di un attacco perpetuato mentre le informazioni si spostano.", + "page-roadmap-vision-trilemma-cardtext-4": "Aumentare le dimensioni e la potenza dei nodi di Ethereum potrebbe aumentare le transazioni al secondo in modo sicuro, ma il requisito hardware limiterebbe chi potrebbe farlo e questo minaccia la decentralizzazione. Si spera che lo sharding e la proof-of-stake permetteranno a Ethereum di scalare aumentando la quantità di nodi, non la dimensione del nodo.", + "page-roadmap-vision-trilemma-h2": "La sfida dell'ampliamento decentralizzato", + "page-roadmap-vision-trilemma-modal-tip": "Tocca i cerchi qua sotto per capire meglio i problemi legati a un ampliamento decentralizzato", + "page-roadmap-vision-trilemma-p": "Un modo semplice per risolvere i problemi di Ethereum sarebbe quello di renderlo più centralizzato, ma la decentralizzazione è troppo importante. Essa dà ad Ethereum neutralità, resistenza alla censura, apertura, privacy e sicurezza dei dati quasi indistruttibile.", + "page-roadmap-vision-trilemma-p-1": "La visione di Ethereum è quella di essere più scalabile e sicura, ma anche di rimanere decentralizzata. Raggiungere queste 3 qualità è un problema noto come la trilemma della scalabilità.", + "page-roadmap-vision-trilemma-p-2": "Gli aggiornamenti di Ethereum mirano a risolvere il trilemma, ma ci sono sfide significative.", + "page-roadmap-vision-trilemma-press-button": "Scegli i pulsanti sul triangolo per capire meglio i problemi legati alla scalabilità decentralizzata.", + "page-roadmap-vision-trilemma-text-1": "Decentralizzazione", + "page-roadmap-vision-trilemma-text-2": "Sicurezza", + "page-roadmap-vision-trilemma-text-3": "Scalabilità", + "page-roadmap-vision-trilemma-title-1": "Esplora il trilemma della scalabilità", + "page-roadmap-vision-trilemma-title-2": "Aggiornamenti Ethereum e la scalabilità decentralizzata", + "page-roadmap-vision-trilemma-title-3": "Sicura e decentralizzata", + "page-roadmap-vision-trilemma-title-4": "Decentralizzata e scalabile", + "page-roadmap-vision-trilemma-title-5": "Scalabile e sicura", + "page-roadmap-vision-understanding": "Comprendere la visione di Ethereum", + "page-roadmap-vision-upgrade-needs": "La necessità degli aggiornamenti", + "page-roadmap-vision-upgrade-needs-desc": "Il protocollo Ethereum lanciato nel 2015 ha avuto un incredibile successo. La community di Ethereum però ha sempre saputo che sarebbero stati necessari alcuni aggiornamenti chiave per sbloccare il pieno potenziale di Ethereum.", + "page-roadmap-vision-upgrade-needs-desc-2": "La domanda elevata sta facendo aumentare le commissioni sulle transazioni, rendendo Ethereum costosa per l'utente medio. Lo spazio su disco necessario per eseguire un client Ethereum sta crescendo rapidamente. Inoltre, l'algoritmo di consenso Proof of Work che mantiene Ethereum sicura e decentralizzata ha un forte impatto ambientale.", + "page-roadmap-vision-upgrade-needs-desc-3": "Ethereum ha una serie di aggiornamenti che affrontano questi problemi e altri ancora. Questo set di aggiornamenti è stato originariamente chiamato 'Serenity' e 'Eth2,' e sono un'area attiva di ricerca e sviluppo dal 2014.", + "page-roadmap-vision-upgrade-needs-desc-5": "Ora che la tecnologia è pronta, questi aggiornamenti ri-progettano Ethereum per renderlo più scalabile, sicuro e sostenibile; per rendere la vita migliore per gli utenti esistenti e coinvolgerne di nuovi. Tutto preservando il valore centrale di Ethereum della decentralizzazione.", + "page-roadmap-vision-upgrade-needs-desc-6": "Questo significa che non ci sarà un interruttore per la scalabilità. I miglioramenti arriveranno incrementalmente con il tempo.", + "page-roadmap-vision-upgrade-needs-serenity": "Leggi un post del 2015 a proposito di \"Serenity\"", + "ethereum": "Ethereum", + "page-roadmap-vision-danksharding": "Di più sul Danksharding" +} diff --git a/src/intl/it/page-upgrades.json b/src/intl/it/page-upgrades.json index a9f47124ef5..21f9a8f82df 100644 --- a/src/intl/it/page-upgrades.json +++ b/src/intl/it/page-upgrades.json @@ -4,12 +4,13 @@ "page-upgrades-beacon-date": "Spedita!", "page-upgrades-merge-date": "Settembre 2022", "page-upgrades-shards-date": "~2023", + "page-upgrades-pbs": "Non imminente, previsto 2024/25", "page-upgrades-post-merge-banner-tutorial-ood": "Questo tutorial è deprecato dopo La Fusione e potrebbe non funzionare. Sei pregato di effettuare una PR se vorresti contribuire.", "page-upgrades-post-merge-banner-governance-ood": "Alcuni contenuti su questa pagina sono obsoleti dopo La Fusione. Sei pregato di effettuare una PR, se vorresti contribuire.", "page-upgrades-upgrades-guide": "Guida agli aggiornamenti di Ethereum", "page-upgrades-upgrades-docking": "La fusione", "page-upgrades-shard-title": "Sharding", - "page-upgrades-upgrades-beacon-chain": "La Cadena de Baliza", + "page-upgrades-upgrades-beacon-chain": "La beacon chain", "consensus-beaconcha-in-desc": "Piattaforma di ricerca Beacon Chain open source", "consensus-beaconscan-desc": "Piattaforma di ricerca Beacon Chain - Etherscan per il livello di consenso", "consensus-become-staker": "Diventa uno staker", @@ -17,5 +18,5 @@ "consensus-explore": "Esplora i dati", "consensus-run-beacon-chain": "Esegui un client di consenso", "consensus-run-beacon-chain-desc": "Ethereum ha bisogno del maggior numero possibile di client in esecuzione. Contribuisci con questo bene pubblico di Ethereum!", - "read-more": "Ulteriori contenuti" + "read-more": "Leggi altro" } diff --git a/src/intl/it/template-usecase.json b/src/intl/it/template-usecase.json index 48bd00c25da..06b131bf84c 100644 --- a/src/intl/it/template-usecase.json +++ b/src/intl/it/template-usecase.json @@ -5,7 +5,7 @@ "template-usecase-dropdown-social-networks": "Social network decentralizzati", "template-usecase-dropdown-identity": "Identità decentralizzata", "template-usecase-dropdown": "Casi d'uso di Ethereum", - "template-usecase-banner": "Gli utilizzi di Ethereum si sviluppano ed evolvono costantemente. Aggiungi qualsiasi informazione ritieni possa rendere il contenuto più chiaro e aggiornato.", + "template-usecase-banner": "Gli utilizzi di Ethereum si sviluppano ed evolvono costantemente. Aggiungi qualsiasi informazione pensi possa chiarire o aggiornare i contenuti.", "template-usecase-edit-link": "Modifica pagina", "template-usecase-dropdown-aria": "Menu a discesa dei casi d'uso" } From 69ce88ba7e76f354e39fb1445be0a40b58104939 Mon Sep 17 00:00:00 2001 From: Corwin Smith Date: Tue, 27 Jun 2023 11:47:14 -0600 Subject: [PATCH 176/186] Update src/data/community-events.json --- src/data/community-events.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/data/community-events.json b/src/data/community-events.json index e7354eb71e1..e9929ac2852 100644 --- a/src/data/community-events.json +++ b/src/data/community-events.json @@ -234,7 +234,7 @@ "endDate": "2023-08-13" }, { - "title": "Ethereum Community Conference", + "title": "EthCC 6", "to": "https://www.ethcc.io/", "sponsor": null, "location": "Paris, France", From 31533d74f8834c189a416b62c74566b6b8d6ada9 Mon Sep 17 00:00:00 2001 From: Joshua <62268199+minimalsm@users.noreply.github.com> Date: Tue, 27 Jun 2023 20:32:50 +0100 Subject: [PATCH 177/186] Update buckets 7, 12, 13, 22 --- src/content/translations/it/bridges/index.md | 2 + .../docs/consensus-mechanisms/index.md | 4 +- .../pos/attack-and-defense/index.md | 163 ++++++++++++++ .../attack-and-defense/reorg-schematic.png | Bin 0 -> 16441 bytes .../attestations/attestation_schematic.png | Bin 0 -> 154748 bytes .../pos/attestations/index.md | 86 +++++++ .../pos/block-proposal/index.md | 69 ++++++ .../consensus-mechanisms/pos/faqs/index.md | 172 ++++++++++++++ .../consensus-mechanisms/pos/gasper/index.md | 8 +- .../docs/consensus-mechanisms/pos/index.md | 21 +- .../consensus-mechanisms/pos/keys/index.md | 96 ++++++++ .../pos/keys/multiple-keys.png | Bin 0 -> 24249 bytes .../pos/rewards-and-penalties/index.md | 90 ++++++++ .../patricia-merkle-trie/index.md | 58 ++--- .../data-structures-and-encoding/rlp/index.md | 26 +-- .../data-structures-and-encoding/ssz/index.md | 2 +- .../web3-secret-storage-definition/index.md | 189 ++++++++++++++++ .../cons_client_net_layer.png | Bin 0 -> 15236 bytes .../developers/docs/networking-layer/index.md | 12 +- .../network-addresses/index.md | 4 +- .../nodes-and-clients/archive-nodes/index.md | 80 +++++++ .../docs/nodes-and-clients/bootnodes/index.md | 31 +++ .../client-diversity/index.md | 8 +- .../docs/nodes-and-clients/eth1eth2client.png | Bin 0 -> 73626 bytes .../docs/nodes-and-clients/index.md | 71 +++--- .../nodes-and-clients/light-clients/index.md | 61 +++++ .../node-architecture/index.md | 59 +++++ .../node-architecture-text-background.png | Bin 0 -> 107573 bytes .../nodes-as-a-service/index.md | 201 ++++++++++++----- .../docs/nodes-and-clients/nodes.png | Bin 0 -> 81943 bytes .../nodes-and-clients/run-a-node/diagram.png | Bin 0 -> 15796 bytes .../nodes-and-clients/run-a-node/index.md | 87 ++++--- .../energy_consumption_pre_post_merge.png | Bin 0 -> 114097 bytes .../it/energy-consumption/index.md | 75 ++++--- .../translations/it/governance/index.md | 18 +- src/content/translations/it/security/index.md | 30 +-- src/content/translations/it/web3/index.md | 4 +- src/content/translations/it/web3/web1.png | Bin 0 -> 180198 bytes src/content/translations/it/web3/web2.png | Bin 0 -> 174811 bytes src/content/translations/it/web3/web3.png | Bin 0 -> 188483 bytes .../it/zero-knowledge-proofs/index.md | 212 ++++++++++++++++++ 41 files changed, 1673 insertions(+), 266 deletions(-) create mode 100644 src/content/translations/it/developers/docs/consensus-mechanisms/pos/attack-and-defense/index.md create mode 100644 src/content/translations/it/developers/docs/consensus-mechanisms/pos/attack-and-defense/reorg-schematic.png create mode 100644 src/content/translations/it/developers/docs/consensus-mechanisms/pos/attestations/attestation_schematic.png create mode 100644 src/content/translations/it/developers/docs/consensus-mechanisms/pos/attestations/index.md create mode 100644 src/content/translations/it/developers/docs/consensus-mechanisms/pos/block-proposal/index.md create mode 100644 src/content/translations/it/developers/docs/consensus-mechanisms/pos/faqs/index.md create mode 100644 src/content/translations/it/developers/docs/consensus-mechanisms/pos/keys/index.md create mode 100644 src/content/translations/it/developers/docs/consensus-mechanisms/pos/keys/multiple-keys.png create mode 100644 src/content/translations/it/developers/docs/consensus-mechanisms/pos/rewards-and-penalties/index.md create mode 100644 src/content/translations/it/developers/docs/data-structures-and-encoding/web3-secret-storage-definition/index.md create mode 100644 src/content/translations/it/developers/docs/networking-layer/cons_client_net_layer.png create mode 100644 src/content/translations/it/developers/docs/nodes-and-clients/archive-nodes/index.md create mode 100644 src/content/translations/it/developers/docs/nodes-and-clients/bootnodes/index.md create mode 100644 src/content/translations/it/developers/docs/nodes-and-clients/eth1eth2client.png create mode 100644 src/content/translations/it/developers/docs/nodes-and-clients/light-clients/index.md create mode 100644 src/content/translations/it/developers/docs/nodes-and-clients/node-architecture/index.md create mode 100644 src/content/translations/it/developers/docs/nodes-and-clients/node-architecture/node-architecture-text-background.png create mode 100644 src/content/translations/it/developers/docs/nodes-and-clients/nodes.png create mode 100644 src/content/translations/it/developers/docs/nodes-and-clients/run-a-node/diagram.png create mode 100644 src/content/translations/it/energy-consumption/energy_consumption_pre_post_merge.png create mode 100644 src/content/translations/it/web3/web1.png create mode 100644 src/content/translations/it/web3/web2.png create mode 100644 src/content/translations/it/web3/web3.png create mode 100644 src/content/translations/it/zero-knowledge-proofs/index.md diff --git a/src/content/translations/it/bridges/index.md b/src/content/translations/it/bridges/index.md index 0ccfca2cf30..c012e52508d 100644 --- a/src/content/translations/it/bridges/index.md +++ b/src/content/translations/it/bridges/index.md @@ -35,6 +35,8 @@ I ponti consentono: - agli utenti di accedere a nuove piattaforme e sfruttare i benefici di catene differenti. - agli sviluppatori da ecosistemi della blockchain differenti, di collaborare e creare nuove piattaforme per gli utenti. +[Come collegare i token al livello 2](/guides/how-to-use-a-bridge/) + ## Casi d'uso dei ponti {#bridge-use-cases} diff --git a/src/content/translations/it/developers/docs/consensus-mechanisms/index.md b/src/content/translations/it/developers/docs/consensus-mechanisms/index.md index 78cf705db84..d69d912bb92 100644 --- a/src/content/translations/it/developers/docs/consensus-mechanisms/index.md +++ b/src/content/translations/it/developers/docs/consensus-mechanisms/index.md @@ -36,7 +36,7 @@ Come Bitcoin, Ethereum in precedenza utilizzava un protocollo di consenso basato #### Creazione di blocchi {#pow-block-creation} -I validatori creano i blocchi. Per ogni slot viene selezionato casualmente un validatore che funge da propositore di blocchi. Il client di consenso dei validatori richiede un pacchetto di transazioni come 'payload di esecuzione' dal client di esecuzione associato. Questo viene avvolto in dati di consenso per formare un blocco, che viene inviato ad altri nodi sulla rete Ethereum. La produzione di questo blocco è ricompensata in ETH. Nei rari casi in cui esistono diversi blocchi possibili per un singolo slot, o in cui i nodi vengono a conoscenza dei blocchi in momenti diversi, l'algoritmo di scelta della diramazione seleziona il blocco che forma la catena con il maggiore peso di attestazioni (dove il peso è il numero di validatori che attestano, scalato per il loro saldo di ETH). +I miner competono per creare nuovi blocchi, riempiti di transazioni elaborate. Il vincitore condivide il nuovo blocco con il resto della rete e guadagna ETH appena coniati. La gara è vinta dal computer che è capace di risolvere più velocemente un rompicapo matematico. Ciò produce il collegamento crittografico tra il blocco corrente e quello precedente. Risolvere questo rompicapo rappresenta il lavoro da svolgere nel modello "proof-of-work". La catena canonica è quindi determinata da una regola di scelta della biforcazione, che seleziona la serie di blocchi che ha richiesto il maggiore lavoro per essere minata. #### Sicurezza {#pow-security} @@ -50,7 +50,7 @@ Ora Ethereum utilizza un protocollo di consenso basato sul **Proof of Stake (PoS #### Creazione di blocchi {#pos-block-creation} -Il Proof of Stake è reso possibile da validatori che fanno staking con i propri ETH per prendere parte al sistema. Un validatore è scelto a caso per creare nuovi blocchi, condividerli con la rete e guadagnare ricompense. Anziché svolgere un intenso lavoro di calcolo, è sufficiente fare staking con gli ETH nella rete. Questo aspetto è ciò che incentiva un comportamento sano della rete. +I validatori creano i blocchi. Per ogni slot viene selezionato casualmente un validatore che funge da propositore di blocchi. Il client di consenso dei validatori richiede un pacchetto di transazioni come 'payload di esecuzione' dal client di esecuzione associato. Questo viene avvolto in dati di consenso per formare un blocco, che viene inviato ad altri nodi sulla rete Ethereum. La produzione di questo blocco è ricompensata in ETH. Nei rari casi in cui esistono diversi blocchi possibili per un singolo slot, o in cui i nodi vengono a conoscenza dei blocchi in momenti diversi, l'algoritmo di scelta della diramazione seleziona il blocco che forma la catena con il maggiore peso di attestazioni (dove il peso è il numero di validatori che attestano, scalato per il loro saldo di ETH). #### Sicurezza {#pos-security} diff --git a/src/content/translations/it/developers/docs/consensus-mechanisms/pos/attack-and-defense/index.md b/src/content/translations/it/developers/docs/consensus-mechanisms/pos/attack-and-defense/index.md new file mode 100644 index 00000000000..1e1fa8726a0 --- /dev/null +++ b/src/content/translations/it/developers/docs/consensus-mechanisms/pos/attack-and-defense/index.md @@ -0,0 +1,163 @@ +--- +title: Attacco e difesa del proof-of-stake di Ethereum +description: Scopri di più sui vettori di attacco noti sul proof-of-stake di Ethereum e come sono difesi. +lang: it +--- + +Ladri e sabotatori sono costantemente alla ricerca di opportunità per attaccare i software dei client di Ethereum. Questa pagina delinea i vettori di attacco noti sul livello di consenso di Ethereum, definendo come possono essere difesi. Le informazioni su questa pagina sono adattate da una [versione più lunga](https://mirror.xyz/jmcook.eth/YqHargbVWVNRQqQpVpzrqEQ8IqwNUJDIpwRP7SS5FXs). + +## Prerequisiti {#prerequisites} + +È necessario avere delle conoscenze di base del [proof-of-stake](/developers/docs/consensus-mechanisms/pos/). Inoltre, sarebbe utile avere una comprensione di base del [livello d'incentivazione](/developers/docs/consensus-mechanisms/pos/rewards-and-penalties) di Ethereum e dell'algoritmo di scelta della diramazione, [LMD-GHOST](/developers/docs/consensus-mechanisms/pos/gasper). + +## Cosa vogliono gli utenti malevoli? {#what-do-attackers-want} + +Spesso si crede erroneamente che un utente malevolo di successo possa generare altro ether, o drenarlo da conti arbitrari. Nessuna delle due cose è possibile, poiché tutte le transazioni sono eseguite da tutti i client di esecuzione sulla rete. Devono soddisfare delle condizioni di validità di base (es. le transazioni sono firmate dalla chiave privata del mittente, il mittente ha un saldo sufficiente, ecc.), altrimenti sono semplicemente annullate. Esistono tre classi di risultati che un utente malevolo potrebbe realisticamente ottenere: riorganizzazioni, doppia finalità o ritardo della finalità. + +Una **"riorganizzazione"** è un rimescolamento dei blocchi in un nuovo ordine, magari con l'aggiunta o la sottrazione di blocchi nella catena canonica. Una riorganizzazione malevola potrebbe assicurare l'inclusione o esclusione di blocchi specifici, consentendo la doppia spesa o l'estrazione di valore da transazioni di front-running e back-running (MEV). Le riorganizzazioni, inoltre, potrebbero essere utilizzate per impedire l'inclusione di certe transazioni nella catena canonica: una forma di censura. La forma più estrema di riorganizzazione è detta "inversione di finalità", che rimuove o sostituisce dei blocchi precedentemente finalizzati. Questa è possibile soltanto se più di ⅓ dell'ether in staking totale è distrutto dall'utente malevolo; questa garanzia è nota come "finalità economica" – maggiori informazioni al riguardo sono riportate in seguito. + +La **doppia finalità** è l'improbabile ma grave condizione in cui due diramazioni riescono a finalizzarsi simultaneamente, creando uno scisma permanente nella catena. Ciò è teoricamente possibile per un utente malevolo disposto a rischiare il 34% dell'ether in staking totale. La community sarebbe obbligata a coordinarsi all'esterno della catena e accordarsi su quale catena seguire, il che richiederebbe forza al livello sociale. + +Un attacco di **ritardo di finalità** impedisce alla rete di raggiungere le condizioni necessarie per finalizzare le sezioni della catena. Senza finalità, è difficile fidarsi delle applicazioni finanziarie basate su Ethereum. L'obiettivo di un attacco di ritardo di finalità è, probabilmente, semplicemente quello di interrompere Ethereum piuttosto che di trarne direttamente profitto, a meno che l'utente malevolo non abbia qualche posizione breve strategica. + +Un attacco al livello sociale potrebbe mirare a minare la fiducia pubblica in Ethereum, svalutare l'ether, ridurne l'adozione o indebolire la community di Ethereum per complicare la coordinazione fuori banda. + +Avendo stabilito perché un avversario potrebbe attaccare Ethereum, le seguenti sezioni esaminano _come_ potrebbe farlo. + +## Metodi di attacco {#methods-of-attack} + +### Attacchi al livello 0 {#layer-0} + +Prima di tutto, gli individui che non partecipano attivamente a Ethereum (eseguendo un software del client), possono attaccarlo prendendo di mira il livello sociale (Livello 0). Il Livello 0 è la base su cui è costruito Ethereum e, come tale, rappresenta una potenziale superficie per gli attacchi, con conseguenze che si propagano sul resto dello stack. Alcuni esempi potrebbero includere: + +- Una campagna di disinformazione potrebbe erodere la fiducia della community nella tabella di marcia di Ethereum, nei team di sviluppatori, nelle app, ecc. Questo potrebbe quindi ridurre il numero di persone desiderose di partecipare alla protezione della rete, penalizzando sia la decentralizzazione che la sicurezza cripto-economica. +- Attacchi mirati e/o intimidazioni dirette alla community degli sviluppatori. Questo potrebbe indurre all'uscita volontaria degli sviluppatori e rallentare il progresso di Ethereum. + +- Anche una regolamentazione troppo zelante potrebbe essere considerata un attacco al Livello 0, poiché potrebbe disincentivare rapidamente la partecipazione e l'adozione. +- L'infiltrazione di utenti esperti ma malevoli nella community di sviluppatori il cui obiettivo è rallentare il progresso con discussioni futili, ritardare le decisioni fondamentali, creare spam, ecc. +- Tangenti agli attori principali nell'ecosistema di Ethereum per influenzare il processo decisionale. + +Ciò che rende particolarmente pericolosi questi attacchi è che in molti casi è necessario disporre di pochissimo capitale o conoscenze tecniche. Un attacco al Livello 0 potrebbe essere un moltiplicatore di un attacco cripto-economico. Ad esempio, se la censura o l'inversione della finalità fossero ottenute da uno stakeholder attivo di maggioranza, minare il livello sociale potrebbe complicare la coordinazione di una risposta fuori banda della community. + +Difendersi dagli attacchi di Livello 0 probabilmente non è semplice, ma possono essere stabiliti dei principi fondamentali. Uno di questi è mantenere un rapporto complessivamente elevato tra segnale e rumore per le informazioni pubbliche su Ethereum, create e diffuse da membri onesti della community tramite blog, server Discord, specifiche annotate, libri, podcast e YouTube. Qui su ethereum.org cerchiamo di mantenere informazioni accurate e di tradurle in quante più lingue possibili. Inondare uno spazio di informazioni di alta qualità e meme è una difesa efficiente contro la disinformazione. + +Un'altra fortificazione importante contro gli attacchi al livello sociale è una chiara dichiarazione di missione e un chiaro protocollo di governance. Ethereum si è posizionato come il campione di decentralizzazione e sicurezza tra i livelli 1 dei contratti intelligenti, dando anche un elevato valore a scalabilità e sostenibilità. A prescindere dall'insorgere di divergenze nella community di Ethereum, questi principi essenziali sono minimamente compromessi. Valutare una narrativa basata su tali principi essenziali ed esaminarli tramite tranche successive di revisioni nel processo di EIP (proposta di miglioramento di Ethereum) potrebbe aiutare la community a distinguere gli utenti buoni da quelli "cattivi" e a limitare l'ambito di influenza degli utenti malevoli nella direzione futura di Ethereum. + +Infine, è fondamentale che la community di Ethereum resti aperta e accogliente per tutti i partecipanti. Una community con guardiani ed esclusività è una community specialmente vulnerabile agli attacchi sociali, poiché è facile costruire narrative "noi e loro". Il tribalismo e il massimalismo tossico feriscono la community ed erodono la sicurezza del Livello 0. Gli utenti di Ethereum con un interesse acquisito nella sicurezza della rete dovrebbero vedere la propria condotta online e nel mondo reale come un contributo diretto alla sicurezza del Livello 0 di Ethereum. + +### Attaccare il protocollo {#attacking-the-protocol} + +Chiunque può eseguire un software del client di Ethereum. Per aggiungere un validatore a un client, un utente deve mettere 32 ether in staking nel contratto di deposito. Un validatore consente a un utente di partecipare attivamente alla sicurezza della rete di Ethereum proponendo e attestando nuovi blocchi. Il validatore ora ha una voce che può usare per influenzare i contenuti futuri della blockchain; può farlo onestamente, accrescendo i propri ether tramite le ricompense, o può provare a manipolare il processo a proprio vantaggio, rischiando il proprio stake. Un metodo per generare un attacco è accumulare una quota maggiore dello stake totale e utilizzarla per superare i voti dei validatori onesti. Maggiore è la quota dello stake controllata dall'utente malevolo, maggiore è il suo potere di voto, specialmente in determinati traguardi economici che esploreremo in seguito. Tuttavia, gran parte degli utenti malevoli non riuscirà ad accumulare abbastanza ether per attaccare in questo modo, quindi dovrà invece utilizzare delle tecniche per manipolare la maggioranza onesta perché agisca in un certo modo. + +Fondamentalmente, tutti gli attacchi con pochi ether in staking sono lievi variazioni di due tipi di comportamenti scorretti dei validatori: ipoattività (mancata attivazione/proposta o farlo in ritardo) o iperattività (proporre/attestare troppe volte in uno slot). Nelle loro forme più basilari, queste azioni sono gestite facilmente dall'algoritmo di scelta della diramazione e dal livello d'incentivazione, ma esistono metodi più intelligenti per imbrogliare il sistema a vantaggio dell'utente malevolo. + +### Attacchi con piccoli importi di ETH {#attacks-by-small-stakeholders} + +#### riorganizzazioni {#reorgs} + +Svariati documenti hanno spiegato gli attacchi a Ethereum che ottengono riorganizzazioni o ritardi di finalità con soltanto una piccola quota dell'ether in staking totale. Questi, generalmente, si affidano al fatto che l'utente malevolo trattenga alcune informazioni da altri validatori per poi rilasciarle in modo sfumato e/o in un momento opportuno. Solitamente mirano a spostare alcuni blocchi onesti dalla catena canonica. [Neuder et al 2020](https://arxiv.org/pdf/2102.02247.pdf), hanno mostrato come un validatore malevolo possa creare e attestare un blocco (`B`) per uno slot specifico `n+1` ma evitare di propagarlo ad altri nodi sulla rete. Invece, si attiene a quel blocco attestato fino allo slot successivo `n+2`. Un validatore onesto propone un blocco (`C`) per lo slot `n+2`. Quasi simultaneamente, l'utente malevolo può rilasciare il proprio blocco trattenuto (`B`) e le attestazioni trattenute per esso, oltre ad attestare `B` come testa della catena con i propri voti per lo slot `n+2`, negando di fatto l'esistenza del blocco onesto `C`. Quando il blocco onesto `D` viene rilasciato, l'algoritmo di scelta della diramazione vede la costruzione di `D` in cima a `B` come più pesante della costruzione di `D` in cima a `C`. L'utente malevolo, dunque, è riuscito a rimuovere il blocco onesto `C` nello slot `n+2` dalla catena canonica utilizzando una riorganizzazione a priori di 1 blocco. [Un utente malevolo con il 34%](https://www.youtube.com/watch?v=6vzXwwk12ZE) dello stake ha ottime probabilità di riuscire nel suo attacco, come spiegato [in questa nota](https://notes.ethereum.org/plgVdz-ORe-fGjK06BZ_3A#Fork-choice-by-block-slot-pair). In teoria, però, questo attacco potrebbe essere tentato con stake inferiori. [Neuder et al 2020](https://arxiv.org/pdf/2102.02247.pdf) hanno descritto che questo attacco funziona con uno stake del 30%, ma è stato in seguito dimostrato come fattibile con il [2% dello stake totale](https://arxiv.org/pdf/2009.04987.pdf) e poi, ancora, per un [singolo validatore](https://arxiv.org/abs/2110.10086#) che utilizza le tecniche di bilanciamento che esamineremo nella prossima sezione. + +![riorganizzazione a priori](reorg-schematic.png) + +Un diagramma concettuale dell'attacco di riorganizzazione di un blocco descritto sopra (adattato da https://notes.ethereum.org/plgVdz-ORe-fGjK06BZ_3A#Fork-choice-by-block-slot-pair) + +Un attacco più sofisticato può dividere l'insieme di validatori onesti in gruppi discreti aventi visioni diverse della testa della catena. Ciò è noto come **attacco di bilanciamento**. L'utente malevolo attende la propria possibilità di proporre un blocco e, quando arriva, tergiversa e ne propone due. Invia un blocco a metà dell'insieme dei validatori onesti e l'altro blocco all'altra metà. L'equivoco sarebbe rilevato dall'algoritmo di scelta della diramazione e il propositore di blocchi riceverebbe un taglio e sarebbe espulso dalla rete, ma i due blocchi continuerebbero a esistere e avrebbe circa metà dell'insieme dei validatori ad attestarlo per ogni diramazione. Nel mentre, i validatori malevoli rimanenti trattengono le proprie attestazioni. Quindi, rilasciando selettivamente le attestazioni a favore dell'una o dell'altra diramazione al numero sufficiente di validatori, proprio come eseguito dall'algoritmo di scelta della diramazione, portano il peso accumulato delle attestazioni a favore di una o dell'altra diramazione. Questo può continuare per sempre, con i validatori malevoli che mantengono una divisione equa dei validatori tra le due diramazioni. Poiché nessuna delle due diramazioni può attrarre una supermaggioranza dei 2/3, la Beacon Chain non si finalizzerebbe. + +Gli **attacchi di rimbalzo** sono simili. Anche in questo caso i voti sono trattenuti dai validatori malevoli. Invece di rilasciarli per mantenere una divisione equa tra le due diramazioni, utilizzano i propri voti nei momenti opportuni per giustificare punti di controllo che si alternano tra la diramazione A e la diramazione B. Questo tira e molla di giustificazioni tra le due diramazioni impedisce la presenza di coppie di punti di controllo di origine e di destinazione giustificati finalizzabili su una delle due catene, interrompendo la finalità. + + + +Sia gli attacchi di rimbalzo che quelli di bilanciamento si basano sul fatto che l'utente malevolo abbia un controllo molto preciso sulle tempistiche dei messaggi attraverso la rete, il che è improbabile. Tuttavia, le difese sono integrate nel protocollo sotto forma di ponderazione aggiuntiva data ai messaggi immediati rispetto a quelli lenti. Ciò è noto come [incremento del peso del propositore](https://github.com/ethereum/consensus-specs/pull/2730). Per difendersi dagli attacchi di rimbalzo, l'algoritmo di scelta della diramazione è stato aggiornato così che l'ultimo punto di controllo giustificato possa passare a quello di una catena alternativa soltanto durante il [primo 1/3 degli slot in ogni epoca](https://ethresear.ch/t/prevention-of-bouncing-attack-on-ffg/6114). Questa condizione impedisce all'utente malevolo di risparmiare voti da distribuire in seguito: l'algoritmo di scelta della diramazione, semplicemente, resta leale al punto di controllo che ha scelto nel primo 1/3 dell'epoca in cui avrebbero votato i validatori più onesti. + +Combinate, queste misure creano uno scenario in cui un propositore di blocchi onesto emette il proprio blocco molto rapidamente dopo l'inizio dello slot, poi c'è un periodo di circa 1/3 di slot (4 secondi) in cui quel nuovo blocco potrebbe causare il passaggio dell'algoritmo di scelta della diramazione a un'altra catena. Dopo quella stessa scadenza, le attestazioni che arrivano dai validatori lenti sono deponderate rispetto a quelle arrivate prima. Ciò favorisce fortemente i propositori e validatori rapidi nel determinare la testa della catena, riducendo sostanzialmente la probabilità di riuscita di un attacco di bilanciamento o di rimbalzo. + +Vale la pena notare che il solo potenziamento del propositore difende solo dalle "riorganizzazioni convenienti", cioè quelle tentate da un utente malevolo con uno stake ridotto. Difatti, lo stesso potenziamento del propositore è raggirabile dai detentori di stake maggiori. Gli autori di [questo post](https://ethresear.ch/t/change-fork-choice-rule-to-mitigate-balancing-and-reorging-attacks/11127) descrivono come un utente malevolo con il 7% dello stake possa distribuire i propri voti strategicamente per indurre i validatori onesti a costruire sulla sua diramazione, riorganizzando un blocco onesto. Questo attacco è stato concepito supponendo condizioni di latenza ideali, che sono molto improbabili. Le probabilità sono ancora fortemente a sfavore dell'utente malevolo, e lo stake maggiore comporta anche un maggiore capitale a rischio e un disincentivo economico persino più forte. + +È stato proposto anche un [attacco di bilanciamento specificamente mirato alla regola LMD](https://ethresear.ch/t/balancing-attack-lmd-edition/11853), suggerito come fattibile nonostante il potenziamento del propositore. Un utente malevolo configura due catene in competizione, equivocando la proposta di blocchi e propagando ogni blocco a circa metà della rete, configurando un saldo approssimativo tra le due diramazioni. Quindi, i validatori complici equivocano i propri voti, fissando tempistiche tali che metà della rete riceva prima i loro voti per la diramazione `A` e l'altra metà riceva prima i loro voti per la diramazione `B`. Poiché la regola LMD scarta la seconda attestazione e mantiene soltanto la prima per ogni validatore, metà della rete visualizza i voti per `A` e nessun voto per `B`, l'altra metà vede i voti per `B` e nessun voto per `A`. Gli autori descrivono la regola LMD come dare all'avversario "notevole potere" per effettuare un attacco di bilanciamento. + +Questo vettore di attacco LMD è stato chiuso [aggiornando l'algoritmo di scelta della diramazione](https://github.com/ethereum/consensus-specs/pull/2845) in modo che scarti del tutto i validatori equivoci dalla considerazione della scelta della diramazione. L'algoritmo di scelta della diramazione, inoltre, ignorerà l'influenza futura dei validatori equivoci. Ciò impedisce l'attacco di bilanciamento delineato sopra, mantenendo la resilienza contro attacchi valanga. + +Un'altra classe di attacchi, detta [**attacchi valanga**](https://ethresear.ch/t/avalanche-attack-on-proof-of-stake-ghost/11854/3), è stata descritta in un [documento di marzo 2022](https://arxiv.org/pdf/2203.01315.pdf). Per causarlo, l'utente malevolo deve controllare diversi propositori di blocchi consecutivi. In ognuno degli slot di proposta del blocco, l'utente malevolo trattiene il proprio blocco, raccogliendoli finché la catena onesta non raggiunge un peso dell'albero secondario equivalente ai blocchi trattenuti. Poi, i blocchi trattenuti vengono rilasciati così che equivochino al massimo. Gli autori suggeriscono che il potenziamento del propositore – la prima difesa contro gli attacchi di bilanciamento e di rimbalzo – non protegge da alcune varianti dell'attacco valanga. Tuttavia, gli autori hanno anche dimostrato l'attacco soltanto su una versione altamente idealizzata dell'algoritmo di scelta della diramazione (hanno utilizzato GHOST senza LMD). + +L'attacco valanga è mitigato dalla porzione LMD dell'algoritmo di scelta della diramazione LMD-GHOST. LMD sta per "guidato dall'ultimo messaggio" e si riferisce a una tabella tenuta da ogni validatore, contenente l'ultimo messaggio ricevuto dagli altri validatori. Quel campo viene aggiornato soltanto se il nuovo messaggio proviene da uno slot successivo a quello già nella tabella per uno specifico validatore. In pratica, ciò significa che in ogni slot, il primo messaggio ricevuto è quello che ha accettato e qualsiasi altro messaggio è un equivoco da ignorare. In altre parole, i client di consenso non contano gli equivoci – utilizzano il primo messaggio in arrivo da ogni validatore e gli equivoci sono semplicemente scartati, impedendo gli attacchi valanga. + +Esistono diversi altri potenziali aggiornamenti futuri alla regola di scelta della diramazione che potrebbero sommarsi alla sicurezza fornita dal potenziamento del propositore. Uno è [view-merge](https://ethresear.ch/t/view-merge-as-a-replacement-for-proposer-boost/13739), dove gli attestatori congelano la propria vista della scelta della diramazione `n` secondi prima dell'inizio di uno slot e il propositore di blocchi quindi aiuta a sincronizzare la vista della catena nella rete. Un altro aggiornamento potenziale è la [finalità del singolo slot](https://notes.ethereum.org/@vbuterin/single_slot_finality), che protegge dagli attacchi basati sulla tempistica del messaggio finalizzando la catena dopo un solo slot. + +#### Ritardo della finalità {#finality-delay} + +[Lo stesso documento](https://econcs.pku.edu.cn/wine2020/wine2020/Workshop/GTiB20_paper_8.pdf) che prima descriveva l'attacco di riorganizzazione del blocco singolo a basso costo, descriveva anche un attacco di ritardo di finalità (anche noto come "perdita di vitalità"), che si basa sul fatto che 'utente malevolo proponga il blocco per un blocco di confine dell'epoca. Questo è fondamentale perché questi blocchi di confine dell'epoca diventano i punti di controllo che Casper FFG utilizza per finalizzare porzioni della catena. L'utente malevolo, semplicemente, trattiene il blocco finché abbastanza validatori onesti non utilizzano i propri voti FFC a favore del precedente blocco di confine dell'epoca come destinazione di finalizzazione corrente. Quindi, rilasciano il blocco trattenuto. Attestano al proprio blocco, così come i validatori onesti rimanenti, creando diramazioni con punti di controllo di destinazione differenti. Se hanno tempistiche corrette, impediranno la finalità perché non ci sarà una supermaggioranza dei 2/3 che attesti a entrambe le diramazioni. Minore è lo stake, più precisa deve essere la tempistica, poiché l'utente malevolo controlla meno attestazioni direttamente, e minori sono le probabilità che l'utente malevolo controlli il validatore che propone un dato di confine dell'epoca. + +#### Attacchi a lungo raggio {#long-range-attacks} + +Esiste inoltre una classe di attacco specifica delle blockchain di proof-of-stake che comporta che un validatore che ha partecipato al blocco di genesi mantenga una diramazione separata della blockchain insieme a quella onesta, convincendo infine l'insieme di validatori onesti a passare ad essa in un dato momento opportuno molto successivo. Questo tipo di attacco non è possibile su Ethereum per via del dispositivo di finalità che assicura che tutti i validatori concordino sullo stato della catena onesta a intervalli regolari ("punti di controllo"). Questo semplice meccanismo neutralizza gli attacchi a lungo raggio, poiché i client di Ethereum semplicemente non riorganizzeranno i blocchi finalizzati. I nuovi nodi che si uniscono alla rete lo fanno trovando un hash di stato recente fidato (un "[punto di controllo a soggettività debole](https://blog.ethereum.org/2014/11/25/proof-stake-learned-love-weak-subjectivity/)") e utilizzandolo come un blocco di pseudo-genesi su cui costruire. Questo crea una 'porta di fiducia' per un nuovo nodo che accede alla rete prima che possa iniziare a verificare le informazioni da solo. + +#### Denial of Service {#denial-of-service} + +Il meccanismo di PoS di Ethereum seleziona un unico validatore dall'insieme di validatori totali perché sia un propositore di blocchi in ogni slot. Questo è calcolabile utilizzando una funzione pubblicamente nota ed è possibile, per un avversario, identificare il propositore di blocco successivo lievemente in anticipo rispetto alla sua proposta del blocco. Poi, l'utente malevolo può spammare il propositore del blocco per impedirgli di scambiare le informazioni con i suoi pari. Al resto della rete sembrerà che il propositore del blocco sia offline e lo slot resterà semplicemente vuoto. Questo potrebbe essere una forma di censura contro validatori specifici, che impedisce loro di aggiungere informazioni alla blockchain. L'implementazione di elezioni segrete di un singolo capo (SSLE) o di elezioni segrete di un capo non singolo mitigheranno i rischi di DoS, poiché soltanto il propositore del blocco potrà sapere di essere stato selezionato e la selezione non è nota in anticipo. Ciò non è ancora implementato, ma è un'area attiva di [ricerca e sviluppo](https://ethresear.ch/t/secret-non-single-leader-election/11789). + +Tutto questo punta al fatto che sia davvero difficile attaccare Ethereum con successo con uno stake ridotto. Gli attacchi fattibili qui descritti richiedono un algoritmo di scelta della diramazione idealizzato, condizioni di rete improbabili, oppure i vettori d'attacco sono già stati chiusi con correzioni relativamente minori al software del client. Questo, ovviamente, non esclude la possibilità che si verifichino zero day, ma dimostra la barra estremamente elevata di capacità tecnica, conoscenza del livello di consenso e fortuna necessaria perché un utente malevolo con uno stake di minoranza sia efficace. Dalla prospettiva di un utente malevolo, la cosa migliore dare sarebbe accumulare quanto più ether possibile e tornare armato di una maggiore quota dello stake totale. + +### Utenti malevoli che utilizzano il >= 33% dello stake totale {#attackers-with-33-stake} + +Tutti gli attacchi menzionati precedentemente in questo articolo raggiungono una maggiore probabilità di riuscita quando l'utente malevolo ha più ether in staking con cui votare, e più validatori che potrebbero essere scelti per proporre i blocchi in ogni slot. Un validatore malevolo potrebbe dunque mirare a controllare quanto più ether possibile. + +Il 33% dell'ether in staking è un punto di riferimento per un utente malevolo poiché, con un qualsiasi importo maggiore, può impedire la finalizzazione della catena senza dover controllare finemente le azioni degli altri validatori. Possono semplicemente scomparire insieme. Se 1/3 o più dell'ether in staking attesta malevolmente o non riesce ad attestare, allora non può esistere una supermaggioranza dei 2/3 e la catena non può finalizzare. La difesa in questo caso è la perdita per inattività. La perdita per inattività identifica quei validatori che non attestano o che attestano il contrario della maggioranza. L'ether in staking posseduto da tali validatori non attestanti è gradualmente disperso finché non rappresenteranno collettivamente meno di 1/3 del totale, così che la catena possa nuovamente finalizzare. + +Lo scopo della perdita per inattività è far nuovamente finalizzare la catena. Tuttavia, l'utente malevolo perde anche una porzione del proprio ether in staking. L'inattività persistente tra validatori che rappresentano il 33% dell'ether in staking totale è molto costosa anche se i validatori non ricevono un taglio. + +Supponendo che la rete di Ethereum sia asincrona (cioè, ci siano ritardi tra i messaggi inviati e ricevuti), un utente malevolo che controlla il 34% dello stake totale potrebbe causare una doppia finalità. Ciò è dovuto al fatto che l'utente malevolo può equivocare quando è scelto come propositore di blocchi, poi votare due volte con tutti i suoi validatori. Questo crea una situazione in cui esiste una diramazione della blockchain, ciascuna votata dal 34% dell'ether in staking. Ogni diramazione richiede soltanto il 50% dei voti dei validatori rimanenti per entrambe le diramazioni per essere supportata da una supermaggioranza, nel qual caso entrambe le catene possono finalizzarsi (poiché il 34% dei validatori malevoli + metà dei rimanenti 66% = 67% su ogni diramazione). Ogni blocco concorrente dovrebbe essere ricevuto all'incirca dal 50% dei validatori onesti, quindi questo attacco è fattibile soltanto quando l'utente malevolo ha un certo grado di controllo sulla tempistica dei messaggi che si propagano per la rete così da poter ingannare metà dei validatori onesti su ogni catena. L'utente malevolo dovrebbe necessariamente distruggere integralmente il proprio stake (34% di circa 10 milioni di ether con l'insieme odierno di validatori) per ottenere tale doppia finalità, poiché il 34% dei validatori voterebbe due volte simultaneamente – un'infrazione punibile con la sanzione di correlazione massima. La difesa contro questo attacco è il costo molto elevato della distruzione del 34% dell'ether in staking totale. Riprendersi da tale attacco richiederebbe alla community di Ethereum di coordinarsi "fuori banda" e di accordarsi sul seguire una delle due diramazioni ignorando l'altra. + +### Utenti malevoli che utilizzano circa il 50% dello stake totale {#attackers-with-50-stake} + +Al 50% dell'ether in staking, un gruppo malevolo di validatori potrebbe teoricamente dividere la catena in due diramazioni di pari dimensioni e quindi semplicemente utilizzare tutto il proprio 50% dello stake per votare contrariamente all'insieme di validatori onesti, mantenendo così le due diramazioni e impedendo la finalità. La perdita per inattività su entrambe le diramazioni condurrebbe infine alla finalizzazione di entrambe le catene. A questo punto, l'unica opzione è fare affidamento su un recupero sociale. + +È molto improbabile che un gruppo avversario di validatori possa controllare coerentemente e precisamente il 50% dello stake totale, dato il livello di flusso di numeri di validatori onesti, la latenza di rete, ecc.; il costo elevato di effettuare un simile attacco, insieme alla bassa probabilità di successo, sembra essere un forte disincentivo per un utente malevolo razionale, specialmente se un piccolo investimento aggiuntivo per ottenere _oltre il_ 50% sblocca molto più potere. + +Al >50% dello stake totale, l'utente malevolo potrebbe dominare l'algoritmo di scelta della diramazione. In questo caso sarebbe in grado di attestare con il voto di maggioranza, ottenendo controllo sufficiente per effettuare brevi riorganizzazioni senza dover ingannare i client onesti. I validatori onesti farebbero lo stesso perché anche il loro algoritmo di scelta della diramazione vederebbe la catena preferita dall'utente malevolo come la più pesante, quindi la catena potrebbe finalizzarsi. Ciò consente all'utente malevolo di censurare certe transazioni, apportare riorganizzazioni a breve raggio ed estrarre il MEV massimo riordinando i blocchi a proprio favore. La difesa contro tale attacco è l'enorme costo di uno stake di maggioranza (attualmente di poco inferiore a 19 miliardi di USD) messo a rischio da un utente malevolo, poiché il livello sociale potrebbe intervenire e adottare una diramazione di minoranza onesta svalutando drasticamente lo stake dell'utente malevolo. + +### Utenti malevoli che utilizzano il >=66% dello stake totale {#attackers-with-66-stake} + +Un utente malevolo con il 66% o più dell'ether in staking totale può finalizzare la propria catena preferita senza dover forzare alcun validatore onesto. L'utente può semplicemente votare la propria diramazione preferita per poi finalizzarla, semplicemente perché può votare con una supermaggioranza disonesta. Come detentore della supermaggioranza, controllerebbe sempre i contenuti dei blocchi finalizzati, con il potere di spendere, riavvolgere e rispendere, censurare certe transazioni e riorganizzare a piacimento la catena. Acquistando ulteriore ether per controllare il 66% invece del 51%, l'utente malevolo acquisisce di fatto l'abilità di effettuare riorganizzazioni a posteriori e inversioni di finalità (cioè, modificare il passato e controllare il futuro). Le sole vere difese sono il costo enorme del 66% dell'ether in staking totale e l'opzione di fare affidamento sul livello sociale per coordinare l'adozione di una diramazione alternativa. Possiamo affrontarlo in maggiore dettaglio nella sezione seguente. + +## Persone: l'ultima linea di difesa {#people-the-last-line-of-defense} + +Se i validatori disonesti riescono a finalizzare la propria versione preferita della catena, la community di Ethereum è messa in una situazione difficile. La catena canonica include una sezione disonesta fusa nel suo storico, mentre i validatori onesti possono ritrovarsi puniti per aver attestato una catena (onesta) alternativa. Si noti che una catena finalizzata ma errata potrebbe sorgere anche da un bug in un client di maggioranza. Infine, il ripiego finale è affidarsi al livello sociale, al Livello 0, per risolvere la situazione. + +Uno dei punti di forza del consenso di PoS di Ethereum è che esistono [svariate strategie difensive](https://youtu.be/1m12zgJ42dI?t=1712) impiegabili dalla community di fronte a un attacco. Una risposta minima potrebbe essere l'uscita forzata dei validatori malevoli dalla rete senza alcuna sanzione aggiuntiva. Per rientrare nella rete, l'utente malevolo dovrebbe unirsi a una coda di attivazione che assicura all'insieme di validatori di crescere gradualmente. Ad esempio, aggiungere abbastanza validatori da raddoppiare la quantità di ether in staking richiede circa 200 giorni, acquisendo effettivamente i validatori onesti con 200 giorni d'anticipo prima che l'utente malevolo possa tentare un altro attacco del 51%. Tuttavia, la community potrebbe anche decidere di penalizzare l'utente malevolo più duramente, revocando le ricompense passate o bruciando una certa porzione (fino al 100%) del suo capitale in staking. + +Qualsiasi sia la sanzione imposta all'utente malevolo, la community deve anche decidere se la catena disonesta, sebbene sia quella preferita dall'algoritmo di scelta della diramazione codificato nei client di Ethereum, sia di fatto non valida e se la community dovrebbe costruire, invece, sulla catena onesta. I validatori onesti potrebbero concordare collettivamente di costruire una diramazione accettata dalla community della blockchain di Ethereum che potrebbe, ad esempio, essersi separata dalla catena canonica prima dell'inizio dell'attacco o far rimuovere forzatamente i validatori malevoli. I validatori onesti sarebbero incentivati a costruire su questa catena, evitando le sanzioni loro applicate per la mancata attestazione (giustamente) della catena dell'utente malevolo. Le borse, on-ramp e applicazioni basate su Ethereum preferirebbero presumibilmente rimanere sulla catena onesta e seguirebbero i validatori onesti nella blockchain onesta. + +Tuttavia, questa sarebbe una sostanziale sfida di governance. Alcuni utenti e validatori andrebbero senza dubbio in perdita come conseguenza del ritorno alla catena onesta, le transazioni nei blocchi convalidati dopo l'attacco potrebbero essere potenzialmente ripristinate, disturbando il livello d'applicazione e, semplicemente, minando l'etica di alcuni utenti che tendono a credere che "il codice sia legge". Le borse e le applicazioni avrebbero molto probabilmente azioni esterne alla catena collegate alle transazioni sulla catena che ora potrebbero essere ripristinate, creando una cascata di ritrattazioni e revisioni che sarebbero difficili da disfare correttamente, specialmente se mischiate con guadagni disonesti, depositati nella DeFi o altri derivati con effetti secondari per gli utenti onesti. Indubbiamente alcuni utenti, forse persino istituzionali, avrebbero già beneficiato dalla catena disonesta, per scaltrezza o fortuna, e potrebbero opporsi a una diramazione per proteggere i propri guadagni. Ci sono state richieste di provare la risposta della community agli attacchi >51% così che una ragionevole mitigazione coordinata sia eseguibile rapidamente. Alcune utili osservazioni di Vitalik sono riportate su ethresear.ch [qui](https://ethresear.ch/t/timeliness-detectors-and-51-attack-recovery-in-blockchains/6925) e [qui](https://ethresear.ch/t/responding-to-51-attacks-in-casper-ffg/6363) e su Twitter, [qui](https://twitter.com/skylar_eth/status/1551798684727508992?s=20&t=oHZ1xv8QZdOgAXhxZKtHEw). L'obiettivo di una risposta sociale coordinata dovrebbe essere molto mirato e specifico sulla punizione dell'utente malevolo e sulla minimizzazione degli effetti per gli altri utenti. + +La governance è già un argomento complicato. Gestire la risposta all'emergenza del Livello 0 a una catena in finalizzazione disonesta sarebbe senza dubbio impegnativo per la community di Ethereum, ma [è successo](https://ethereum.org/en/history/#dao-fork-summary), [due volte](https://ethereum.org/en/history/#tangerine-whistle) nella storia di Ethereum). + +Tuttavia, c'è qualcosa di abbastanza soddisfacente nel ripiego finale nel mondo reale. In definitiva, anche con questo fenomenale stack tecnologico sopra di noi, se il peggio dovesse verificarsi le persone in carne ed ossa dovrebbero coordinarsi per uscirne. + +## Riepilogo {#summary} + +Questa pagina ha esplorato alcuni dei metodi in cui gli utenti malevoli potrebbero tentare di sfruttare il protocollo di consenso del proof-of-stake di Ethereum. Le riorganizzazioni e i ritardi di finalità sono stati esaminati per gli utenti malevoli con quote crescenti dell'ether in staking totale. In generale, un utente malevolo più ricco ha maggiori possibilità di successo perché il suo stake si traduce in potere di voto che può utilizzare per influenzare i contenuti dei blocchi futuri. A certi importi di soglia di ether in staking, il potere dell'utente malevolo aumenta: + +33%: ritardo di finalità + +34%: ritardo di finalità, doppia finalità + +51%: ritardo di finalità, doppia finalità, censura, controllo sul futuro della blockchain + +66%: ritardo di finalità, doppia finalità, censura, controllo sul futuro e il passato della blockchain + +Esiste anche una serie di attacchi più sofisticati che richiedono piccoli importi di ether in staking ma si affidano ad attacchi molto sofisticati con il pieno controllo sulla tempistica dei messaggi per influenzare l'insieme di validatori a proprio favore. + +In generale, nonostante questi potenziali vettori d'attacco, il rischio di un attacco di successo è basso, certamente inferiore degli equivalenti del proof-of-work. Questo perché l'elevato costo dell'ether in staking è messo a rischio da un utente malevolo che mira a sopraffare i validatori onesti con il loro potere di voto. Il livello di incentivazione integrato del "bastone e carota" protegge contro gran parte dei malfattori, specialmente con stake minori. Anche i più subdoli attacchi di rimbalzo e di bilanciamento hanno poca probabilità di successo poiché le vere condizioni di rete rendono molto difficile ottenere il pieno controllo della consegna del messaggio a sottoinsiemi specifici di validatori, e i team dei client hanno rapidamente chiuso i vettori degli attacchi di rimbalzo, bilanciamento e valanga con semplici correzioni. + +Gli attacchi del 34%, 51% o 66% richiederebbero un coordinamento fuori banda per essere risolti. Mentre ciò sarebbe probabilmente doloroso per la community, la sua capacità di rispondere fuori banda è un forte disincentivo per un utente malevolo. Il livello sociale di Ethereum è l'ultima rete di protezione: un attacco tecnicamente riuscito potrebbe ancora essere neutralizzato dalla community che si accorda per accettare una diramazione onesta. Ci sarebbe una gara tra l'utente malevolo e la community di Ethereum: i miliardi di dollari spesi su un attacco del 66% sarebbero probabilmente annientati da un attacco di coordinamento sociale con esito positivo se fosse realizzato abbastanza rapidamente, lasciando l'utente malevolo con pesanti sacchi di ether in staking illiquidi su una catena notoriamente disonesta ignorata dalla community di Ethereum. La probabilità che ciò finisca per essere redditizio per l'utente è sufficientemente bassa da essere un deterrente efficace. Per questo l'investimento nel mantenere un livello sociale coeso con valori strettamente allineati è così importante. + +## Letture consigliate {#further-reading} + +- [Versione più dettagliata di questa pagina](https://mirror.xyz/jmcook.eth/YqHargbVWVNRQqQpVpzrqEQ8IqwNUJDIpwRP7SS5FXs) +- [Vitalik sulla finalità dell'accordo](https://blog.ethereum.org/2016/05/09/on-settlement-finality/) +- [Documento LMD GHOST](https://arxiv.org/abs/2003.03052) +- [Documento Casper-FFG](https://arxiv.org/abs/1710.09437) +- [Documento Gasper](https://arxiv.org/pdf/2003.03052.pdf) +- [Specifiche del consenso di incremento del peso del propositore](https://github.com/ethereum/consensus-specs/pull/2730) +- [Attacchi di rimbalzo su ethresear.ch](https://ethresear.ch/t/prevention-of-bouncing-attack-on-ffg/6114) +- [Ricerca sul SSLE](https://ethresear.ch/t/secret-non-single-leader-election/11789) diff --git a/src/content/translations/it/developers/docs/consensus-mechanisms/pos/attack-and-defense/reorg-schematic.png b/src/content/translations/it/developers/docs/consensus-mechanisms/pos/attack-and-defense/reorg-schematic.png new file mode 100644 index 0000000000000000000000000000000000000000..9931eb4a10349590a5ea1399ef2279fd7917fd98 GIT binary patch literal 16441 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

HH_DpAd1#-o)wyURI>_}q$a94ku+sef}koi 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

`yV6>R>m^m<40 z(=*e3s~XY0X8>XnPOzk}-oGdrqwKS7?DmC_phbL(aKH=X=!mgyRi8Y5x2@>;wn~t8 zMVYMN4V+>E4HSA&A)@X9TAfWC(cQxJ1d`7I(B$SgI2%bzEPDnw? z^cZJC>tk}1t6Dm5Q6Mlp_;D4GSKYHmk-K!l0(2-;KcJ4K(O!w$9wyc}sHMm-S$%?c zo1xs*n9k5F%IBhfcqS8=84=4dQ=0vtJozQaU2+?Z$$!e1RC3}A*PnJt$;}xgBJ?oY zvl9oyxjHH3Ds00&7pg5EU8bg%5*1#%>Ko{)t{Yw!ck+`DftphM--v8Z#A$S5O-0+6@#-vX1niH@`9BSCly5QK#p)2O&z z%@YA;bxHq0vTdBq7u$+Sh3ZrWwwfy_U3D0vx75h(jI1ehRo^r4ag&lyt-^ZU$;`3% zVdNu2Pw;}>6DZPvr9L7>i`xrgofyEdK|oJUR{TueuhSzwm*tYR8Tw?SSI$y?KfJ2` z{i+`B$k#|w$G@-X{k{8rO*WYf^t&+ zt92gDr+e}!Q8ac1f?29=ewe0Qd(P=b`6yUyyItrs_rg!FeA4gsQ#v_x}s6 MuBxq4r)(MifAU7i`v3p{ literal 0 HcmV?d00001 diff --git a/src/content/translations/it/developers/docs/consensus-mechanisms/pos/attestations/index.md b/src/content/translations/it/developers/docs/consensus-mechanisms/pos/attestations/index.md new file mode 100644 index 00000000000..4de1e1cfb78 --- /dev/null +++ b/src/content/translations/it/developers/docs/consensus-mechanisms/pos/attestations/index.md @@ -0,0 +1,86 @@ +--- +title: Attestazioni +description: Descrizione delle attestazioni nella proof-of-stake di Ethereum. +lang: it +--- + +Un validatore dovrebbe creare, firmare e trasmettere una attestazione durante ogni epoca. Questa pagina delinea come appaiono queste attestazioni e come sono elaborate e comunicate tra i client di consenso. + +## Cos'è un'attestazione? {#what-is-an-attestation} + +Ogni [epoca](/glossary/#epoch) (6,4 minuti), un validatore propone un'attestazione alla rete. L'attestazione è per uno slot specifico nell'epoca. Lo scopo dell'attestazione è votare a favore della visione della catena del validatore, in particolare il blocco giustificato più recente e il primo blocco nell'epoca corrente (noti come punti di controllo `source` (origine) e `target` (destinazione)). Queste informazioni sono combinate per tutti i validatori partecipanti, consentendo alla rete di raggiungere il consenso sullo stato della blokchain. + +L'attestazione contiene i componenti seguenti: + +- `aggregation_bits`: un bitlist di validatori in cui la posizione mappa all'indice del validatore nella loro commissione; il valore (0/1) indica se il validatore ha firmato i `data` (cioè, se è attivo ed è d'accordo con il propositore del blocco) +- `data`: dettagli relativi all'attestazione, come definito sotto +- `signature`: una firma BLS che aggrega le firme dei singoli validatori + +La prima mansione per un validatore attestante è costruire `data`. I `data` contengono le seguenti informazioni: + +- `slot`: Il numero di slot a cui si riferisce l'attestazione +- `index`: Un numero che identifica a quale commissione appartiene il validatore in un dato slot +- `beacon_block_root`: Hash radice del blocco che il validatore vede alla testa della catena (il risultato dell'applicazione dell'algoritmo di scelta della diramazione) +- `source`: Parte del voto di finalità che indica ciò che i validatori vedono come il blocco giustificato più recente +- `target`: Parte del voto di finalità che indica cosa i validatori vedono come il primo blocco nell'epoca corrente + +Una volta costruiti i `data`, il validatore può capovolgere il bit in `aggregation_bits`, corrispondenti al proprio indice del validatore da 0 a 1 per mostrare di aver partecipato. + +Infine, il validatore firma l'attestazione e la trasmette sulla rete. + +### Attestazione aggregata {#aggregated-attestation} + +Le spese aggiuntive associate al trasferimento di questi dati nella rete sono molto elevate per ogni validatore. Di conseguenza, prima ancora che avvenga la trasmissione su larga scala, le attestazioni dei singoli validatori sono aggregate in reti secondarie. Questo include l'aggregazione delle firme in modo che un'attestazione che viene trasmessa includa i `dati` di consenso e un'unica firma creata combinando le firme di tutte i validatori d'accordo con tali `dati`. Ciò è verificabile utilizzando `aggregation_bits`, poiché questi forniscono l'indice di ogni validatore nella propria commissione (i cui ID sono forniti in `data`) che può essere utilizzato per richiedere le singole firme. + +In ogni epoca, un validatore in ogni rete secondaria è selezionato dall'`aggregator`. L'aggregatore raccoglie tutte le attestazioni che sente nella rete di gossip aventi `data` equivalenti propri. Il mittente di ogni attestazione corrispondente è registrato negli `aggregation_bits`. L'aggregatore trasmette quindi l'attestazione aggregata alla rete più ampia. + +Quando un validatore viene selezionato per essere un propositore di blocchi, impacchetta le attestazioni aggregate dalle reti secondarie fino all'ultimo slot nel nuovo blocco. + +### Ciclo di vita di inclusione dell'attestazione {#attestation-inclusion-lifecycle} + +1. Generazione +2. Propagazione +3. Aggregazione +4. Propagazione +5. Inclusione + +Il ciclo di vita dell'attestazione è delineato nel seguente schema: + +![ciclo di vita dell'attestazione](./attestation_schematic.png) + +## Ricompense {#rewards} + +I validatori sono ricompensati per l'invio delle attestazioni. La ricompensa dell'attestazione dipende da due variabili, la `base reward` (ricompensa di base) e l'`inclusion delay` (ritardo d'inclusione). Il miglior caso per il ritardo d'inclusione è che sia pari a 1. + +`ricompensa d'attestazione = 7/8 x ricompensa di base x (1/ritardo d'inclusione)` + +### Ricompensa di base {#base-reward} + +La ricompensa di base è calcolata secondo il numero di validatori attestanti e i loro saldi effettivi di ether in staking: + +`base reward = validator effective balance x 2^6 / SQRT(Effective balance of all active validators)` + +#### Ritardo d'inclusione {#inclusion-delay} + +Al momento del voto dei validatori sulla testa della catena (`block n`), `block n+1` non era ancora stato proposto. Pertanto, le attestazioni sono incluse naturalmente **un blocco più tardi**, così che tutte le attestazioni che hanno votato sul `block n`, che è la testa della catena, sono incluse in `block n+1` e il **ritardo d'inclusione** è 1. Se il ritardo d'inclusione raddoppia a due slot, la ricompensa di attestazione si dimezza, perché per calcolare la ricompensa di attestazione la ricompensa di base è moltiplicata per il reciproco del ritardo d'inclusione. + +### Scenari di attestazione {#attestation-scenarios} + +#### Validatore votante mancante {#missing-voting-validator} + +I validatori hanno un massimo di 1 epoca per inviare le proprie attestazioni. Se l'attestazione era mancante nell'epoca 0, può essere inviata con un ritardo d'inclusione nell'epoca 1. + +#### Aggregatore mancante {#missing-aggregator} + +Per ogni epoca ci sono in totale 16 Aggregatori. Inoltre, alcuni validatori casuali si iscrivono a **due reti secondarie per 256 epoche** e servono da backup nel caso in cui gli aggregatori siano mancanti. + +#### Propositore di blocchi mancante {#missing-block-proposer} + +Si noti che in alcuni casi un aggregatore fortunato potrebbe anche diventare il propositore di blocchi. Se l'attestazione non è stata inclusa perché il propositore di blocchi è mancante, sarebbe il propositore successivo a selezionare l'attestazione aggregata e includerla nel blocco successivo. Tuttavia, il **ritardo d'inclusione** aumenterebbe di uno. + +## Lettura consigliate {#further-reading} + +- [Le attestazioni nelle specifiche del consenso annotate da Vitalik](https://github.com/ethereum/annotated-spec/blob/master/phase0/beacon-chain.md#attestationdata) +- [Le attestazioni su eth2book.info](https://eth2book.info/altair/part3/containers/dependencies#attestationdata) + +_Conosci una risorsa pubblica che ti è stata utile? Modifica questa pagina e aggiungila!_ diff --git a/src/content/translations/it/developers/docs/consensus-mechanisms/pos/block-proposal/index.md b/src/content/translations/it/developers/docs/consensus-mechanisms/pos/block-proposal/index.md new file mode 100644 index 00000000000..bd2dc9ee8ca --- /dev/null +++ b/src/content/translations/it/developers/docs/consensus-mechanisms/pos/block-proposal/index.md @@ -0,0 +1,69 @@ +--- +title: Proposta di blocco +description: Spiegazione di come vengono proposti i blocchi nel proof-of-stake di Ethereum. +lang: it +--- + +I blocchi costituiscono le unità fondamentali della blockchain. I blocchi sono unità discrete di informazioni che vengono passate tra i nodi, concordate e aggiunte al database di ciascun nodo. Questa pagina spiega come sono prodotti. + +## Prerequisiti {#prerequisites} + +L'azione di proporre un blocco fa parte del protocollo di proof-of-stake. Per aiutarti a capire questa pagina, ti consigliamo di informarti sul [proof-of-stake](src/content/developers/docs/consensus-mechanisms/pos/) e sull'[architettura del blocco](src/content/developers/docs/blocks/). + +## Chi produce i blocchi? {#who-produces-blocks} + +I conti del validatore propongono i blocchi. I conti del validatore sono gestiti dagli operatori dei nodi che eseguono il software del validatore come parte dei propri client di esecuzione e di consenso e hanno depositato almeno 32 ETH nel contratto di deposito. Tuttavia, ogni validatore è responsabile solo occasionalmente della proposta di un blocco. Ethereum misura il tempo in slot ed epoche. Ogni slot è di dodici secondi, e 32 slot (6,4 minuti) compongono un'epoca. Ogni slot è un'opportunità per aggiungere un nuovo blocco a Ethereum. + +### Selezione casuale {#random-selection} + +Un unico validatore è pseudo-casualmente scelto per proporre un blocco per ogni slot. Non esiste una vera casualità in una blockchain, poiché se ogni nodo generasse genuinamente dei numeri casuali non si arriverebbe mai al consenso. Invece, l'obiettivo è di rendere imprevedibile il processo di selezione del validatore. La casualità su Ethereum è ottenuta utilizzando un algoritmo chiamato RANDAO, che combina un hash dal propositore di blocchi con un seed aggiornato a ogni blocco. Questo valore è utilizzato per selezionare un validatore specifico dall'insieme totale di validatori. La selezione del validatore è fissata con due epoche in anticipo come forma di protezione da certi tipi di manipolazione del seed. + +Sebbene i validatori si aggiungano al RANDAO in ogni slot, il valore globale del RANDAO è aggiornato solo una volta per epoca. Per calcolare l'indice del propositore di blocchi successivo, il valore del RANDAO è combinato con il numero di slot per dare un valore univoco a ogni slot. La probabilità che un singolo validatore sia selezionato non è semplicemente `1/N` (dove `N` = validatori attivi totali). Invece, è ponderata per il saldo di ETH effettivo di ogni validatore. Il saldo effettivo massimo è di 32 ETH (ciò significa che `balance < 32 ETH` comporta un peso minore di `balance == 32 ETH`, ma `balance > 32 ETH` non comporta un peso maggiore di `balance == 32 ETH`). + +Solo un propositore di blocchi è selezionato per ogni slot. In condizioni normali, un singolo produttore di blocchi crea e rilascia un unico blocco nello slot dedicato. Creare due blocchi per lo stesso slot è un’infrazione tagliabile, spesso nota come "equivoco". + +## Come è creato il blocco? {#how-is-a-block-created} + +Il propositore di blocchi dovrebbe trasmettere un blocco beacon firmato che si basa sulla testa della catena più recente secondo la vista del proprio algoritmo di scelta della diramazione eseguito localmente. L'algoritmo di scelta della diramazione si applica a qualsiasi attestazione accodata rimanente dallo slot precedente, quindi trova il blocco con il peso accumulato maggiore delle attestazioni nel suo storico. Quel blocco è genitore del nuovo blocco creato dal propositore. + +Il propositore di blocchi crea un blocco raccogliendo i dati dal suo database locale e dalla sua vista della catena. I contenuti del blocco sono mostrati nel frammento seguente: + +```rust +class BeaconBlockBody(Container): + randao_reveal: BLSSignature + eth1_data: Eth1Data + graffiti: Bytes32 + proposer_slashings: List[ProposerSlashing, MAX_PROPOSER_SLASHINGS] + attester_slashings: List[AttesterSlashing, MAX_ATTESTER_SLASHINGS] + attestations: List[Attestation, MAX_ATTESTATIONS] + deposits: List[Deposit, MAX_DEPOSITS] + voluntary_exits: List[SignedVoluntaryExit, MAX_VOLUNTARY_EXITS] + sync_aggregate: SyncAggregate + execution_payload: ExecutionPayload +``` + +Il campo `randao_reveal` prende un valore casuale verificabile che il propositore di blocchi crea aggiungendo un po' della propria entropia al valore accumulato del RANDAO dai blocchi precedenti. `eth1_data` è un voto per la vista del contratto di deposito da parte del propositore di blocchi, che include la radice dell'albero di Merkle di deposito e il numero totale di depositi che consentono la verifica dei nuovi depositi. `graffiti` è un campo facoltativo utilizzabile per aggiungere un messaggio al blocco. `proposer_slashings` e `attester_slashings` sono campi contenenti la prova che certi validatori hanno commesso infrazioni tagliabili secondo la vista della catena del propositore. `deposits` è un elenco di nuovi depositi del validatore di cui il propositore di blocchi è consapevole, e `voluntary_exits` è un elenco di validatori che desiderano uscire di cui il propositore di blocchi è venuto a conoscenza sulla rete di gossip del livello di consenso. `sync_aggregate` è un vettore che mostra quali validatori erano precedentemente assegnati a una commissione di sincronizzazione (un sottoinsieme di validatori che servono i dati dei client leggeri) e hanno partecipato alla firma dei dati. + +`execution_payload` consente il passaggio delle informazioni sulle transazioni tra i client di esecuzione e di consenso. `execution_payload` è un blocco di dati di esecuzione che viene nidificato in un blocco beacon. I campi in `execution_payload` riflettono la struttura dei blocchi delineata nello Yellow Paper di Ethereum, tranne che non esistono ommer e che `prev_randao` esiste al posto della `difficulty`. Il client di esecuzione ha accesso a un pool locale di transazioni di cui è venuto a conoscenza sulla propria rete di gossip. Queste transazioni sono eseguite localmente per generare un albero di stato aggiornato, noto come post-stato. Le transazioni sono incluse nell'`execution_payload` come un elenco detto `transactions` e il post-stato è fornito nel campo `state-root`. + +Tutti questi dati sono raccolti in un blocco beacon, firmati e trasmessi ai pari del propositore di blocchi, che li distribuiscono ai loro pari, ecc. + +Maggiori informazioni più sull'[anatomia dei blocchi](/developers/docs/blocks). + +## Cosa succede al blocco? {#what-happens-to-blocks} + +Il blocco è aggiunto al database locale del propositore di blocchi e trasmesso ai pari tramite la rete di gossip del livello di consenso. Quando un validatore riceve il blocco, verifica i dati al suo interno, anche controllando che il blocco abbia il genitore corretto, corrisponda allo slot corretto, che l'indice del propositore sia quello previsto, che l'indicazione del RANDAO sia valida e che il propositore non sia tagliato. `execution_payload` è scompattato e il client di esecuzione del validatore ri-esegue le transazioni nell'elenco per verificare il cambiamento di stato proposto. Supponendo che il blocco superi tutti questi controlli, ogni validatore aggiunge il blocco alla propria catena canonica. Il processo quindi ricomincia nello slot successivo. + +## Ricompense del blocco {#block-rewards} + +Il propositore del blocco riceve il pagamento per il proprio lavoro. Esiste una `base_reward` calcolata come funzione del numero di validatori attivi e dei loro saldi effettivi. Il propositore del blocco, quindi, riceve una frazione della `base_reward` per ogni attestazione valida inclusa nel blocco; più validatori attestano al blocco, maggiore è la ricompensa del suo propositore. Esiste anche una ricompensa per aver segnalato i validatori che dovrebbero essere tagliati, pari a `1/512 * saldo effettivo` per ogni validatore tagliato. + +[Maggiori informazioni su ricompense e sanzioni](/developers/docs/consensus-mechanisms/pos/rewards-and-penalties) + +## Letture consigliate {#further-reading} + +- [Introduzione ai blocchi](/developers/docs/blocks/) +- [Introduzione al proof-of-stake](/developers/docs/consensus-mechanisms/pos/) +- [Specifiche del consenso di Ethereum](www.github.com/ethereum/consensus-specs) +- [Introduzione a Gasper](/developers/docs/consensus-mechanisms/pos/) +- [Aggiornare Ethereum](https://eth2book.info/) diff --git a/src/content/translations/it/developers/docs/consensus-mechanisms/pos/faqs/index.md b/src/content/translations/it/developers/docs/consensus-mechanisms/pos/faqs/index.md new file mode 100644 index 00000000000..3dd135a6532 --- /dev/null +++ b/src/content/translations/it/developers/docs/consensus-mechanisms/pos/faqs/index.md @@ -0,0 +1,172 @@ +--- +title: Domande frequenti +description: Domande frequenti sull'Ethereum di proof-of-stake. +lang: it +--- + +## Cos'è il proof-of-stake {#what-is-proof-of-stake} + +Il proof-of-stake è una classe di algoritmo che può fornire sicurezza alle blockchain assicurandosi che le risorse di valore siano perse dagli utenti malevoli che agiscono in modo disonesto. I sistemi di proof-of-stake richiedono che una serie di validatori rendano disponibili delle risorse che possono essere distrutte se il validatore adotta certi comportamenti comprovatamente disonesti. Ethereum utilizza il meccanismo di proof-of-stake per proteggere la blockchain. + +## Come si distingue il proof-of-stake dal proof-of-work? {#comparison-to-proof-of-work} + +Sia il proof-of-work che il proof-of-stake sono meccanismi che disincentivano economicamente gli utenti malevoli dallo spam o da truffe alla rete. In entrambi i casi, i nodi che partecipano attivamente al consenso mettono "nella rete" alcune risorse che perderanno se si comportano scorrettamente. + +Nel proof-of-work, tale risorsa è l'energia. Il nodo, noto come miner, esegue un algoritmo che mira a calcolare un valore più velocemente di ogni altro nodo. Il nodo più veloce ha il diritto di proporre un blocco alla catena. Per modificare lo storico della catena o dominare la proposta dei blocchi, un miner dovrebbe avere tanta potenza di calcolo da vincere sempre la gara. Ciò è costoso in modo proibitivo e difficile da eseguire, il che protegge la catena dagli attacchi. L'energia necessaria a "minare" utilizzando il proof-of-work è una risorsa del mondo reale pagata dai miner. + +Il proof-of-stake richiede che i nodi, noti come validatori, inviino esplicitamente una risorsa di criptovalute a un contratto intelligente. Se un validatore si comporta male, questa criptovaluta può essere distrutta perché sta "mettendo in staking" le sue risorse direttamente nella catena invece che indirettamente tramite il consumo energetico. + +Il proof-of-work consuma molta più energia perché il processo di mining consumata elettricità. Il proof-of-stake, d'altra parte, richiede soltanto una piccola quantità di energia: i validatori di Ethereum possono essere eseguiti persino su un dispositivo a bassa potenza, come un Raspberry Pi. Il meccanismo di proof-of-stake di Ethereum è concepito per essere più sicuro del proof-of-work, perché il costo dell'attacco è maggiore e le conseguenze sono più severe. + +Il confronto proof-of-work vs. proof-of-stake è un argomento controverso. [Il blog di Vitalik Buterin](https://vitalik.ca/general/2017/12/31/pos_faq.html#what-are-the-benefits-of-proof-of-stake-as-opposed-to-proof-of-work) e il dibattito tra Justin Drake e Lyn Alden hanno dato una buona sintesi delle argomentazioni. + + + +## Il proof-of-stake è efficiente dal punto di vista energetico? {#is-pos-energy-efficient} + +Sì. I nodi su una rete di proof-of-stake utilizzano una minuscola quantità di energia. Uno studio di terze parti ha concluso che l'intera rete di proof-of-stake di Ethereum consuma circa 0,0026 TWh/anno, circa 13.000 volte in meno del gaming nei soli Stati Uniti. + +[Di più sul consumo energetico di Ethereum](/energy-consumption/). + +## Il proof-of-stake è sicuro? {#is-pos-secure} + +Il proof-of-stake di Ethereum è molto sicuro. Il meccanismo è stato ricercato, sviluppato e testato rigorosamente negli otto anni in cui ha preso vita. Le garanzie di sicurezza sono differenti dalle blockchain di proof-of-work. Nel proof-of-stake, i validatori malevoli possono essere puniti attivamente ("tagliati") ed espulsi dall'insieme di validatori, costando un sostanziale importo di ETH. Nel proof-of-work, un utente malevolo può continuare a ripetere il proprio attacco fintanto che ha sufficiente potenza di hash. Inoltre, è più costoso compiere attacchi equivalenti sull'Ethereum con proof-of-stake rispetto al proof-of-work. Per influenzare la vitalità della catena, è necessario almeno il 33% dell'ether in staking totale sulla rete (tranne nei casi di attacchi molto sofisticati che hanno una probabilità di successo estremamente ridotta). Per controllare i contenuti dei blocchi futuri, è necessario almeno il 51% degli ETH in staking totali e per riscrivere lo storico serve oltre il 66% dello stake totale. Il protocollo di Ethereum distruggerebbe queste risorse negli scenari di attacco al 33% e 51% e tramite il consenso sociale nello scenario di attacchi del 66%. + +- [Maggiori informazioni sulla difesa del proof-of-stake di Ethereum dagli utenti malevoli](/developers/docs/consensus-mechanisms/pos/attack-and-defense) +- [Maggiori informazioni sulla progettazione del proof-of-stake](https://medium.com/@VitalikButerin/a-proof-of-stake-design-philosophy-506585978d51) + +## Il proof-of-stake rende Ethereum più economico? {#does-pos-make-ethereum-cheaper} + +No. Il costo di invio di una transazione (commissione sul carburante) è determinato da un mercato di commissioni dinamico che aumenta all'aumentare della domanda di rete. Il meccanismo di consenso non lo influenza direttamente. + +[Maggiori informazioni sul carburante](/developers/docs/gas). + +## Cosa sono i nodi, i client e i validatori? {#what-are-nodes-clients-and-validators} + +I nodi sono computer connessi alla rete di Ethereum. I client sono i software che eseguono, che trasformano il computer in un nodo. Esistono due tipi di client: di esecuzione e di consenso. Sono entrambi necessari per creare un nodo. Un validatore è un componente aggiuntivo facoltativo a un client di consenso, che consente al nodo di partecipare al consenso di proof-of-stake. Ciò significa creare e proporre blocchi quando selezionati e attestare i blocchi che sentono sulla rete. Per eseguire un validatore, l'operatore del nodo deve depositare 32 ETH nel contratto di deposito. + +- [Maggiori informazioni su nodi e client](/developers/docs/nodes-and-clients) +- [Maggiori informazioni sullo staking](/staking) + +## Il proof-of-stake è una idea nuova? {#is-pos-new} + +No. Un utente su BitcoinTalk [ha proposto l'idea di base del proof-of-stake](https://bitcointalk.org/index.php?topic=27787.0) come un aggiornamento a Bitcoin nel 2011. Erano undici anni prima che fosse pronto all'implementazione sulla Rete Principale di Ethereum. Alcune altre catene hanno implementato il proof-of-stake prima di Ethereum, ma non il meccanismo specifico di Ethereum (noto come Gasper). + +## Cosa rende speciale il proof-of-stake di Ethereum? {#why-is-ethereum-pos-special} + +Il meccanismo di proof-of-stake di Ethereum è unico nella sua progettazione. Non è stato il primo meccanismo di proof-of-stake mai progettato e implementato, ma è il più robusto. Il meccanismo di proof-of-stake è noto come "Casper". Casper definisce come i validatori sono selezionati per proporre i blocchi, come e quando sono effettuate le attestazioni, come sono contate le attestazioni, le ricompense e le sanzioni date ai validatori, le condizioni di taglio, i meccanismi di emergenza come la perdita per inattività e le condizioni per la "finalità". La finalità è la condizione secondo cui per essere considerato una parte permanente della catena canonica, un blocco deve essere votato da almeno il 66% degli ETH in staking totali sulla rete. I ricercatori hanno sviluppato Casper specificamente per Ethereum, ed Ethereum è la prima e unica blockchain ad averlo implementato. + +Oltre a Casper, il proof-of-stake di Ethereum utilizza un algoritmo di scelta della diramazione chiamato LMD-GHOST. Questo è necessario nel caso in cui sorga una condizione in cui due blocchi esistono per lo stesso slot. Ciò crea due diramazioni della blockchain. LMD-GHOST seleziona quella con il "peso" di attestazioni maggiore. Il peso è il numero di attestazioni ponderate dal saldo effettivo dei validatori. LMD-GHOST è un'esclusiva di Ethereum. + +La combinazione di Casper e LMD-GHOST è nota come Gasper. + +[Maggiori informazioni su Gasper](/developers/docs/consensus-mechanisms/pos/gasper/) + +## Cos'è il taglio? {#what-is-slashing} + +Taglio è il termine dato alla distruzione di parte dello stake di un validatore e la sua espulsione dalla rete. L'importo di ETH perduto in un taglio scala con il numero di validatori tagliati; ciò significa che i validatori complici sono puniti più severamente dei singoli. + +[Maggiori informazioni sul taglio](/developers/docs/consensus-mechanisms/pos/rewards-and-penalties#slashing) + +## Perché i validatori necessitano di 32 ETH? {#why-32-eth} + +I validatori devono mettere in staking ETH così che abbiano qualcosa da perdere se si comportano male. Il motivo per cui devono specificamente mettere 32 ETH in staking è per consentire di eseguire i nodi su hardware modesti. Se gli ETH minimi per validatore fossero inferiori, il numero di validatori e dunque il numero di messaggi da elaborare in ogni slot aumenterebbe, il che comporta che sarebbe necessario hardware più potente per eseguire un nodo. + +## Come sono selezionati i validatori? {#how-are-validators-selected} + +Un singolo validatore è scelto pseudo-casualmente per proporre un blocco in ogni slot utilizzando un algoritmo detto RANDAO, che combina un hash dal propositore del blocco con un seed aggiornato a ogni blocco. Questo valore è utilizzato per selezionare un validatore specifico dall'insieme totale di validatori. La selezione del validatore è fissata a quattro epoche in anticipo. + +[Maggiori informazioni sulla selezione dei validatori](/developers/docs/consensus-mechanisms/pos/block-proposal) + +## Cos'è la frantumazione dello stake? {#what-is-stake-grinding} + +La frantumazione dello stake è una categoria di attacco alle reti di proof-of-stake in cui l'utente malevolo prova a orientare l'algoritmo di selezione del validatore a favore dei propri validatori. Gli attacchi di frantumazione dello stake richiedono all'incirca metà degli ETH totali in staking. + +[Maggiori informazioni sulla frantumazione dello stake](https://eth2book.info/altair/part2/building_blocks/randomness/#randao-biasability) + +## Cos'è il taglio sociale? {#what-is-social-slashing} + +Il taglio sociale è l'abilità della community di coordinare una diramazione blockchain in risposta a un attacco. Consente alla community di riprendersi da un utente malevolo che finalizza una catena disonesta. Il taglio sociale è anche utilizzabile contro gli attacchi di censura. + +- [Maggiori informazioni sul taglio sociale](https://ercwl.medium.com/the-case-for-social-slashing-59277ff4d9c7) +- [Vitalik Buterin sul taglio sociale](https://vitalik.ca/general/2017/12/31/pos_faq.html#what-is-proof-of-stake) + +## Riceverò un taglio? {#will-i-get-slashed} + +Come validatore, è molto difficile essere tagliato a meno che non si adottino deliberatamente comportamenti malevoli. Il taglio è implementato soltanto in scenari davvero specifici in cui i validatori propongono più blocchi per lo stesso slot o si contraddicono con le proprie attestazioni – situazioni che è davvero improbabile sorgano accidentalmente. + +[Maggiori informazioni sulle condizioni di taglio](https://eth2book.info/altair/part2/incentives/slashing) + +## Cos'è il problema del "nulla in staking"? {#what-is-nothing-at-stake-problem} + +Il problema del "nulla in staking" è un problema concettuale con alcuni meccanismi di proof-of-stake in cui esistono solo ricompense e nessuna sanzione. Se non c'è nulla in staking, un validatore pragmatico è altrettanto felice di attestare qualsiasi, o persino più, diramazioni della blockchain, perché questo aumenta le sue ricompense. Ethereum aggira tale problema utilizzando le condizioni di finalità e il taglio per assicurare una catena canonica. + +[Maggiori informazioni sul problema di "nulla in staking"](https://vitalik.ca/general/2017/12/31/pos_faq.html#what-is-the-nothing-at-stake-problem-and-how-can-it-be-fixed) + +## Cos'è un algoritmo di scelta della diramazione? {#what-is-a-fork-choice-algorithm} + +Un algoritmo di scelta della diramazione implementa regole che determinano quale catena sia quella canonica. In condizioni ottimali, una regola di scelta della diramazione non è necessaria poiché esiste un solo propositore di blocchi per slot e un blocco tra cui scegliere. Talvolta, però, più blocchi per lo stesso slot o informazioni in ritardo comportano più opzioni per come sono organizzati i blocchi vicino alla testa della catena. In questi casi, tutti i client devono implementare delle regole in maniera identica per assicurarsi che tutti selezionino la sequenza corretta di blocchi. L'algoritmo di scelta della diramazione codifica tali regole. + +L'algoritmo di scelta della diramazione di Ethereum si chiama LMD-GHOST. Seleziona la diramazione con il peso di attestazioni maggiore, ossia quello votato da più ETH in staking. + +[Maggiori informazioni su LMD-GHOST](/developers/docs/consensus-mechanisms/pos/gasper/#fork-choice) + +## Cos'è la finalità nel proof-of-stake? {#what-is-finality} + +La finalità nel proof-of-stake è la garanzia che un dato blocco sia una parte permanente della catena canonica e non sia annullabile tranne in caso di mancanza del consenso in cui un utente malevolo brucia il 33% dell'ether in staking totale. Questa è la finalità "cripto-economica", contrapposta alla "finalità probabilistica" che riguarda le blockchain di proof-of-work. Nella finalità probabilistica, non esistono stati finalizzati/non finalizzati espliciti per i blocchi; semplicemente, diventa sempre meno probabile che un blocco possa essere rimosso dalla catena più diventa vecchio, e gli utenti determinano da soli quando sono abbastanza certi che un blocco sia "sicuro". Con la finalità cripto-economica, le coppie di blocchi di punti di controllo devono essere votate dal 66% dell'ether in staking. Se tale condizione è soddisfatta, i blocchi tra tali punti di controllo sono esplicitamente "finalizzati". + +[Maggiori informazioni sulla finalità](/developers/docs/consensus-mechanisms/pos/#finality) + +## Cos'è la "soggettività debole"? {#what-is-weak-subjectivity} + +La soggettività debole è una funzionalità delle reti di proof-of-stake in cui le informazioni sociali sono utilizzate per confermare lo stato corrente della blockchain. I nuovi nodi, o quelli che si riuniscono alla rete dopo esser stati offline per molto tempo, possono ricevere uno stato recente così che il nodo possa vedere immediatamente se si trovano sulla catena corretta. Questi stati sono noti come "punti di controllo della soggettività debole" e sono ottenibili da altri operatori di nodi fuori banda, o dagli esploratori di blocchi, o da svariati endpoint pubblici. + +[Maggiori informazioni sulla soggettività debole](/developers/docs/consensus-mechanisms/pos/weak-subjectivity) + +## Il proof-of-stake è resistente alla censura? {#is-pos-censorship-resistant} + +La resistenza alla censura è attualmente difficile da dimostrare. Tuttavia, a differenza del proof-of-work, il proof-of-stake offre l'opzione di coordinare i tagli per punire i validatori autori di censura. Sono previste delle modifiche al protocollo per separare i costruttori dai propositori di blocchi e implementare elenchi di transazioni che i costruttori devono includere in ogni blocco. Questa proposta è nota come separazione tra propositori e costruttori e aiuta a impedire che i validatori censurino le transazioni. + +[Maggiori informazioni sulla separazione tra propositori e costruttori](https://notes.ethereum.org/@fradamt/H1TsYRfJc#Original-basic-scheme) + +## Il sistema di proof-of-stake di Ethereum può subire attacchi al 51%? {#pos-51-attack} + +Sì. Il proof-of-stake è vulnerabile agli attacchi al 51%, proprio come il proof-of-work. Invece di richiedere il 51% della potenza di hash della rete, l'attacco richiede il 51% degli ETH totali in staking. Un utente malevolo che accumula il 51% dello stake totale ottiene il controllo dell'algoritmo di scelta della diramazione. Ciò gli consente di censurare certe transazioni, effettuare riorganizzazioni a breve raggio ed estrarre MEV riordinando i blocchi a proprio favore. + +[Maggiori informazioni sugli attacchi al proof-of-stake](/developers/docs/consensus-mechanisms/pos/attack-and-defense) + +## Cos'è il coordinamento sociale e perché è necessario? {#what-is-social-coordination} + +Il coordinamento sociale è l'ultima linea di difesa di Ethereum, che consentirebbe a una catena onesta di essere recuperata da un attacco che ha finalizzato dei blocchi disonesti. In questo caso, la community di Ethereum dovrebbe coordinarsi "fuori banda" e accordarsi sull'uso di una diramazione onesta di minoranza, tagliando i validatori malevoli nel processo. Ciò richiederebbe anche alle app e alle borse di riconoscere la diramazione onesta. + +[Maggiori informazioni sul coordinamento sociale](/developers/docs/consensus-mechanisms/pos/attack-and-defense#people-the-last-line-of-defense) + +## Il ricco si arricchisce con il proof-of-stake? {#do-rich-get-richer} + +Più ETH qualcuno ha da mettere in staking, più validatori può eseguire e più ricompense può ottenere. Le ricompense scalano linearmente con l'importo di ETH in staking e tutti ottengono in cambio la stessa percentuale. Il proof-of-work arricchisce il ricco più del proof-of-stake, perché i miner più ricchi che acquistano hardware su larga scala beneficiano dalle economie di scala, il che significa che la relazione tra ricchezza e ricompensa non è lineare. + +## Il proof-of-stake è più centralizzato del proof-of-work? {#is-pos-decentralized} + +No, il proof-of-work tende alla centralizzazione perché i costi di mining aumentano e tagliano fuori gli individui, poi tagliano fuori le piccole aziende e così via. L'attuale problema con il proof-of-stake è l'influenza dei derivati di staking liquidi (LSD). Si tratta di token rappresentanti gli ETH messi in staking da qualche fornitore, che chiunque può scambiare su mercati secondari senza prelevare gli ETH effettivi. Gli LSD consentono agli utenti di mettere in staking meno di 32 ETH, ma creano anche un rischio di centralizzazione in cui poche grandi organizzazioni possono finire per controllare gran parte dello stake. Per questo lo [staking in autonomia](/staking/solo) è l'opzione migliore per Ethereum. + +[Maggiori informazioni sulla centralizzazione dello stake in LSD](https://notes.ethereum.org/@djrtwo/risks-of-lsd) + +## Perché posso mettere soltanto gli ETH in staking? {#why-can-i-only-stake-eth} + +ETH è la valuta nativa di Ethereum. È essenziale avere una singola valuta in cui sono denominati tutti gli stake, sia per tenere conto dei saldi effettivi che per ponderare i voti e per la sicurezza. Gli stessi ETH sono componenti fondamentali di Ethereum, rispetto a un contratto intelligente. Integrare altre valute aumenterebbe significativamente la complessità, riducendo la sicurezza dello staking. + +## Ethereum è la sola blockchain di proof-of-stake? {#is-ethereum-the-only-pos-blockchain} + +No, esistono diverse blockchain di proof-of-stake. Nessuna è identica a Ethereum; il meccanismo di proof-of-stake di Ethereum è unico. + +## In cosa consiste La Fusione? {#what-is-the-merge} + +La Fusione è stata il momento in cui Ethereum ha spento il suo meccanismo di consenso basato sul proof-of-work ed è passato a quello di proof-of-stake. La Fusione si è verificata il 15 settembre 2022. + +[Maggiori informazioni sulla fusione](/roadmap/merge) + +## Cosa sono vitalità e sicurezza? {#what-are-liveness-and-safety} + +Vitalità e sicurezza sono le due preoccupazioni fondamentali in materia di sicurezza per una blockchain. La vitalità è la disponibilità di una catena che si finalizza. Se la catena smette di finalizzarsi o gli utenti non possono accedervi facilmente, si parla di perdita di vitalità. Anche un costo d'accesso estremamente elevato potrebbe essere considerato una perdita di vitalità. La sicurezza si riferisce alla difficoltà di attacco della catena, ossia finalizzare punti di controllo in conflitto. + +[Leggi di più nel documento di Casper](https://arxiv.org/pdf/1710.09437.pdf) diff --git a/src/content/translations/it/developers/docs/consensus-mechanisms/pos/gasper/index.md b/src/content/translations/it/developers/docs/consensus-mechanisms/pos/gasper/index.md index 3da1fac82c2..ce62e76c099 100644 --- a/src/content/translations/it/developers/docs/consensus-mechanisms/pos/gasper/index.md +++ b/src/content/translations/it/developers/docs/consensus-mechanisms/pos/gasper/index.md @@ -14,7 +14,7 @@ Per comprendere questo materiale, è necessario leggere la pagina introduttiva s ## Il ruolo di Gasper {#role-of-gasper} -Gasper si trova in cima a una blockchain proof-of-stake in cui i nodi forniscono ether come un deposito di sicurezza, che possono essere distrutti se sono inattivi o disonesti nel proporre o convalidare i blocchi. Gasper è il meccanismo che definisce come i validatori sono ricompensati e puniti, decide quali blocchi accettare e rifiutare e su quale biforcazione della blockchain costruire. +Gasper si trova in cima a una blockchain di proof-of-stake in cui i nodi forniscono ether come un deposito di sicurezza, che può esser distrutto se sono pigri o disonesti nel proporre o convalidare i blocchi. Gasper è il meccanismo che definisce come i validatori sono ricompensati e puniti, decide quali blocchi accettare e rifiutare e su quale biforcazione della blockchain costruire. ## Cos'è la finalità? {#what-is-finality} @@ -34,11 +34,11 @@ La prima condizione sorge perché per finalizzare una catena servono due terzi d ### Incentivi e slashing {#incentives-and-slashing} -I validatori sono ricompensati se propongono e convalidano onestamente dei blocchi. La ricompensa avviene sotto forma di Ether aggiunto al loro stake. Per contro, i validatori che sono assenti e non agiscono quando vengono invitati a farlo, perdono queste ricompense, e talvolta perdono una piccola porzione del loro stake esistente. Le sanzioni per essere offline sono comunque modeste e, nella maggior parte dei casi, ammontano al costo opportunità della mancata ricompensa. Tuttavia, è molto improbabile che alcune azioni dei validatori siano compiute accidentalmente e sono quindi indicative di qualche intento dannoso, come proporre più blocchi per lo stesso slot, attestare più blocchi per lo stesso slot o contraddire i voti del punto di controllo precedente. Si tratta di comportamenti sanzionati più duramente: lo slashing comporta la distruzione di una data parte dello stake del validatore e la sua esclusione dalla rete di validatori. Questo processo richiede 36 giorni. Al giorno 1, è prevista una sanzione iniziale di fino a 0,5 ETH. Successivamente, l'ether del validatore sanzionato "diminuisce" lentamente lungo il periodo d'uscita, ma al Giorno 18 riceve una "sanzione di correlazione", tanto maggiore quanti più validatori subiscono contemporaneamente lo slashing. La sanzione massima è rappresentata dall'intero stake. Queste ricompense e sanzioni sono pensate per incentivare i validatori onesti e disincentivare gli attacchi alla rete. +I validatori sono ricompensati se propongono e convalidano onestamente dei blocchi. La ricompensa avviene sotto forma di Ether aggiunto al loro stake. Per contro, i validatori che sono assenti e non agiscono quando vengono invitati a farlo, perdono queste ricompense, e talvolta perdono una piccola porzione del loro stake esistente. Le sanzioni per essere offline sono comunque modeste e, nella maggior parte dei casi, ammontano al costo opportunità della mancata ricompensa. Tuttavia, è molto improbabile che alcune azioni dei validatori siano compiute accidentalmente e sono quindi indicative di qualche intento dannoso, come proporre più blocchi per lo stesso slot, attestare più blocchi per lo stesso slot o contraddire i voti del punto di controllo precedente. Si tratta di comportamenti sanzionati più duramente: lo slashing comporta la distruzione di una data parte dello stake del validatore e la sua esclusione dalla rete di validatori. Questo processo richiede 36 giorni. Al giorno 1, è prevista una sanzione iniziale di un massimo di 1 ETH. Successivamente, l'ether del validatore sanzionato "diminuisce" lentamente lungo il periodo d'uscita, ma al Giorno 18 riceve una "sanzione di correlazione", tanto maggiore quanti più validatori subiscono contemporaneamente lo slashing. La sanzione massima è rappresentata dall'intero stake. Queste ricompense e sanzioni sono pensate per incentivare i validatori onesti e disincentivare gli attacchi alla rete. ### Perdita per inattività {#inactivity-leak} -Oltre alla sicurezza, Gasper prevede anche una "vitalità plausibile". Questa condizione prevede che finché due terzi dell'ether in staking totale vota onestamente e segue il protocollo, la catena potrà finalizzare, indipendentemente da qualsiasi altra attività (come attacchi, problemi di latenza o slashing). In altre parole, un terzo dell'ether in staking totale deve essere in qualche modo compromesso per impedire alla catena di finalizzare. In Gasper, esiste una linea di difesa aggiuntiva contro la perdita di vitalità, nota come "perdita per inattività". Questo meccanismo si attiva quando la catena non è riuscita a finalizzare per più di quattro epoche. I validatori che non stanno attestando attivamente alla catena di maggioranza subiscono una perdita graduale del loro stake finché la maggioranza non ottiene nuovamente i due terzi dello stake totale, garantendo così che la perdita di vitalità sia solo temporanea. +Oltre alla sicurezza, Gasper fornisce anche una "vitalità plausibile". Questa condizione prevede che finché due terzi dell'ether in staking totale vota onestamente e segue il protocollo, la catena potrà finalizzare, indipendentemente da qualsiasi altra attività (come attacchi, problemi di latenza o slashing). In altre parole, un terzo dell'ether in staking totale deve essere in qualche modo compromesso per impedire alla catena di finalizzare. In Gasper, esiste una linea di difesa aggiuntiva contro la perdita di vitalità, nota come "perdita per inattività". Questo meccanismo si attiva quando la catena non è riuscita a finalizzare per più di quattro epoche. I validatori che non stanno attestando attivamente alla catena di maggioranza subiscono una perdita graduale del loro stake finché la maggioranza non ottiene nuovamente i due terzi dello stake totale, garantendo così che la perdita di vitalità sia solo temporanea. ### Scelta della biforcazione {#fork-choice} @@ -49,4 +49,4 @@ LMD-GHOST sta per "latest message-driven greedy heaviest observed sub-tree". Si ## Letture consigliate {#further-reading} - [Gasper: combinazione di GHOST e Casper](https://arxiv.org/pdf/2003.03052.pdf) -- [Capser the Friendly Finality Gadget](https://arxiv.org/pdf/1710.09437.pdf) +- [Casper the Friendly Finality Gadget](https://arxiv.org/pdf/1710.09437.pdf) diff --git a/src/content/translations/it/developers/docs/consensus-mechanisms/pos/index.md b/src/content/translations/it/developers/docs/consensus-mechanisms/pos/index.md index 2df745a7dc6..860319f20c5 100644 --- a/src/content/translations/it/developers/docs/consensus-mechanisms/pos/index.md +++ b/src/content/translations/it/developers/docs/consensus-mechanisms/pos/index.md @@ -29,13 +29,26 @@ Per partecipare come validatore, un utente deve depositare 32 ETH nel contratto Se con il proof-of-work la tempistica dei blocchi è determinata dalla difficoltà di mining, nel proof-of-stake il tempo invece è fisso. Il tempo in Ethereum di proof-of-stake è diviso in slot (12 secondi) ed epoche (32 slot). In ogni slot viene selezionato casualmente un validatore come propositore di blocchi. Questo validatore è responsabile della creazione di un nuovo blocco e del suo invio ad altri nodi sulla rete. Inoltre, in ogni slot, è scelto casualmente un comitato di validatori, i cui voti sono usati per determinare la validità del blocco proposto. +## Come viene eseguita una transazione nel PoS di Ethereum {#transaction-execution-ethereum-pos} + +Di seguito è fornita una spiegazione end-to-end dell'esecuzione di una transazione nel proof-of-stake di Ethereum. + +1. Un utente crea e firma una [transazione](/developers/docs/transactions/) con la propria chiave privata. Questo processo è solitamente gestito da un portafoglio o da una libreria come [ether.js](https://docs.ethers.io/v5/), [web3js](https://web3js.readthedocs.io/en/v1.8.1/), [web3py](https://web3py.readthedocs.io/en/v5/), ecc., ma in sostanza l'utente sta facendo una richiesta a un nodo utilizzando l'[API JSON-RPC](/developers/docs/apis/json-rpc/) di Ethereum. L'utente definisce l'importo di carburante che è disposto a pagare come mancia a un validatore per incoraggiarlo a includere la transazione in un blocco. Le [mance](/developers/docs/gas/#priority-fee) sono pagate al validatore bruciando la [commissione di base](/developers/docs/gas/#base-fee). +2. La transazione è inviata a un [client di esecuzione](/developers/docs/nodes-and-clients/#execution-client) di Ethereum che ne verifica la validità. Ciò significa assicurarsi che il mittente abbia abbastanza ETH per realizzare la transazione e che l'abbia firmata con la chiave corretta. +3. Se la transazione è valida, il client di esecuzione la aggiunge al proprio mempool locale (elenco di transazioni in sospeso) e inoltre la trasmette agli altri nodi sulla rete di gossip del livello di esecuzione. Quando gli altri nodi ricevono la transazione, la aggiungono anche al proprio mempool locale. Gli utenti avanzati potrebbero astenersi dalla trasmissione della propria transazione, inoltrandola piuttosto a costruttori di blocchi specializzati, come [Flashbots Auction](https://docs.flashbots.net/flashbots-auction/overview). Ciò consente loro di organizzare le transazioni nei blocchi successivi per il massimo profitto ([MEV](/developers/docs/mev/#mev-extraction)). +4. Uno dei nodi della rete è il propositore di blocchi per lo slot corrente, che è stato precedentemente selezionato in modo pseudo-casuale utilizzando RANDAO. Questo nodo è responsabile per la costruzione e trasmissione del blocco successivo da aggiungere alla blockchain di Ethereum e di aggiornare lo stato globale. Il nodo si compone di tre parti: un client di esecuzione, un client di consenso e un client di validazione. Il client di esecuzione raggruppa le transazioni dal mempool locale in un "payload di esecuzione" e le esegue localmente per generare un cambiamento di stato. Questa informazione è passata al client di consenso, dove il payload di esecuzione è impacchettato come parte di un "blocco Beacon" che contiene anche informazioni su ricompense, sanzioni, tagli, attestazioni, ecc., che consentono alla rete di concordare sulla sequenza di blocchi alla testa della catena. La comunicazione tra i client di esecuzione e di consenso è descritta più nel dettaglio in [Connettere i client di consenso e di esecuzione](/developers/docs/networking-layer/#connecting-clients). +5. Gli altri nodi ricevono il nuovo blocco Beacon sulla rete di gossip del livello di consenso. Lo passano al proprio client di esecuzione, dove le transazioni sono rieseguite localmente per garantire che il cambiamento di stato proposto sia valido. Il client di validazione, poi, attesta che il blocco è valido e che è il blocco successivo logico nella sua visione della catena (ossia che si basa sulla catena con il maggior peso di attestazioni, come definito dalle [regole di scelta della diramazione](/developers/docs/consensus-mechanisms/pos/#fork-choice)). Il blocco è aggiunto al database locale in ogni nodo che lo attesta. +6. La transazione può essere considerabile "finalizzata", cioè non annullabile, se è diventata parte di una catena con un "collegamento di super-maggioranza" tra due punti di controllo. I punti di controllo si verificano all'inizio di ogni epoca e, per avere un collegamento di super-maggioranza, entrambi devono essere stati attestati dal 66% degli ETH in staking totali sulla rete. + +Ulteriori dettagli sulla finalità sono riportati di seguito. + ## Finalità {#finality} -Una transazione ha "finalità" nelle reti distribuite quando fa parte di un blocco che non può cambiare senza che un importo significativo di ETH sia bruciato. Su Ethereum di proof-of-stake, questo è gestito usando i blocchi di "punto di controllo" (checkpoint). Il primo blocco in ogni epoca è un punto di controllo. I validatori votano per le coppie di punti di controllo che considerano valide. Se una coppia di punti di controllo attrae voti che rappresentano almeno due terzi degli ETH in staking totali, i punti di controllo sono aggiornati. Il più recente dei due (target), diventa "giustificato". Il primo dei due è già giustificato perché era il "target" nell'epoca precedente. Ora è aggiornato a "finalizzato". Per annullare un blocco finalizzato, un utente malevolo dovrebbe impegnarsi a perdere almeno un terzo dell'offerta totale di ETH in staking. Il motivo esatto di ciò è spiegato in questo [post del blog dell'Ethereum Foundation](https://blog.ethereum.org/2016/05/09/on-settlement-finality/). Poiché la finalità richiede una maggioranza di due terzi, un utente malevolo potrebbe impedire alla rete di raggiungere la finalità votando con un terzo dello stake totale. Esiste un meccanismo per difendersi da questa eventualità: la [perdita per inattività](https://arxiv.org/pdf/2003.03052.pdf). Questa si attiva ogni volta che la catena non riesce a finalizzare per più di quattro epoche. La fuga d'inattività disperde gli ETH messi in staking dai validatori che votano contro la maggioranza, consentendo a quest'ultima di ottenere nuovamente la maggioranza di due terzi e di finalizzare la catena. +Una transazione ha "finalità" nelle reti distribuite quando fa parte di un blocco che non può cambiare senza che un importo significativo di ETH sia bruciato. Su Ethereum di proof-of-stake, questo è gestito usando i blocchi di "punto di controllo". Il primo blocco in ogni epoca è un punto di controllo. I validatori votano per le coppie di punti di controllo che considerano valide. Se una coppia di punti di controllo attrae voti che rappresentano almeno due terzi degli ETH in staking totali, i punti di controllo sono aggiornati. Il più recente dei due (destinazione) diventa "giustificato". Il primo dei due è già giustificato perché era la "destinazione" nell'epoca precedente. Ora è aggiornato a "finalizzato". Per annullare un blocco finalizzato, un utente malevolo dovrebbe impegnarsi a perdere almeno un terzo dell'offerta totale di ETH in staking. Il motivo esatto di ciò è spiegato in questo [post del blog dell'Ethereum Foundation](https://blog.ethereum.org/2016/05/09/on-settlement-finality/). Poiché la finalità richiede una maggioranza di due terzi, un utente malevolo potrebbe impedire alla rete di raggiungere la finalità votando con un terzo dello stake totale. Esiste un meccanismo per difendersi da questa eventualità: la [perdita per inattività](https://eth2book.info/bellatrix/part2/incentives/inactivity). Questa si attiva ogni volta che la catena non riesce a finalizzare per più di quattro epoche. La perdita per inattività disperde gli ETH messi in staking dai validatori che votano contro la maggioranza, consentendo a quest'ultima di ottenere nuovamente la maggioranza di due terzi e di finalizzare la catena. ## Sicurezza cripto-economica {#crypto-economic-security} -Gestire un validatore è un impegno. Il validatore deve mantenere hardware e connettività sufficienti per partecipare alla validazione e proposta dei blocchi. In cambio, il validatore è pagato in ETH (il suo saldo di staking aumenta). D'altra parte, la partecipazione come validatore apre anche nuove strade attraverso le quali gli utenti potrebbero attaccare la rete per profitto personale o sabotaggio. Per impedirlo, i validatori perdono le ricompense in ETH se non partecipano quando richiesto e il loro stake esistente può essere distrutto se si comportano in modo disonesto. Esistono due comportamenti principali considerabili disonesti: proporre diversi blocchi in uno slot singolo (equivoco) e inviare attestazioni contraddittorie. L'importo di ETH oggetto di slashing dipende da quanti validatori sono oggetto sanzionati in contemporanea. Questa è nota come la ["sanzione di correlazione"](https://arxiv.org/pdf/2003.03052.pdf) e può essere minore (circa l'1% dello stake se viene tagliato un singolo validatore) oppure può comportare la distruzione del 100% dello stake del validatore (taglio di massa). È imposta a metà strada tramite un periodo d'uscita forzato che inizia con una sanzione immediata (fino a 0,5 ETH) al Giorno 1, la sanzione di correlazione al Giorno 18 e, infine, l'espulsione dalla rete al Giorno 36. Ogni giorno ricevono modeste sanzioni d'attestazione perché sono presenti sulla rete ma non inviano voti. Tutto questo significa che un attacco coordinato sarebbe molto costoso per un utente malevolo. +Gestire un validatore è un impegno. Il validatore deve mantenere hardware e connettività sufficienti per partecipare alla validazione e proposta dei blocchi. In cambio, il validatore è pagato in ETH (il suo saldo di staking aumenta). D'altra parte, la partecipazione come validatore apre anche nuove strade attraverso le quali gli utenti potrebbero attaccare la rete per profitto personale o sabotaggio. Per impedirlo, i validatori perdono le ricompense in ETH se non partecipano quando richiesto e il loro stake esistente può essere distrutto se si comportano in modo disonesto. Esistono due comportamenti principali considerabili disonesti: proporre diversi blocchi in uno slot singolo (equivoco) e inviare attestazioni contraddittorie. L'importo di ETH oggetto di slashing dipende da quanti validatori sono oggetto sanzionati in contemporanea. Questa è nota come la ["sanzione di correlazione"](https://eth2book.info/bellatrix/part2/incentives/slashing#the-correlation-penalty) e può essere minore (circa l'1% dello stake se viene tagliato un singolo validatore) oppure può comportare la distruzione del 100% dello stake del validatore (taglio di massa). È imposta a metà strada tramite un periodo d'uscita forzato che inizia con una sanzione immediata (fino a 0,5 ETH) al Giorno 1, la sanzione di correlazione al Giorno 18 e, infine, l'espulsione dalla rete al Giorno 36. Ogni giorno ricevono modeste sanzioni d'attestazione perché sono presenti sulla rete ma non inviano voti. Tutto questo significa che un attacco coordinato sarebbe molto costoso per un utente malevolo. ## Scelta della biforcazione {#fork-choice} @@ -43,7 +56,7 @@ Quando la rete opera in modo ottimale ed onesto, c'è sempre e solo un nuovo blo ## Proof-of-stake e sicurezza {#pos-and-security} -La minaccia di un [attacco 51%](https://www.investopedia.com/terms/1/51-attack.asp) esiste ancora sul proof-of-stake, come già nel proof-of-work, ma è ancora più rischiosa per gli utenti malevoli. Un utente malevolo necessiterebbe del 51% degli ETH in staking. Potrebbero poi usare le proprie attestazioni per garantire che la propria biforcazione preferita fosse quella con le maggiori attestazioni accumulate. Il 'peso' delle attestazioni accumulate è quello che i client di consenso usano per determinare la catena corretta, così, l'utente malevolo potrebbe rendere canonica la propria biforcazione. Tuttavia, un punto di forza del proof-of-stake rispetto al proof-of-work è che la community gode di una flessibilità nel preparare un contrattacco. Ad esempio, i validatori onesti potrebbero decidere di continuare a costruire sulla catena di minoranza e ignorare la biforcazione dell'utente malevolo, incoraggiando app, scambi e pool a fare lo stesso. Potrebbero anche decidere di rimuovere forzatamente l'utente malevolo dalla rete e di distruggerne gli ETH in staking. Si tratta di difese economiche forti contro un attacco 51%. +La minaccia di un [attacco 51%](https://www.investopedia.com/terms/1/51-attack.asp) esiste ancora sul proof-of-stake, come già nel proof-of-work, ma è ancora più rischiosa per gli utenti malevoli. Un utente malevolo necessiterebbe del 51% degli ETH in staking. Potrebbero poi usare le proprie attestazioni per garantire che la propria diramazione preferita sia quella con le maggiori attestazioni accumulate. Il 'peso' delle attestazioni accumulate è quello che i client di consenso usano per determinare la catena corretta, così l'utente malevolo potrebbe rendere canonica la propria diramazione. Tuttavia, un punto di forza del proof-of-stake rispetto al proof-of-work è che la community gode di una flessibilità nel preparare un contrattacco. Ad esempio, i validatori onesti potrebbero decidere di continuare a costruire sulla catena di minoranza e ignorare la biforcazione dell'utente malevolo, incoraggiando app, scambi e pool a fare lo stesso. Potrebbero anche decidere di rimuovere forzatamente l'utente malevolo dalla rete e di distruggerne gli ETH in staking. Si tratta di difese economiche forti contro un attacco 51%. Gli attacchi 51% sono solo un tipo di attività malevola. Gli utenti malevoli potrebbero tentare attacchi a lungo raggio (sebbene il gadget di finalità neutralizzi questo vettore d'attacco), a corto raggio 'reorg' (sebbene il potenziamento del propositore e le scadenze dell'attestazione lo mitighino), attacchi di rimbalzo e bilanciamento (anch'essi mitigati dal potenziamento del propositore, fermo restando comunque che sono stati dimostrati solo in condizioni di rete idealizzate) o attacchi valanga (neutralizzati dalla regola degli algoritmi di scelta della biforcazione, di considerare solo l'ultimo messaggio). @@ -62,7 +75,7 @@ In generale è stato dimostrato che il proof-of-stake, come implementato su Ethe -## Letture consigliate {#further-reading} +## Lettura consigliate {#further-reading} - [FAQ Proof of Stake](https://vitalik.ca/general/2017/12/31/pos_faq.html) _Vitalik Buterin_ - [Cos'è il Proof of Stake](https://consensys.net/blog/blockchain-explained/what-is-proof-of-stake/) _ConsenSys_ diff --git a/src/content/translations/it/developers/docs/consensus-mechanisms/pos/keys/index.md b/src/content/translations/it/developers/docs/consensus-mechanisms/pos/keys/index.md new file mode 100644 index 00000000000..af23d775e78 --- /dev/null +++ b/src/content/translations/it/developers/docs/consensus-mechanisms/pos/keys/index.md @@ -0,0 +1,96 @@ +--- +title: Le chiavi nel proof-of-stake di Ethereum +description: Una spiegazione delle chiavi utilizzate nel meccanismo di consenso di proof-of-stake di Ethereum +lang: it +--- + +Ethereum protegge le risorse degli utenti utilizzando la crittografia a chiave pubblica-privata. La chiave pubblica è utilizzata come base per un indirizzo di Ethereum, ossia, è visibile al pubblico generale ed è utilizzata come un identificativo univoco. La chiave privata (o 'segreta') dovrebbe essere accessibile soltanto al proprietario di un conto. La chiave privata è utilizzata per 'firmare' le transazioni e i dati, così che la crittografia possa provare che il detentore approva determinate azioni di una chiave privata specifica. + +Le chiavi di Ethereum sono generate utilizzando la [crittografia a curva ellittica](https://en.wikipedia.org/wiki/Elliptic-curve_cryptography). + +Tuttavia, quando Ethereum è passato dal [proof-of-work](/developers/docs/consensus-mechanisms/pow) al [proof-of-stake](/developers/docs/consensus-mechanisms/pos), è stato aggiunto un nuovo tipo di chiave. Le chiavi originali funzionano esattamente come prima, non ci sono state modifiche alle chiavi basate sulla curva ellittica che proteggono i conti. Tuttavia, gli utenti necessitavano di un nuovo tipo di chiave per partecipare al proof-of-stake mettendo gli ETH in staking ed eseguire i validatori. Questa esigenza è sorta dalle sfide di scalabilità associate al passaggio di molti messaggi tra grandi quantità di validatori, il che richiede un metodo crittografico facilmente aggregabile per ridurre la quantità di comunicazioni necessarie perché la rete raggiunga il consenso. + +Questo nuovo tipo di chiave utilizza lo [schema di firma di **Boneh-Lyn-Shacham (BLS)**](https://wikipedia.org/wiki/BLS_digital_signature). BLS consente un'aggregazione molto efficiente delle firme, ma consente anche di sottoporre a ingegneria inversa le chiavi dei singoli validatori aggregati ed è ideale per gestire le azioni tra validatori. + +## I due tipi di chiavi del validatore {#two-types-of-keys} + +Prima del passaggio al proof-of-stake, gli utenti di Ethereum avevano soltanto una chiave privata basata sulla curva ellittica per accedere ai propri fondi. Con l'introduzione del proof-of-stake, gli utenti che desideravano essere staker in autonomia necessitavano anche di una **chiave del validatore** e di una **chiave di prelievo**. + +### La chiave del validatore {#validator-key} + +La chiave di firma del validatore consiste in due elementi: + +- Chiave **privata** del validatore +- Chiave **pubblica** del validatore + +Lo scopo della chiave privata del validatore è firmare le operazioni sulla catena, quali proposte e attestazioni dei blocchi. Per questo, queste chiavi devono essere tenute in un portafoglio "caldo". + +Questa flessibilità ha il vantaggio di spostare molto rapidamente le chiavi di firma del validatore da un dispositivo a un altro, però se vengono perse o rubate un ladro potrebbe **agire malevolmente** in alcuni modi: + +- Far tagliare il validatore: + - Facendo il propositore e firmando due blocchi Beacon differenti per lo stesso slot + - Facendo l'attestatore e firmando un'attestazione che ne "circonda" un'altra + - Facendo l'attestatore e firmando due attestazioni differenti aventi la stessa destinazione +- Forzare un'uscita volontaria, che impedisce al validatore di mettere in staking e concede l'accesso al suo saldo di ETH al proprietario della chiave di prelievo + +La **chiave pubblica del validatore** è inclusa nei dati della transazione quando un utente deposita gli ETH al contratto di deposito di staking. Questi sono noti come _dati di deposito_ e consentono a Ethereum di identificare il validatore. + +### Credenziali di prelievo {#withdrawal-credentials} + +Ogni validatore ha una proprietà nota come _credenziali di prelievo_. Questo campo di 32 byte inizia con uno `0x00`, che rappresenta le credenziali di prelievo BLS, o uno `0x01`, che rappresenta le credenziali che puntano a un indirizzo di esecuzione. + +I validatori con le chiavi BLS `0x00` devono aggiornare tali credenziali affinché puntino a un indirizzo di esecuzione per poter attivare i pagamenti del saldo in eccesso o il prelievo completo dallo staking. Ciò può essere fatto fornendo un indirizzo di esecuzione nei dati di deposito durante la generazione iniziale della chiave, _O_ utilizzando la chiave di prelievo in un momento successivo per firmare e trasmettere un messaggio `BLSToExecutionChange`. + +### La chiave di prelievo {#withdrawal-key} + +La chiave di prelievo sarà necessaria per aggiornare le credenziali di prelievo affinché puntino a un indirizzo di esecuzione, se non impostato durante il deposito iniziale. Questo consentirà di iniziare a elaborare i pagamenti del saldo in eccesso, nonché di prelevare interamente i propri ETH in staking. + +Proprio come le chiavi del validatore, le chiavi di prelievo consistono in due componenti: + +- Chiave di prelievo **privata** +- Chiave di prelievo **pubblica** + +Perdere questa chiave prima di aggiornare le credenziali di prelievo al tipo `0x01` significa perdere l'accesso al saldo del validatore. Il validatore può ancora firmare le attestazioni e i blocchi poiché queste azioni richiedono la chiave privata del validatore, tuttavia vi è poco o nessun incentivo se le chiavi di prelievo vengono perse. + +Separare le chiavi del validatore dalle chiavi del conto di Ethereum consente a più validatori di essere eseguiti da un singolo utente. + +![schema della chiave del validatore](validator-key-schematic.png) + +## Derivare le chiavi da una frase di seed {#deriving-keys-from-seed} + +Se ogni 32 ETH in staking richiedessero una nuova serie di 2 chiavi completamente indipendenti, la gestione delle chiavi diverrebbe rapidamente scomoda, specialmente per gli utenti che eseguono più validatori. Invece, più chiavi del validatore sono derivabili da un'unica frase segreta comune e memorizzare tale singola frase segreta consente l'accesso a più chiavi del validatore. + +Le [frasi mnemoniche](https://en.bitcoinwiki.org/wiki/Mnemonic_phrase) e i percorsi sono funzionalità prominenti che gli utenti incontrano spesso quando [accedono](https://ethereum.stackexchange.com/questions/19055/what-is-the-difference-between-m-44-60-0-0-and-m-44-60-0) ai propri portafogli. La frase mnemonica è una sequenza di parole che agisce da seed iniziale per una chiave privata. Combinandola con dei dati aggiuntivi, la frase mnemonica genera un hash noto come la 'chiave principale'. Questa può essere vista come la radice di un albero. I rami da questo albero sono derivabili utilizzando un percorso gerarchico così che i nodi figli possano esistere come combinazioni dell'hash del loro nodo genitore e del loro indice nell'albero. Leggi informazioni sugli standard [BIP-32](https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki) e [BIP-19](https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki) per la generazione di chiavi basate sulla frase mnemonica. + +Questi percorsi hanno la seguente struttura, che risulterà familiare agli utenti che hanno interagito con portafogli hardware: + +``` +m/44'/60'/0'/0` +``` + +Gli slash in questo percorso separano i componenti della chiave privata come segue: + +``` +master_key / purpose / coin_type / account / change / address_index +``` + +Questa logica consente agli utenti di collegare quanti più validatori possibili a una singola **frase mnemonica**, poiché la radice dell'albero può essere comune e la differenziazione può verificarsi a livello dei rami. L'utente può **derivare qualsiasi numero di chiavi** dalla frase mnemonica. + +``` + [m / 0] + / + / +[m] - [m / 1] + \ + \ + [m / 2] +``` + +Ogni ramo è separato da uno `/`, quindi `m/2` significa iniziare con la chiave principale e seguire il ramo 2. Nello schema seguente, una singola frase mnemonica è utilizzata per memorizzare tre chiavi di prelievo, ognuna con due validatori associati. + +![logica della chiave del validatore](multiple-keys.png) + +## Lettura consigliate {#further-reading} + +- [Post del blog della Ethereum Foundation di Carl Beekhuizen](https://blog.ethereum.org/2020/05/21/keys/) +- [Generazione delle chiavi BLS12-381 dell'EIP-2333](https://eips.ethereum.org/EIPS/eip-2333) diff --git a/src/content/translations/it/developers/docs/consensus-mechanisms/pos/keys/multiple-keys.png b/src/content/translations/it/developers/docs/consensus-mechanisms/pos/keys/multiple-keys.png new file mode 100644 index 0000000000000000000000000000000000000000..c0a767299da46445c557af7e0e07ea406c636069 GIT binary patch literal 24249 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 M07*qoM6N<$g1+A_tpET3 literal 0 HcmV?d00001 diff --git a/src/content/translations/it/developers/docs/consensus-mechanisms/pos/rewards-and-penalties/index.md b/src/content/translations/it/developers/docs/consensus-mechanisms/pos/rewards-and-penalties/index.md new file mode 100644 index 00000000000..6a133f60680 --- /dev/null +++ b/src/content/translations/it/developers/docs/consensus-mechanisms/pos/rewards-and-penalties/index.md @@ -0,0 +1,90 @@ +--- +title: Ricompense e sanzioni del proof-of-stake +description: Scopri di più sugli incentivi del protocollo nel proof-of-stake di Ethereum. +lang: it +--- + +Ethereum è protetta utilizzando la sua criptovaluta nativa, ether (ETH). Gli operatori dei nodi che desiderano partecipare alla convalida dei blocchi e all'identificazione della testa della catena depositano ether in un contratto intelligente su Ethereum. Quindi sono pagati in ether per eseguire il software del validatore, che verifica la validità dei nuovi blocchi ricevuti tramite la rete peer-to-peer e applica l'algoritmo di scelta della diramazione per identificare la testa della catena. + +Esistono due ruoli principali per un validatore: 1) controllare i nuovi blocchi e "attestarne" la validità, 2) proporre nuovi blocchi quando selezionati casualmente dal gruppo totale di validatori. Se il validatore non riesce a svolgere una di queste mansioni quando richiesto, perde un pagamento di ether. Talvolta, inoltre, i validatori sono incaricati di aggregare le firme e partecipare alle commissioni di sincronizzazione. + +Esistono poi delle azioni molto difficili da compiere per errore e che denotano un intento malevolo, come proporre diversi blocchi per lo stesso slot o attestare più blocchi per lo stesso slot. Questi sono comportamenti "tagliabili" che risultano nel bruciare alcuni importi di ether (fino a 1 ETH) prima che il validatore venga rimosso dalla rete, il che richiede 36 giorni. L'ether del validatore sanzionato si riduce lentamente durante il periodo d'uscita, ma al diciottesimo giorno riceve una "sanzione di correlazione", maggiore quando più validatori sono sanzionati contemporaneamente. La struttura di incentivazione della Beacon Chain, pertanto, premia l'onestà e punisce gli attori disonesti. + +Tutte le ricompense e le sanzioni sono applicate una volta all'epoca. + +Continua a leggere per ulteriori dettagli... + +## Ricompense e sanzioni {#rewards} + +### Ricompense {#rewards} + +I validatori ricevono ricompense quando effettuano voti coerenti con la maggioranza degli altri validatori, quando propongono blocchi e quando partecipano alle commissioni di sincronizzazione. Il valore delle ricompense in ogni epoca è calcolato a partire da una `base_reward` (ricompensa di base). Questa unità fornisce le basi per il calcolo delle ricompense. La`base_reward` rappresenta la ricompensa media ricevuta da un validatore in condizioni ottimali per ogni epoca. Questa è calcolata in base al saldo effettivo del validatore e al numero totale di validatori attivi, come segue: + +``` +base_reward = effective_balance * (base_reward_factor / (base_rewards_per_epoch * sqrt(sum(active_balance)))) +``` + +dove `base_reward_factor` è 64, `base_rewards_per_epoch` è 4 e `sum(active balance)` è l'ether totale in staking tra tutti i validatori attivi. + +Ciò significa che la ricompensa di base è proporzionale al saldo effettivo del validatore ed è inversamente proporzionale al numero di validatori sulla rete. Più validatori ci sono, maggiore sarà l'emissione complessiva (poiché `sqrt(N)`), ma minore sarà la `base_reward` per validatore (come `1/sqrt(N)`). Questi fattori influenzano l'APR per un nodo di staking. Leggi la logica alla base nelle [note di Vitalik](https://notes.ethereum.org/@vbuterin/rkhCgQteN?type=view#Base-rewards). + +La ricompensa totale è quindi calcolata come la somma di cinque componenti, ognuno avente un peso che determina quanto ogni componente aggiunge alla ricompensa totale. I componenti sono: + +``` +1. voto sull'origine: il validatore ha effettuato un voto tempestivo per il punto di controllo di origine corretto +2. voto sulla destinazione: il validatore ha effettuato un voto tempestivo per il punto di controllo di destinazione corretto +3. voto sulla testa: il validatore ha effettuato un voto tempestivo per il blocco di testa corretto +4. ricompensa della commissione di sincronizzazione: il validatore ha partecipato a una commissione di sincronizzazione +5. ricompensa del propositore: il validatore ha proposto un blocco nello slot corretto +``` + +Le ponderazioni per ciascun componente sono le seguenti: + +``` +TIMELY_SOURCE_WEIGHT uint64(14) +TIMELY_TARGET_WEIGHT uint64(26) +TIMELY_HEAD_WEIGHT uint64(14) +SYNC_REWARD_WEIGHT uint64(2) +PROPOSER_WEIGHT uint64(8) +``` + +Questi pesi ammontano a 64. La ricompensa è calcolata come la somma dei pesi applicabili, divisa per 64. Un validatore che ha effettuato tempestivi voti sull'origine, sula destinazione e sulla testa, ha proposto un blocco e ha partecipato a una commissione di sincronizzazione, potrebbe ricevere `64/64 * base_reward == base_reward`. Tuttavia, solitamente un validatore non è un propositore di blocchi, quindi la sua ricompensa massima è `64-8 /64 * base_reward == 7/8 * base_reward`. I validatori che non sono propositori di blocchi né partecipano a una commissione di sincronizzazione possono ricevere `64-8-2 / 64 * base_reward == 6.75/8 * base_reward`. + +È prevista una ricompensa aggiuntiva per incentivare attestazioni rapide. Questa è la `inclusion_delay_reward`. Ha un valore pari alla `base_reward`, moltiplicata per `1/delay`, dove `delay` è il numero di slot che separano la proposta e l'attestazione del blocco. Ad esempio, se l'attestazione è inviata entro uno slot della proposta del blocco, l'attestatore riceve `base_reward * 1/1 == base_reward`. Se l'attestazione arriva nello slot successivo, l'attestatore riceve `base_reward * 1/2` e così via. + +I propositori di blocchi ricevono `8 / 64 * base_reward` per **ogni attestazione valida** inclusa nel blocco, quindi il valore effettivo della ricompensa scala con il numero di validatori attestanti. I propositori di blocchi, inoltre, possono incrementare la propria ricompensa includendo prova del comportamento scorretto di altri validatori nel loro blocco proposto. Queste ricompense sono le "carote" che incoraggiano l'onestà del validatore. Un propositore di blocchi che include il taglio sarà ricompensato con `slashed_validators_effective_balance / 512`. + +### Sanzioni {#penalties} + +Finora abbiamo considerato validatori che si comportano in modo impeccabile, ma quali sono le sanzioni per i validatori che non effettuano tempestivi voti sull'origine, sulla destinazione e sulla testa o lo fanno lentamente? + +Le sanzioni per la mancanza di voti sull'origine e sulla destinazione equivalgono alle ricompense che l'attestatore avrebbe ricevuto se li avesse inviati. Ciò significa che, invece di aggiungere la ricompensa al loro saldo, si vedono rimuovere un valore equivalente dal proprio saldo. Non è presente alcuna sanzione per il mancato voto sulla testa (ossia, i voti di testa sono solo ricompensati, mai sanzionati). Non esiste alcuna sanzione associata all'`inclusion_delay`; la ricompensa, semplicemente, non sarà aggiunta al saldo del validatore. Inoltre, non esiste alcuna sanzione per la mancata proposizione di un blocco. + +Leggi di più sulle ricompense e le sanzioni nelle [specifiche del consenso](https://github.com/ethereum/consensus-specs/blob/dev/specs/altair/beacon-chain.md). Ricompense e sanzioni sono state adeguate nell'aggiornamento di Bellatrix; guarda Danny Ryan e Vitalik discuterne in questo [Video Peep an EIP](https://www.youtube.com/watch?v=iaAEGs1DMgQ). + +## Taglio {#slashing} + +Il taglio è un'azione più grave che risulta nella rimozione forzata di un validatore dalla rete e nella perdita associata del suo ether in staking. Esistono tre modi in cui un validatore può essere tagliato, tutti equivalenti alla proposta o attestazione disonesta dei blocchi: + +- Proponendo e firmando due blocchi diversi per lo stesso slot +- Attestando un blocco che ne "circonda" un altro (modificando di fatto lo storico) +- Eseguendo un "doppio voto", attestando due candidati per lo stesso blocco + +Se queste azioni sono rilevate, il validatore viene tagliato. Ciò significa che 1/32 del suo ether in staking (fino a un massimo di 1 ether) viene immediatamente bruciato, poi inizia un periodo di rimozione di 36 giorni. Durante tale periodo di rimozione, lo stake dei validatori si riduce gradualmente. A metà periodo (18° giorno), è applicata una sanzione aggiuntiva la cui entità scala con il totale di ether in staking di tutti i validatori tagliati nei 36 giorni precedenti all'evento di taglio. Ciò significa che più validatori sono tagliati, maggiore è l'entità del taglio. Il taglio massimo è il saldo effettivo di tutti i validatori tagliati (cioè, se molti validatori sono tagliati, potrebbero perdere il proprio intero stake). D'altra parte, un evento di taglio singolo e isolato brucia soltanto una piccola porzione dello stake del validatore. Questa sanzione intermedia che scala con il numero di validatori tagliati è detta "sanzione di correlazione". + +## Perdita per inattività {#inactivity-leak} + +Se la Beacon Chain ha passato oltre quattro epoche senza finalizzare, viene attivato un protocollo d'emergenza detto "perdita per inattività". Lo scopo ultimo della perdita per inattività è creare le condizioni necessarie perché la catena recuperi la finalità. Come spiegato sopra, la finalità richiede una maggioranza dei 2/3 dell'ether in staking totale per accordarsi sui punti di controllo di origine e di destinazione. Se validatori che rappresentano oltre 1/3 dei validatori totali vanno offline o non riescono a inviare le attestazioni corrette, non è possibile che una supermaggioranza dei 2/3 finalizzi i punti di controllo. La perdita per inattività consente allo stake appartenente ai validatori inattivi di disperdersi gradualmente finché non controllano meno di 1/3 dello stake totale, consentendo ai validatori attivi rimanenti di finalizzare la catena. Indipendentemente da quanto sia grande il gruppo di validatori inattivi, i rimanenti validatori attivi alla fine controlleranno più di 2/3 dello stake. La perdita di stake è un forte incentivo per i validatori inattivi a riattivarsi appena possibile! Uno scenario di perdita per inattività è stato riscontrato sulla rete di prova Medalla quando <66% di validatori attivi è riuscito ad arrivare al consenso sulla testa corrente della blockchain. La perdita per inattività è stata attivata e la finalità è stata infine recuperata! + +La progettazione di ricompense, sanzioni e tagli della Beacon Chain incoraggia i singoli validatori a comportarsi correttamente. Tuttavia, da tali scelte di progettazione emerge un sistema che incentiva fortemente la distribuzione equa dei validatori tra i vari client e dovrebbe disincentivare fortemente il dominio di un singolo client. + +## Ulteriori letture {#further-reading} + +- [Aggiornare Ethereum: Il livello d'incentivazione](https://eth2book.info/altair/part2/incentives) +- [Incentivi nel protocollo ibrido Casper di Ethereum](https://arxiv.org/pdf/1903.04205.pdf) +- [Specifiche annotate di Vitalik](https://github.com/ethereum/annotated-spec/blob/master/phase0/beacon-chain.md#rewards-and-penalties-1) +- [Suggerimenti di prevenzione del taglio di Eth2](https://medium.com/prysmatic-labs/eth2-slashing-prevention-tips-f6faa5025f50) + +_Fonti_ + +- _[https://benjaminion.xyz/eth2-annotated-spec/phase0/beacon-chain/](https://benjaminion.xyz/eth2-annotated-spec/phase0/beacon-chain/)_ diff --git a/src/content/translations/it/developers/docs/data-structures-and-encoding/patricia-merkle-trie/index.md b/src/content/translations/it/developers/docs/data-structures-and-encoding/patricia-merkle-trie/index.md index 7c66cdb4adb..68e8d93143f 100644 --- a/src/content/translations/it/developers/docs/data-structures-and-encoding/patricia-merkle-trie/index.md +++ b/src/content/translations/it/developers/docs/data-structures-and-encoding/patricia-merkle-trie/index.md @@ -1,32 +1,33 @@ --- -title: Alberi di Patricia Merkle -description: Introduzione ai Trie di Patricia Merkle. +title: Trie di Patricia Merkle +description: Introduzione al Trie di Patricia Merkle. lang: it sidebarDepth: 2 --- -Un Trie di Patricia Merkle fornisce una struttura di dati autenticata crittograficamente, utilizzabile per memorizzare tutte le coppie `(chiave, valore) `. +Un Trie di Patricia Merkle fornisce una struttura di dati autenticata crittograficamente, utilizzabile per memorizzare tutte le associazioni `(key, value)` (chiave, valore). -I Trie di Patricia Merkle sono completamente deterministici, quindi è garantito che un trie con le stesse coppie `(chiave, valore)` sia identico, fino all'ultimo byte. Ciò significa che hanno lo stesso hash di root, fornendo così il sacro graal dell'efficienza di `O(log(n))` per inserimenti, ricerche ed eliminazioni. Inoltre, sono più semplici da comprendere e programmare rispetto ad alternative più complesse basate sul confronto, come gli alberi rosso-neri. +I Trie di Patricia Merkle sono interamente deterministici, a significare che è garantito che degli alberi con le stesse associazioni `(key, value)` siano identici, fino all'ultimo byte. Ciò significa che hanno lo stesso hash di root, fornendo il Sacro Graal dell'efficienza di `O(log(n))` per inserimenti, ricerche ed eliminazioni. Inoltre, sono più semplici da comprendere e programmare rispetto alle più complesse alternative basate sul confronto, come gli alberi rosso-nero. ## Prerequisiti {#prerequisites} -Per comprendere questa pagina è utile avere una conoscenza di base degli alberi di Merkle e della serializzazione. +Per meglio comprendere questa pagina, sarebbe utile avere una conoscenza di base di [hash](https://en.wikipedia.org/wiki/Hash_function), [alberi di Merkle](https://en.wikipedia.org/wiki/Merkle_tree), [trie](https://en.wikipedia.org/wiki/Trie) e [serializzazione](https://en.wikipedia.org/wiki/Serialization). ## Trie della radice di base {#basic-radix-tries} In un trie della radice di base, ogni nodo si presenta così: ``` - [i0, i1 ... in, value] - + [i_0, i_1 ... i_n, value] ``` -Dove `i0 ... in` rappresenta i simboli dell'alfabeto (spesso binari o esadecimali), `value` è il valore terminale al nodo e i valori negli slot `i0 ... in` sono `NULL` o puntatori ad (nel nostro caso, hash di) altri nodi. Questo forma un'archiviazione di base `(chiave, valore)`. Ad esempio, se sei interessato al valore correntemente mappato a `dog` nel trie, prima devi convertire `dog` in lettere dell'alfabeto (ottenendo `64 6f 67`) e poi scendere dal trie seguendo il percorso, fino a trovare il valore. Dunque, prima dovresti cercare l'hash della radice in un DB flat chiave/valore per trovare il nodo di root del trie (che è un insieme di chiavi ad altri nodi), usando come chiave il valore all'indice `6` (cercando nel DB chiave/valore) per ottenere il nodo al livello inferiore successivo, poi dovresti selezionarne l'indice `4` per cercare il valore successivo, poi prendere l'indice `6` e così via, finché, una volta seguito il percorso: `root -> 6 -> 4 -> 6 -> 15 -> 6 -> 7`, dovresti leggere il valore che hai e restituire il risultato. +Dove `i_0 ... i_n` rappresenta i simboli dell'alfabeto (spesso binari o esadecimali), `value` è il valore terminale al nodo e i valori negli spazi `i_0, i_1 ... i_n` sono `NULL` o puntano ad (nel nostro caso, a hash di) altri nodi. Questo forma un'archiviazione di base `(chiave, valore)`. + +Ipotizziamo che si voglia utilizzare una struttura dei dati ad albero radicato per perdurare un ordine su una serie di coppie chiave-valore. Per trovare il valore attualmente mappato alla chiave `dog` nell'albero, occorre convertire prima `dog` in lettere dell'alfabeto (restituendo `64 6f 67`) e poi discendere l'albero seguendo tale percorso, fino a trovare il valore. Quindi, iniziare guardando l'hash radice in un database chiave/valore piatto per trovare il nodo radice dell'albero. È rappresentato come un insieme di chiavi che puntano ad altri nodi. Occorre utilizzare il valore all'indice `6` come una chiave e cercarlo nel database chiave/valore piatto per ottenere il nodo al livello inferiore. Poi si deve scegliere l'indice `4` per cercare il valore successivo, quindi, l'indice `6` e così via, finché, una volta seguito il percorso: `root -> 6 -> 4 -> 6 -> 15 -> 6 -> 7` si cerca il valore del nodo e si trova il risultato. Esiste una differenza tra cercare qualcosa nel 'trie' e nel 'DB' flat chiave/valore sottostante. Entrambi definiscono degli schemi chiave/valori, ma il DB sottostante può effettuare una tradizionale ricerca di una chiave in 1 passaggio. Cercare una chiave nel trie richiede diverse ricerche DB sottostanti, per ottenere il valore finale descritto sopra. Facciamo riferimento a quest'ultimo come `path`, per eliminare ogni ambiguità. -Le operazioni di aggiornamento ed eliminazione per i trie di radice sono semplici e possono essere approssimativamente così definite: +Le operazioni di aggiornamento ed eliminazione per gli alberi radicati sono definibili come segue: ``` def update(node,path,value): @@ -54,37 +55,39 @@ Le operazioni di aggiornamento ed eliminazione per i trie di radice sono semplic newindex = delete(curnode[path[0]],path[1:]) newnode[path[0]] = newindex - if len(filter(x -> x is not NULL, newnode)) == 0: + if all(x is NULL for x in newnode): return NULL else: db.put(hash(newnode),newnode) return hash(newnode) ``` -La parte "Merkle" del trie della radice nasce dal fatto che, come puntatore al nodo, è usato un hash crittografico deterministico di un nodo (per ogni ricerca nel DB chiave/valore `key == keccak256(rlp(value))`, piuttosto che una qualche posizione della memoria a 32 o 64 bit, come potrebbe avvenire in un trie più tradizionale implementato in C. Questo fornisce una forma d'autenticazione crittografica alla struttura dei dati; se l'hash della radice di un dato trie è pubblicamente noto, allora chiunque può fornire una prova che il trie abbia un dato valore a un percorso specifico, fornendo gli hash di ogni nodo che si unisce a un valore specifico alla radice dell'albero. È impossibile per un utente malevolo fornire una prova di una coppia (percorso, valore) che non esiste, poiché l'hash della radice è basato in definitiva su tutti gli hash successivi, quindi, ogni modifica modificherebbe l'hash della radice. +Un albero Radicato di "Merkle" è costruito collegando i nodi utilizzando sinossi di hash crittografici generati deterministicamente. Questo indirizzamento dei contenuti (nel database chiave/valore `key == keccak256(rlp(value))`) fornisce l'autenticazione crittografica dei dati archiviati. Se l'hash radice di un dato albero è noto pubblicamente, allora chiunque può fornire una prova che l'albero includa un dato valore in un percorso specifico, fornendo gli hash di ogni nodo che unisce un valore specifico alla radice dell'albero. + +È impossibile, per un utente malevolo, fornire una prova di una coppia `(percorso, valore)` che non esiste, poiché l'hash radice in definitiva si basa su tutti gli hash inferiori. Qualsiasi modifica sottostante modificherebbe l'hash radice. -Pur attraversando un percorso un nibble alla volta, come descritto sopra, gran parte dei nodi contiene un insieme di 17 elementi. Un indice per ogni possibile valore tenuto dal carattere esadecimale successivo (nibble) nel percorso e uno per detenere il valore di destinazione finale se il percorso è stato attraversato interamente. Questi nodi dell'array di 17 elementi sono detti nodi del `branch`. +Chiameremo "nibble" l'unità atomica di un albero radicato (es., un singolo carattere esadecimale o un numero binario a 4 bit). Attraversando un percorso un "nibble" per volta, come descritto sopra, i nodi possono fare riferimento massimale a 16 figli, ma includono un elemento `value`. Dunque, li rappresentiamo come un insieme di lunghezza 17. Chiamiamo questi insiemi da 17 elementi "nodi ramo". ## Trie di Patricia Merkle {#merkle-patricia-trees} -I trie della radice presentano però una grande limitazione: sono inefficienti. Se si vuole memorizzare solo una coppia (percorso, valore) in cui si trova il percorso (nel caso del trie di stato di Ethereum), lunga 64 caratteri (numero di nibble in `bytes32`), servirà oltre un kilobyte di spazio aggiuntivo per memorizzare un livello per carattere, e per ogni ricerca o eliminazione verranno eseguiti tutti i 64 passaggi. Il trie di Patricia risolve questo problema. +Gli alberi radicati hanno una grande limitazione: non sono efficienti. Se si desidera memorizzare una coppia `(percorso, valore)` dove il percorso, come in Ethereum, è lungo 64 caratteri (il numero di "nibble" in `bytes32`), servirà oltre un kilobyte di spazio aggiuntivo per memorizzare un livello per carattere e, ogni ricerca o eliminazione, richiederebbe tutti e 64 i passaggi. L'albero di Patricia introdotto di seguito risolve tale problema. ### Ottimizzazione {#optimization} -I trie di Patricia Merkle risolvono il problema d'inefficienza aggiungendo una certa complessità aggiuntiva alla struttura dei dati. Un nodo in un trie di Patricia Merkle è uno dei seguenti: +Un nodo in un trie di Patricia Merkle è uno dei seguenti: 1. `NULL` (rappresentato come la stringa vuota) 2. `branch` Un nodo da 17 elementi `[ v0 ... v15, vt ]` 3. `leaf` Un nodo da 2 elementi `[ encodedPath, value ]` 4. `extension` Un nodo da 2 elementi `[ encodedPath, key ]` -Con i percorsi da 64 caratteri è inevitabile che dopo aver attraversato i primi pochi livelli del trie, si raggiunge un nodo privo di alcun percorso divergente per almeno parte del percorso. Sarebbe ingenuo richiedere che un nodo simile abbia valori vuoti in ogni indice (uno per ognuno dei 16 caratteri esadecimali), oltre all'indice di destinazione (accanto al nibble nel percorso). Al contrario, accorciamo la discesa configurando un nodo `extension` con la forma `[ encodedPath, key ]`, in cui `encodedPath` contiene il "percorso parziale" per saltare avanti (usando la codifica compatta sopra descritta) e la `key` è per la prossima ricerca DB. +Con i percorsi da 64 caratteri è inevitabile che dopo aver attraversato i primi pochi livelli del trie, si raggiunge un nodo privo di alcun percorso divergente per almeno parte del percorso. Per evitare di dover creare 15 nodi `NULL` sparsi lungo il percorso, abbreviamo la discesa configurando un nodo `extension` della forma `[ encodedPath, key ]`, in cui `encodedPath` contiene il "percorso parziale" a cui saltare (utilizzando una codifica compatta spiegata di seguito) e `key` è per la prossima ricerca sul database. -Nel caso di un nodo `leaf`, determinabile da un flag nel primo nibble di `encodedPath`, si verifica la suddetta situazione e anche il "percorso parziale" per saltare avanti completa la restante parte di un percorso. In questo caso, `value` è lo stesso valore di destinazione. +Per un nodo `leaf`, contrassegnabile da un flag nel primo nibble del `encodedPath`, il percorso codifica tutti i frammenti precedenti del percorso del nodo e possiamo cercare direttamente il `value`. -Questa ottimizzazione introduce però delle ambiguità. +Tale suddetta ottimizzazione, tuttavia, introduce delle ambiguità. -Attraversando i percorsi in nibble, potremmo finire con un numero dispari di nibble da attraversare, ma poiché tutti i dati sono memorizzati nel formato `bytes`, non è possibile distinguere, ad esempio, tra il nibble `1` e i nibble `01` (entrambi devono essere memorizzati come `<01>`). Per specificare una lunghezza dispari, il percorso parziale è prefissato con un flag. +Attraversando i percorsi in "nibble", potremmo finire con un numero dispari di nibble da attraversare; questo perché tutti i dati sono memorizzati nel fromato `bytes`. Non è possibile differenziare tra, ad esempio, il nibble `1` e i nibble `01` (entrambi devono essere memorizzati come `<01>`). Per specificare una lunghezza dispari, il percorso parziale è prefissato con un flag. ### Specifica: codifica compatta della sequenza esadecimale con terminatore facoltativo {#specification} @@ -178,7 +181,7 @@ Ora, costruiamo un trie di questo tipo con le seguenti coppie chiave/valore nel hashE: [ <17>, [ <>, <>, <>, <>, <>, <>, [ <35>, 'coin' ], <>, <>, <>, <>, <>, <>, <>, <>, <>, 'puppy' ] ] ``` -Quando in un nodo si fa riferimento a un altro nodo, viene inserito `H(rlp.encode(x))`, dove `H(x) = keccak256(x) if len(x) >= 32 else x` e `rlp.encode` è la funzione di codifica [RLP](/fundamentals/rlp). +Quando in un nodo si fa riferimento a un altro nodo, viene inserito `H(rlp.encode(x))`, dove `H(x) = keccak256(x) if len(x) >= 32 else x` e `rlp.encode` è la funzione di codifica [RLP](/developers/docs/data-structures-and-encoding/rlp). Nota che, aggiornando un trie, si deve memorizzare la coppia chiave/valore `(keccak256(x), x)` in una tabella di ricerca persistente _se_ il nodo appena creato ha una lunghezza >= 32. Se invece il nodo è inferiore a questo valore, non è necessario memorizzare nulla, poiché la funzione f(x) = x è reversibile. @@ -194,11 +197,11 @@ Dall'intestazione di un blocco ci sono 3 radici provenienti da 3 di questi trie. ### Trie di Stato {#state-trie} -Esiste un trie di stato globale che si aggiorna nel tempo. In esso, un `path` è sempre: `keccak256(ethereumAddress)` e un `value` è sempre: `rlp(ethereumAccount)`. Più nello specifico, un `account` di Ethereum è un insieme di 4 elementi di `[nonce,balance,storageRoot,codeHash]`. A questo punto, vale la pena di notare che questo `storageRoot` è la radice di un altro trie di Patricia: +Esiste un albero di stato globale ed è aggiornato ogni volta che un client elabora un blocco. In esso, un `path` è sempre: `keccak256(ethereumAddress)` e un `value` è sempre: `rlp(ethereumAccount)`. Più nello specifico, un `account` di Ethereum è un insieme di 4 elementi di `[nonce,balance,storageRoot,codeHash]`. A questo punto, vale la pena di notare che tale `storageRoot` è la radice di un altro albero di Patricia: ### Trie d'archiviazione {#storage-trie} -Il trie d'archiviazione è dove risiedono _tutti_ i dati del contratto. Esiste un trie d'archiviazione distinto per ogni conto. Per recuperare i valori a posizioni d'archiviazione specifiche a un dato indirizzo, servono l'indirizzo d'archiviazione, la posizione intera dei dati memorizzati in archiviazione e l'ID del blocco. Questi possono poi essere passati come argomenti al `eth_getStorageAt`, definito nell'API JSON-RPC, es. per recuperare i dati allo slot d'archiviazione 0 per l'indirizzo `0x295a70b2de5e3953354a6a8344e616ed314d7251`: +Il trie d'archiviazione è dove risiedono _tutti_ i dati del contratto. Esiste un albero d'archiviazione separato per ogni conto. Per recuperare i valori a posizioni d'archiviazione specifiche a un dato indirizzo, servono l'indirizzo d'archiviazione, la posizione intera dei dati memorizzati in archiviazione e l'ID del blocco. Questi possono essere passati come argomenti al `eth_getStorageAt`, definito nell'APi di JSON-RPC, es., per recuperare i dati nello slot 0 d'archiviazione per l'indirizzo `0x295a70b2de5e3953354a6a8344e616ed314d7251`: ``` curl -X POST --data '{"jsonrpc":"2.0", "method": "eth_getStorageAt", "params": ["0x295a70b2de5e3953354a6a8344e616ed314d7251", "0x0", "latest"], "id": 1}' localhost:8545 @@ -209,8 +212,8 @@ curl -X POST --data '{"jsonrpc":"2.0", "method": "eth_getStorageAt", "params": [ Il recupero di altri elementi in archiviazione è lievemente più impegnativo, poiché deve essere calcolata prima la posizione nel trie d'archiviazione. La posizione è calcolata come l'hash `keccak256` dell'indirizzo e della posizione d'archiviazione, entrambi con padding di zeri a sinistra, fino a una lunghezza di 32 byte. Ad esempio, la posizione dei dati nello slot d'archiviazione 1 per l'indirizzo `0x391694e7e0b0cce554cb130d723a9d27458f9298` è: -```keccak256(decodeHex("000000000000000000000000391694e7e0b0cce554cb130d723a9d27458f9298" + "0000000000000000000000000000000000000000000000000000000000000001")) - +``` +keccak256(decodeHex("000000000000000000000000391694e7e0b0cce554cb130d723a9d27458f9298" + "0000000000000000000000000000000000000000000000000000000000000001")) ``` In una console Geth, si può calcolare in questo modo: @@ -232,7 +235,7 @@ curl -X POST --data '{"jsonrpc":"2.0", "method": "eth_getStorageAt", "params": [ ### Trie delle transazioni {#transaction-trie} -Esiste un trie delle transazioni distinto per ogni blocco, che memorizza ancora coppie (chiave, valore). Qui, un percorso è: rlp(transactionIndex) che rappresenta la chiave corrispondente a un valore determinato da: +Esiste un albero di transazioni separato per ogni blocco, anch'esso che memorizza coppie `(key, value)`. Qui, un percorso è: `rlp(transactionIndex)`, rappresentante la chiave corrispondente a un valore determinato da: ``` if legacyTx: @@ -245,11 +248,12 @@ Maggiori informazioni a riguardo si possono trovare nella documentazione [EIP 27 ### Trie delle ricevute {#receipts-trie} -Ogni blocco ha il proprio trie delle ricevute. Qui, un `path` è: `rlp(transactionIndex)`. `transactionIndex` è il suo indice nel blocco estratto. Il trie delle ricevute non si aggiorna mai. Analogamente al trie delle transazioni, esistono ricevute correnti e legacy. Per interrogare una ricevuta specifica nel trie delle ricevute, servono l'indice della transazione nel suo blocco, il payload della ricevuta e il tipo di transazione. La ricevuta restituita può essere di tipo `Receipt`, definita come la concatenazione del `transaction type` e del `transaction payload`, oppure può essere di tipo `LegacyReceipt`, definito come `rlp([status, cumulativeGasUsed, logsBloom, logs])`. +Ogni blocco ha il proprio trie delle ricevute. Qui, un `path` è: `rlp(transactionIndex)`. `transactionIndex` è il suo indice nel blocco estratto. L'albero delle ricevute non è mai aggiornato. Analogamento all'albero delle Transazioni, esistono ricevute correnti e legacy. Per interrogare una ricevuta specifica nell'albero delle Ricevute, l'indice della transazione nel suo blocco, il carico utile di ricevute e il tipo di transazione sono necessari. La ricevuta Restituita può essere di tipo `Receipt`, definita come la concatenazione di `TransactionType` e `ReceiptPayload` o di tipo `LegacyReceipt`, definibile come `rlp([status, cumulativeGasUsed, logsBloom, logs])`. Maggiori informazioni a riguardo si possono trovare nella documentazione [EIP 2718](https://eips.ethereum.org/EIPS/eip-2718). ## Letture consigliate {#further-reading} -- [Trie di Patricia Merkle modificato - Come Ethereum salva uno stato](https://medium.com/codechain/modified-merkle-patricia-trie-how-ethereum-saves-a-state-e6d7555078dd) -- [Merkling su Ethereum](https://blog.ethereum.org/2015/11/15/merkling-in-ethereum/) -[Comprendere il trie di Ethereum](https://easythereentropy.wordpress.com/2014/06/04/understanding-the-ethereum-trie/) +- [Albero di Patricia Merkle Modificato - Come Ethereum risparmia uno stato](https://medium.com/codechain/modified-merkle-patricia-trie-how-ethereum-saves-a-state-e6d7555078dd) +- ["Merkling" su Ethereum](https://blog.ethereum.org/2015/11/15/merkling-in-ethereum/) +- [Comprendere l'albero di Ethereum](https://easythereentropy.wordpress.com/2014/06/04/understanding-the-ethereum-trie/) diff --git a/src/content/translations/it/developers/docs/data-structures-and-encoding/rlp/index.md b/src/content/translations/it/developers/docs/data-structures-and-encoding/rlp/index.md index c54595153eb..98a092eee96 100644 --- a/src/content/translations/it/developers/docs/data-structures-and-encoding/rlp/index.md +++ b/src/content/translations/it/developers/docs/data-structures-and-encoding/rlp/index.md @@ -43,27 +43,27 @@ In codice è: ```python def rlp_encode(input): if isinstance(input,str): - if len(input) == 1 and ord(input) < 0x80: return input - else: return encode_length(len(input), 0x80) + input - elif isinstance(input,list): + if len(input) == 1 and ord(input) < 0x80: + return input + return encode_length(len(input), 0x80) + input + elif isinstance(input, list): output = '' - for item in input: output += rlp_encode(item) + for item in input: + output += rlp_encode(item) return encode_length(len(output), 0xc0) + output -def encode_length(L,offset): +def encode_length(L, offset): if L < 56: return chr(L + offset) elif L < 256**8: BL = to_binary(L) return chr(len(BL) + offset + 55) + BL - else: - raise Exception("input troppo lungo") + raise Exception("input too long") def to_binary(x): if x == 0: return '' - else: - return to_binary(int(x / 256)) + chr(x % 256) + return to_binary(int(x / 256)) + chr(x % 256) ``` ## Esempi {#examples} @@ -137,8 +137,7 @@ def decode_length(input): lenOfListLen = prefix - 0xf7 listLen = to_integer(substr(input, 1, lenOfListLen)) return (1 + lenOfListLen, listLen, list) - else: - raise Exception("input don't conform RLP encoding form") + raise Exception("input does not conform to RLP encoding form") def to_integer(b): length = len(b) @@ -146,8 +145,7 @@ def to_integer(b): raise Exception("input is null") elif length == 1: return ord(b[0]) - else: - return ord(substr(b, -1)) + to_integer(substr(b, 0, -1)) * 256 + return ord(substr(b, -1)) + to_integer(substr(b, 0, -1)) * 256 ``` ## Letture consigliate {#further-reading} @@ -158,4 +156,4 @@ def to_integer(b): ## Argomenti correlati {#related-topics} -- [Trie di Patricia Merkle](/developers/docs/data-structures-and-encoding/patricia-merkle-tries) +- [Trie di Patricia Merkle](/developers/docs/data-structures-and-encoding/patricia-merkle-trie) diff --git a/src/content/translations/it/developers/docs/data-structures-and-encoding/ssz/index.md b/src/content/translations/it/developers/docs/data-structures-and-encoding/ssz/index.md index cecebc6efde..14b76b7d1a0 100644 --- a/src/content/translations/it/developers/docs/data-structures-and-encoding/ssz/index.md +++ b/src/content/translations/it/developers/docs/data-structures-and-encoding/ssz/index.md @@ -109,7 +109,7 @@ L’oggetto serializzato SSZ può essere poi merkle-zzato, ovvero trasformato in Ci sono anche casi in cui le foglie dell'albero non si distribuiscono naturalmente e uniformemente come nell'esempio di cui sopra. Ad esempio, la foglia 4 potrebbe essere un contenitore con diversi elementi che richiedono che sia aggiunta ulteriore "profondità" all'albero di Merkle, creando un albero non equilibrato. -Invece di far riferimento a questi elementi dell'albero come foglia X, nodo X, ecc., possiamo dare loro indici generalizzati che iniziano con radice = 1, contando da sinistra a destra per ogni livello. Questo è l'indice generalizzato spiegato sopra. Ogni elemento nell'elenco serializzato ha un indice generalizzato pari a `2**depth + idx`, dove idx è la sua posizione indicizzata a zero nell'oggetto serializzato e la profondità è il numero di livelli nell'albero di Merkle, determinabile come la radice quadrata del numero di elementi (foglie). +Invece di far riferimento a questi elementi dell'albero come foglia X, nodo X, ecc., possiamo dare loro indici generalizzati che iniziano con radice = 1, contando da sinistra a destra per ogni livello. Questo è l'indice generalizzato spiegato sopra. Ogni elemento nell'elenco serializzato ha un indice generalizzato pari a `2**depth + idx`, dove idx è la posizione indicizzata a zero nell'oggetto serializzato e "depth" è il numero di livelli nell'albero di Merkle, determinabile come il logaritmo a base due del numero di elementi (foglie). ## Indici generalizzati {#generalized-indices} diff --git a/src/content/translations/it/developers/docs/data-structures-and-encoding/web3-secret-storage-definition/index.md b/src/content/translations/it/developers/docs/data-structures-and-encoding/web3-secret-storage-definition/index.md new file mode 100644 index 00000000000..f3d88e86043 --- /dev/null +++ b/src/content/translations/it/developers/docs/data-structures-and-encoding/web3-secret-storage-definition/index.md @@ -0,0 +1,189 @@ +--- +title: Definizione di archiviazione segreta di Web3 +description: Definizione formale di archiviazione segreta di Web3 +lang: it +sidebarDepth: 2 +--- + +Per far funzionare la tua app su Ethereum, puoi utilizzare l'oggetto web3 fornito dalla libreria di web3.js. Fondamentalmente, comunica a un nodo locale tramite chiamate RPC. Il [web3](https://github.com/ethereum/web3.js/) funziona con qualsiasi nodo di Ethereum che esponga un livello RPC. + +Il `web3` contiene l'oggetto `eth`: web3.eth. + +```js +var fs = require("fs") +var recognizer = require("ethereum-keyfile-recognizer") + +fs.readFile("keyfile.json", (err, data) => { + var json = JSON.parse(data) + var result = recognizer(json) +}) + +/** result + * [ 'web3', 3 ] web3 (v3) keyfile + * [ 'ethersale', undefined ] Ethersale keyfile + * null invalid keyfile + */ +``` + +Questo documenta la **versione 3** della Definizione di Archiviazione Segreta del Web3. + +## Definizione {#definition} + +La codifica e decofica effettiva del file resta largamente immutata dalla versione 1, tranne nel fatto che l'algoritmo cripto non è più fisso ad AES-128-CBC (AES-128-CTR è ora il requisito minimo). Gran parte dei significati e dell'algoritmo sono simili alla versione 1, tranne `mac`, indicato come lo SHA3 (keccak-256) delle concatenazioni dei secondi 16 byte da sinistra della chiave derivata, insieme al `ciphertext` completo. + +I file della chiave segreta sono memorizzati direttamente in `~/.web3/keystore` (per i sistemi come Unix) e `~/AppData/Web3/keystore` (per Windows). Potrebbero esser denominati in qualsiasi modo, ma una buona convenzione è `.json`, dove `` è l'UUID da 128 bit dato alla chiave segreta (un proxy che preserva l'anonimato per l'indirizzo della chiave segreta). + +Tutti questi file sono associati a una password. Per derivare una certa chiave segreta del file `.json`, deriva prima la chiave di crittografia del file; ciò avviene prendendone la password e passandola per una funzione di derivazione della chiave, come descritto dalla chaive `kdf`. I parametri statici e dinamici dipendenti da KDF alla funzione KDF sono descritti nella chiave `kdfparams`. + +PBKDF2 dev'essere supportato da tutte le implementazioni minimamente conformi, denotato però: + +- `kdf`: `pbkdf2` + +Per PBKDF2, kdfparams include: + +- `prf`: deve essere `hmac-sha256` (potrebbe essere esteso in futuro); +- `c`: numero di iterazioni; +- `salt`: salt passati a PBKDF; +- `dklen`: lunghezza per la chiave derivata. Dev'essere >= 32. + +Una volta derivata la chiave del file, dovrebbe essere verificata tramite la derivazione del MAC. Il MAC dovrebbe essere calcolato come l'hash SHA3 (keccak-256) dell'insieme di byte formato come le concatenazioni dei secondi 16 byte da sinistra della chiave derivata, con i contenuti della chiave `ciphertext`, cioè: + +```js +KECCAK(DK[16..31] ++ ) +``` + +(dove `++` è l'operatore di concatenazione) + +Questo valore dovrebbe essere confrontato ai contenuti della chiave `mac`; se sono differenti, una password alternativa dovrebbe essere richiesta (o l'operazione dovrebbe essere annullata). + +Dopo la verifica della chiave del file, il testo di cifratura (la chiave `ciphertext` nel file) potrebbe essere decrittografato usando l'algoritmo crittografico simmetrico specificato dalla chiave `cipher` e parametrato tramite la chiave `cipherparams`. Se la dimensione della chiave derivata e la dimensione della chiave dell'algoritmo non corrispondono, lo zero è riempito, i byte a destra della chiave derivata dovrebbero essere utilizzati come la chiave per l'algoritmo. + +Tutte le implementazioni minimamente conformi devono supportare l'algoritmo AES-128-CTR, denotato tramite: + +- `cipher: aes-128-ctr` + +Questa cifratura prende i seguenti parametri, dati come chiavi alla chiave cipherparams: + +- `iv`: Vettore di inizializzazione a 128 bit per la cifratura. + +La chiave per la cifra è composta dai 16 bit a sinistra della chiave derivata, ossia, `DK[0..15]` + +La creazione/crittografia di una chiave segreta dovrebbe essere essenzialmente l'inverso di queste istruzioni. Assicurati che `uuid`, `salt` e `iv` siano effettivamente casuali. + +Oltre al campo `version`, che dovrebbe agire da identificatore "rigido" della versione, le implementazioni potrebbero anche utilizzare `minorversion` per tracciare le modifiche più piccole e non divisibili al formato. + +## Vettori di Prova {#test-vectors} + +Dettagli: + +- `Address`: `008aeeda4d805471df9b2a5b0f38a0c3bcba786b` +- `ICAP`: `XE542A5PZHH8PYIZUBEJEO0MFWRAPPIL67` +- `UUID`: `3198bc9c-6672-5ab3-d9954942343ae5b6` +- `Password`: `testpassword` +- `Secret`: `7a28b5ba57c53603b0b07b56bba752f7784bf506fa95edc395f5cf6c7514fe9d` + +### PBKDF2-SHA-256 {#PBKDF2-SHA-256} + +Vettore di prova che utilizza `AES-128-CTR` e `PBKDF2-SHA-256`: + +Contenuti del file di `~/.web3/keystore/3198bc9c-6672-5ab3-d9954942343ae5b6.json`: + +```json +{ + "crypto": { + "cipher": "aes-128-ctr", + "cipherparams": { + "iv": "6087dab2f9fdbbfaddc31a909735c1e6" + }, + "ciphertext": "5318b4d5bcd28de64ee5559e671353e16f075ecae9f99c7a79a38af5f869aa46", + "kdf": "pbkdf2", + "kdfparams": { + "c": 262144, + "dklen": 32, + "prf": "hmac-sha256", + "salt": "ae3cd4e7013836a3df6bd7241b12db061dbe2c6785853cce422d148a624ce0bd" + }, + "mac": "517ead924a9d0dc3124507e3393d175ce3ff7c1e96529c6c555ce9e51205e9b2" + }, + "id": "3198bc9c-6672-5ab3-d995-4942343ae5b6", + "version": 3 +} +``` + +**Intermedi**: + +`Derived key`: `f06d69cdc7da0faffb1008270bca38f5e31891a3a773950e6d0fea48a7188551` `MAC Body`: `e31891a3a773950e6d0fea48a71885515318b4d5bcd28de64ee5559e671353e16f075ecae9f99c7a79a38af5f869aa46` `MAC`: `517ead924a9d0dc3124507e3393d175ce3ff7c1e96529c6c555ce9e51205e9b2` `Cipher key`: `f06d69cdc7da0faffb1008270bca38f5` + +### Scrypt {#scrypt} + +Vettore di prova che utilizza AES-128-CTR e Scrypt: + +```json +{ + "crypto": { + "cipher": "aes-128-ctr", + "cipherparams": { + "iv": "83dbcc02d8ccb40e466191a123791e0e" + }, + "ciphertext": "d172bf743a674da9cdad04534d56926ef8358534d458fffccd4e6ad2fbde479c", + "kdf": "scrypt", + "kdfparams": { + "dklen": 32, + "n": 262144, + "p": 8, + "r": 1, + "salt": "ab0c7876052600dd703518d6fc3fe8984592145b591fc8fb5c6d43190334ba19" + }, + "mac": "2103ac29920d71da29f15d75b4a16dbe95cfd7ff8faea1056c33131d846e3097" + }, + "id": "3198bc9c-6672-5ab3-d995-4942343ae5b6", + "version": 3 +} +``` + +**Intermedi**: + +`Derived key`: `fac192ceb5fd772906bea3e118a69e8bbb5cc24229e20d8766fd298291bba6bd` `MAC Body`: `bb5cc24229e20d8766fd298291bba6bdd172bf743a674da9cdad04534d56926ef8358534d458fffccd4e6ad2fbde479c` `MAC`: `2103ac29920d71da29f15d75b4a16dbe95cfd7ff8faea1056c33131d846e3097` `Cipher key`: `fac192ceb5fd772906bea3e118a69e8b` + +## Alterazioni dalla Versione 1 {#alterations-from-v2} + +Questa versione corregge diverse incongruenze con la versione 1 pubblicata [qui](https://github.com/ethereum/homestead-guide/blob/master/old-docs-for-reference/go-ethereum-wiki.rst/Passphrase-protected-key-store-spec.rst). In breve sono: + +- Capitalizzazione ingiustificata e incoerente (scrypt minuscolo, maiuscole miste in Kdf e MAC maiuscolo). +- Indirizzo non necessario e compromette l'anonimato. +- `Salt` è intrinsecamente un parametro della funzione di derivazione della chiave e deve essere associato a esso, non con le cripto in generale. +- _SaltLen_ non necessario (basta derivarlo da Salt). +- La funzione di derivazione della chiave è data, ma l'algoritmo cripto è specificato rigidamente. +- `Version` è intrinsecamente numerica, ma è comunque una stringa (il versionamento strutturato sarebbe possibile con una stringa, ma è considerabile fuori ambito per un formato di file di configurazione che cambia raramnte). +- `KDF` e `cipher` sono concetti notoriamente fratelli, seppur organizzati diversamente. +- `MAC` è calcolato tramite un pezzo di dati indipendente dalla spaziatura(!) + +Le modifiche sono state apportate al formato per restituire il seguente file, funzionalmente equivalente all'esempio dato sulla pagina collegata in precedenza: + +```json +{ + "crypto": { + "cipher": "aes-128-cbc", + "ciphertext": "07533e172414bfa50e99dba4a0ce603f654ebfa1ff46277c3e0c577fdc87f6bb4e4fe16c5a94ce6ce14cfa069821ef9b", + "cipherparams": { + "iv": "16d67ba0ce5a339ff2f07951253e6ba8" + }, + "kdf": "scrypt", + "kdfparams": { + "dklen": 32, + "n": 262144, + "p": 1, + "r": 8, + "salt": "06870e5e6a24e183a5c807bd1c43afd86d573f7db303ff4853d135cd0fd3fe91" + }, + "mac": "8ccded24da2e99a11d48cda146f9cc8213eb423e2ea0d8427f41c3be414424dd", + "version": 1 + }, + "id": "0498f19a-59db-4d54-ac95-33901b4f1870", + "version": 2 +} +``` + +## Modifiche dalla Versione 2 {#alterations-from-v2} + +La versione 2 era un'implementazione iniziale in C++ con numerosi bug. Tutti gli elementi essenziali restano immutati da essa. diff --git a/src/content/translations/it/developers/docs/networking-layer/cons_client_net_layer.png b/src/content/translations/it/developers/docs/networking-layer/cons_client_net_layer.png new file mode 100644 index 0000000000000000000000000000000000000000..825d2c579c0ca7434171267a43ea972f16133ae5 GIT binary patch literal 15236 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 literal 0 HcmV?d00001 diff --git a/src/content/translations/it/developers/docs/networking-layer/index.md b/src/content/translations/it/developers/docs/networking-layer/index.md index 35b1eab2685..51054ee0e54 100644 --- a/src/content/translations/it/developers/docs/networking-layer/index.md +++ b/src/content/translations/it/developers/docs/networking-layer/index.md @@ -13,7 +13,7 @@ I client d'esecuzione compiono gossip sulle transazioni sulla rete tra pari del ## Prerequisiti {#prerequisites} -Per comprendere questa pagina è utile avere alcune nozioni di [nodi e client](/src/content/developers/docs/nodes-and-clients/) di Ethereum. +Per comprendere questa pagina è utile avere alcune nozioni di [nodi e client](/developers/docs/nodes-and-clients/) di Ethereum. ## Il livello d'esecuzione {#execution-layer} @@ -41,6 +41,8 @@ Una volta che il nodo riceve un elenco di vicini dal nodo d'avvio, inizia con og start client --> connect to bootnode --> bond to bootnode --> find neighbours --> bond to neighbours ``` +I client di esecuzione stanno attualmente utilizzando il protocollo di ricerca [Discv4](https://github.com/ethereum/devp2p/blob/master/discv4.md) e c'è uno sforzo attivo per migrare al protocollo [Discv5](https://github.com/ethereum/devp2p/tree/master/discv5). + #### ENR: Ethereum Node Records {#enr} L’[Ethereum Node Records (ENR)](/developers/docs/networking-layer/network-addresses/) è un oggetto contenente tre elementi fondamentali: una firma (hash dei contenuti del registro creato secondo qualche schema d'identità acconsentito), una sequenza numerica che monitora le modifiche al registro e un elenco arbitrario di coppie chiave-valore. Questo è un formato a prova di futuro che consente uno scambio più facile di informazioni identificative tra nuovi peer ed è preferibile rispetto al formato dell'[indirizzo di rete](/developers/docs/networking-layer/network-addresses) per i nodi di Ethereum. @@ -53,7 +55,7 @@ UDP non supporta le funzioni di controllo degli errori, reinvio di pacchetti non DevP2P è esso stesso un intero stack di protocolli che Ethereum implementa per stabilire e mantenere la rete tra peer-to-peer. Dopo che i nuovi nodi accedono alla rete, le loro interazioni sono governate dai protocolli nello stack [DevP2P](https://github.com/ethereum/devp2p). Questi si basano tutti su TCP e includono il protocollo di trasporto RLPx, il protocollo via cavo e diversi protocolli secondari. [RLPx](https://github.com/ethereum/devp2p/blob/master/rlpx.md) è il protocollo che governa iniziazione, autenticazione e manutenzione delle sessioni tra nodi. RLPx codifica i messaggi usando il RLP (Recursive Length Prefix), un metodo molto efficiente in termini di spazio che codifica i dati in una struttura minimale per l'invio tra nodi. -Una sessione di RLPx tra due nodi inizia con un "handshaking" crittografico iniziale, in cui il nodo invia un messaggio d'autenticazione, poi verificato dal peer. Se la verifica va a buon fine, il peer genera un messaggio di riconoscimento dell'autenticazione da restituire al nodo iniziatore. Si tratta di un processo di scambio di chiavi che consente ai nodi di comunicare privatamente e in sicurezza. Un "handshaking" crittografico andato a buon fine attiva poi entrambi i nodi spingendoli a inviare un messaggio di "saluto" (hello) all'altro "via cavo". Il protocollo via cavo è avviato da uno scambio di messaggi di saluto andato a buon fine. +Una sessione di RLPx tra due nodi inizia con un "handshaking" crittografico iniziale, in cui il nodo invia un messaggio d'autenticazione, poi verificato dal peer. Se la verifica va a buon fine, il peer genera un messaggio di riconoscimento dell'autenticazione da restituire al nodo iniziatore. Si tratta di un processo di scambio di chiavi che consente ai nodi di comunicare privatamente e in sicurezza. Un "handshaking" crittografico andato a buon fine attiva poi entrambi i nodi spingendoli a inviare un messaggio "hello" all'altro "on the wire". Il protocollo via cavo è avviato da uno scambio di messaggi di saluto andato a buon fine. Il messaggio di saluto contiene: @@ -79,7 +81,7 @@ Si tratta di un protocollo minimale per sincronizzare i client leggeri. Tradizio #### Snap {#snap} -Il [protocollo snap](https://github.com/ethereum/devp2p/blob/master/caps/snap.md#ethereum-snapshot-protocol-snap) è un'estensione facoltativa che consente ai peer di scambiare istantanee degli stati recenti, consentendo ai peer di verificare i dati del conto e d'archiviazione senza dover scaricare i nodi dell'albero di Merkle intermedi. +Il [protocollo snap](https://github.com/ethereum/devp2p/blob/master/caps/snap.md#ethereum-snapshot-protocol-snap) è un'estensione ottica che consente ai pari di scambiare istantanee degli stati recenti, consentendo ai pari di verificare i dati del conto e dell'archiviazione senza dover scaricare nodi intermedi dell'albero di Merkle. #### Wit (witness protocol) {#wit} @@ -144,9 +146,7 @@ Un sommario del flusso di controllo è mostrato di seguito, con indicazione tra Una volta che il blocco è stato attestato da sufficienti validatori, è aggiunto alla testa della catena, giustificato e, infine, finalizzato. -![](cons_client_net_layer.png) - -![](exe_client_net_layer.png) +![](cons_client_net_layer.png) ![](exe_client_net_layer.png) Schematica del livello di rete per i client del consenso e d'esecuzione, da [ethresear.ch](https://ethresear.ch/t/eth1-eth2-client-relationship/7248) diff --git a/src/content/translations/it/developers/docs/networking-layer/network-addresses/index.md b/src/content/translations/it/developers/docs/networking-layer/network-addresses/index.md index dcea64414f3..f681c1c7f35 100644 --- a/src/content/translations/it/developers/docs/networking-layer/network-addresses/index.md +++ b/src/content/translations/it/developers/docs/networking-layer/network-addresses/index.md @@ -35,6 +35,4 @@ Ethereum Node Records (ENR) è un formato standardizzato per gli indirizzi di re ## Letture consigliate {#further-reading} -- [EIP-778: Ethereum Node Records (ENR)](https://eips.ethereum.org/EIPS/eip-778) -- [Indirizzi di rete su Ethereum](https://dean.eigenmann.me/blog/2020/01/21/network-addresses-in-ethereum/) -- [LibP2P: Multiaddr-Enode-ENR?!](https://consensys.net/diligence/blog/2020/09/libp2p-multiaddr-enode-enr/) +[EIP-778: Ethereum Node Records (ENR)](https://eips.ethereum.org/EIPS/eip-778) [Indirizzi di rete su Ethereum](https://dean.eigenmann.me/blog/2020/01/21/network-addresses-in-ethereum/) [LibP2P: Multiaddr-Enode-ENR?!](https://consensys.net/diligence/blog/2020/09/libp2p-multiaddr-enode-enr/) diff --git a/src/content/translations/it/developers/docs/nodes-and-clients/archive-nodes/index.md b/src/content/translations/it/developers/docs/nodes-and-clients/archive-nodes/index.md new file mode 100644 index 00000000000..6038e1119f3 --- /dev/null +++ b/src/content/translations/it/developers/docs/nodes-and-clients/archive-nodes/index.md @@ -0,0 +1,80 @@ +--- +title: Nodo archivio di Ethereum +description: Una panoramica dei nodi archivio +lang: it +sidebarDepth: 2 +--- + +Un nodo archivio è un'istanza di un client di Ethereum configurata per creare un archivio di tutti gli stati storici. È uno strumento utile per certi casi d'uso ma potrebbe essere più complicato da eseguire di un nodo completo. + +## Prerequisiti {#prerequisites} + +Dovresti comprendere il concetto di [nodo di Ethereum](/developers/docs/nodes-and-clients/), [la sua architettura](/developers/docs/nodes-and-clients/node-architecture/), le [strategie di sincronizzazione](https://ethereum.org/en/developers/docs/nodes-and-clients/#sync-modes) e le pratiche della sua [esecuzione](/developers/docs/nodes-and-clients/run-a-node/) e [utilizzo](/developers/docs/apis/json-rpc/). + +## Cos'è un nodo archivio + +Per cogliere l'importanza di un nodo archivio, chiariamo il concetto di "stato". Ethereum è definibile come una _macchina di stato basata sulle transazioni_. Consiste in conti e applicazioni che eseguono transazioni, i cui stati cambiano. I dati globali con informazioni su ogni conto e contratto sono memorizzati in un database ad albero, detto stato. Questo è gestito dal client del livello di esecuzione (EL) e include: + +- Saldi e nonce dei conti +- Codice del contratto e archiviazione +- Dati correlati al consenso, es. il Contratto di deposito di staking + +Per interagire con la rete, verificare e produrre nuovi blocchi, i client di Ethereum devono tenere il passo con i cambiamenti più recenti (la punta della catena) e, dunque, con lo stato corrente. Un client del livello di esecuzione configurato come un nodo completo verifica e segue l'ultimo stato della rete, memorizzando nella cache solo gli ultimi stati, ad esempio quello associato agli ultimi 128 blocchi, così che possa gestire le riorganizzazioni della catena e fornire accesso rapido ai dati recenti. Lo stato recente è ciò che tutti i client necessitano per verificare le transazioni in entrata e per utilizzare la rete. + +Puoi immaginare lo stato come un'istantanea momentanea della rete a un dato blocco e l'archivio come una riproduzione dello storico. + +Gli stati storici possono essere rimossi in sicurezza, poiché non sono necessari per l'operatività della rete e sarebbe inutilmente ridondante per il client mantenere tutti i dati obsoleti. Gli stati esistenti prima di qualche blocco recente (es. i 128 blocchi prima della testa) sono di fatto gettati via. I nodi completi mantengono soltanto i dati storici della blockchain (blocchi e transazioni) e istantanee storiche occasionali utilizzabili per rigenerare i vecchi stati su richiesta. Lo fanno eseguendo nuovamente le vecchie transazioni nell'EVM, il che può essere impegnativo a livello computazionale quando lo stato desiderato è distante dall'istantanea più vicina. + +Tuttavia, ciò significa che accedere a uno stato storico su un nodo completo produce numerosi calcoli. Il client potrebbe dover eseguire tutte le transazioni precedenti e calcolare uno stato storico dalla genesi. I nodi archivio risolvono tale problema, memorizzando non solo gli stati più recenti ma ogni stato storico creato dopo ogni blocco. Fondamentalmente raggiungono un compromesso con maggiori requisiti di spazio su disco. + +È importante notare che la rete non dipende dal fatto che i nodi archivio mantengano e forniscano tutti i dati storici. Come detto sopra, tutti gli stati intermedi storici sono derivabili su un nodo completo. Le transazioni sono memorizzate da qualsiasi nodo completo (attualmente meno di 400G) e riproducibili per costruire l'intero archivio. + +### Casi d'uso + +L'utilizzo regolare di Ethereum, come inviare transazioni, distribuire contratti, verificare il consenso, ecc., non richiede l'accesso agli stati storici. Gli utenti non necessitano mai di un nodo archivio per un'interazione standard con la rete. + +Il principale vantaggio dell'archivio di stato è un accesso rapido alle richieste sugli stati storici. Ad esempio, il nodo archivio restituirà prontamente risultati come: + +- _Qual era il saldo di ETH del conto 0x1337... al blocco 15537393?_ +- _Qual era il saldo del token 0x nel contratto 0x al blocco 1920000?_ + +Come spiegato sopra, un nodo completo dovrebbe generare questi dati dall'esecuzione dell'EVM, utilizzando CPU e richiedendo tempo. I nodi archivio vi accedono sul disco e servono immediatamente le risposte. Questa è un'utile funzionalità per certe parti dell'infrastruttura, ad esempio: + +- Fornitori di servizi come i block explorer +- Ricercatori +- Analisti della sicurezza +- Sviluppatori di Dapp +- Controllo e conformità + +Esistono anche vari [servizi](/developers/docs/nodes-and-clients/nodes-as-a-service/) gratuiti che consentono l'accesso a dati storici. Essendo più impegnativo eseguire un nodo archivio, questo accesso è per lo più limitato e funziona soltanto per l'accesso occasionale. Se il tuo progetto richiede l'accesso costante ai dati storici, dovresti considerare di eseguirne uno tu stesso. + +## Implementazioni e utilizzi + +Il nodo archivio, in questo contesto, indica i dati serviti dai client del livello di esecuzione rivolti agli utenti mentre gestiscono il database di stato e forniscono gli endpoint JSON-RPC. Opzioni di configurazione, tempi di sincronizzazione e dimensioni del database potrebbero variare a seconda del client. Per i dettagli, sei pregato di fare riferimento alla documentazione fornita dal tuo client. + +Prima di avviare il tuo nodo archivio, scopri le differenze tra i client e, in particolare, i vari [requisiti hardware](/developers/docs/nodes-and-clients/run-a-node/#requirements). Gran parte dei client non è ottimizzata per questa funzionalità e i loro archivi richiedono oltre 12TB di spazio. Per contro, le implementazioni come Erigon possono memorizzare gli stessi dati in meno di 3TB, il che li rende il metodo più efficace per eseguire un nodo archivio. + +## Pratiche consigliate + +Oltre ai [consigli generali per eseguire un nodo](developers/docs/nodes-and-clients/run-a-node/), un nodo archivio potrebbe avere requisiti maggiori in termini di hardware e manutenzione. Considerando le [funzionalità chiave](https://github.com/ledgerwatch/erigon#key-features) di Erigon, l'approccio più pratico è utilizzare l'implementazione del client di [Erigon](https://ethereum.org/en/developers/docs/nodes-and-clients/#erigon). + +### Hardware + +Assicurati sempre di verificare i requisiti hardware per una data modalità nella documentazione di un client. Il principale requisito per i nodi archivio è lo spazio su disco. A seconda del client, varia da 3TB a 12TB. Anche se gli HDD potrebbero essere considerati la migliore soluzione per grandi quantità di dati, sincronizzare e aggiornare costantemente la testa della catena richiederà dischi SSD. I dischi [SATA](https://www.cleverfiles.com/help/sata-hard-drive.html) sono abbastanza buoni ma dovrebbero essere di una qualità affidabile, almeno [TLC](https://blog.synology.com/tlc-vs-qlc-ssds-what-are-the-differences). I dischi possono esser montati in un computer fisso o un server dotato di un numero sufficiente di slot. Tali dispositivi dedicati sono ideali per eseguire nodi con tempi di disponibilità elevati. È assolutamente possibile eseguirli su un laptop, ma la portabilità comporterà un costo aggiuntivo. + +Tutti i dati devono entrare in un volume, dunque i dischi devono essere uniti, ad esempio con [RAID0](https://en.wikipedia.org/wiki/Standard_RAID_levels#RAID_0) o [LVM](https://web.mit.edu/rhel-doc/5/RHEL-5-manual/Deployment_Guide-en-US/ch-lvm.html). Inoltre, potrebbe valere la pena di considerare l'utilizzo di [ZFS](https://en.wikipedia.org/wiki/ZFS) poiché supporta la "Copy-on-write", che assicura che i dati siano scritti correttamente senza alcun errore di basso livello. + +Per una maggiore stabilità e sicurezza nel prevenire la corruzione accidentale del database, specialmente in una configurazione professionale, prendi in considerazione di utilizzare la [memoria ECC](https://en.wikipedia.org/wiki/ECC_memory), se il tuo sistema la supporta. Generalmente si consiglia che le dimensioni della RAM siano le stesse richieste per un nodo completo, ma maggiori quantità di RAM possono aiutare a velocizzare la sincronizzazione. + +Durante la sincronizzazione iniziale, i client in modalità archivio eseguiranno ogni transazione dalla genesi. La velocità di esecuzione è per lo più limitata dalla CPU, quindi una CPU più veloce può aiutare con i tempi della sincronizzazione iniziale. Sul computer del consumatore medio, la sincronizzazione iniziale può richiedere fino a un mese. + +## Letture consigliate {#further-reading} + +- [Nodo completo vs nodo archivio di Ethereum](https://www.quicknode.com/guides/infrastructure/ethereum-full-node-vs-archive-node) - _QuickNode, settembre 2022_ +- [Costruire il proprio nodo archivio di Ethereum](https://tjayrush.medium.com/building-your-own-ethereum-archive-node-72c014affc09) - _Thomas Jay Rush, agosto 2021_ +- [Come configurare Erigon, RPC di Erigon e TrueBlocks (scrape e API) come servizi](https://magnushansson.xyz/blog_posts/crypto_defi/2022-01-10-Erigon-Trueblocks) _– Magnus Hansson, aggiornato a settembre 2022_ + +## Argomenti correlati {#related-topics} + +- [ Nodi e client](/developers/docs/nodes-and-clients/) +- [Eseguire un nodo](/developers/docs/nodes-and-clients/run-a-node/) diff --git a/src/content/translations/it/developers/docs/nodes-and-clients/bootnodes/index.md b/src/content/translations/it/developers/docs/nodes-and-clients/bootnodes/index.md new file mode 100644 index 00000000000..151ea0ce135 --- /dev/null +++ b/src/content/translations/it/developers/docs/nodes-and-clients/bootnodes/index.md @@ -0,0 +1,31 @@ +--- +title: Introduzione ai nodi d'avvio di Ethereum +description: Le informazioni di base necessarie per comprendere i nodi d'avvio +lang: it +--- + +Quando un nuovo nodo si unisce alla rete di Ethereum, deve connettersi ai nodi già sulla rete per poter poi scoprire nuovi pari. Questi punti d'accesso alla rete di Ethereum sono detti nodi d'avvio. I client ne contengono solitamente un elenco a codifica fissa. Questi nodi d'avvio sono tipicamente eseguiti dal team delle operazioni di sviluppo della Ethereum Foundation o dai team degli stessi client. Nota che i nodi d'avvio non equivalgono ai nodi statici. I nodi statici sono chiamati ripetutamente, mentre i nodi d'avvio sono chiamati soltanto se non esistono abbastanza pari a cui connettersi e se un nodo necessita di avviare qualche nuova connessione. + +## Connettersi a un nodo d'avvio {#connect-to-a-bootnode} + +Gran parte dei client contiene un elenco integrato di nodi d'avvio, ma potresti voler anche eseguire il tuo o utilizzarne uno che non appartenga all'elenco a codifica fissa del client. In questo caso, puoi specificarli all'avvio del tuo client come segue (l'esempio è per Geth, consulta la documentazione del tuo client): + +``` +geth --bootnodes "enode://@:" +``` + +## Eseguire un nodo d'avvio {#run-a-bootnode} + +I nodi d'avvio sono nodi completi non posti dietro una NAT ([Traduzione dell'indirizzo di rete](https://www.geeksforgeeks.org/network-address-translation-nat/)). Ogni nodo completo può agire da nodo d'avvio a condizione che sia pubblicamente disponibile. + +Quando avvii un nodo, dovrebbe registrare il tuo [enode](/developers/docs/networking-layer/network-addresses/#enode), un identificativo pubblico utilizzabile dagli altri per connettersi al tuo nodo. + +L'enode è solitamente rigenerato a ogni riavvio, quindi assicurati di consultare la documentazione del tuo client su come generare un enode persistente per il tuo nodo d'avvio. + +Per poter essere un buon nodo d'avvio è una buona idea incrementare il numero massimo di pari che possono connettersi a esso. Eseguire un nodo d'avvio con molti pari aumenterà significativamente i requisiti della larghezza di banda. + +## Nodi d'avvio disponibili {#available-bootnodes} + +Un elenco di nodi d'avvio integrati in go-ethereum si può trovare [qui](https://github.com/ethereum/go-ethereum/blob/master/params/bootnodes.go#L23). Questi nodi d'avvio sono mantenuti dalla Ethereum Foundation e dal team di go-ethereum. + +Sono disponibili altri elenchi di nodi d'avvio tenuti da volontari. Assicurati di includere sempre almeno un nodo d'avvio ufficiale, altrimenti potresti subire un attacco eclipse. diff --git a/src/content/translations/it/developers/docs/nodes-and-clients/client-diversity/index.md b/src/content/translations/it/developers/docs/nodes-and-clients/client-diversity/index.md index ec8d3a68399..5510803080c 100644 --- a/src/content/translations/it/developers/docs/nodes-and-clients/client-diversity/index.md +++ b/src/content/translations/it/developers/docs/nodes-and-clients/client-diversity/index.md @@ -75,7 +75,9 @@ Per "indirizzare" la diversità dei client non basta che i singoli utenti scelga [Teku](https://consensys.net/knowledge-base/ethereum-2/teku/) -[Lodestar](https://github.com/ChainSafe/lodestar) - _In fase di revisione e controllo_ +[Lodestar](https://github.com/ChainSafe/lodestar) + +[Prysm](https://docs.prylabs.network/docs/getting-started) Gli utenti tecnici possono aiutare ad accelerare questo processo scrivendo più tutorial e documentazioni per i client di minoranza e incoraggiando i propri peer che eseguono dei nodi a migrare dai client dominanti. Le guide per passare a un client di consenso di minoranza sono disponibili su [clientdiversity.org](https://clientdiversity.org/). @@ -86,9 +88,7 @@ Diversi pannelli di controllo forniscono statistiche sulla diversità dei client **Livello di consenso:** - [Rated.network](https://www.rated.network/) -- [clientdiversity.org](https://clientdiversity.org/) - -**Livello di esecuzione:** +- [clientdiversity.org](https://clientdiversity.org/) **Livello di esecuzione:** - [execution-diversity.info](https://execution-diversity.info/) - [Ethernodes](https://ethernodes.org/) diff --git a/src/content/translations/it/developers/docs/nodes-and-clients/eth1eth2client.png b/src/content/translations/it/developers/docs/nodes-and-clients/eth1eth2client.png new file mode 100644 index 0000000000000000000000000000000000000000..047b9d3e56709b826d91b3b3f2ff4f2e6b6ad596 GIT binary patch literal 73626 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 z

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 N8mihV6-w4&{{vXx0z?1+ literal 0 HcmV?d00001 diff --git a/src/content/translations/it/developers/docs/nodes-and-clients/index.md b/src/content/translations/it/developers/docs/nodes-and-clients/index.md index 7a255e4b04e..7a7c1cdb097 100644 --- a/src/content/translations/it/developers/docs/nodes-and-clients/index.md +++ b/src/content/translations/it/developers/docs/nodes-and-clients/index.md @@ -69,28 +69,28 @@ Se desideri [eseguire il tuo nodo](/developers/docs/nodes-and-clients/run-a-node ### Nodo leggero {#light-node} -Invece di scaricare ogni blocco, i nodi leggeri scaricano le intestazioni dei blocchi. Queste contengono solo le informazioni sommarie sui contenuti dei blocchi. Ogni altra informazione richiesta dal nodo leggero viene richiesta dal nodo completo. Il nodo leggero può quindi verificare in modo indipendente i dati che riceve rispetto alle radici di stato nelle intestazioni dei blocchi. I nodi leggeri consentono agli utenti di partecipare alla rete Ethereum senza l'hardware potente o l'elevata larghezza di banda necessari per eseguire i nodi completi. Infine, i nodi leggeri potrebbero funzionare su telefoni cellulari o dispositivi embedded. I nodi leggeri non partecipano al consenso (ossia non possono essere miner/validatori), ma possono accedere alla blockchain di Ethereum con la stessa funzionalità di un nodo completo. +Invece di scaricare ogni blocco, i nodi leggeri scaricano le intestazioni dei blocchi. Queste contengono solo le informazioni sommarie sui contenuti dei blocchi. Ogni altra informazione richiesta dal nodo leggero viene richiesta dal nodo completo. Il nodo leggero può quindi verificare in modo indipendente i dati che riceve rispetto alle radici di stato nelle intestazioni dei blocchi. I nodi leggeri consentono agli utenti di partecipare alla rete Ethereum senza l'hardware potente o l'elevata larghezza di banda necessari per eseguire i nodi completi. Infine, i nodi leggeri potrebbero funzionare su telefoni cellulari o dispositivi embedded. I nodi leggeri non partecipano al consenso (es. non possono essere validatori/miner), ma possono accedere alla blockchain di Ethereum con la stessa sicurezza e avendo le stesse funzioni garantite ai nodi completi. -Il client di esecuzione Geth include un'opzione di [sincronizzazione leggera](https://github.com/ethereum/devp2p/blob/master/caps/les.md). Tuttavia, un nodo leggero di Geth si affida ai nodi completi che servono i dati del nodo leggero. Pochi nodi completi scelgono di servire i dati dei nodi leggeri, a significare che questi ultimi non riescono spesso a trovare pari. Al momento non esiste alcun client leggero pronto per la produzione sul livello di consenso; ce ne sono però diversi in fase di sviluppo. +I client leggeri sono un'area di sviluppo attivo per Ethereum, e ci aspettiamo presto di vedere nuovi client leggeri per i livelli di consenso e i livelli di esecuzione. Esistono anche dei percorsi potenziali per fornire i dati dei client leggeri sulla [rete di gossip](https://www.ethportal.net/). Questi sono vantaggiosi perché la rete di gossip potrebbe supportare una rete di nodi leggeri senza richiedere ai nodi completi di rispondere alle richieste. -Esistono anche dei percorsi potenziali per fornire i dati dei client leggeri sulla [rete di gossip](https://www.ethportal.net/). Questi sono vantaggiosi perché la rete di gossip potrebbe supportare una rete di nodi leggeri senza richiedere ai nodi completi di rispondere alle richieste. - -Ethereum non supporta ancora una grande popolazione di nodi leggeri, ma il supporto dei nodi leggeri è un'area in cui si prevede uno sviluppo rapido nel futuro più prossimo. +Ethereum non supporta ancora una grande popolazione di nodi leggeri, ma il supporto dei nodi leggeri è un'area in cui si prevede uno sviluppo rapido nel futuro più prossimo. In particolare, client come [Nimbus](https://nimbus.team/), [Helios](https://github.com/a16z/helios), and [LodeStar](https://lodestar.chainsafe.io/) sono attualmente fortemente focalizzati sui nodi leggeri. ### Nodo archivio {#archive-node} - Memorizza tutto ciò che è presente nel nodo completo e crea un archivio degli stati storici. È necessario se desideri consultare qualcosa come il saldo di un conto al blocco #4.000.000 o testare in modo semplice e affidabile le tue serie di transazioni, senza minarle usando il tracciamento. - Si tratta di terabyte e terabyte di dati, che rendono i nodi archivio meno attraenti per gli utenti medi, ma possono essere utili per servizi come block explorer, fornitori di portafogli e analisi della catena. -La sincronizzazione dei client in qualsiasi modalità diversa dall'archivio comporterà l'eliminazione dei dati della blockchain. Significa che non rimarrà un archivio di tutti gli stati storici, ma il nodo completo è in grado di ricostruirli su richiesta. +La sincronizzazione dei client in qualsiasi modalità diversa dall'archivio comporterà l'eliminazione dei dati della blockchain. Ciò significa che non rimarrà un archivio di tutti gli stati storici, ma il nodo completo è in grado di ricostruirli su richiesta. + +Scopri di più sui [Nodi archivio](/developers/docs/nodes-and-clients/archive-nodes). ## Perché si dovrebbe eseguire un nodo Ethereum? {#why-should-i-run-an-ethereum-node} -L'esecuzione di un nodo consente di utilizzare Ethereum in modo diretto, affidabile e privato, supportando la rete tenendola più solida e decentralizzata. +L'esecuzione di un nodo consente di utilizzare Ethereum in modo diretto, senza fiducia e privato, supportando la rete tenendola più solida e decentralizzata. ### Vantaggi per lo sviluppatore {#benefits-to-you} -Eseguire un nodo permette di utilizzare Ethereum in modo privato, autosufficiente e affidabile. Non è necessario affidarsi alla rete perché è possibile verificare i dati da soli con il proprio client. "Non fidarti, verifica" è un popolare mantra della blockchain. +Eseguire un nodo permette di utilizzare Ethereum in modo privato, autosufficiente e senza fiducia. Non è necessario affidarsi alla rete perché è possibile verificare i dati da soli con il proprio client. "Non fidarti, verifica" è un popolare mantra della blockchain. - Il nodo verifica in autonomia tutte le transazioni e i blocchi in base alle regole del consenso. Significa che non si deve fare affidamento su altri nodi della rete né fidarti completamente di loro. - Puoi usare un portafoglio Ethereum col tuo nodo. Puoi usare le dapp con maggiore sicurezza e privacy, perché non dovrai comunicare i tuoi indirizzi e saldi a nodi casuali. Tutto può essere controllato con il tuo client. [MetaMask](https://metamask.io), [Frame](https://frame.sh/)e [molti altri portafogli](/wallets/find-wallet/) offrono l'importazione RPC, consentendo loro di usare il tuo nodo. @@ -110,46 +110,46 @@ Avere una serie diversificata di nodi è importante per l'integrità, la sicurez - Più nodi sulla rete risultano in una rete più diversificata e robusta, l'obiettivo ultimo della decentralizzazione, che consente un sistema resistente alla censura e affidabile. - I nodi forniscono accesso ai dati della blockchain per i client leggeri che dipendono da essa. In caso di picchi di utilizzo, per agevolare la sincronizzazione dei nodi leggeri, è necessario che i nodi completi siano in quantità sufficiente. I nodi leggeri non memorizzano l'intera blockchain, bensì verificano i dati attraverso le [radici di stato nelle intestazioni dei blocchi](/developers/docs/blocks/#block-anatomy). Se ne hanno bisogno, possono richiedere ulteriori informazioni ai blocchi. -Se si esegue un nodo completo, l'intera rete Ethereum ne beneficia. +Se si esegue un nodo completo, l'intera rete di Ethereum ne beneficia. ## Esecuzione di un nodo proprio {#running-your-own-node} Vorresti eseguire il tuo client di Ethereum? -Per un'introduzione per principianti, visita la nostra pagina [Eseguire un nodo](/run-a-node), per saperne di più. +Per un'introduzione per i principianti, visita la nostra pagina [Eseguire un nodo](/run-a-node) per saperne di più. Se sei un utente più tecnico, approfondisci i dettagli e le opzioni su come [Avviare il tuo nodo](/developers/docs/nodes-and-clients/run-a-node/). ## Alternative {#alternatives} -Configurare un nodo può richiedere tempo e risorse e non sempre è necessario eseguire un'istanza propria. In questo caso, puoi usare un provider di API terzo, come [Infura](https://infura.io), [Alchemy](https://alchemyapi.io), [Chainstack](https://chainstack.com) o [QuikNode](https://www.quiknode.io). In alternativa, [ArchiveNode](https://archivenode.io/) è un nodo archivio finanziato dalla community che spera di portare i dati di archivio sulla blockchain Ethereum a sviluppatori indipendenti che altrimenti non potrebbero permetterselo. Per una panoramica sull'uso di questi servizi, dai un'occhiata a [nodi come servizi](/developers/docs/nodes-and-clients/nodes-as-a-service/). +Configurare un nodo può richiedere tempo e risorse e non sempre è necessario eseguire un'istanza propria. In questo caso, puoi usare un provider di API terzo. Per una panoramica sull'uso di questi servizi, dai un'occhiata a [nodi come servizi](/developers/docs/nodes-and-clients/nodes-as-a-service/). -Se qualcuno esegue un nodo di Ethereum con un'API pubblica nella tua community, puoi puntare i tuoi portafogli leggeri (come MetaMask) su un nodo della community [tramite RPC Personalizzato](https://metamask.zendesk.com/hc/en-us/articles/360015290012-Using-a-Local-Node) e ottenere maggiore privacy rispetto a quella offerta da terze parti casuali di fiducia. +Se qualcuno esegue un nodo Ethereum con un'API pubblica nella tua community, puoi puntare i tuoi portafogli a un nodo della community tramite RPC personalizzato e ottenere più privacy rispetto a terze parti fidate casuali. -D'altro canto, se esegui un client, puoi condividerlo con i amici che potrebbero averne bisogno. +D'altro canto, se esegui un client, puoi condividerlo con gli amici che potrebbero averne bisogno. ## Client d'esecuzione (ex "client di Eth1") {#execution-clients} -La community di Ethereum mantiene numerosi client di esecuzione open source (precedentemente noti come 'client di Eth1' o semplicemente 'client di Ethereum'), sviluppati da diversi team usando diversi linguaggi di programmazione. Questo rafforza la rete e la rende più [diversificata](/developers/docs/nodes-and-clients/client-diversity/). L'obiettivo ideale è raggiungere la diversità senza che nessun client prevalga, così da ridurre eventuali punti di errore singoli. +La community di Ethereum mantiene numerosi client di esecuzione open source (precedentemente noti come 'client di Eth1' o semplicemente 'client di Ethereum'), sviluppati da diversi team usando diversi linguaggi di programmazione. Questo rafforza la rete e la rende più [diversificata](/developers/docs/nodes-and-clients/client-diversity/). L'obiettivo ideale è raggiungere la diversità senza che nessun client prevalga, per ridurre eventuali punti di errore unici. Questa tabella riepiloga i diversi client. Tutti superano i [test dei client](https://github.com/ethereum/tests) e sono mantenuti attivamente per rimanere al passo con gli aggiornamenti di rete. -| Client | Linguaggio | Sistemi operativi | Reti | Strategie di sincronizzazione | Cancellazione dello stato | -| ----------------------------------------------- | ---------- | --------------------- | --------------------------------------------------------- | -------------------------------------- | ------------------------- | -| [Geth](https://geth.ethereum.org/) | Vai | Linux, Windows, macOS | Rete Principale, Sepolia, Görli, Ropsten, Rinkeby | Snap, Completa | Archiviata, Tagliata | -| [Nethermind](http://nethermind.io/) | C#, .NET | Linux, Windows, macOS | Rete Principale, Sepolia, Görli, Ropsten, Rinkeby e altre | Snap (senza servire), Rapida, Completa | Archiviata, Tagliata | -| [Besu](https://besu.hyperledger.org/en/stable/) | Java | Linux, Windows, macOS | Rete Principale, Sepolia, Görli, Ropsten, Rinkeby e altre | Rapida, Completa | Archiviata, Tagliata | -| [Erigon](https://github.com/ledgerwatch/erigon) | Go | Linux, Windows, macOS | Rete Principale, Sepolia, Görli, Rinkeby, Ropsten e altre | Completa | Archiviata, Tagliata | +| Client | Linguaggio | Sistemi operativi | Reti | Strategie di sincronizzazione | Cancellazione dello stato | +| ----------------------------------------------- | ---------- | --------------------- | ---------------------------------------- | -------------------------------------- | ------------------------- | +| [Geth](https://geth.ethereum.org/) | Vai | Linux, Windows, macOS | Rete Principale, Sepolia, Goerli | Snap, Completa | Archiviata, Tagliata | +| [Nethermind](http://nethermind.io/) | C#, .NET | Linux, Windows, macOS | Rete Principale, Sepolia, Goerli e altre | Snap (senza servire), Rapida, Completa | Archiviata, Tagliata | +| [Besu](https://besu.hyperledger.org/en/stable/) | Java | Linux, Windows, macOS | Rete Principale, Sepolia, Goerli e altre | Snap, Veloce, Completo | Archiviata, Tagliata | +| [Erigon](https://github.com/ledgerwatch/erigon) | Go | Linux, Windows, macOS | Rete Principale, Sepolia, Goerli e altre | Completa | Archiviata, Tagliata | -**Sottolineiamo che OpenEthereum [è ormai obsoleto](https://medium.com/openethereum/gnosis-joins-erigon-formerly-turbo-geth-to-release-next-gen-ethereum-client-c6708dd06dd) e non viene più mantenuto.** Usalo con cautela e preferibilmente passa ad un'altra implementazione client. +**Sottolineiamo che OpenEthereum [è ormai obsoleto](https://medium.com/openethereum/gnosis-joins-erigon-formerly-turbo-geth-to-release-next-gen-ethereum-client-c6708dd06dd) e non viene più mantenuto.** Usa un'altra implementazione client! Per ulteriori informazioni sulle reti supportate, consulta [reti Ethereum](/developers/docs/networks/). -Ogni client ha vantaggi e casi d'uso differenti, quindi è necessario sceglierne uno in base alle proprie preferenze. La diversità consente implementazioni focalizzate su diverse caratteristiche e bacini di utenti. Potresti voler scegliere un client a seconda delle funzionalità, del supporto, del linguaggio di programmazione o delle licenze. +Ogni client ha vantaggi e casi d'uso differenti, quindi è necessario sceglierne uno in base alle proprie preferenze. La diversità consente implementazioni in base alle diverse caratteristiche e al pubblico di utenti. Potresti voler scegliere un client a seconda delle funzionalità, del supporto, del linguaggio di programmazione o delle licenze. ### Besu {#besu} -Hyperledger Besu è un client Ethereum di livello aziendale per le reti pubbliche e autorizzate. Esegue tutte le funzionalità della Rete principale di Ethereum, dal monitoraggio a GraphQL, ha un monitoraggio avanzato ed è supportato da ConsensSys, entrambi in canali aperti della community e tramite SLA commerciali per le imprese. È scritto in Java con licenza Apache 2.0. +Hyperledger Besu è un client Ethereum di livello enterprise per le reti pubbliche e autorizzate. Esegue tutte le funzionalità della Rete principale di Ethereum, dal monitoraggio a GraphQL, ha un monitoraggio avanzato ed è supportato da ConsensSys, entrambi in canali aperti della community e tramite SLA commerciali per le imprese. È scritto in Java con licenza Apache 2.0. L'ampia [documentazione](https://besu.hyperledger.org/en/stable/) di Besu ti guiderà per tutti i dettagli sulle sue funzionalità e configurazioni. @@ -165,7 +165,7 @@ Scopri di più su Geth nella sua [documentazione](https://geth.ethereum.org/docs ### Nethermind {#nethermind} -Nethermind è un'implementazione di Ethereum creata con lo stack tecnologico C # .NET, concessa in licenza con LGPL-3.0, in esecuzione su tutte le principali piattaforme, incluso ARM. Offre prestazioni eccellenti con: +Nethermind è un'implementazione di Ethereum creata con lo stack tecnologico C#.NET, concessa in licenza con LGPL-3.0, in esecuzione su tutte le principali piattaforme inclusa ARM. Offre prestazioni eccellenti con: - una macchina virtuale ottimizzata - accesso allo stato @@ -175,7 +175,7 @@ Inoltre, Nethermind vanta una [documentazione dettagliata](https://docs.nethermi ## Client di consenso (ex client di "Eth2") {#consensus-clients} -Esistono diversi client di consenso (precedentemente noti come client di "Eth2") per supportare gli [aggiornamenti del consenso](/roadmap/beacon-chain/). Eseguono la Beacon Chain e forniranno il meccanismo di consenso Proof of Stake ai client di esecuzione, dopo [La Fusione](/roadmap/merge/). +Esistono diversi client di consenso (precedentemente noti come client di "Eth2") per supportare gli [aggiornamenti del consenso](/roadmap/beacon-chain/). Eseguono la Beacon Chain e forniranno il meccanismo di consenso proof-of-stake ai client di esecuzione, dopo [La Fusione](/roadmap/merge/). | Client | Lingua | Sistemi operativi | Reti | | ------------------------------------------------------------- | ---------- | --------------------- | --------------------------------------------------------------- | @@ -187,7 +187,7 @@ Esistono diversi client di consenso (precedentemente noti come client di "Eth2") ### Lighthouse {#lighthouse} -Lighthouse è un'implementazione del client di consenso scritta in Rust sotto la licenza Apache-2.0. È mantenuta da Sigma Prime ed è stabile e pronta alla produzione sin dalla genesi della Beacon Chain. È affidata a varie imprese, pool di staking e singoli individui. Mira a essere sicura, performante e interoperabile in una vasta gamma di ambienti, da PC desktop a distribuzioni automatizzate sofisticate. +Lighthouse è un'implementazione del client di consenso scritta in Rust sotto la licenza Apache-2.0. È mantenuta da Sigma Prime ed è stabile e pronta alla produzione sin dalla genesi della Beacon Chain. È affidata a varie imprese, pool di staking e singoli individui. Mira a esser sicura, performante e interoperabile in una vasta gamma di ambienti, da PC desktop a distribuzioni automatizzate sofisticate. La documentazione è consultabile nel [Libro su Lighthouse](https://lighthouse-book.sigmaprime.io/) @@ -212,13 +212,13 @@ Scopri di più nella [documentazione di Nimbus](https://nimbus.guide/) Prysm è un client di consenso completo e open source scritto in Go sotto la licenza GPL-3.0. Dispone di un'UI webapp facoltativa e da' priorità all'esperienza dell'utente, alla documentazione e alla configurabilità sia per gli utenti di staking domestico che per quelli istituzionali. -Visita la [documentazione di Prysm](https://docs.prylabs.network/docs/getting-started/) per scoprire di più. +Visita la [documentazione di Prysm](https://docs.prylabs.network/docs/getting-started/) per maggiori informazioni. ### Teku {#teku} Teku è uno dei client di genesi originali della Beacon Chain. Insieme ai soliti obiettivi (sicurezza, robustezza, stabilità, utilizzabilità, prestazioni), Teku mira specificamente a conformarsi completamente a tutti i vari standard dei client di consenso. -Teku offre opzioni di sviluppo molto flessibili. Il nodo beacon e il client del validatore possono operare insieme come un singolo processo, il che è estremamente conveniente per gli staker in autonomia, o i nodi possono operare separatamente per le operazioni di staking sofisticate. Inoltre, Teku è completamente interoperabile con [Web3Signer](https://github.com/ConsenSys/web3signer/) per firmare la sicurezza della chiave e la protezione dallo slashing. +Teku offre opzioni di distribuzione molto flessibili. Il nodo beacon e il client del validatore possono operare insieme come un singolo processo, il che è estremamente conveniente per gli staker in autonomia, o i nodi possono operare separatamente per le operazioni di staking sofisticate. Inoltre, Teku è completamente interoperabile con [Web3Signer](https://github.com/ConsenSys/web3signer/) per firmare la sicurezza della chiave e la protezione dallo slashing. Teku è scritto in Java con licenza Apache 2.0. È sviluppato dal team Protocols di ConsenSys, responsabile anche di Besu e Web3Signer. Scopri di più nella [documentazione di Teku](https://docs.teku.consensys.net/en/latest/). @@ -232,7 +232,7 @@ Le modalità di sincronizzazione rappresentano diversi approcci a questo process #### Sincronizzazione completa {#full-sync} -La sincronizzazione completa scarica tutti i blocchi (incluse intestazioni, transazioni e ricevute) e genera lo stato della blockchain in modo incrementale eseguendo ogni blocco dalla genesi. +La sincronizzazione completa scarica tutti i blocchi (incluse intestazioni, transazioni e ricevute) e genera lo stato della blockchain in modo incrementale eseguendo ogni blocco a partire dalla genesi. - Riduce al minimo la fiducia e offre la massima sicurezza verificando ogni transazione. - Al crescere del numero di transazioni, possono volerci giorni o persino settimane per elaborare tutte le transazioni. @@ -251,7 +251,9 @@ La modalità leggera del client scarica tutte le intestazioni e i dati del blocc - Ottiene solo l'ultimo stato basandosi sulla fiducia negli sviluppatori e nel meccanismo di consenso. - Client pronto all'uso con lo stato corrente della rete in pochi minuti. -[Maggiori informazioni sui client leggeri](https://www.parity.io/blog/what-is-a-light-client/) +**NB** La sincronizzazione leggera non funziona ancora con Ethereum proof-of-stake - una nuova versione verrà rilasciata presto! + +[Maggiori informazioni sui client leggeri](/developers/docs/nodes-and-clients/light-clients/) #### Sincronizzazione snap {#snap-sync} @@ -262,13 +264,7 @@ La sincronizzazione snap è l'ultimo approccio per sincronizzare un client, sper [Maggiori informazioni sulla sincronizzazione snap](https://github.com/ethereum/devp2p/blob/master/caps/snap.md) -| Client | Dimensione del disco (sincronizzazione rapida) | Dimensione del disco (archivio completo) | -| ------------ | ---------------------------------------------- | ---------------------------------------- | -| Geth | Oltre 400GB | Oltre 6TB | -| OpenEthereum | Oltre 280GB | Oltre 6TB | -| Nethermind | Oltre 500GB | Oltre 12TB | -| Besu | Oltre 750GB | Oltre 5TB | -| Erigon | N/D | Oltre 1TB | +### Modalità di sincronizzazione del livello di consenso {#consensus-layer-sync-modes} #### Sincronizzazione ottimistica {#optimistic-sync} @@ -298,5 +294,4 @@ Su internet si trovano molte informazioni sui client Ethereum. Ecco alcune risor ## Tutorial correlati {#related-tutorials} -- [Eseguire un nodo con Geth](/developers/tutorials/run-light-node-geth/) _– Come scaricare, installare ed eseguire Geth. Si parla di modalità di sincronizzazione, console di JavaScript e altro._ - [Trasforma il tuo Raspberry Pi 4 in un nodo validatore semplicemente eseguendo il flash della scheda MicroSD - Guida d'installazione](/developers/tutorials/run-node-raspberry-pi/) _ - Esegui il flash del tuo Raspberry Pi 4, collega un cavo Ethernet, connetti il disco SSD e alimenta il dispositivo per trasformare il Raspberry Pi 4 in un nodo completo di Ethereum eseguendo il livello di esecuzione (Rete principale) e/o il livello di consenso (Beacon Chain / validatore)._ diff --git a/src/content/translations/it/developers/docs/nodes-and-clients/light-clients/index.md b/src/content/translations/it/developers/docs/nodes-and-clients/light-clients/index.md new file mode 100644 index 00000000000..f63b0d611eb --- /dev/null +++ b/src/content/translations/it/developers/docs/nodes-and-clients/light-clients/index.md @@ -0,0 +1,61 @@ +--- +title: Client leggeri +description: Introduzione ai client leggeri di Ethereum. +lang: it +--- + +Eseguire un nodo completo è il metodo più privato, decentralizzato, senza fiducia e resistente alle censura per interagire con Ethereum. Con un nodo completo mantieni la tua copia della blockchain che può essere interrogata istantaneamente e ottieni l'accesso diretto alla rete peer-to-peer di Ethereum. Tuttavia, eseguire un nodo completo richiede una significativa quantità di memoria, archiviazione e CPU. Ciò significa che non è fattibile per tutti eseguire il proprio nodo. Esistono diverse soluzioni sulla tabella di marcia di Ethereum, inclusa l'assenza di stato, ma mancano diversi anni alla loro implementazione. La risposta nel breve termine è barattare alcuni dei vantaggi dell'esecuzione di un nodo completo per grandi miglioramenti delle prestazioni che consentono l'esecuzione di nodi con requisiti hardware molto ridotti. I nodi che permettono tale compromesso sono noti come nodi leggeri. + +## Cos'è un client leggero {#what-is-a-light-client} + +Un nodo leggero è un nodo che esegue il software di un client leggero. Invece di mantenere copie locali dei dati della blockchain e verificare in modo indipendente tutte le modifiche, richiedono i dati necessari a qualche fornitore. Il fornitore potrebbe essere una connessione diretta a un nodo completo o tramite qualche server RPC centralizzato. I dati sono quindi verificati dal nodo leggero, consentendogli di tenere il passo con la testa della catena. Il nodo leggero elabora soltanto le intestazioni del blocco, scaricando solo occasionalmente i contenuti effettivi del blocco. I nodi possono variare nella propria leggerezza, a seconda delle combinazioni di software del client leggero o completo che eseguono. Ad esempio, la configurazione più leggera sarebbe eseguire un client di esecuzione leggero e un client di consenso leggero. È inoltre probabile che molti nodi sceglieranno di eseguire client di consenso leggeri con client di esecuzione completi, o viceversa. + +## Come funzionano i client leggeri? {#how-do-light-clients-work} + +Quando Ethereum ha iniziato a utilizzare il meccanismo di consenso basato sul proof-of-stake, è stata introdotta una nuova struttura specificamente per supportare i client leggeri. Opera selezionando casualmente un sottoinsieme di 512 validatori ogni 1,1 giorni affinché agisca da **commissione di sincronizzazione**. La commissione di sincronizzazione firma l'intestazione dei blocchi recenti. L'intestazione di ogni blocco contiene la firma aggregata dei validatori nella commissione di sincronizzazione e un "bitfield" che mostra quali validatori hanno firmato e quali no. Ogni intestazione, inoltre, include un elenco dei validatori che si prevede parteciperanno alla firma del blocco successivo. Ciò significa che un client leggero può vedere rapidamente se la commissione di sincronizzazione abbia autorizzato i dati ricevuti, nonché verificare che la commissione di sincronizzazione sia quella autentica confrontando quella da cui riceve l'autorizzazione con quella che avrebbe dovuto aspettarsi secondo il blocco precedente. Così, il client leggero può continuare ad aggiornare la propria conoscenza dell'ultimo blocco di Ethereum senza scaricare effettivamente il blocco, ma soltanto l'intestazione contenente le informazioni sintetiche. + +Sul livello di esecuzione non esiste un'unica specifica per un client di esecuzione leggero. La portata di un client di esecuzione leggero può variare da una "modalità leggera" di un client di esecuzione completo, dotato di tutte le funzionalità di rete e dell'EVM di un nodo completo ma che verifica soltanto le intestazioni del blocco, senza scaricare i dati associati, o può essere un client più ridotto che fa fortemente affidamento sull'inoltro delle richieste a un fornitore RPC per interagire con Ethereum. + +## Perché i client leggeri sono importanti? {#why-are-light-clients-important} + +I client leggeri sono importanti perché consentono agli utenti di verificare i dati in entrata piuttosto che fidarsi ciecamente del fatto che il fornitore dei dati sia corretto e onesto, utilizzando soltanto una minuscola frazione delle risorse di calcolo di un nodo completo. I dati ricevuti dai client leggeri sono controllabili rispetto alle intestazioni dei blocchi che sanno essere stati firmati da almeno 2/3 di un insieme casuale di 512 validatori di Ethereum. Questa è una prova molto forte del fatto che i dati siano corretti. + +Il client leggero utilizza soltanto una minuscola quantità di potenza di calcolo, memoria e archiviazione, così che sia eseguibile su uno smartphone, incorporato in un'app o come parte di un browser. I client leggeri sono un modo per rendere l'accesso a fiducia minimizzata a Ethereum tanto privo di attrito quanto lo sarebbe fidandosi di un fornitore terzo. + +Facciamo un semplice esempio. Immagina di voler controllare il saldo del tuo conto. Per farlo, devi effettuare una richiesta a un nodo di Ethereum. Quel nodo controllerà la propria copia locale dello stato di Ethereum in cerca del tuo saldo, e te lo restituirà. Se non hai accesso diretto a un nodo, esistono degli operatori centralizzati che forniscono tali dati come servizio. Puoi inviare loro una richiesta, loro controllano il proprio nodo e ti inviano i risultati. Il problema, in questo caso, è che devi fidarti del fatto che il fornitore ti restituisca le informazioni corrette. Non puoi mai sapere davvero se le informazioni siano corrette se non puoi verificarle da solo. + +Un client leggero affronta tale problema. Anche in questo caso richiedi i dati a qualche fornitore esterno, ma quando li ricevi sono dotati di una prova che il tuo nodo leggero può verificare rispetto alle informazioni ricevute nell'intestazione del blocco. Ciò significa che Ethereum sta verificando la correttezza dei tuoi dati invece di quelli di qualche operatore fidato. + +## Quali innovazioni sono consentite dai client leggeri? {#what-innovations-do-light-clients-enable} + +Il principale vantaggio dei client leggeri è che consentono a più persone di accedere a Ethereum in modo indipendente, con requisiti di hardware trascurabili e minima dipendenza da terze parti. Ciò è un bene per gli utenti, poiché possono verificare i propri dati, ed è un bene per la rete poiché aumenta il numero e la diversità dei nodi che verificano la catena. + +La capacità di eseguire nodi di Ethereum su dispositivi con archiviazione, memoria e potenza di elaborazione molto ridotte è una delle aree principali d'innovazione sbloccate dai client leggeri. Laddove i nodi odierni di Ethereum richiedono molte risorse di calcolo, i client leggeri potrebbero essere incorporati nei browser, essere eseguiti su smartphone e forse persino su dispositivi più piccoli come smartwatch. Ciò significa che i portafogli di Ethereum con client incorporati potrebbero essere eseguiti su uno smartphone. Ciò significa che i portafogli mobili potrebbero essere molto più decentralizzati, non dovendosi fidare di fornitori di dati centralizzati per i propri dati. + +Un'estensione di ciò è abilitare i dispositivi **IoT (Internet delle Cose)**. Un client leggero potrebbe essere utilizzato per provare rapidamente la proprietà del saldo di qualche token o NFT, con tutte le garanzie di sicurezza fornite dalle commissioni di sincronizzazione, innescando qualche azione su una rete IoT. Immagina un [servizio di noleggio di biciclette](https://youtu.be/ZHNrAXf3RDE?t=929) che utilizza un'app con un client leggero incorporato per verificare rapidamente che tu possieda l'NFT del servizio di noleggio e, in tal caso, sblocca una bici che tu possa utilizzare subito! + +Anche i rollup di Ethereum beneficerebbero dei client leggeri. Uno dei grandi problemi dei rollup sono state le hack mirate ai ponti che consentono il trasferimento di fondi dalla Rete Principale di Ethereum a un rollup. Una vulnerabilità è data dagli oracoli utilizzati dai rollup per rilevare che un utente ha effettuato un deposito nel ponte. Se un oracolo alimenta dati malevoli, potrebbe indurre il rollup a pensare che si sia verificato un deposito al ponte e a rilasciare erroneamente dei fondi. Un client leggero incorporato nel rollup potrebbe essere utilizzato per proteggere dagli oracoli corrotti, poiché il deposito nel ponte potrebbe essere dotato di una prova verificabile dal rollup prima del rilascio di qualsiasi token. Lo stesso concetto potrebbe anche applicarsi ad altri ponti inter-catena. + +I client leggeri potrebbero essere anche utilizzati per aggiornare i portafogli di Ethereum. Invece di fidarsi dei dati forniti da un fornitore RPC, il tuo portafoglio potrebbe verificare direttamente i dati presentati a te utilizzando un client leggero incorporato. Ciò aggiungerebbe sicurezza al tuo portafoglio. Se il tuo fornitore RPC è stato disonesto e ti ha fornito dei dati errati, il client leggero incorporato potrebbe dirtelo! + +## Qual è lo stato attuale dello sviluppo dei client leggeri? {#current-state-of-development} + +Esistono vari client leggeri in via di sviluppo, tra cui client leggeri di esecuzione, di consenso e combinati di esecuzione/consenso. Queste sono le implementazioni di client leggeri note nel momento in cui viene scritta questa pagina: + +- [Lodestar](https://github.com/ChainSafe/lodestar/tree/unstable/packages/light-client): client leggero di consenso in TypeScript +- [Helios](https://github.com/a16z/helios): client leggero combinato di esecuzione e consenso in Rust +- [Geth](https://github.com/ethereum/go-ethereum/tree/master/light): modalità leggera per il client di esecuzione (in via di sviluppo) in Go +- [Nimbus](https://nimbus.guide/el-light-client.html): client leggero di consenso in Nim + +Per quanto ne sappiamo, nessuno è ancora considerato pronto alla produzione. + +Inoltre, c'è molto lavoro da fare per migliorare il modo in cui i client leggeri possono accedere ai dati di Ethereum. Al momento, i client leggeri si affidano alle richieste RPC ai nodi completi utilizzando un modello client/server, ma in futuro i dati potrebbero essere richiesti in un modo più decentralizzato utilizzando una rete dedicata come la [Portal Network](https://www.ethportal.net/), che potrebbe servire i dati ai client leggeri utilizzando un protocollo di gossip peer-to-peer. + +Altri punti della [tabella di marcia](/roadmap/) come gli [alberi di Verkle](/roadmap/verkle-trees/) e l'[assenza di stato](/roadmap/statelessness/) renderanno infine le garanzie di sicurezza dei client leggeri equivalenti a quelle dei client completi. + +## Letture consigliate {#further-reading} + +- [Zsolt Felfodhi sui client leggeri di Geth](https://www.youtube.com/watch?v=EPZeFXau-RE) +- [Etan Kissling sull'interconnessione dei client leggeri](https://www.youtube.com/watch?v=85MeiMA4dD8) +- [Etan Kissling sui client leggeri dopo La Fusione](https://www.youtube.com/watch?v=ZHNrAXf3RDE) +- [Piper Merriam: La strada tortuosa verso i client leggeri funzionali](https://snakecharmers.ethereum.org/the-winding-road-to-functional-light-clients/) diff --git a/src/content/translations/it/developers/docs/nodes-and-clients/node-architecture/index.md b/src/content/translations/it/developers/docs/nodes-and-clients/node-architecture/index.md new file mode 100644 index 00000000000..d0f5bae75c8 --- /dev/null +++ b/src/content/translations/it/developers/docs/nodes-and-clients/node-architecture/index.md @@ -0,0 +1,59 @@ +--- +title: Architettura del nodo +description: Introduzione all'organizzazione dei nodi di Ethereum. +lang: it +--- + +Un nodo di Ethereum si compone di due client: un [client di esecuzione](/developers/docs/nodes-and-clients/#execution-clients) e un [client di consenso](/developers/docs/nodes-and-clients/#consensus-clients). + +Quando Ethereum utilizzava il [proof-of-work](/developers/docs/consensus-mechanisms/pow/), un client di esecuzione era sufficiente per eseguire un intero nodo di Ethereum. Tuttavia, dall'implementazione del [proof-of-stake](/developers/docs/consensus-mechanisms/pow/), il client di esecuzione dev'essere utilizzato insieme a un altro pezzo di software detto ["client di consenso"](/developers/docs/nodes-and-clients/#consensus-clients). + +Il diagramma seguente mostra la relazione tra i due client di Ethereum. I due client si connettono alle rispettive reti peer-to-peer (P2P). Sono necessarie reti P2P separate poiché i client di esecuzione eseguono il gossip delle transazioni sulla propria rete P2P, consentendo loro di gestire il proprio pool locale di transazione, mentre i client di consenso eseguono il gossip dei blocchi sulla propria rete P2P, consentendo la crescita del consenso e della catena. + +![](node-architecture-text-background.png) + +_Quest'immagine è prestata da geth.ethereum.org e utilizza il logo di Geth per rappresentare i client di esecuzione; esistono altre opzioni per il client di esecuzione, incluse Erigon, Nethermind e Besu._ + +Perché questa struttura a due client funzioni, i client di consenso devono poter passare i pacchetti di transazioni al client di esecuzione. Eseguire le transazioni localmente è la modalità in cui il client convalida che le transazioni non violano alcuna regola di Ethereum e che l'aggiornamento proposto allo stato di Ethereum sia corretto. Similmente, quando il nodo è selezionato come produttore di un blocco, il client di consenso deve poter richiedere i pacchetti di transazioni da Geth da includere nel nuovo blocco ed eseguirli per aggiornare lo stato globale. Questa comunicazione tra client è gestita da una connessione RPC locale utilizzando l'[API del motore](https://github.com/ethereum/execution-apis/blob/main/src/engine/common.md). + +## Cosa fa il client di esecuzione? {#execution-client} + +Il client di esecuzione è responsabile della gestione e del gossip delle transazioni, della gestione dello stato e del supporto alla Macchina Virtuale di Ethereum ([EVM](/developers/docs/evm/)). Tuttavia, **non** è responsabile della costruzione e del gossip dei blocchi, o della gestione della logica di consenso. Questi sono di competenza del client di consenso. + +Il client di esecuzione crea carichi utili di esecuzione: l'elenco di transazioni, l'albero di stato aggiornato e altri dati correlati all'esecuzione. I client di consenso includono il carico utile di esecuzione in ogni blocco. Il client di esecuzione è inoltre responsabile per la ri-esecuzione delle transazioni nei nuovi blocchi per assicurarsi che siano validi. L'esecuzione delle transazioni avviene sul computer incorporato del client di esecuzione, noto come [Macchina Virtuale di Ethereum (EVM)](/developers/docs/evm). + +Inoltre, il client di esecuzione offre un'interfaccia utente a Ethereum tramite i [metodi RPC](/developers/docs/apis/json-rpc) che consentono agli utenti di interrogare la blockchain di Ethereum, inviare transazioni e distribuire contratti intelligenti. È comune che le chiamate RPC siano gestite da una libreria come [Web3js](https://web3js.readthedocs.io/en/v1.8.0/), [Web3py](https://web3py.readthedocs.io/en/v5/) o da un'interfaccia utente come un portafoglio su browser. + +In sintesi, il client di esecuzione è: + +- una porta dell'utente a Ethereum +- la casa della Macchina Virtuale di Ethereum, dello stato di Ethereum e del pool di transazione. + +## Cosa fa il client di consenso? {#consensus-client} + +Il client di consenso affronta tutta la logica che consente a un nodo di rimanere sincronizzato con la rete di Ethereum. Ciò include la ricezione dei blocchi dai pari e l'esecuzione di un algoritmo di scelta della diramazione per assicurare che il nodo segua sempre la catena con la massima accumulazione di attestazioni (ponderata dai saldi effettivi del validatore). Similmente al client di esecuzione, i client di consenso hanno la propria rete P2P tramite cui condividono i blocchi e le attestazioni. + +Il client di consenso non partecipa all'attestazione o alla proposta di blocco; ciò è eseguito da un validatore, un componente aggiuntivo e facoltativo di un client di consenso. Un client di consenso senza un validatore tiene il passo soltanto con la testa della catena, consentendo al nodo di rimanere sincronizzato. Ciò consente a un utente di effettuare transazioni con Ethereum usando il proprio client di esecuzione, sicuro che si trovi sulla catena corretta. + +## Validatori {#validators} + +Gli operatori di nodi possono aggiungere un validatore ai propri client di consenso depositando 32 ETH nel contratto di deposito. Il client del validatore è raggruppato con il client di consenso e può esser aggiunto a un nodo in qualsiasi momento. Il validatore gestisce le attestazioni e le proposte dei blocchi. Consente a un nodo di maturare ricompense o perdere ETH tramite sanzioni o tagli. Eseguire un software del validatore, inoltre, rende un nodo idoneo alla selezione per proporre un nuovo blocco. + +[Maggiori informazioni sullo staking](/staking/). + +## Componenti di confronto di un nodo {#node-comparison} + +| Client di esecuzione | Client di consenso | Validatore | +| -------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ----------------------------- | +| Esegue il gossip delle transazioni tramite la propria rete P2P | Esegue il gossip di blocchi e attestazioni tramite la propria rete P2P | Propone blocchi | +| Esegue e ri-esegue le transazioni | Esegue l'algoritmo di scelta della diramazione | Matura ricompense/sanzioni | +| Verifica i cambiamenti di stato in entrata | Tiene traccia della testa della catena | Effettua le attestazioni | +| Gestisce gli alberi di stato e delle ricevute | Gestisce lo stato della Beacon (contenente le informazioni di consenso ed esecuzione) | Richiede lo staking di 32 ETH | +| Crea carico utile di esecuzione | Tiene traccia della casualità accumulata in RANDAO | Può essere tagliato | +| Espone l'API JSON-RPC per interagire con Ethereum | Tiene traccia di giustificazione e finalizzazione | | + +## Letture consigliate {#further-reading} + +- [Proof of Stake](/developers/docs/consensus-mechanisms/pos) +- [Proposta di blocco](/developers/docs/consensus-mechanisms/pos/block-proposal) +- [Ricompense e sanzioni del validatore](/developers/docs/consensus-mechanisms/pos/rewards-and-penalties) diff --git a/src/content/translations/it/developers/docs/nodes-and-clients/node-architecture/node-architecture-text-background.png b/src/content/translations/it/developers/docs/nodes-and-clients/node-architecture/node-architecture-text-background.png new file mode 100644 index 0000000000000000000000000000000000000000..1a318ac5f23dba18a236523653f3d5cc61380425 GIT binary patch literal 107573 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�F+ELNx-;~PXDl0>BMdJ#z4X}+mOM9ln49{y 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 literal 0 HcmV?d00001 diff --git a/src/content/translations/it/developers/docs/nodes-and-clients/nodes-as-a-service/index.md b/src/content/translations/it/developers/docs/nodes-and-clients/nodes-as-a-service/index.md index 2e0e1ff1255..31f7887e00e 100644 --- a/src/content/translations/it/developers/docs/nodes-and-clients/nodes-as-a-service/index.md +++ b/src/content/translations/it/developers/docs/nodes-and-clients/nodes-as-a-service/index.md @@ -63,55 +63,107 @@ Ecco una lista di alcuni dei più popolari fornitori di nodi Ethereum. Aggiungin - Pannello di Controllo con Request Explorer, Mempool Watcher, e Composer - Accesso integrato al faucet della rete di prova - Community Discord attiva di creatori con 18k utenti +- [**Tutti quei nodi**](https://allthatnode.com/) + - [Documentazione](https://docs.allthatnode.com/) + - Caratteristiche + - Principale livello gratuito con 150.000 richieste giornaliere + - Accesso a oltre 24 nodi della blockchain + - Endpoint RPC, HTTPS e WSS + - Accesso illimitato ai dati di archivio + - Supporto 24/7 e tempi di disponibilità fino al 99,9% + - Faucet disponibile su diverse chain + - Accesso endpoint illimitato con un numero illimitato di chiavi API + - Spazio dei nomi Trace/Debug disponibile + - Aggiornamenti automatizzati + - Supporto tecnico - [**Ankr**](https://www.ankr.com/) - [Documentazione](https://docs.ankr.com/) - Caratteristiche - - Protocollo Ankr - Accesso aperto agli endpoint dell'API di Public RPC per oltre 8 catene + - Protocollo Ankr - accesso aperto agli endpoint API RPC pubblici per oltre 8 catene - Bilanciamento del carico e monitoraggio della salute del nodo per un gateway veloce e affidabile al più vicino nodo disponibile - - Rango Premium che consente l'endpoint WSS e limite di velocità illimitato - - Distribuzione in un click del nodo completo e del suo validatore per oltre 40 catene - - Scaling al volo + - Livello premium che consente l'endpoint WSS e limite di velocità illimitato + - Distribuzione completa in un click del nodo e del suo validatore per oltre 40 catene + - Ridimensionamento secondo le esigenze - Strumenti di analisi - - Dashboard + - Pannello di controllo - RPC, HTTPS ed endpoint WSS - Assistenza diretta +- [**Blast**](https://blastapi.io/) + - [Documentazione](https://docs.blastapi.io/) + - Caratteristiche + - Supporto RPC e WSS + - Hosting multiregionale dei nodi + - Infrastruttura decentralizzata + - API pubblica + - Piano gratuito dedicato + - Supporto multicatena (oltre 17 blockchain) + - Nodi archivio + - Supporto su Discord 24/7 + - Monitoraggio e avvisi 24/7 + - Uno SLA complessivo del 99,9% + - Pagamento in criptovalute - [**BlockDaemon**](https://blockdaemon.com/) - [Documentazione](https://ubiquity.docs.blockdaemon.com/) - Vantaggi - - Dashboard + - Pannello di gestione - In base al nodo - Analisi +- [**BlockPI**](https://blockpi.io/) + - [Documentazione](https://docs.blockpi.io/) + - Caratteristiche + - Struttura del nodo robusta e distribuita + - Fino a 40 endpoint HTTPS e WSS + - Pacchetto di iscrizione gratuito e pacchetto mensile + - Metodo di tracciamento + Supporto ai dati d'archivio + - Pacchetti con validità fino a 90 giorni + - Piano personalizzato e pagamento a consumo + - Pagamento in criptovalute + - Supporto diretto e supporto tecnico - [**Chainstack**](https://chainstack.com/) - [Documentazione](https://docs.chainstack.com/) - Caratteristiche - Nodi condivisi gratuiti - Nodi d'archivio condivisi - Supporto a GraphQL - - RPC ed endpoint WSS + - Endpoint RPC e WSS - Nodi completi e d'archivio dedicati - - Tempo di sincronizzazione veloce per implementazioni dedicate - - Porta il tuo cloud - - Tariffazione oraria + - Tempo di sincronizzazione veloce per distribuzioni dedicate + - Bring your cloud + - Tariffe orarie - Assistenza diretta 24 ore su 24, 7 giorni su 7 - [**DataHub**](https://datahub.figment.io) - [Documentazione](https://docs.figment.io/) - Caratteristiche - Opzione di livello gratuito con 3.000.000 richieste/mese - - Endpoint RPC e WSS + - RPC ed endpoint WSS - Nodi completi e d'archivio dedicati - Ridimensionamento Automatico (sconti per volumi) - Dati di archiviazione gratuiti - - Analitiche del servizio - - Pannello di gestione - - Assistenza diretta 24/7 - - Pagamento in cripto (Enterprise) + - Analisi del servizio + - Dashboard + - Assistenza diretta 24 ore su 24, 7 giorni su 7 + - Pagamento in criptovalute (Enterprise) +- [DRPC](https://drpc.org/) + - [Documentazione](https://docs.drpc.org/) + - Caratteristiche + - Nodi RPC decentralizzati + - Oltre 15 fornitori di nodi + - Bilanciamento dei nodi + - Unità di calcolo illimitate al mese con il livello gratuito + - Verifica dei dati + - Endpoint personalizzati + - Endpoint http e WSS + - Chiavi illimitate (livello gratuito e a pagamento) + - Opzioni di fallback flessibili + - [Endpoint pubblico](https://eth.drpc.org) + - Nodi archivio condivisi gratuiti - [**GetBlock**](https://getblock.io/) - - [Documentazione](https://getblock.io/docs/get-started/authentication-with-api-key/) + - [Documenti](https://getblock.io/docs/get-started/authentication-with-api-key/) - Caratteristiche - Accesso a oltre 40 nodi della blockchain - 40.000 richieste giornaliere gratuite - Numero illimitato di chiavi API - - Alta velocità di connessione a 1GB/sec + - Elevata velocità di connessione a 1GB/sec - Traccia+Archivio - Analisi avanzate - Aggiornamenti automatizzati @@ -121,11 +173,11 @@ Ecco una lista di alcuni dei più popolari fornitori di nodi Ethereum. Aggiungin - Opzione livello gratuito - Ridimensionamento secondo le esigenze - Analisi - - Pannello di gestione + - Pannello di controllo - Endpoint API univoci - Nodi completi dedicati - - Tempo di sincronizzazione veloce per implementazioni dedicate - - Assistenza diretta 24/7 + - Tempo di sincronizzazione veloce per distribuzioni dedicate + - Assistenza diretta 24 ore su 24, 7 giorni su 7 - Accesso a oltre 50 nodi della blockchain - [**Infura**](https://infura.io/) - [Documentazione](https://infura.io/docs) @@ -134,23 +186,23 @@ Ecco una lista di alcuni dei più popolari fornitori di nodi Ethereum. Aggiungin - Ridimensionamento secondo le esigenze - Dati di archiviazione a pagamento - Assistenza diretta - - Pannello di gestione + - Pannello di controllo - [**Kaleido**](https://kaleido.io/) - - [Documentazione](https://docs.kaleido.io/) + - [Documenti](https://docs.kaleido.io/) - Caratteristiche - Livello iniziale gratuito - - Distribuzione del nodo di Ethereum in un click + - Distribuzione del nodo di Ethereum in un clic - Client e algoritmi personalizzabili (Geth, Quorum e Besu || PoA, IBFT e Raft) - Oltre 500 API amministrative e di servizio - - Interfaccia di RESTful per l'invio di transazioni di Ethereum (basata su Apache Kafka) - - Flussi in uscita per la consegna degli eventi (basata su Apache Kafka) + - Interfaccia RESTful per l'invio di transazioni di Ethereum (supportata da Apache Kafka) + - Flussi in uscita per la consegna degli eventi (supportati da Apache Kafka) - Raccolta approfondita di servizi "off-chain" e ausiliari (es. trasporto bilaterale di messaggistica crittografata) - - Semplice rete di integrazione con governance e controllo dell'accesso basato sul ruolo - - Gestione dell'utente sofisticata per amministratori e utenti finali - - Infrastruttura altamente scalabile, resiliente e di livello aziendale + - Semplice integrazione di rete con governance e controllo dell'accesso basato sul ruolo + - Sofisticata gestione dell'utente per amministratori e utenti finali + - Infrastruttura altamente scalabile, resiliente e di livello enterprise - Gestione delle chiavi private HSM del cloud - - Tethering della rete principale di Ethereum - - Certificazioni ISO 27k e SOC 2, Type 2 + - Tethering della Rete Principale di Ethereum + - Certificazioni ISO 27k e SOC 2, di Tipo 2 - Configurazione di runtime dinamica (es. aggiungere integrazioni del cloud, alterare gli ingressi del nodo, ecc.) - Supporto per orchestrazioni multi-cloud, multiregionali e con distribuzione ibrida - Tariffe orarie semplici basate su Saas @@ -159,54 +211,61 @@ Ecco una lista di alcuni dei più popolari fornitori di nodi Ethereum. Aggiungin - [Documenti](https://docs.moralis.io/) - Caratteristiche - Nodi condivisi gratuiti - - Nodi di archiviazione condivisi gratuiti + - Nodi archivio condivisi gratuiti - Incentrato sulla privacy (nessuna politica sui registri) - Supporto tra catene - Ridimensionamento secondo le esigenze - - Pannello di gestione - - SDK Ethereum unico + - Pannello di controllo + - SDK Ethereum univoco - Endpoint API univoci - Supporto tecnico diretto +- [**NodeReal MegaNode**](https://nodereal.io/) + - [Documentazione](https://docs.nodereal.io/nodereal/meganode/introduction) + - Caratteristiche + - Servizi API RPC affidabili, veloci e scalabili + - API migliorata per sviluppatori web3 + - Supporto multi-catena + - Inizia gratuitamente - [**NOWNodes**](https://nownodes.io/) - [Documentazione](https://documenter.getpostman.com/view/13630829/TVmFkLwy) - Caratteristiche - Accesso a oltre 50 nodi della blockchain - - Chiave API Gratuita - - Esploratori di blocchi + - Chiave API gratuita + - Block Explorer - Tempo di risposta dell'API ⩽ 1 sec - - Team di supporto 24/7 - - Gestore Personale del Conto + - Team di assistenza 24/7 + - Referente commerciale personale - Nodi condivisi, archivio, backup e dedicati - [**Pocket Network**](https://www.pokt.network/) - [Documentazione](https://docs.pokt.network/home/) - Caratteristiche - Protocollo RPC e Marketplace decentralizzati - - 1 milione di richieste giornaliere gratuite (per endpoint, max. 2) + - Livello con 1 milione di richieste giornaliere gratuite (per endpoint, max. 2) - [Endpoint pubblici](https://docs.pokt.network/home/resources/public-rpc-endpoints) - Programma Pre-Stake+ (se servono più di 1 milione di richieste al giorno) - Più di 15 blockchain supportate - Più di 6.400 nodi che guadagnano POKT a servizio delle applicazioni - Nodo d'archiviazione, nodo d'archiviazione con tracciamento e supporto ai nodi di reti di prova - - Diversità dei client dei nodi della rete principale di Ethereum - - Nessun Single Point of Failure - - Nessun tempo d'inattività + - Diversità dei client dei nodi della Rete Principale di Ethereum + - Nessun punto di errore unico + - Nessun tempo di inattività - Tokenomic a bassissimo costo (esegui lo staking di POKT una volta per la larghezza di banda di rete) - Nessun costo mensile irrecuperabile, trasforma la tua infrastruttura in una risorsa - Bilanciamento di carico integrato nel protocollo - - Ridimensiona progressivamente e in modo preciso il numero di richieste giornaliere e nodi orari + - Ridimensiona illimitatamente il numero di richieste giornaliere e nodi orari in base alle esigenze - L'opzione più privata e resistente alla censura - Supporto pratico per sviluppatori - - Dashboard e analisi di [Pocket Portal](https://bit.ly/ETHorg_POKTportal) + - Pannello di controllo e analisi di [Pocket Portal](https://bit.ly/ETHorg_POKTportal) - [**QuickNode**](https://www.quicknode.com) - - [Documenti](https://www.quicknode.com/docs/) + - [Documentazione](https://www.quicknode.com/docs/) - Caratteristiche - Riferimento nel settore per prestazioni e affidabilità - Supporto tecnico 24/7 e community Discord di sviluppatori - Bilanciamento geografico, multi-cloud/metal, rete a bassa latenza - Supporto multi-catena (Optimism, Arbitrum, Polygon e altri 11) - - Livelli intermedi (middle layer) per velocità e stabilità (indirizzamento di chiamata, cache, indicizzazione) + - Livelli intermedi per velocità e stabilità (indirizzamento di chiamata, cache, indicizzazione) - Monitoraggio del contratto intelligente tramite Webhook - - Pannello di controllo intuitivo, suite di analisi, RPC composer + - Pannello di controllo intuitivo, suite di analisi, compositore RPC - Funzionalità di sicurezza avanzate (JWT, mascheratura, whitelist) - API di dati e analisi NFT - [Certificazione SOC2](https://www.quicknode.com/security) @@ -217,14 +276,14 @@ Ecco una lista di alcuni dei più popolari fornitori di nodi Ethereum. Aggiungin - Opzione livello gratuito - Ridimensionamento secondo le esigenze - [**SenseiNode**](https://senseinode.com) - - [Documentazione](https://docs.senseinode.com/) + - [Docs](https://docs.senseinode.com/) - Caratteristiche - Nodi dedicati e condivisi - - Pannello di gestione + - Pannello di controllo - Hosting di AWS su diversi fornitori di hosting in diversi luoghi in America Latina - Client di Prysm e Lighthouse - [**SettleMint**](https://console.settlemint.com/) - - [Documentazione](https://docs.settlemint.com/) + - [Docs](https://docs.settlemint.com/) - Caratteristiche - Prova gratuita - Ridimensionamento secondo le esigenze @@ -232,37 +291,63 @@ Ecco una lista di alcuni dei più popolari fornitori di nodi Ethereum. Aggiungin - Endpoint RPC e WSS - Nodi completi dedicati - Bring your cloud - - Strumenti d'analisi - - Pannello di gestione + - Strumenti di analisi + - Pannello di controllo - Tariffe orarie - Assistenza diretta +- [**Tenderly**](https://tenderly.co/web3-gateway) + - [Docs](https://docs.tenderly.co/web3-gateway/web3-gateway) + - Caratteristiche + - Livello gratuito con 25 milioni di Unità di Tenderly al mese + - Accesso gratuito ai dati storici + - Carichi di lavoro gravosi in lettura fino a 8 volte più veloci + - Accesso di lettura coerente al 100% + - Endpoint RPC JSON + - Costruttore di richieste RPC basato sull'UI e anteprima della richiesta + - Completamente integrato con gli strumenti di sviluppo, debug e test di Tenderly + - Simulazioni delle transazioni + - Analisi di utilizzo e filtraggio + - Facile gestione delle chiavi d'accesso + - Supporto ingegneristico dedicato tramite chat, email e Discord - [**Watchdata**](https://watchdata.io/) - - [Documentazione](https://docs.watchdata.io/) + - [Docs](https://docs.watchdata.io/) - Caratteristiche - Attendibilità dei dati - - Connessione ininterrotta senza tempi d'inattività - - Automatizzazione di processo + - Connessione ininterrotta senza tempi di inattività + - Automazione di processo - Tariffe gratuite - Limiti elevati che si adattano a qualsiasi utente - Supporto per vari nodi - Ridimensionamento delle risorse - Velocità d'elaborazione elevate - [**ZMOK**](https://zmok.io/) - - [Documentazione](https://docs.zmok.io/) + - [Documenti](https://docs.zmok.io/) - Caratteristiche - Front-running come servizio - Mempool di transazioni globale con metodi di ricerca/filtraggio - - Commissione TX illimitata e Gas infinito per inviare le transazioni + - Commissione TX illimitata e carburante infinito per inviare le transazioni - Ottenimento più veloce del nuovo blocco e lettura della blockchain - Il miglior prezzo per garanzia di chiamata dell'API +[**Zeeve**](https://www.zeeve.io/) + +- [Documenti](https://www.zeeve.io/docs/) +- Caratteristiche + - Piattaforma di automazione senza codice di livello enterprise che fornisce la distribuzione, il monitoraggio e la gestione dei nodi e delle reti Blockchain + - Oltre 30 protocolli e integrazioni supportati, e altri in arrivo + - Servizi dell'infrastruttura web3 dal valore aggiunto, quali archiviazione decentralizzata, identità decentralizzata e API dei dati del Libro Mastro della Blockchain per casi d'uso del mondo reale + - Supporto 24/7 e monitoraggio proattivo assicurano la costante salute dei nodi. + - Gli endpoint RPC offrono un accesso autenticato alle API, una gestione dei servizi senza sforzo con un pannello di controllo intuitivo e analisi dei dati. + - Offre opzioni di cloud gestito e di bring your own cloud tra cui scegliere e supporta tutti i principali fornitori di cloud come AWS, Azure, Google Cloud, Digital Ocean e on-premise. + - Utilizziamo l'instradamento intelligente per colpire sempre il nodo più vicino al tuo utente + ## Letture consigliate {#further-reading} -- [List of Ethereum node services](https://ethereumnodes.com/) +- [Elenco di servizi di nodi Ethereum](https://ethereumnodes.com/) ## Argomenti correlati {#related-topics} -- [Nodi e client](/developers/docs/nodes-and-clients/) +- [ Nodi e client](/developers/docs/nodes-and-clients/) ## Tutorial correlati {#related-tutorials} diff --git a/src/content/translations/it/developers/docs/nodes-and-clients/nodes.png b/src/content/translations/it/developers/docs/nodes-and-clients/nodes.png new file mode 100644 index 0000000000000000000000000000000000000000..4da20f7131e16278e579882fadb9796be1c27acf GIT binary patch literal 81943 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

i4|h}veO{7-~uCn&beBz*t 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 literal 0 HcmV?d00001 diff --git a/src/content/translations/it/energy-consumption/index.md b/src/content/translations/it/energy-consumption/index.md index bdf7ce2797d..ea525d02119 100644 --- a/src/content/translations/it/energy-consumption/index.md +++ b/src/content/translations/it/energy-consumption/index.md @@ -1,75 +1,80 @@ --- -title: Consumo energetico di Ethereum +title: Spesa energetica di Ethereum description: Le informazioni di base necessarie per capire il consumo energetico di Ethereum. lang: it --- -# Consumo energetico di Ethereum {#introduction} +# Il consumo energetico di Ethereum {#proof-of-stake-energy} -Ethereum è una blockchain ecologica. Usa un meccanismo di consenso di [proof-of-stake](/developers/docs/consensus-mechanisms/pos) che può esser eseguito sui dispositivi a bassa potenza e non richiede elevata potenza di calcolo per partecipare. Il meccanismo di proof-of-stake di Ethereum protegge la rete usando gli ETH in staking piuttosto che l'energia consumata, come nel [proof-of-work](/developers/docs/consensus-mechanisms/pow). Il passaggio al proof-of-stake significa che l'energia consumata dalla rete di Ethereum è relativamente ridotta, verso i 0,01 TWh/anno. +Ethereum è una blockchain ecologica. Il meccanismo di consenso di [proof-of-stake](/developers/docs/consensus-mechanisms/pos) di Ethereum utilizza gli ETH invece dell'[energia, per proteggere la rete](/developers/docs/consensus-mechanisms/pow). Il consumo energetico di Ethereum è approssimativamente pari a [0,0026 TWh/anno](https://carbon-ratings.com/eth-report-2022), sull'intera rete globale. -## Spesa energetica del proof-of-stake {#proof-of-stake-energy} +La stima del consumo energetico per Ethereum proviene da uno studio del [CCRI (Istituto di Valutazione Carbonica Cripto)](https://carbon-ratings.com). Hanno generato stime dettagliate del consumo energetico e dell'impronta carbonica della rete di Ethereum ([vedi lo studio](https://carbon-ratings.com/eth-report-2022)). I membri del CCRI hanno misurato il consumo di energia elettrica di diversi nodi con varie configurazioni hardware e software del client. Il consumo energetico annuale stimato della rete di **2.601 MWh** (0,0026 TWh), corrisponde alle emissioni carboniche annuali di **870 tonnellate di CO2e**, applicando i fattori di intensità carbonica specifici a livello regionale. Questo valore cambia quando i nodi accedono a e abbandonano la rete: è possibile tenerne traccia utilizzando una stima media di 7 giorni, dall'[Indice di Sostenibilità delle Reti Blockchain di Cambridge](https://ccaf.io/cbnsi/ethereum) (utilizzano un metodo lievemente differente per le loro stime, i dettagli sono disponibili sul loro sito). -Il consumo energetico di Ethereum è approssimativamente pari al costo di operazione di un portatile modesto per ogni nodo sulla rete. +Per contestualizzare il consumo energetico di Ethereum, confrontiamo le stime annualizzate per alcuni altri settori. Ciò ci aiuta a meglio comprendere se la stima per Ethereum sia alta o bassa. -Molti articoli stimano una spesa energetica "per transazione" per confrontare le blockchain ad altre industrie. Il beneficio di ciò è che è facile da comprendere. Tuttavia, le stime basate sulle transazioni possono essere fuorvianti poiché l'energia richiesta per proporre e validare un blocco è indipendente dal numero di transazioni al suo interno. Un'unità di spesa energetica per transazione implica che meno transazioni porterebbero a una spesa minore e viceversa, il che non è vero. Una stima per transazione dipende fortemente da come è definito il volume di transazione di una blockchain e, modificare tale definizione, può far sembrare maggiore o minore il valore. - -Ad esempio, su Ethereum, il volume di transazione non è solo quello del livello di base, è anche la somma del volume di transazione di tutti i suoi rollup del "[livello 2](/layer-2/)", non generalmente inclusi nei calcoli e che lo ridurrebbero drasticamente. Questo è uno dei motivi per cui gli strumenti che confrontano il consumo energetico per transazione sulle piattaforme, sono fuorvianti. + -Più rilevante è il consumo energetico complessivo e l'impronta carbonica dell'intera rete. Da tali valori, possiamo esaminare ciò che la rete offre ai suoi utenti e alla società intera ed effettuare una valutazione più globale del fatto che la spesa energetica sia o meno giustificata. Le misurazioni per transazione, d'altra parte, implicano che il valore della rete provenga solo dal suo ruolo nel trasferire criptovalute tra conti e proibiscono un'analisi onesta di costi e benefici. +Il grafico precedente mostra il consumo energetico annuale stimato in TWh/anno per Ethereum, rispetto a svariate altre industrie. Le stime fornite provengono da informazioni disponibili pubblicamente (ultimo accesso a maggio 2023), con collegamenti alle fonti disponibili nella seguente tabella: -Il [CCRI](https://carbon-ratings.com) (Crypto Carbon Ratings Institute) ha analizzato ampiamente il consumo di elettricità e l'impronta carbonica della rete Ethereum (vedi il report [_La Fusione - Implicazioni sul consumo elettrico e sull'impronta carbonica della rete Ethereum_](https://carbon-ratings.com/eth-report-2022)). Il CCRI ha misurato il consumo elettrico di diversi nodi con varie configurazioni hardware e software del client. Ne è risultata una stima di **2,601 MWh** (0,0026 TWh) per il consumo annuo di elettricità della rete al momento dell'analisi (settembre 2022), corrispondente alle emissioni carboniche annuali di **870 tonnellate di CO2e**, applicando i fattori di intensità carbonica specifici regionali. +| | Consumo energetico annuo (TWh) | Confronto con Ethereum PoS | Fonte | +| :------------------------------- | :----------------------------: | :------------------------: | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Centri elaborazione dati globali | 200 | 77,000x | [fonte](https://www.iea.org/commentaries/data-centres-and-energy-from-global-headlines-to-local-headaches) | +| Estrazione dell'oro | 131 | 50,000x | [fonte](https://ccaf.io/cbnsi/cbeci/comparisons) | +| Bitcoin | 131 | 50,000x | [fonte](https://ccaf.io/cbnsi/cbeci/comparisons) | +| Ethereum PoW | 78 | 30,000x | [fonte](https://digiconomist.net/ethereum-energy-consumption) | +| Youtube (solo diretto) | 12 | 4600x | [fonte](https://www.gstatic.com/gumdrop/sustainability/google-2020-environmental-report.pdf) | +| Videogiochi negli Stati Uniti | 34 | 13.000x | [fonte](https://www.researchgate.net/publication/336909520_Toward_Greener_Gaming_Estimating_National_Energy_Use_and_Energy_Efficiency_Potential) | +| Netflix | 0,451 | 173x | [fonte](https://assets.ctfassets.net/4cd45et68cgf/7B2bKCqkXDfHLadrjrNWD8/e44583e5b288bdf61e8bf3d7f8562884/2021_US_EN_Netflix_EnvironmentalSocialGovernanceReport-2021_Final.pdf) | +| PayPal | 0,26 | 100x | [fonte](https://app.impaakt.com/analyses/paypal-consumed-264100-mwh-of-energy-in-2020-24-from-non-renewable-sources-27261) | +| AirBnB | 0,02 | 8x | [fonte]() | +| Ethereum PoS | 0,0026 | 1x | [fonte](https://carbon-ratings.com/eth-report-2022) | -[Digiconomist fornisce il consumo energetico e le impronte carboniche dell'intera rete per Bitcoin ed Ethereum](https://digiconomist.net/ethereum-energy-consumption). Nel momento in cui viene scritto questo articolo, Bitcoin consuma circa 200 TWh/anno di energia ed emette circa 100 MT (megatonnellate) di carbonio all'anno, generando circa 32.000 t di rifiuti energetici da hardware obsoleti ogni anno. In confronto, la spesa energetica totale per proteggere Ethereum è più vicina a **0,01 TWh/anno**. +È complicato ottenere stime accurate per il consumo energetico, specialmente quando ciò che viene misurato ha una catena di fornitura complessa o dettagli di distribuzione che ne influenzano l'efficienza. Considera Netflix o YouTube come esempi. Le stime del loro consumo energetico variano a seconda del fatto che includano esclusivamente l'energia utilizzata per mantenere i loro sistemi e fornire contenuti agli utenti (_consumo diretto_) o includano il consumo necessario a produrre i contenuti, gestire gli uffici operativi, pubblicizzare, ecc. (_consumo indiretto_). L'utilizzo indiretto potrebbe anche includere l'energia necessaria per consumare i contenuti sui dispositivi dell'utente finale, quali TV, computer e dispositivi mobili, che a loro volta dipendono dai dispositivi utilizzati. - +Esiste una discussione su questo problema su [Carbon Brief](https://www.carbonbrief.org/factcheck-what-is-the-carbon-footprint-of-streaming-video-on-netflix). Nella tabella precedente, il valore riportato per Netflix include i loro utilizzi _diretti_ e _indiretti_ auto-segnalati. YouTube fornisce soltanto una stima del proprio consumo _diretto_, pari a circa [12 TWh/anno](https://www.gstatic.com/gumdrop/sustainability/google-2020-environmental-report.pdf). -La suddetta cifra mostra il consumo energetico annuale stimato in TWh/anno per vari settori (aggiornata a giugno 2022). _Nota che le stime presentate nel grafico provengono da fonti disponibili pubblicamente, delle quali si riporta il link nel testo di seguito. Sono illustrative e non rappresentano una stima, promessa o previsione ufficiale._ +La tabella e il grafico precedenti, inoltre, includono confronti con Bitcoin e l'Ethereum di proof-of-work. È importante notare che il consumo energetico delle reti di proof-of-work non è statico ma cambia quotidianamente. Il valore utilizzato per Ethereum proof-of-work proviene da poco prima della [Fusione](/roadmap/merge/) al proof-of-stake, come previsto da [Digiconomist](https://digiconomist.net/ethereum-energy-consumption). Altre fonti, come l'[Indice di Sostenibilità delle Reti Blockchain di Cambridge](https://ccaf.io/cbnsi/ethereum/1), stimano il consumo energetico come molto inferiore (più vicino a 20 TWh/anno). Anche le stime per i consumi energetici di Bitcoin variano ampiamente a seconda delle fonti, ed è un argomento che attira molti [dibattiti](https://www.coindesk.com/business/2020/05/19/the-last-word-on-bitcoins-energy-consumption/) articolati, non soltanto sulla quantità di energia consumata, ma anche sulle fonti di tale energia e la correlata etica. Il consumo energetico non è per forza associato all'impronta ambientale, poiché progetti differenti potrebbero utilizzare fonti energetiche diverse, ad esempio una percentuale maggiore o minore di rinnovabili. Ad esempio, l'[Indice di Consumo Energetico di Bitcoin di Cambridge](https://ccaf.io/cbnsi/cbeci/comparisons), indica che la domanda della rete di Bitcoin potrebbe essere teoricamente alimentata da gas o elettricità che andrebbero altrimenti persi in trasmissione e distribuzione. Il percorso di Ethereum verso la sostenibilità è stato quello di sostituire la parte ad alto consumo energetico della rete, con un'alternativa ecosostenibile. -Per contestualizzare il consumo energetico di Ethereum, possiamo confrontare le stime annualizzate per altri settori. Se consideriamo Ethereum una piattaforma per mantenere in modo sicuro gli asset digitali come investimenti, forse possiamo compararla all'estrazione dell'oro, che si stima consumi circa [240 TWh/anno](https://www.kitco.com/news/2021-05-17/Gold-s-energy-consumption-doubles-that-of-bitcoin-Galaxy-Digital.html). Come piattaforma di pagamenti digitali, potremmo forse compararla a PayPal (che si stima consumi circa [0,26 TWh/anno](https://app.impaakt.com/analyses/paypal-consumed-264100-mwh-of-energy-in-2020-24-from-non-renewable-sources-27261)). Come piattaforma di intrattenimento, potremmo forse compararla all'industria videoludica, che si stima consumi circa [34 TW/anno](https://www.researchgate.net/publication/336909520_Toward_Greener_Gaming_Estimating_National_Energy_Use_and_Energy_Efficiency_Potential) _nei soli Stati Uniti_. Le stime del consumo energetico di Netflix oscillano drasticamente tra [circa 0,45TWhr/anno](https://s22.q4cdn.com/959853165/files/doc_downloads/2020/02/0220_Netflix_EnvironmentalSocialGovernanceReport_FINAL.pdf) (come da sua stima del 2019) fino a circa 94 TWh/anno (come stimato da [Shift Project](https://theshiftproject.org/en/article/unsustainable-use-online-video/)); esistono delle discussioni sulle ipotesi sottostanti tali stime, disponibili su [Carbon Brief](https://www.carbonbrief.org/factcheck-what-is-the-carbon-footprint-of-streaming-video-on-netflix). Altrimenti, Ethereum potrebbe essere comparata a YouTube, che si stima consumi circa [244 TWh/anno](https://thefactsource.com/how-much-electricity-does-youtube-use/), sebbene questi valori dipendano molto dal tipo di dispositivo su cui sono trasmessi i video e dall'efficienza energetica dell'infrastruttura sottostante, come i centri di dati. Le stime del consumo energetico di YouTube sono state ripartite per canali e singoli video. [Queste stime](https://thefactsource.com/how-much-electricity-does-youtube-use/) lasciano intendere che le persone che hanno guardato Gangnam Style nel 2019 hanno consumato 45 volte più energia di quella utilizzata dal proof-of-stake di Ethereum in un anno. - -## Un livello d'applicazione ecologico {#green-applications} +Puoi sfogliare le stime sui consumi energetici e le emissioni carboniche per molti settori sul [sito dell'Indice di Sostenibilità delle Reti Blockchain di Cambridge](https://ccaf.io/cbnsi/ethereum). -Mentre il consumo energetico di Ethereum è molto ridotto, vi è anche una community sostanziale, in crescita e altamente attiva di **finanza rigenerativa (ReFi)** che sta nascendo su Ethereum. Le applicazioni ReFi usano i componenti della DeFi per creare applicazioni finanziarie aventi esternalità positive a beneficio dell'ambiente. La ReFi è parte di un più ampio movimento ["solarpunk"](https://en.wikipedia.org/wiki/Solarpunk), strettamente allineato con Ethereum e che mira ad accoppiare l'avanzamento tecnologico alla gestione ambientale. La natura decentralizzata, senza permessi e componibile di Ethereum lo rende il livello di base ideale per la ReFi e le community solarpunk. Tramite il loro sviluppo (e altri, es. [DeSci](/desci/)), Ethereum sta diventando una tecnologia positiva in termini ambientali e sociali. +## Stime per transazione {#per-transaction-estimates} -## Il debito carbonico di Ethereum {#carbon-debt} +Molti articoli stimano il dispendio energetico "per transazione" delle blockchain. Questo dato può essere fuorviante perché l'energia necessaria per proporre e convalidare un blocco è indipendente dal numero di transazioni al suo interno. Un'unità di spesa energetica per transazione implica che un minor numero di transazioni comporti una minore spesa energetica e viceversa, ma non è così. Inoltre, le stime per transazione sono molto sensibili al modo in cui viene definita la portata di trasmissione delle transazioni di una blockchain, e la modifica di questa definizione può essere manipolata per far sembrare il valore maggiore o minore. -Il consumo energetico corrente di Ethereum è molto ridotto, ma non è sempre stato così. Ethereum è passato al suo meccanismo di consenso di proof-of-stake nel 3° trimestre del 2022. Tuttavia, dal 2014 al 2022 Ethereum ha usato un meccanismo di proof-of-work, che ha avuto un costo ambientale molto maggiore. +Ad esempio, su Ethereum, la portata di trasmissione delle transazioni non è solo quella del livello base, ma è anche la somma delle portate di trasmissione delle transazioni di tutti i relativi rollup di "[livello 2](/layer-2/)". I livelli 2 non sono generalmente inclusi nei calcoli, ma è probabile che tenere conto dell'energia aggiuntiva consumata dai sequenziatori (poca) e del numero di transazioni che elaborano (molte) contribuirebbe a una riduzione drastica delle stime per transazione. Questo è uno dei motivi per cui il confronto del consumo energetico per transazione tra le varie piattaforme può essere fuorviante. -Dalle sue origini, Ethereum ha mirato a implementare un meccanismo di consenso di proof-of-stake, ma farlo senza sacrificare la sicurezza e la decentralizzazione ha richiesto anni di ricerca e sviluppo mirati. Dunque, per avviare la rete è stato usato un meccanismo di proof-of-work. Il consenso di proof-of-work richiede ai miner di usare il proprio hardware per risolvere un rompicapo, consumando energia nel processo. La soluzione al rompicapo prova che l'energia è stata realmente utilizzata dal miner, dimostrando che ha investito valore del mondo reale per il diritto ad aggiungere elementi alla blockchain. Il consumo energetico totale di Ethereum ha raggiunto un picco durante l'apice del mercato rialzista delle criptovalute a febbraio 2022 a poco meno di 94 TWh/anno. Nell'estate precedente al passaggio al proof-of-stake, il consumo energetico era più vicino ai 60 TWh/anno, comparabile a quello dell'Uzbekistan, con un'emissione carbonica equivalente a quella dell'Azerbaijan (33 MT/anno). +## Il debito di carbonio di Ethereum {#carbon-debt} -Il [CCRI](https://carbon-ratings.com) ha esaminato l'impatto della fusione di Ethereum dal proof-of-work al proof-of-stake; i risultati hanno sottolineato il significativo impatto del cambiamento del protocollo di consenso: il consumo di elettricità annualizzato è stato ridotto da 22.900.320 MWh a 2.601 MWh e, dunque, di oltre il **99,988%**. Similmente, l'impronta carbonica di Ethereum è stata ridotta approssimativamente del **99,992%** (da 11.016.000 a 870 tonnellate di CO2e). Rappresentato metaforicamente, ciò corrisponde a una riduzione delle emissioni dall'altezza della Torre Eiffel a un piccolo giocattolo di plastica, come mostrato nella figura sottostante. +Il dispendio energetico di Ethereum è molto basso, ma non è sempre stato così. Originariamente Ethereum utilizzava la proof-of-work, che aveva un costo ambientale molto più elevato dell'attuale meccanismo proof-of-stake. -![Confronto del consumo energetico di Ethereum prima e dopo La Fusione. Sulla sinistra è mostrata la Torre Eiffel, alta 330 metri, e sulla destra un giocattolo di plastica, alto 4 cm, sotto una lente d'ingrandimento.](energy_consumption_pre_post_merge.png) +Fin dall'inizio, Ethereum ha pianificato d'implementare un meccanismo di consenso basato sulla proof-of-stake, ma per farlo senza sacrificare la sicurezza e la decentralizzazione sono stati necessari anni di ricerca e sviluppo mirati. Dunque, per avviare la rete è stato usato un meccanismo proof-of-work. La proof-of-work richiede che i minatori utilizzino il processore del proprio dispositivo per calcolare un valore, spendendo energia nel processo. -Sia il proof-of-work che il proof-of-stake sono semplicemente meccanismi per decidere chi aggiungerà il prossimo blocco. Passare dal proof-of-work al proof-of-stake, in cui il valore reale investito proviene dagli ETH in staking direttamente in un contratto intelligente, rimuove la necessità per i miner di consumare energia per aggiungere alla blockchain. Dunque, il costo ambientale per proteggere la rete è ridotto drasticamente. +![Confronto tra il consumo energetico di Ethereum prima della Fusione e dopo, utilizzando la Torre Eiffel (alta 330 metri) sulla sinistra per simbolizzare il consumo energetico prima della Fusione e un piccolo personaggio Lego di 4 cm sulla destra per rappresentare la drastica riduzione del consumo energetico dopo di essa](energy_consumption_pre_post_merge.png) -## Perché il proof-of-stake è più ecologico del proof-of-work? {#why-pos-is-greener-than-pow} +Il CCRI stima che La Fusione abbia ridotto il consumo energetico annualizzato di Ethereum per oltre il **99,988%**. Similmente, l'impronta di carbonio di Ethereum è stata ridotta approssimativamente del **99,992%** (da 11.016.000 a 870 tonnellate di CO2e). Per mettere tutto questo in prospettiva, la riduzione delle emissioni equivale a passare dall'altezza della Torre Eiffel a un piccolo personaggio giocattolo in plastica, come illustrato nell'immagine precedente. Di conseguenza, il costo ambientale della protezione della rete è ridotto drasticamente. Al contempo, si ritiene che la sicurezza della rete sia aumentata. -Il proof-of-work è un metodo forte per proteggere la rete. Le transazioni sulla blockchain di Ethereum sotto il precedente sistema di proof-of-work erano validate dai [miner](/developers/docs/consensus-mechanisms/pow/mining). I miner raggruppavano le transazioni in blocchi ordinati e li aggiungevano alla blockchain di Ethereum. I nuovi blocchi venivano trasmessi a tutti gli altri operatori del nodo che eseguivano le transazioni in modo indipendente e verificavano che fossero valide. Qualsiasi azione disonesta si presentava come un'incongruenza tra i diversi nodi. I blocchi onesti erano aggiunti alla blockchain e diventavano una parte immutabile dello storico. La capacità di ogni miner di aggiungere nuovi blocchi funziona solo se c'è un costo associato al mining e vi è imprevedibilità su quale nodo specifico invii il blocco successivo. Tali condizioni sono soddisfatte imponendo il proof-of-work. Per esser idoneo a inviare un blocco di transazioni, un miner deve prima inviare la soluzione di un rompicapo computazionalmente dispendioso. Per assumere correttamente il controllo della blockchain, un miner disonesto avrebbe dovuto vincere coerentemente la gara del proof-of-work investendo in hardware ed energia sufficienti a superare le prestazioni di gran parte degli altri miner. - -Questo meccanismo di protezione della rete è problematico per diversi motivi. Prima di tutto, i miner avrebbero aumentato le proprie possibilità di successo investendo in hardware più potenti, creando le condizioni per una corsa alle armi, coi miner che acquistavano equipaggiamenti di mining sempre più energivori. Questo ha aumentato il consumo energetico della rete e ha generato sprechi di hardware. In secondo luogo, il protocollo di proof-of-work di Ethereum (prima della transizione al proof-of-stake) aveva un consumo energetico annualizzato totale approssimativamente pari a quello della Finlandia [^1] e un'impronta carbonica simile a quella della Svizzera [^1]. +## Un livello d'applicazione ecologico {#green-applications} -Il proof-of-stake usa i validatori invece dei miner. I validatori ricoprono la stessa funzione dei miner, tranne che invece di consumare le proprie risorse come consumo energetico, mettono ETH in staking come garanzia contro i comportamenti disonesti. Questi ETH in staking possono essere distrutti se il validatore si comporta male, con sanzioni più severe per le azioni più nefaste. Ciò incentiva fortemente la partecipazione attiva e onesta nel proteggere la rete senza richiedere grandi consumi energetici. Poiché quasi tutta l'energia consumata proteggendo la rete di proof-of-work proveniva dall'algoritmo di mining, il passaggio al proof-of-stake ha ridotto drasticamente i consumi energetici. Inoltre, non vi è alcun beneficio nell'investire in hardware più potente sotto il proof-of-stake, quindi non esiste alcuna condizione di corsa alle armi e vi è un ridotto spreco elettronico. I validatori di Ethereum possono operare sui tipici laptop o dispositivi a basso consumo, come [Raspberry Pi](https://ethereum-on-arm-documentation.readthedocs.io/en/latest/index.html). +Il consumo energetico di Ethereum è molto rido e al contempo su Ethereum sta crescendo una community sostanziale, in crescita e altamente attiva di **finanza rigenerativa (ReFi)**. Le applicazioni ReFi usano i componenti della DeFi per creare applicazioni finanziarie aventi esternalità positive a beneficio dell'ambiente. La ReFi è parte di un più ampio movimento ["solarpunk"](https://en.wikipedia.org/wiki/Solarpunk), strettamente allineato con Ethereum e che mira a conciliare progresso tecnologico e gestione ambientale. La natura decentralizzata, senza permessi e componibile di Ethereum lo rende il livello di base ideale per le comunità ReFi e solarpunk. -Leggi di più su [come Ethereum implementa il proof-of-stake](/developers/docs/consensus-mechanisms/pos) e com'è paragonato al proof-of-work. +Piattaforme di finanziamento di beni pubblici web3 native come [Gitcoin](https://gitcoin.co) conducono raccolte fondi climatiche per promuovere uno sviluppo consapevole dell'ambiente sul livello di applicazione di Ethereum. Grazie allo sviluppo di queste iniziative (e di altre, ad esempio [DeSci](/desci/)), Ethereum sta diventando una tecnologia positiva dal punto di vista ambientale e sociale. - Se pensi che queste statistiche siano errate o possano essere rese più accurate, ti invitiamo a segnalarlo o inviare una "Pull Request". Queste sono stime del team di ethereum.org fatte usando informazioni pubblicamente accessibili e l'attuale tabella di marcia di Ethereum. Queste dichiarazioni non rappresentano una promessa ufficiale della Fondazione Ethereum. + Se pensi che questa pagina possa essere resa più accurata, segnala un problema o una PR. Le statistiche riportate in questa pagina sono stime basate su dati pubblicamente disponibili e non rappresentano una dichiarazione o una promessa ufficiale del team di ethereum.org o della Fondazione Ethereum. -## Ulteriori letture {#further-reading} +## Letture consigliate {#further-reading} -- [L'energia necessaria a un paese; non più](https://blog.ethereum.org/2021/05/18/country-power-no-more/) – _Carl Beekhuizen, 18 maggio 2021_ -- [Consumo energetico di Ethereum](https://mirror.xyz/jmcook.eth/ODpCLtO4Kq7SCVFbU4He8o8kXs418ZZDTj0lpYlZkR8) -- [Emissioni di Ethereum: Una Stima Completa](https://kylemcdonald.github.io/ethereum-emissions/) _Kyle McDonald_ +- [Indice di Sostenibilità delle Reti Blockchain di Cambridge](https://ccaf.io/cbnsi/ethereum) +- [Relazione della Casa Bianca sulle blockchain proof-of-work](https://www.whitehouse.gov/wp-content/uploads/2022/09/09-2022-Crypto-Assets-and-Climate-Report.pdf) +- [Emissioni di Ethereum: Una Stima Completa](https://kylemcdonald.github.io/ethereum-emissions/) _ Kyle McDonald_ - [Indice del Consumo Energetico di Ethereum](https://digiconomist.net/ethereum-energy-consumption/) – _Digiconomist_ - [ETHMerge.com](https://ethmerge.com/)—_[@InsideTheSim](https://twitter.com/InsideTheSim)_ - [La Fusione - Implicazioni sul consumo elettrico e sull'impronta carbonica della rete Ethereum](https://carbon-ratings.com/eth-report-2022) - _CCRI_ +- [Consumo energetico di Ethereum](https://mirror.xyz/jmcook.eth/ODpCLtO4Kq7SCVFbU4He8o8kXs418ZZDTj0lpYlZkR8) ## Argomenti correlati {#related-topics} - [Visione di Ethereum](/roadmap/vision/) - [La Beacon Chain](/roadmap/beacon-chain) - [La Fusione](/roadmap/merge/) -- [Frammentazione](/roadmap/beacon-chain/) diff --git a/src/content/translations/it/governance/index.md b/src/content/translations/it/governance/index.md index d350572073b..e8a948782d7 100644 --- a/src/content/translations/it/governance/index.md +++ b/src/content/translations/it/governance/index.md @@ -25,7 +25,7 @@ La governance di Ethereum è il processo attraverso il quale vengono apportate m ### Governance on-chain e off-chain {#on-chain-vs-off-chain} -La tecnologia blockchain rende possibili nuove modalità di governance, conosciute come governance on-chain. Per governance on-chain si intende che le proposte di modifica al protocollo sono decise tramite il voto degli stakeholder, che in genere detengono un governance token, e la votazione avviene sulla blockchain. In alcune forme di governance on-chain, le modifiche proposte al protocollo sono già scritte nel codice e vengono implementate automaticamente nel caso vengano approvate dagli stakeholder. +La tecnologia blockchain rende possibili nuove modalità di governance, conosciute come governance on-chain. Per governance on-chain si intende che le proposte di modifica al protocollo sono decise tramite il voto degli stakeholder, che in genere detengono un governance token, e la votazione avviene sulla blockchain. In alcune forme di governance on-chain, le modifiche proposte al protocollo sono già scritte nel codice e vengono implementate automaticamente nel caso in cui vengano approvate dagli stakeholder tramite la sottoscrizione di una transazione. Con governance off-chain si intende invece l'approccio opposto, ovvero quando le decisioni di modifica al protocollo passano attraverso un processo informale di discussione e, se approvate, vengono implementate nel codice. @@ -48,7 +48,7 @@ Ci sono diversi stakeholder nella [ community Ethereum](/community/), ognuno dei - **Sviluppatori di applicazioni/strumenti**: queste persone scrivono applicazioni che vengono eseguite sulla blockchain Ethereum (ad esempio DeFi, NFT, ecc.) o sviluppano strumenti per interagire con Ethereum (ad esempio wallet, suite di test, ecc.). [Di più sulle dapp](/dapps/). - **Gestori di nodi**: queste persone eseguono nodi che propagano blocchi e transazioni, rifiutando eventuali transazioni o blocchi invalidi che intercettano. [Maggiori informazioni sui nodi](/developers/docs/nodes-and-clients/). - **Autori EIP**: queste persone propongono modifiche al protocollo Ethereum, sotto forma di Ethereum Improvement Proposal (EIP). [Maggiori informazioni sulle EIP](/eips/). -- **Miner/Validatori**: queste persone eseguono nodi che possono aggiungere nuovi blocchi alla blockchain Ethereum. +- **Validatori**: queste persone eseguono nodi che possono aggiungere nuovi blocchi alla blockchain Ethereum. - **Sviluppatori del protocollo** (o "Core Developer" ): queste persone mantengono le varie implementazioni di Ethereum (ad esempio go-ethereum, Nethermind, Besu ed Erigon a livello di esecuzione o Prysm, Lighthouse, Nimbus, Teku e Lodestar a livello di consenso). [Maggiori informazioni sui client di Ethereum](/developers/docs/nodes-and-clients/). _Nota: chiunque può far parte di più gruppi (ad esempio uno sviluppatore di protocollo può sostenere un EIP, essere validatore sulla beacon chain e usare applicazioni DeFi). Tuttavia, per chiarezza concettuale risulta più facile distinguerli._ @@ -91,7 +91,7 @@ Benché molto semplificato, questo flusso può dare un'idea delle fasi principal ### Comprendere il lavoro fatto in precedenza {#prior-work} -Gli EIP Champion dovrebbero familiarizzare con il lavoro e le proposte fatte in precedenza prima di creare una EIP che possa essere considerata seriamente per il rilascio sulla rete principale di Ethereum. In questo modo, si spera che l'EIP possa portare qualcosa di nuovo, che non sia già stato rifiutato in precedenza. Le tre principali fonti di informazioni a questo proposito sono [l'EIP repository](https://github.com/ethereum/eips), [Ethereum Magicians](https://ethereum-magicians.org/) ed [ethresear.ch](https://ethresear.ch/). +Gli EIP Champion dovrebbero familiarizzare con il lavoro e le proposte fatte in precedenza prima di creare una EIP che possa essere considerata seriamente per il rilascio sulla rete principale di Ethereum. In questo modo, si spera che l'EIP possa portare qualcosa di nuovo, che non sia già stato rifiutato in precedenza. Le tre principali fonti di informazioni a questo proposito sono [l'EIP repository](https://github.com/ethereum/EIPs), [Ethereum Magicians](https://ethereum-magicians.org/) ed [ethresear.ch](https://ethresear.ch/). ### Gruppi di lavoro {#working-groups} @@ -99,9 +99,9 @@ La bozza iniziale di una EIP difficilmente verrà implementata sulla rete princi ### Consenso della community {#community-consensus} -Mentre alcune EIP sono semplici miglioramenti tecnici con sfumature minime, altre sono più complesse e implicano compromessi che interesseranno più stakeholder in modi diversi. Questo significa che alcune EIP finiscono per essere più discusse nella community rispetto ad altre. +Mentre alcune EIP sono semplici miglioramenti tecnici con sfumature minime, altre sono più complesse e implicano compromessi che influenzeranno diverse parti interessate, in modi differenti. Questo significa che alcune EIP finiscono per essere più discusse nella community rispetto ad altre. -Non c'è una modalità definita su come gestire le proposte controverse. Dato che gli sviluppatori del protocollo non hanno modo di forzare le persone ad adottare gli upgrade, evitano generalmente di implementare le EIP per le quali le discussioni superano i benefici per l'intera community. +Non c'è una modalità definita su come gestire le proposte controverse. Questo è il risultato del design decentralizzato di Ethereum in cui nessun singolo gruppo di stakeholder può costringere l'altro attraverso la forza bruta: gli sviluppatori di protocollo possono scegliere di non implementare modifiche di codice; gli operatori dei nodi possono scegliere di non eseguire l'ultimo client Ethereum; i team di applicazioni e gli utenti possono scegliere di non effettuare transazioni sulla catena. Dato che gli sviluppatori del protocollo non hanno modo di forzare le persone ad adottare gli upgrade, evitano generalmente di implementare le EIP per le quali le discussioni superano i benefici per l'intera community. Gli EIP Champion dovrebbero sollecitare i feedback da tutti gli stakeholder interessati. Se ti ritrovi ad essere un EIP Champion di un'EIP controversa, dovresti provare a rispondere alle obiezioni cercando di raggiungere un consenso. Date le dimensioni e la diversità della community di Ethereum, non vi sono singoli parametri (es. un voto con moneta) utilizzabili per misurare il consenso della community e gli EIP Champion dovrebbero adattarsi alle circostanze della proposta. @@ -147,13 +147,13 @@ La capacità di eseguire il fork di fronte a divergenze politiche, filosofiche o -## Sviluppo della beacon chain {#beacon-chain} +## Governance della beacon chain {#beacon-chain} Il processo di governance di Ethereum spesso rinuncia a velocità ed efficienza a favore di apertura e inclusività. Al fine di accelerare lo sviluppo della Beacon Chain, è stata lanciata separatamente dalla rete proof-of-work di Ethereum e ha seguito le proprie pratiche di governance. -Lo sviluppo di specifiche e implementazioni è sempre stato totalmente open source; non sono stati invece utilizzati i processi formali descritti sopra per proporre gli aggiornamenti. Questo ha consentito a ricercatori e implementatori di specificare e concordare le modifiche più rapidamente. +Lo sviluppo di specifiche e implementazioni è sempre stato totalmente open source, non sono stati invece utilizzati i processi formali descritti sopra per proporre gli aggiornamenti. Questo ha consentito a ricercatori e implementatori di specificare e concordare le modifiche più rapidamente. -Quando la Beacon Chain si fonderà con il livello di esecuzione di Ethereum, il processo di governance per proporre le modifiche sarà armonizzato. Questo processo per implementare la fusione è [già in corso](https://eips.ethereum.org/EIPS/eip-3675). +Quando la Beacon Chain si è fusa al livello d'esecuzione di Ethereum il 15 september 2022 La Fusione è stata completata, come parte dell'[aggiornamento di rete di Parigi](https://ethereum.org/en/history/#paris). La proposta [EIP-3675](https://eips.ethereum.org/EIPS/eip-3675) è stata modificata da 'Ultimo Appello' a 'Definitiva', completando la transizione al proof-of-stake. Maggiori informazioni sulla fusione @@ -176,7 +176,7 @@ Quando la Beacon Chain si fonderà con il livello di esecuzione di Ethereum, il La governance in Ethereum non è definita rigidamente. I vari partecipanti della comunità hanno diverse prospettive a riguardo. Eccone alcune: - [Note sulla governance della blockchain](https://vitalik.ca/general/2017/12/17/voting.html) - _Vitalik Buterin_ -- [Come funziona la governance di Ethereum?](https://cryptotesters.com/blog/ethereum-governance) – _Cryptotesters_ +- [Come funziona la governance di Ethereum?](https://cryptotesters.com/blog/ethereum-governance) – _Cryptotester_ - [Come funziona la governance di Ethereum](https://medium.com/coinmonks/how-ethereum-governance-works-71856426b63a) – _Micah Zoltu_ - [Cos'è uno sviluppatore core di Ethereum?](https://hudsonjameson.com/2020-06-22-what-is-an-ethereum-core-developer/) - _Hudson Jameson_ - [Governance, parte 2: la plutocrazia è ancora una brutta cosa](https://vitalik.ca/general/2018/03/28/plutocracy.html) - _Vitalik Buterin_ diff --git a/src/content/translations/it/security/index.md b/src/content/translations/it/security/index.md index 73c1a9f56ca..b154344efa6 100644 --- a/src/content/translations/it/security/index.md +++ b/src/content/translations/it/security/index.md @@ -55,8 +55,8 @@ Ricordare password forti e univoche per ogni tuo conto, non è ideale. Un gestor - [Bitwarden](https://bitwarden.com/) - [KeePass](https://keepass.info/) -- [LastPass](https://www.lastpass.com/) - [1Password](https://1password.com/) +- O date un'occhiata agli altri [gestori di password consigliati](https://www.privacytools.io/secure-password-manager) ### Usa l'autenticazione a due fattori {#two-factor-authentication} @@ -137,7 +137,7 @@ Con lo screenshot delle tue frasi seed o delle chiavi private, rischi di sincron ### Usa un portafoglio hardware {#use-hardware-wallet} -Un portafoglio hardware fornisce spazio offline per le chiavi private. Sono considerati l'opzione di portafoglio più sicura per memorizzare le chiavi private. +Un portafoglio hardware fornisce spazio offline per le chiavi private. Sono considerati l'opzione del portafoglio più sicura per memorizzare le chiavi private: la chiave privata non tocca mai Internet e rimane completamente locale sul tuo dispositivo. Mantenere le chiavi private offline riduce massicciamente il rischio di essere violati, anche se un hacker ottiene il controllo del computer. @@ -158,13 +158,13 @@ Interagendo con i contratti intelligenti, non consentire limiti di spesa illimit Molti portafogli di Ethereum offrono una protezione dei limiti per salvaguardarti dal prosciugamento dei conti. -[Esplora portafogli con protezione dei limiti](/wallets/find-wallet/?filters=has_limits_protection) +[Come revocare l'accesso dei contratti intelligenti ai tuoi fondi di criptovalute](/guides/how-to-revoke-token-access/) ## Truffe comuni {#common-scams} -I truffatori sono sempre alla ricerca di modi per toglierti i fondi. È impossibile fermare completamente i truffatori, ma possiamo renderli meno efficaci essendo consapevoli delle tecniche più utilizzate. Ci sono molte varianti di queste truffe, ma generalmente seguono gli stessi schemi di alto livello. Se non altro, ricorda: +I truffatori sono sempre alla ricerca di modi per sottrarre illecitamente fondi. È impossibile fermare completamente i truffatori, ma possiamo renderli meno efficaci grazie a una maggiore consapevolezza delle tecniche più utilizzate. Esistono molte varianti di queste truffe, ma generalmente seguono gli stessi schemi generali. Se non altro, è bene ricordare: - sii sempre scettico/a - nessuno ti darà ETH gratis o scontati @@ -174,17 +174,17 @@ I truffatori sono sempre alla ricerca di modi per toglierti i fondi. È impossib Una delle truffe più comuni in criptovaluta è la truffa del giveaway. La truffa del giveaway può assumere molte forme, ma la premessa generale è che se invii ETH all'indirizzo del portafoglio fornito, riceverai indietro il tuo ETH ma raddoppiato. *Per questa ragione è conosciuta anche come la truffa del 2 per 1.* -Queste truffe di solito prevedono un periodo limitato di opportunità per richiedere l'omaggio incoraggiando un processo decisionale scadente e creare un falsa senso di urgenza. +Queste truffe di solito prevedono un periodo limitato di opportunità per richiedere l'omaggio incoraggiando un processo decisionale scadente e creare un falso senso di urgenza. #### Hack dei social media {#social-media-hacks} -A luglio 2020 si è verificata una simile versione ad alto profilo, quando i profili di Twitter di celebrità e organizzazioni prominenti, sono stati violati. L'hacker ha pubblicato simultaneamente un giveaway di Bitcoin sui conti violati. Sebbene i tweet ingannevoli siano stati rapidamente notati ed eliminati, gli hacker riuscirono comunque a farla franca con un'estorsione del valore di 11 bitcoin (o $500.000 a settembre 2021). +A luglio 2020 si è verificata una simile versione di alto profilo, quando sono stati violati i profili di Twitter di celebrità e organizzazioni importanti. L'hacker ha pubblicato simultaneamente un giveaway di Bitcoin sui conti violati. Sebbene i tweet ingannevoli siano stati rapidamente notati ed eliminati, gli hacker sono comunque riusciti a farla franca con un'estorsione del valore di 11 bitcoin (o $500.000 a settembre 2021). ![Una truffa su Twitter](./appleTwitterScam.png) #### Dono di celebrità {#celebrity-giveaway} -Il giveaway di celebrità è un altro dei più comuni tipi di truffa del giveaway. I truffatori, utilizzando un'intervista video registrata o una conferenza di una celebrità, la trasmettono in streaming live su YouTube, facendo credere che la celebrità in questione stia promuovendo in diretta un giveaway di criptovalute. +Il giveaway di celebrità è un altro dei più comuni tipi di truffa del giveaway. I truffatori, utilizzando un'intervista video registrata o la conferenza di una celebrità, la trasmettono in streaming live su YouTube, facendo credere che la celebrità in questione stia promuovendo in diretta un giveaway di criptovalute. Vitalik Buterin è la celebrità più sfruttata per questa truffa, ma vengono usate anche molte altre persone importanti coinvolte nelle criptovalute (ad esempio Elon Musk o Charles Hoskinson). L'inclusione di una persona nota dà allo streaming live dei truffatori un senso di legittimità (sembra strano, ma se ne parla Vitalik, dovrebbe essere tutto ok). @@ -194,7 +194,7 @@ Vitalik Buterin è la celebrità più sfruttata per questa truffa, ma vengono us ### Truffe del finto addetto al supporto {#support-scams} -Le criptovalute sono una tecnologia relativamente giovane e incompresa. Una truffa comune che sfrutta tale caratteristica è quella dei finti addetti al supporto: i truffatori fingono di essere addetti al supporto di portafogli, piattaforme di scambio o blockchain popolari. +Le criptovalute sono una tecnologia relativamente giovane e incompresa. Una truffa comune che sfrutta tale caratteristica è quella dei finti operatori del servizio clienti: i truffatori fingono di essere operatori del servizio clienti per portafogli, piattaforme di scambio o blockchain popolari. Gran parte delle discussioni su Ethereum avviene su Discord. I finti addetti al supporto tecnico cercano di solito la propria vittima tra gli utenti che hanno inviato domande al supporto nei canali Discord pubblici e poi inviano a tali utenti un messaggio privato offrendo assistenza. Costruendo la fiducia, i finti addetti al supporto cercano di indurti a rivelare le tue chiavi private o a inviare i tuoi fondi ai loro portafogli. @@ -214,7 +214,7 @@ Come regola generale, il personale non comunicherà mai con te attraverso canali ### Truffa del token "Eth2" {#eth2-token-scam} -Nella corsa a [La Fusione](/roadmap/merge/), i truffatori hanno approfittato della confusione sul termine 'Eth2' per provare a convincere gli utenti a riscattare i propri ETH per un token 'ETH2'. Non esiste alcun 'ETH2' e non è stato introdotto alcun altro token legittimo con La Fusione. Gli ETH che possedevi prima de La Fusione, sono gli stessi ETH adesso. **Non serve intraprendere alcuna azione correlata ai tuoi ETH per tenere conto del passaggio dal proof-of-work al proof-of-stake**. +Nella corsa alla [Fusione](/roadmap/merge/), i truffatori hanno approfittato della confusione sul termine 'Eth2' per provare a convincere gli utenti a riscattare i propri ETH per un token 'ETH2'. Non esiste alcun 'ETH2' e non è stato introdotto alcun altro token legittimo con La Fusione. Gli ETH che possedevi prima de La Fusione, sono gli stessi ETH adesso. **Non serve intraprendere alcuna azione correlata ai tuoi ETH per tenere conto del passaggio dal proof-of-work al proof-of-stake**. I truffatori potrebbero apparire sotto forma di "supporto", dicendoti che se depositi i tuoi ETH, riceverai degli 'ETH2' in cambio. Non esiste alcun [supporto ufficiale di Ethereum](/community/support/) e non esiste alcun nuovo token. Non condividere mai la frase di seed del tuo portafoglio con nessuno. @@ -224,9 +224,9 @@ _Nota: esistono token/ticker derivativi che potrebbero rappresentare ETH in stak Le truffe di phishing sono un altro metodo sempre più comune che i truffatori utilizzeranno, per tentare di rubare i fondi del tuo portafoglio. -Alcune email di phishing chiedono agli utenti di cliccare su link che li reindirizzeranno a siti web falsi, chiedendo loro di inserire la loro frase di seed, ripristinare la loro password o di inviare ETH. Gli altri potrebbero chiederti di installare inconsapevolmente un malware, per infettarti il computer e dare accesso ai file del tuo computer ai truffatori. +Alcune e-mail di phishing chiedono agli utenti di cliccare su link che li reindirizzeranno a siti web falsi, chiedendo loro di inserire la loro frase di seed, ripristinare la loro password o di inviare ETH. Altri potrebbero chiederti di installare inconsapevolmente un malware, per infettarti il computer e dare accesso ai file del tuo computer ai truffatori. -Se ricevi un'email da un mittente sconosciuto, ricorda: +Se ricevi un'e-mail da un mittente sconosciuto, ricorda: - Non aprire mai un link o un allegato da indirizzi e-mail che non riconosci - Non divulgare mai le tue informazioni personali o password a nessuno @@ -240,13 +240,13 @@ Le truffe dei broker di trading di criptovalute affermano di esser broker specia Questi broker fraudolenti trovano le proprie vittime usando profili YouTube falsi per creare conversazioni apparentemente naturali sul broker. Queste conversazioni, spesso, sono molto votate positivamente, per aumentarne la legittimità, sebbene i voti positivi provengano tutti da bot. -**Non fidarti degli sconosciuti su Internet che desiderano investire per tuo conto. Perderai le tue criptovalute.** +**Non fidarti degli sconosciuti su Internet che vogliono investire per tuo conto. Perderai le tue criptovalute.** ![Una truffa del broker di trading su YouTube](./brokerScam.png) ### Truffe dei pool di mining di criptovalute {#mining-pool-scams} -Da settembre 2022, il mining su Ethereum non è più possibile. Tuttavia, le truffe dei pool di mining continuano a esistere. Le truffe dei pool di mining coinvolgono persone che ti contattano senza esser sollecitati e che affermano che tu possa ricevere grandi introiti unendoti a un pool di mining di Ethereum. Il truffatore farà affermazioni e rimarrà in contatto con te per tutto il tempo necessario. Essenzialmente, il truffatore proverà a convincerti che se ti unisci a un pool di mining di Ethereum, la tua criptovaluta sarà usata per creare ETH e che riceverai dei dividendi sotto forma di ETH. Alla fine, noterai che la tua criptovaluta avrà scarsi rendimenti. Ciò, semplicemente, serve per invogliarti a investire di più. Infine, tutti i tuoi fondi saranno inviati a un indirizzo sconosciuto e il truffatore scomparirà o, in alcuni casi, continuerà a rimanere in contatto, come successo in un caso recente. +Da settembre 2022, il mining su Ethereum non è più possibile. Tuttavia, le truffe dei pool di mining continuano a esistere. Le truffe dei pool di mining coinvolgono persone che ti contattano di propria iniziativa e che affermano che potrai ricevere grandi introiti unendoti a un pool di mining di Ethereum. Il truffatore farà affermazioni e rimarrà in contatto con te per tutto il tempo necessario. Essenzialmente, il truffatore proverà a convincerti che se ti unisci a un pool di mining di Ethereum, la tua criptovaluta sarà usata per creare ETH e che riceverai dei dividendi sotto forma di ETH. Alla fine, noterai che la tua criptovaluta avrà scarsi rendimenti. Questo serve solo a invogliarti a investire di più. Infine, tutti i tuoi fondi saranno inviati a un indirizzo sconosciuto e il truffatore scomparirà o, in alcuni casi, continuerà a rimanere in contatto, come successo in un caso recente. In conclusione, diffida delle persone che ti contattano sui social, chiedendoti di far parte di un pool di mining. Una volta perse le tue criptovalute, non potrai fare nulla. @@ -260,7 +260,7 @@ Alcune cose da ricordare: ### Truffe airdrop {#airdrop-scams} -Le truffe di Airdrop prevedono un falso progetto di airdropping di una risorsa (NFT, token) nel tuo portafoglio e ti inviano a un sito web di truffa per rivendicare la risorsa in questione. Ti sarà richiesto di accedere con il tuo portafoglio di Ethereum e di "approvare" una transazione tentando di reclamare. Questa transazione compromette il tuo conto inviando la tua chiave pubblica e privata al truffatore. Una forma alternativa di questa truffa potrebbe chiederti di confermare una transazione che invia fondi al conto del truffatore. +Le truffe di Airdrop prevedono un falso progetto di airdropping di una risorsa (NFT, token) nel tuo portafoglio e ti inviano a un sito web di truffa per rivendicare la risorsa in questione. Ti sarà chiesto di accedere con il tuo portafoglio di Ethereum e di "approvare" una transazione tentando di reclamare. Questa transazione compromette il tuo conto inviando la tua chiave pubblica e privata al truffatore. Una forma alternativa di questa truffa potrebbe chiederti di confermare una transazione che invia fondi al conto del truffatore. [Maggiori informazioni sulle truffe di airdrop](https://www.youtube.com/watch?v=LLL_nQp1lGk) @@ -287,3 +287,5 @@ Le truffe di Airdrop prevedono un falso progetto di airdropping di una risorsa ( - [Staying Safe: Common Scams](https://support.mycrypto.com/staying-safe/common-scams) - _MyCrypto_ - [Evitare le Truffe](https://bitcoin.org/en/scams) - _Bitcoin.org_ - [Discussione di Twitter sulle email e i messaggi di phishing di criptovalute comuni](https://twitter.com/tayvano_/status/1516225457640787969) - _Taylor Monahan_ + + diff --git a/src/content/translations/it/web3/index.md b/src/content/translations/it/web3/index.md index 37c75d0d07b..1966ea0698d 100644 --- a/src/content/translations/it/web3/index.md +++ b/src/content/translations/it/web3/index.md @@ -117,7 +117,7 @@ Nonostante i numerosi benefici di Web3 nella sua forma corrente, esistono ancora ### Accessibilità {#accessibility} -Importanti funzionalità di Web3, come Accedi con Ethereum, sono già disponibili per esser usati da chiunque, a costo zero. Ma, il costo relativo delle transazioni è ancora proibitivo per molti. A causa delle commissioni di transazione elevate, è meno probabile che Web3 sia usato nei paesi meno sviluppati e in via di sviluppo. Su Ethereum, queste difficoltà sono risolte tramite gli [aggiornamenti della rete](/roadmap/) e le [soluzioni di ridimensionamento del livello 2](/developers/docs/scaling/). La tecnologia è pronta, ma necessitiamo di una maggiore adozione del livello 2 per rendere Web3 accessibile a tutti. +Importanti funzionalità di Web3, come Accedi con Ethereum, sono già disponibili per esser usati da chiunque, a costo zero. Ma, il costo relativo delle transazioni è ancora proibitivo per molti. A causa delle commissioni di transazione elevate, è meno probabile che Web3 sia usato nei paesi meno sviluppati e in via di sviluppo. Su Ethereum, queste sfide saranno risolte tramite [la tabella di marcia](/roadmap/) e le [soluzioni di ridimensionamento del livello 2](/developers/docs/scaling/). La tecnologia è pronta, ma necessitiamo di una maggiore adozione del livello 2 per rendere Web3 accessibile a tutti. ### Esperienza utente {#user-experience} @@ -157,3 +157,5 @@ Il Web3 non ha una definizione rigida. Vari partecipanti della community hanno p - [Perché la Decentralizzazione È Importante](https://onezero.medium.com/why-decentralization-matters-5e3f79f7638e) - _Chris Dixon_ - [Il Panorama di Web3](https://a16z.com/wp-content/uploads/2021/10/The-web3-Readlng-List.pdf) – _a16z_ - [Il Dibattito su Web3](https://www.notboring.co/p/the-web3-debate?s=r) – _Packy McCormick_ + + diff --git a/src/content/translations/it/web3/web1.png b/src/content/translations/it/web3/web1.png new file mode 100644 index 0000000000000000000000000000000000000000..6ebc4bd002c557de2404c3be5d5abb153459bb4d GIT binary patch literal 180198 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⪚ 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.~uDo(I9Zlvfw!2EM69 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%0AA;ImE%e^BG5O3UFcP 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 JPDHLkV1m{Gc0Jb*_ue}s^cLy8hR_0p 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

W&~M`M%Tx>B9%zScXP%+F%pG&N-VNjyk%1zNW+b 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

j_$#XD*QxNQR%n0aMxaCB} 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

kyEyS=20 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

BfY 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 p|F_o{{eS=F+i$ Un protocollo a conoscenza zero è un metodo per cui una parte (il dimostratore), può provare a un'altra parte (il verificatore) che qualcosa sia vero, senza rivelare alcuna informazione, tranne il fatto che tale specifica istruzione sia vera. + +Le prove a conoscenza zero sono migliorate negli anni e adesso sono utilizzate in diverse applicazioni del mondo reale. + +## Perché necessitiamo delle prove a conoscenza zero? {#why-zero-knowledge-proofs-are-important} + +Le prove a conoscenza zero hanno rappresentato una svolta nella crittografia applicata, poiché hanno promesso di migliorare la sicurezza delle informazioni per gli individui. Considera come potresti dimostrare una rivendicazione (es. "Sono un cittadino del paese X") a un'altra parte (es., un fornitore di servizio). Dovresti fornire una "prova" per sostenere la tua rivendicazione, come un passaporto internazionale o la patente di guida. + +Ma questo approccio presenta dei problemi, principalmente la mancanza di privacy. Le informazioni di identificazione personale (PII) condivise con servizi di terze parti sono memorizzate in banche dati centrali, vulnerabili alle violazioni. Poiché il furto d'identità sta diventando un problema critico, è necessario identificare mezzi più efficaci di condivisione delle informazioni sensibili a protezione della privacy. + +Le prove a conoscenza zero risolvono questo problema eliminando la necessità di rivelare informazioni per provare la validità delle rivendicazioni. Il protocollo a conoscenza zero utilizza l'istruzione (detta 'testimone'), come input, per generare una prova succinta della sua validità. Tale prova fornisce forti garanzie che un'istruzione sia vera, senza esporre le informazioni utilizzate per crearla. + +Tornando al nostro esempio precedente, l'unica prova che serve per dimostrare la tua richiesta di cittadinanza è una prova a conoscenza zero. Il verificatore deve soltanto verificare se determinate proprietà della prova sono vere, per essere convinto che anche l'istruzione sottostante sia vera. + +## Come funzionano le prove a conoscenza zero? {#how-do-zero-knowledge-proofs-work} + +Una prova a conoscenza zero permette di dimostrare la verità di una dichiarazione senza condividere i contenuti dell’affermazione o rivelare come l'hai scoperta. A tal fine, i protocolli a conoscenza zero si basano su algoritmi che prendono alcuni dati in entrata e restituiscono ‘true’ o ‘false’ come risultato. + +Un protocollo a conoscenza zero deve soddisfare i seguenti criteri: + +1. **Completezza**: se l'immissione è valida, il protocollo a conoscenza zero restituisce sempre 'true'. Quindi, se la dichiarazione sottostante è vera, se il dimostratore e il validatore agiscono onestamente, la prova può essere accettata. + +2. **Solidità**: se l'immissione non è valida, è teoricamente impossibile ingannare il protocollo a conoscenza zero per restituire 'true'. Quindi, un dimostratore bugiardo non può ingannare un validatore onesto a credere che una dichiarazione non valida sia valida (se non con un piccolo margine di probabilità). + +3. **Conoscenza zero**: il validatore non impara nulla su una dichiarazione se non la sua validità o falsità (hanno “conoscenza zero” della dichiarazione). Questo requisito impedisce anche al validatore di ricavare l'immissione iniziale (il contenuto della dichiarazione) dal protocollo. + +Nella forma semplice, una prova a conoscenza zero è composta da tre elementi: **testimonianza**, **sfida** e **risposta**. + +- **Testimonianza**: Con una prova a conoscenza zero, il dimostratore vuole manifestare la conoscenza di alcune informazioni nascoste. L'informazione segreta è il "testimone" della prova, e la presunta conoscenza del testimone da parte del dimostratore stabilisce una serie di domande a cui può rispondere solo una parte a conoscenza dell'informazione. Pertanto, il dimostratore avvia il processo di prova scegliendo casualmente una domanda, calcolando la risposta e inviandola al verificatore. + +- **Sfida**: il validatore sceglie casualmente un'altra domanda dal set e chiede al dimostratore di rispondere. + +- **Risposta**: Ii dimostratore accetta la domanda, calcola la risposta e la restituisce al validatore. La risposta del dimostratore consente al validatore di verificare se il primo ha realmente accesso al testimone. Per garantire che il dimostratore non indovini alla cieca e ottenga le risposte corrette per caso, il validatore sceglie più domande da porre. Ripetendo questa interazione molte volte, la possibilità che il dimostratore falsifichi la conoscenza del testimone diminuisce in modo significativo fino a quando il validatore non è soddisfatto. + +Quanto sopra descrive la struttura di una “prova interattiva a conoscenze zero”. I primi protocolli a conoscenza zero utilizzavano la dimostrazione interattiva, in cui la verifica della validità di una dichiarazione richiedeva una comunicazione avanti e indietro tra dimostratori e validatori. + +Un buon esempio che illustra come funzionano le prove interattive è la famosa storia di Jean-Jacques Quisquater sulla[ grotta di Ali Baba](https://en.wikipedia.org/wiki/Zero-knowledge_proof#The_Ali_Baba_cave). Nella storia, Peggy (il dimostratore) vuole dimostrare a Victor (il validatore) che conosce la frase segreta per aprire una porta magica senza rivelare la frase. + +### Prove a conoscenze zero non interattive {#non-interactive-zero-knowledge-proofs} + +Sebbene rivoluzionario, la prova interattiva aveva un'utilità limitata poiché richiedeva che le due parti fossero disponibili e interagissero ripetutamente. Anche se un validatore fosse convinto dell’onestà di un dimostratore, la prova non sarebbe disponibile per una verifica indipendente (il calcolo di una nuova prova richiede una nuova serie di messaggi tra il dimostratore e il validatore). + +Per risolvere questo problema, Manuel Blum, Paul Feldman, e Silvio Micali hanno suggerito le prime prove [a conoscenza zero non interattive](https://dl.acm.org/doi/10.1145/62212.62222) in cui il dimostratore e il validatore hanno una chiave condivisa. Ciò permette al dimostratore di manifestare la propria conoscenza di alcune informazioni (ad esempio, testimone) senza fornire le informazioni stesse. + +A differenza delle prove interattive, le prove non interattive richiedevano solo una serie di comunicazioni tra i partecipanti (dimostratore e validatore). Il dimostratore passa le informazioni segrete a un apposito algoritmo per calcolare una prova a conoscenza zero. Questa prova viene inviata al validatore, che controlla che il dimostratore conosca le informazioni segrete utilizzando un altro algoritmo. + +La prova non interattiva riduce la comunicazione tra dimostratore e validatore, rendendo le prove ZK più efficienti. Inoltre, una volta generata una prova, è disponibile per chiunque altro (con accesso alla chiave condivisa e all'algoritmo di verifica) per la verifica. + +Le prove non interattive hanno rappresentato una svolta per la tecnologia a conoscenza zero e hanno stimolato lo sviluppo dei sistemi di dimostrazione utilizzati oggi. Discutiamo questi tipi di prova di seguito: + +### Tipologie di prove a conoscenza zero {#types-of-zero-knowledge-proofs} + +#### ZK-SNARK {#zk-snarks} + +ZK-SNARK è un acronimo per **Zero-Knowledge Succinct Non-Interactive Argoment of Knowledge**. Il protocollo ZK-SNARK ha le seguenti qualità: + +- **Conoscenza zero**: un validatore può convalidare l'integrità di una dichiarazione senza sapere nient'altro sull'affermazione. L'unica conoscenza che il validatore ha della dichiarazione è se è vera o falsa. + +- **Concisione**: la prova a conoscenza zero è più piccola del testimone e può essere verificata rapidamente. + +- **Non interattiva**: la prova è 'non interattiva' perché il dimostratore e il validatore interagiscono solo una volta, a differenza delle prove interattive che richiedono più cicli di comunicazione. + +- **Argomento**: la prova soddisfa il requisito di 'solidità', quindi l'imbroglio è estremamente improbabile. + +- **(Di) Conoscenza**: la prova a conoscenza zero non può essere costruita senza l'accesso a informazioni segrete (testimone). È difficile, se non impossibile, per un dimostratore che non ha il testimone calcolare una valida prova a conoscenza zero. + +La «chiave condivisa» menzionata in precedenza si riferisce a parametri pubblici che il dimostratore e il validatore accettano di utilizzare per generare e verificare le prove. Generare i parametri pubblici (collettivamente noti come la Stringa di Riferimento Comune (CRS)) è un'operazione sensibile data la sua importanza nella sicurezza del protocollo. Se l'entropia (casualità) utilizzata per generare il CRS entra nelle mani di un dimostratore disonesto, possono calcolare delle prove false. + +[Calcolo multipartitico (MPC)](https://en.wikipedia.org/wiki/Secure_multi-party_computation) è un modo per ridurre i rischi nella generazione di parametri pubblici. Più parti partecipano a una [ cerimonia di configurazione basata sulla fiducia](https://zkproof.org/2021/06/30/setup-ceremonies/amp/), dove ogni persona contribuisce con alcuni valori casuali per generare il CRS. Finché una parte onesta distrugge la propria porzione di entropia, il protocollo ZK-SNARK mantiene la solidità computazionale. + +Le configurazioni sulla fiducia richiedono agli utenti di fidarsi dei partecipanti alla generazione dei parametri. Tuttavia, lo sviluppo di ZK-STARK ha creato le condizioni affinché i protocolli di prova funzionino con una configurazione non affidabile. + +#### ZK-STARK {#zk-starks} + +ZK-SNARK è un acronimo per **Zero-Knowledge Succinct Non-Interactive Argoment of Knowledge**. I ZK-STARK sono simili ai ZK-SNARK, tranne per il fatto che sono: + +- **Scalabili**: ZK-STARK è più veloce di ZK-SNARK nel generare e verificare prove quando la dimensione del testimone è più grande. Con le prove STARK, i tempi di dimostrazione e verifica aumentano solo leggermente man mano che il testimone cresce (i tempi di dimostrazione e validazione SNARK aumentano linearmente con la dimensione del testimone). + +- **Trasparente**: ZK-STARK si basa sulla casualità verificabile pubblicamente per generare parametri pubblici per la prova e la verifica invece di una configurazione sulla fiducia. Pertanto, sono più trasparenti rispetto agli ZK-SNARK. + +Gli ZK-STARK producono prove più grandi rispetto agli ZK-SNARK, il che significa che generalmente hanno spese generali di verifica più elevate. Tuttavia, esistono casi (come la dimostrazione di grandi set di dati) in cui ZK-STARK può essere più conveniente rispetto a ZK-SNARK. + +## Casi d'uso di prove a conoscenza zero {#use-cases-for-zero-knowledge-proofs} + +### Pagamenti anonimi {#anonymous-payments} + +I pagamenti con carta di credito sono spesso visibili a più parti, inclusi il fornitore dei pagamenti, le banche e altre parti interessate (ad es. autorità governative). La sorveglianza finanziaria comporta vantaggi per l'identificazione delle attività illegali, ma compromette anche la privacy dei cittadini comuni. + +Le criptovalute avevano lo scopo di fornire agli utenti un mezzo per condurre transazioni private e peer-to-peer. Ma la maggior parte delle transazioni di criptovalute è visibile a tutti sulle blockchain pubbliche. Le identità degli utenti sono spesso pseudonime e collegate intenzionalmente a identità del mondo reale (ad esempio includendo indirizzi ETH su profili Twitter o GitHub) o possono essere associate a identità del mondo reale utilizzando l'analisi base, on e off-chain di dati. + +Esistono delle “monete per la privacy” specifiche pensate per transazioni completamente anonime. Le blockchain incentrate sulla privacy, come Zcash e Monero, proteggono i dettagli delle transazioni, inclusi gli indirizzi del mittente/destinatario, il tipo di risorsa, la quantità e la sequenza temporale della transazione. + +Integrando la tecnologia a conoscenza zero nel protocollo, le reti blockchain incentrate sulla privacy consentono ai nodi di convalidare le transazioni senza la necessità di accedere ai dati delle transazioni. + +Le prove a conoscenza zero vengono applicate anche alle transazioni per renderle anonime sulle blockchain pubbliche. Un esempio è Tornado Cash, un servizio decentralizzato e non custodito che consente agli utenti di effettuare transazioni private su Ethereum. Tornado Cash utilizza dimostrazioni a conoscenza zero per offuscare i dettagli delle transazioni e garantire la privacy finanziaria. Purtroppo, visto che questi sono strumenti di privacy "opt-in" sono associati ad attività illecite. Per superare questo problema, la privacy deve diventare l'impostazione predefinita sulle blockchain pubbliche. + +### Protezione dell'identità {#identity-protection} + +Gli attuali sistemi di gestione dell'identità mettono a rischio i dati personali. Le prove a conoscenza zero possono aiutare gli individui a convalidare l'identità proteggendo le informazioni sensibili. + +Le dimostrazioni a conoscenza zero sono particolarmente utili nel contesto di [identità decentralizzata](/decentralized-identity/). L'identità decentralizzata (descritta anche come «identità auto-sovrana») conferisce all'individuo la possibilità di controllare l'accesso agli identificatori personali. Dimostrare la propria cittadinanza senza rivelare il proprio ID fiscale o i dettagli del passaporto è un buon esempio di come la tecnologia a conoscenza zero consente l'identità decentralizzata. + +### Autenticazione {#authentication} + +L'utilizzo di servizi online richiede la prova della tua identità e del diritto di accedere a tali piattaforme. Questo richiede spesso di fornire informazioni personali, come nomi, indirizzi e-mail, date di nascita, e così via. Potrebbe anche essere necessario memorizzare password lunghe o rischiare di perdere l'accesso. + +Le dimostrazioni a conoscenza zero possono, tuttavia, semplificare l'autenticazione sia per le piattaforme che per gli utenti. Una volta che una dimostrazione a conoscenza zero è stata generata utilizzando input pubblici (es., dati che attestano l'appartenenza dell'utente alla piattaforma) e input privati (es., i dati dell'utente), l'utente può semplicemente presentarlo per autenticare la propria identità quando hanno bisogno di accedere al servizio. Questo migliora l'esperienza per gli utenti e libera le organizzazioni dalla necessità di memorizzare enormi quantità di informazioni per gli utenti. + +### Calcolo verificabile {#verifiable-computation} + +Il calcolo verificabile è un'altra applicazione della tecnologia a conoscenza zero per migliorare i progetti blockchain. Il calcolo verificabile ci permette di esternalizzare il calcolo ad un'altra entità mantenendo i risultati verificabili. L'entità presenta il risultato insieme a un'attestazione che verifica che il programma è stato eseguito correttamente. + +Il calcolo verificabile è fondamentale per migliorare la velocità di elaborazione sulle blockchain senza ridurre la sicurezza. Comprendere questo aspetto richiede di conoscere le differenze nelle soluzioni proposte per la scalabilità di Ethereum. + +[Soluzioni scalabili on-chain](/developers/docs/scaling/#on-chain-scaling), come la frammentazione, richiedono ampie modifiche del livello base della blockchain. Tuttavia, questo approccio è molto complesso e gli errori nell'attuazione possono compromettere il modello di sicurezza di Ethereum. + +[Le soluzioni di scaling off-chain](/developers/docs/scaling/#off-chain-scaling) non richiedono una nuova progettazione del protocollo Ethereum di base. Invece si basano su un modello di calcolo esternalizzato per migliorare la produttività sul livello base di Ethereum. + +Ecco come funziona nella pratica: + +- Invece di elaborare ogni transazione, Ethereum scarica l'esecuzione in una catena separata. + +- Dopo aver elaborato le transazioni, l'altra catena restituisce i risultati da applicare allo stato di Ethereum. + +Il vantaggio è che Ethereum non deve fare alcuna esecuzione e deve solo applicare i risultati dal calcolo esternalizzato al suo stato. Ciò riduce la congestione della rete e migliora anche la velocità delle transazioni (i protocolli off-chain vengono ottimizzati per un'esecuzione più rapida). + +La catena ha bisogno di un modo per convalidare le transazioni off-chain senza eseguirle nuovamente, altrimenti il valore dell'esecuzione off-chain viene perso. + +È qui che entra in gioco il calcolo verificabile. Quando un nodo esegue una transazione al di fuori di Ethereum, invia una prova a conoscenza zero per dimostrare la correttezza dell'esecuzione off-chain. Questa prova (chiamata [prova di validità](/glossary/#validity-proof)) garantisce che una transazione è valida, consentendo a Ethereum di applicare il risultato al suo stato, senza attendere che qualcuno contesti. + +I [rollup a conoscenza zero](/developers/docs/scaling/zk-rollups) e [validium](/developers/docs/scaling/validium/) sono due soluzioni di scaling off-chain che utilizzano prove di validità per fornire una scalabilità sicura. Questi protocolli eseguono centinaia di transazioni off-chain e inviano la prova di verifica su Ethereum. Questi risultati possono essere applicati immediatamente dopo che la prova è stata verificata, permettendo ad Ethereum di elaborare più transazioni senza incrementare i calcoli sul livello di base. + +### Ridurre la corruzione e la collusione nelle votazioni on-chain {#secure-blockchain-voting} + +Gli schemi di voto della blockchain hanno molte caratteristiche favorevoli: sono interamente controllabili, sicuri contro gli attacchi, resistenti alla censura e liberi da vincoli geografici. Ma persino gli schemi di voto on-chain non sono immuni al problema della **collusione**. + +Definita come "azioni di coordinamento per limitare la competizione aperta ingannando, truffando e fuorviando gli altri", la collusione potrebbe assumere la forma di un utente malevolo che influenza il voto offrendo tangenti. Ad esempio, Alice potrebbe ricevere una tangente da Bob per votare per l'`opzione B` a scrutinio, anche se preferisce l'`opzione A`. + +Corruzione e collusione limitano l'efficiacia di qualsiasi processo che utilizzi il voto come meccanismo di indicazione (specialmente nei casi in cui gli utenti possono provare come hanno votato). Ciò può avere conseguenze significative, specialmente quando i voti determinano l'allocazione di risorse scarse. + +Ad esempio, i [meccanismi di finanziamento quadratico](https://www.radicalxchange.org/concepts/plural-funding/) si affidano alle donazioni per misurare la preferenza per certe opzioni, tra svariati progetti di interesse pubblico. Ogni donazione conta come un "voto" per un progetto specifico, e i progetti che ricevono il maggior numero di voti ottengono maggiori finanziamenti dal gruppo corrispondente. + +Utilizzare il voto on-chain espone il finanziamento quadratico alla collusione: le transazioni della blockchain sono pubbliche, quindi i corruttori possono ispezionare l'attività on-chain di un corrotto, per vedere come questi ha "votato". Così, i finanziamenti quadratici cessano di essere un mezzo efficiente per allocare fondi a seconda delle preferenze aggregate della community. + +Per fortuna, le nuove soluzioni, come la MACI (Infrastruttura Anti-Collusione Minima), utilizzano le prove a conoscenza zero per rendere il voto on-chain (es. i meccanismi di finanziamento quadratico) resistenti a corruzione e collusione. La MACI è una serie di contratti intelligenti e script che consentono a un amministratore centrale (detto "coordinatore") di aggregare voti e risultati _senza_ rivelare nulla sulle indicazioni di voto del singolo. Ciononostante, è ancora possibile verificare che i voti siano stati contati correttamente o confermare che un particolare individuo abbia partecipato al turno di votazioni. + +#### Come funziona MACI con prove a conoscenza zero? {#how-maci-works-with-zk-proofs} + +All'inizio, il coordinatore distribuisce il contratto della MACI su Ethereum, dopodiché gli utenti possono iscriversi al voto (registrando la propria chiave pubblica nel contratto intelligente). Gli utenti trasmettono i voti inviando messaggi crittografati con la propria chiave pubblica al contratto intelligente (un voto valido dev'essere firmato con la chiave pubblica più recente associata all'identità dell'utente, tra gli altri criteri). Dopodiché, il coordinatore elabora tutti i messaggi al termine del periodo di voto, conteggia i voti e verifica i risultati on-chain. + +Nella MACI, le prove a conoscenza zero sono utilizzate per assicurare la correttezza del calcolo, rendendo impossibile per il coordinatore elaborare erroneamente i voti e i risultati dei conteggi. Ciò si ottiene chiedendo al coordinatore di generare le prove ZK-SNARK, verificando che a) tutti i messaggi siano stati elaborati correttamente, b) il risultato finale corrisponda alla somma di tutti i voti _validi_. + +Dunque, anche senza condividere una ripartizione dei voti per utente (come avviene in genere), la MACI garantisce l'integrità dei risultati calcolati durante la procedura di conteggio. Questa funzionalità è utile nel ridurre l'efficacia degli schemi basilari di collusione. Possiamo esplorare questa possibilità utilizzando l'esempio precedente di Bob che corrompe Alice per votare per un'opzione: + +- Alice si registra per votare inviando la propria chiave pubblica a uno smart contract. +- Alice accetta di votare per l'`opzione B` in cambio di una tangente da Bob. +- Alice vota per l'`opzione B`. +- Alice invia segretamente una transazione cifrata per cambiare la chiave pubblica associata alla sua identità. +- Alice invia un altro messaggio (crittografato) allo smart contract votando per l'`opzione A ` utilizzando la nuova chiave pubblica. +- Alice mostra a Bob una transazione che mostra che ha votato per l'`opzione B` (che non è valida poiché la chiave pubblica non è più associata all'identità di Alice nel sistema) +- Elaborando i messaggi, il coordinatore salta il voto di Alice per `option B` e conteggia soltanto il voto per `option A`. Dunque, il tentativo di collusione di Bob con Alice e di manipolazione del voto on-chain fallisce. + +L'utilizzo di MACI _richiede_ la fiducia nel fatto che il coordinatore sia colluso con i corruttori, né tenti di corrompere gli stessi elettori. Il coordinatore può decifrare i messaggi degli utenti (operazione necessaria per creare la prova), così che possa verificare accuratamente il voto di ogni persona. + +Ma nei casi in cui il coordinatore rimane onesto, la MACI rappresenta un potente strumento a garanzia della legittimità del voto on-chain. Ciò spiega la sua popolarità tra le applicazioni di finanziamento quadratico (es., [clr.fund](https://clr.fund/#/about/maci)) che fanno molto affidamento sull'integrità delle scelte di voto di ogni individuo. + +Scopri di più riguardo a [MACI](https://github.com/privacy-scaling-explorations/maci/blob/master/specs/01_introduction.md). + +## Svantaggi dell'utilizzo delle prove a conoscenza zero {#drawbacks-of-using-zero-knowledge-proofs} + +### Costi hardware {#hardware-costs} + +Generare le prove a conoscenza zero comporta calcoli molto complessi, eseguiti meglio su macchine specializzate. Poiché tali macchine sono costose, sono spesso fuori dalla portata degli individui "normali". Inoltre, le applicazioni che desiderano utilizzare la tecnologia a conoscenza zero, devono tenere conto dei costi dell'hardware, che potrebbero incrementare i costi per gli utenti finali. + +### Costi di verifica delle prove {#proof-verification-costs} + +Inoltre, la verifica delle prove richiede calcoli complessi e incrementa i costi di implementazione della tecnologia a conoscenza zero nelle applicazioni. Questo costo è particolarmente importante nel contesto della prova del calcolo. Ad esempio, i rollup ZK pagano approssimativamente 500.000 gas per verificare una singola prova ZK-SNARK su Ethereum, mentre le ZK-STARK richiedono commissioni persino maggiori. + +### Ipotesi di fiducia {#trust-assumptions} + +Nelle ZN-SNARK, la Stringa di Riferimento Comune (parametri pubblici) è generata una volta ed è disponibile per il riutilizzo alle parti che desiderano partecipare al protocollo a conoscenza zero. I parametri pubblici sono creati tramite una cerimonia di configurazione attendibile, i cui partecipanti sono considerati onesti. + +Ma non esiste davvero un modo tramite cui gli utenti possano valutare l'onestà dei partecipanti e gli utenti devono prendere in parola gli sviluppatori. Le ZK-STARK sono libere da ipotesi di fiducia, poiché la casualità utilizzata nel generare la stringa è verificabile pubblicamente. Nel mentre, i ricercatori stanno lavorando a configurazioni non basate su fiducia per le ZK-SNARK, per aumentare la sicurezza dei meccanismi di prova. + +### Minacce del calcolo quantistico {#quantum-computing-threats} + +Le ZK-SNARK utilizzano la crittografia curva ellittica ([ECDSA](/glossary/#ecdsa)) per la crittografia. Sebbene l'algoritmo ECDSA sia sicuro al momento, lo sviluppo dei computer quantistici potrebbe infrangerne il modello di sicurezza, in futuro. + +Le ZK-STARK sono considerate immuni alla minaccia dei computer quantistici, poiché utilizzano hash resistenti alla collisione per la crittografia. A differenza delle coppie di chiavi pubbliche-private utilizzate nella crittografia curva ellittica, gli hash resistenti alla collisione sono più difficili da rompere per gli algoritmi dei computer quantistici. + +## Ulteriori letture {#further-reading} + +- [Professore Informatico spiega un concetto applicando fino a 5 livelli di difficolta | WIRED](https://www.youtube.com/watch?v=fOGdb1CTu5c) - _Wired YouTube channel_ +- [Panoramica dei casi d'uso per le prove a conoscenza zero](https://appliedzkp.org/#Projects): _Privacy and Scaling Explorations Team_ +- [SNARK vs. STARK vs. SNARK Ricorsivi](https://www.alchemy.com/overviews/snarks-vs-starks) _Alchemy Overviews_ +- [Una prova a conoscenza zero: migliorare la privacy su una Blockchain](https://www.altoros.com/blog/zero-knowledge-proof-improving-privacy-for-a-blockchain/): _Dmitry Lavrenov_ +- [zk-SNARK: un esempio e approfondimento realistico sulla conoscenza zero realistica](https://medium.com/coinmonks/zk-snarks-a-realistic-zero-knowledge-example-and-deep-dive-c5e6eaa7131c) — _Adam Luciano_ +- [ZK-STARK: creare fiducia verificabile, persino contro i computer quantistici](https://medium.com/coinmonks/zk-starks-create-verifiable-trust-even-against-quantum-computers-dd9c6a2bb13d) — _Adam Luciano_ +- [Un'introduzione approssimativa a come sono possibili le ZK-SNARK](https://vitalik.ca/general/2021/01/26/snarks.html).- _Vitalik Buterin_ +- [Cos'è la prova a conoscenza zero e qual è il suo ruolo nella Blockchain?](https://www.leewayhertz.com/zero-knowledge-proof-and-blockchain/) - _LeewayHertz_ From aa0701b92c7812c68bd205bdc443db87c6df17b6 Mon Sep 17 00:00:00 2001 From: Pablo Pettinari Date: Tue, 27 Jun 2023 11:22:18 -0300 Subject: [PATCH 178/186] style unordered lists --- src/pages/run-a-node.tsx | 112 ++++++++++++++++++++------------------- 1 file changed, 58 insertions(+), 54 deletions(-) diff --git a/src/pages/run-a-node.tsx b/src/pages/run-a-node.tsx index 68e942af020..febd70cab1b 100644 --- a/src/pages/run-a-node.tsx +++ b/src/pages/run-a-node.tsx @@ -13,9 +13,7 @@ import { Heading, HeadingProps, Img, - ListItem, Text, - UnorderedList, type Icon as ChakraIcon, } from "@chakra-ui/react" import { FaDiscord } from "react-icons/fa" @@ -189,6 +187,9 @@ const BuildBox = (props: ComponentProps) => ( "& > p:last-of-type": { mb: 8, }, + "li:last-child": { + mb: 0, + }, }} {...props} /> @@ -226,6 +227,9 @@ const FullyLoaded = (props: ChildOnlyProp) => ( fontWeight: 600, lineHeight: "125%", }, + "li:last-child": { + mb: 0, + }, }} {...props} /> @@ -290,26 +294,26 @@ const StrongParagraph = (props: BoxProps) => ( ) -const H2 = (prop: HeadingProps) => ( - +const H2 = (props: HeadingProps) => ( + ) -const H3 = (prop: HeadingProps) => ( +const H3 = (props: HeadingProps) => ( ) -const H4 = (prop: ChildOnlyProp) => ( +const H4 = (props: ChildOnlyProp) => ( ) @@ -602,19 +606,19 @@ const RunANodePage = ({ data }: PageProps) => { - - +

@@ -635,17 +639,17 @@ const RunANodePage = ({ data }: PageProps) => { - - +
    +
  • - - +
  • +
  • - - +
  • +
  • - - +
  • +

a5l*?)=l(=d=H-`-~`3hAs$`khL# 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≦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